Caml1999T037vrS'O~C/Closure_offsets-ocaml.warning %middle_end/flambda/closure_offsets.mlQQ@2+a-4-9-30-40-41-42 QQ@@QQ@@@@@@QQ@@3@@@@@@#intA;@@@A@@@@@&_none_@@A@A@$charB;@@A@@@@@@A@&stringQ;@@ A@@@@@ @@@%bytesC;@@A@@@@@@@@%floatD;@@A@@@@@@@@$boolE;@@%falsec@@@$trued@@#@@@A@@@@@$@A@$unitF;@@"()e@@.@@@A@@@@@/@A@ #exnG;@@@A@@@@@3@@@#effH;@@O@A@A@@@@@@<@@@,continuationI;@@Q@@P@B@A@nY@@@@@@K@@@%arrayJ;@@R@A@A@@@@@@U@@@ $listK;@@S@A"[]f@@b@"::g@@@T@@o@ @@A@Y@@@@@r@@@&optionL;@@V@A$Noneh@@@$Somei@@@@@A@Y@@@@@@@@)nativeintM;@@A@@@@@@@@%int32N;@@A@@@@@@@@%int64O;@@A@@@@@@@@&lazy_tP;@@X@AJA@Y@@@@@@@@5extension_constructorR;@@A@@@@@@@@*floatarrayS;@@A@@@@@@@@&iarrayT;@@Y@A[A@Y@@@@@@@@*atomic_locU;@@Z@AdA@@@@@@@@@.Assert_failure`#@@@@@J@@@@@@@@[@@AϠ=ocaml.warn_on_literal_patternӐ@@0Division_by_zero]#@@@A٠  @+End_of_file\#$@@@Aᠰ@'FailureY#,@'@@A꠰@0Invalid_argumentX#5@0@@A󠰠$#@-Match_failureV#>@@=@9@;@@a@@A54@)Not_foundZ#O@@@A =<@-Out_of_memoryW#W@@@AED@.Stack_overflow^#_@@@AML@.Sys_blocked_io_#g@@@A$U'T'@)Sys_error[#o@j@@A-^0]0@:Undefined_recursive_modulea#x@@w@s@u@@h@@A>oAnA@:Continuation_already_takenb#@@@AFwIvI@&Stdlib@@A+&resultASS@@;@@0function_offsets^@@*Closure_id#Map!to@@@ @A&Stdlib#Map$Make*Closure_id!T!t@89@A+Stdlib__Map$Make!t.@8<@@8=@8;-@8:@88@@ TT@@AA5free_variable_offsets@@2Var_within_closure#Map!t@@@ @A&Stdlib#Map$Make2Var_within_closure!T!t@8E@AC@?)@8H@@8I@8G(@8F@8D@@ UU@@&BA@@A@@@@@SV !@@@@*@A@#J%T@I@@Ш@г*Closure_id2T3T@6T7T@@;Tmiddle_end/flambda/flambda.mli'''';@@ O@30specialised_args'#Map!t@@@~@@@}@@B&@@(6(8(6(i@@2P@36direct_call_surrogates9)#Map!t0!t@@@@@@@@C;@@(22)23@@GQ@@@,$$-$$@@KN@ఠY7ZYX@]FA@N@@@3?>>?????@@@~{@}@|@@@)free_varsaZmbZmAXఠ8@sGA@\U@@@@@@@@@qZmtrZm@гݠ'Flambda~ZmZm@ZmZm@@@@@@2 @@ZmsZm@@@6@@@@@ఠ6assign_function_offset^^@HA@@@(Variable!t@@@"E@ @'Flambda4function_declaration@@@"uE@ @@ #Map!t#intA@@@,ME@"@@@#BE@ ꠠ@ @@@"E@ @@ E@ @ I@,!@@@,jE@,g@!@@@,kE@,h@@,iE@ @@ E@ @@ E@ @@ E@ 3@@@@@@@@࣠@"idA^^@IA@@e3@r ^ o z @@@@@  @@-function_declA^^@"JA@@k3@!|@@@@@@@@s'A@ఠ#map+^,^@8KA@@m3@#@@@@@@ఠ'env_pos:^;^@GLA@@h@@?^@^@@@@q@@ @@ @@@ఠ#posS_T_@`MA@@@@@!I@ 3EDDEEEEE@/8@2@3*@$@%@@@డ!+j_k_@@@@@~@@@@}@@@|@@{@@z'%addintBA @@@@*stdlib.mli0++0+,@@&Stdlibn@@@@@@@ @@@@ @@@ @@ @@ 9@@ఐe'env_pos__@A@@F@@A__@@;@@@!J@!J@!V@@ @@ZW@A@_ @@@ఠ'env_pos``@NA@@@@@"I@!3@m{t@u@v@@@@ఠ%arityaa@OA@@#intA@@@"tJ@! @డ-Flambda_utils.function_arity-Flambda_utilsaa$@ a%a3@@@J@@@!"@@@!@@!@ $middle_end/flambda/flambda_utils.mlif88f8p@@-Flambda_utilsC@@@@Y@@@"n1@@@"m@@"lG@@ఐ-function_decla4aA@@@nT@@-@@BU@A@a @@డ'f(f@@@@T@@@"|@@@@"{g@@@"z@@"y@@"x3      @pha@b@c@@@@డܠްEeFe@۰@@@r@@@"@@@@"@@@"@@"@@"@@డ`dad@@@@@@@"@@@@"@@@"@@"@@"9@@డ{cS[|cS\@@@@@@@"@@@@"@@@"@@"@@"T@@ఐ['env_posbEKbER@7@@a@@AcS]cS^@@1@@@"M@"M@"q@@ @@@@@"@"M@"y@@Add@@I@@@"L@"L@"@@, @@@@@"@"L@"@@Aee@@a@@@"K@"K@"@@D @@@@@"@"K@"@@డ_!>ff@@!a@@$boolE@@@0@@/@@.,%greaterthanBA@@@@@@T@@@@2@@@"J@"@@@@"@@"@@"@@ఐJ%arityf f@@@@@A)f*f@@ K@"@@@@@@@"K@"@A8f9f@@@@@"J@"J@" @@FfGf@@J@"J@"@MfNf@@@@@@@3@@@A@R`@@@ఠ*closure_id]h5=^h5G@jPA@@!t@@@"I@"3QPPQQQQQ@@@@@@డ$wrap*Closure_idxh5Jyh5T@ |h5U}h5Y@@@@@@"@@@@@@ 1middle_end/flambda/base_types/closure_element.mliUU@@/Closure_element@@@@@@@@"1@@@"@@"/@@ఐ"idh5Zh5\@@@<@@-@@B=@A@h59@@ డ#Map#mem*Closure_idi`gi`q@ i`ri`u@@i`vi`y@ @@#key@@@v@!a@@@@u$boolE@@@t@@s@@r@6utils/identifiable.mlimm@@+Stdlib__Mapd@+!@@@@@@"@*&@@@"@@@"@@"@@"3@@@@@@@ఐ*closure_idi`zi`@ @@<@@@#3J@#2@@ఐ預#mapi`i`@@@U"@@\@@@@@#OJ@"(@డ$Misc,fatal_errorf$Misc,j-j@ 0j1j@@@&Stdlib'format4!a@$ݠ&Format)formatter@@@$$unitF@@@$!b@$@@@$@@$@.utils/misc.mli\DD\D@@$MiscA@2-@@@*@@*@@@&TI@+@!t@@@,I@&YI@+2@@@&UI@+@@+@@+I@&V@%@@@,I@,I@&Z@@&[I@&W@@&XI@&HL@@@&JH@@@&KI@&L@@@&I6@@&G@@ภ8CamlinternalFormatBasicsb&Formatdjk A;&Format8CamlinternalFormatBasics'format6!a@&!b@&!c@&!d@&!e@&!f@&@@@+}@'#fmt$ @@@+{&stringQ@@@+|@B@@A@A@ TA@@@(Variable!t@@@1E@1@@@1E@1@@ #Map!t@@@3E@1@@@2E@1@E@1@@1E@1@E@2@@@3E@2@@@@3E@2@@3E@1@@1E@1@@1E@1@@1E@13        @@@@@@@@࣠@#varA }  ? }  B@ UA@@V3        @c }   E  @@@@@  @@ CA@ }  C }  D@@W3        @h@@@@@@@@ OA@ఠ#map }  F }  I@ VA@@_@@ఠ#pos }  K }  N@ WA@@Z"@@ }  E }  O@@@r@c@@1+@@ @@@ఠ2var_within_closure ,~ R Z -~ R l@ 9XA@@ 5!t@@@1I@13        @D7@1@2,@&@'@@@డ [$wrap2Var_within_closure I~ R o J~ R @  M~ R  N~ R @@@@@@ a$@@@ `@@ _@ 1middle_end/flambda/base_types/closure_element.mliUU@@/Closure_element@@@@@@@@13@@@1@@11@@ఐ#var r~ R  s~ R @}@@>@@-@@D?@A@ w~ R V@@ డ #Map#mem2Var_within_closure      @       @@      @ @@#key@@@ @!a@ +@@@ $boolE@@@ @@ @@ @6utils/identifiable.mlimm@@+Stdlib__Mapd@+!@@@@@@1@ @@@1@@@1@@1@@13        @@@@@@@ఐ2var_within_closure      @ @@<@@@1J@1@@ఐޠ#map      @@@<"@@\@@@@@2 J@1(@డ,fatal_errorf$Misc @   @  @  @   @  @@ϰ@@@Ϡ@@@@@2I@2n@ !t@@@2I@2!I@2j@@@2I@2m@@2z@@2yI@2@@@@2I@2I@2"@@2#I@2@@2 I@2@@@2@@@2I@2@@@25@@2w@@ภ   H@   IA  XAภ a  ` >Closure_offsets.add_closure_offsets: free variable offset for @@E@@@2bJ@2eJ@2d@ภ $) %(ภ ,} -'| would be defined multiple times,@,@a@@@2J@2J@2@ภ @ A;@;@NK@2I@2NI@2`I@2tK@2xI@2OI@2aI@2uK@2K@2 K@2gK@2@@@2J@2@@\@Ԡ!I@2iK@2oK@2pwK@2q@@@2J@2@@l@K@2S-&'(K@2X@@@2cJ@2{@@{@K@23:345K@28@@@2PJ@2_ @ `Closure_offsets.add_closure_offsets: free variable offset for %a would be defined multiple times@@@@@2QJ@2J@2@@@@۠Ҡà@@@2J@2M!@@డ %print2Var_within_closure B Y a B Y s@  B Y t B Y y@@@ &Format)formatter@@@ ^@@@@ ]$unitF@@@ \@@ [@@ Z@`jcmajc@@,IdentifiableD@"@@ I@2S@@ఐ2var_within_closure#B Y z$B Y @]@@ I@2b@@)  *C  @@e@@,  @@g@@ఠ#map7D  8D  @DYA@@w@@@2I@23*))*****@{@@@డ b#Map#add2Var_within_closureSD  TD  @ WD  XD  @@\D  ]D  @ @@@@@ %@!a@ @ @@@ $à @@@ #@@ "@@ !@@ @@F@$@@@@@@2@@Ҡ@@@2֠@@@2@@2@@2@@2G@@ఐf2var_within_closureD  D  @̰@@@@@2J@2Y@@ఐ#posD  D  @k@@f@@ఐ#mapD  D  @y@@s@@b@@xt@A@D  @@@ఐ#mapE  E  @@@@@3@@@@@డ D i kE  E  @ h@@@ @@@3@ h@@@3 @@@3@@3@@3@@ఐ٠#posE  E  @@@2)@@AE  E  @@ @@@3I@3I@39@@ @@1:@@E  @@@@@9@@3B@S@@@@@@ @@ @*!A@E@3(@A@%@@@ఠ5free_variable_offsetsG  G @)ZA@@t M@@@3]@@@3`E@33@X@@@@@@@0G 1G @@E@3  @@@@@@ @@3#@డ#Map$fold(VariableLHMH"@ PH#QH&@@UH'VH+@ @ @@@@@@@3.@ M@@@3yE@3*@@Q@A@@3E@3_E@3( @@3-@@3,@@3+@@@@3)@@@3'@@3&@@3%R@@ఐ;assign_free_variable_offsetH,HG@\@@@@@@3W@/F@3L@@ @@@3S@@@3V@@@3U@ @@@3R@ @@@3T@@3Q@@3P@@3O@@3N@@ఐ N)free_varsIHNIHW@ İ@@ Y@@@3x@@@ఐ 점5free_variable_offsetsIHYIHn@ t@@ E@3@@@3@@ఐ1free_variable_posIHpIH@ @@F@3@@IHXIH@@}E@3@@@@@A@G  @@ຠ 60function_offsetsKKAఐԠ @'@ 8Z@@@3D@3D@3@@@33@@@@@@ M5free_variable_offsetsLLAఐ @@j3@@@3D@3D@3@@@3@@@$K T@@ @< U@@ @= V@@ U@ W@@ @  X@@  8@ B YA@ B@3 `@A@ ]@ ] \@ @ఠ'compute8O9O@E[A@@@ 'program@@@3B@3 @@@8)B@3@@3B@3365566666@   @ @ @@@࣠@'programA@[O\O@@@@@33IHHIIIII@-dOeY@@@@  @s\A'г*'FlambdatOuO@1xOyO@@@9@@@3 @@OO@@@@"@@@@@@PP@@@@@33{zz{{{{{@3@8@;@-@@@$init  @]A @@@3г&resultPP@@@@@3@@! A@@@@@3@ຠ 0function_offsetsQQ@డ#Map%empty*Closure_idQQ@ Q Q#@@Q$Q)@ @ !a@@@@@ @ E@ @@ ?@@@4D@4 D@4 @@@4 Z@/5free_variable_offsetsR+1R+F@డ#Map%empty2Var_within_closureR+IR+[@ R+\R+_@@ R+` R+e@ @b!a@ @@@ @g@cE@ @@l5@@@4'D@41D@4/@@@4.@@@&Q'Sgl@г@@@@3@ A@@@@@4HD@4G@A@:P@@@ఠ!rEUrxFUry@R^A@@@@@8D@4I376677777@@@@@@డ$List)fold_left^V|_V|@ bV|cV|@@@@#acc@5@!a@5 @@6@@6@ @$listK@@@6@@6@@6@@6@(list.mli333r@@,Stdlib__List]@(#@@@@AD@7@@@@8D@7 @@7@@7@ @ @@@7@@7@@7@@7M@@ఐ 3add_closure_offsetsV|V|@X@@@@@@8@@@@8#@@@8@@8@@8 g@@ఐ&$initWW@q@@yE@8v@@డ 4all_sets_of_closures-Flambda_utilsWW@ WW@@@.'program@@@"2$listK:/set_of_closures@@@"1@@@"0@@"/@ (( (r@@ X@"@@@@@@8@@@8@@@8@@8@@ఐ'program W W@z@@5@@@8%F@8'F@8&@@WW@@@@@8E@8(F@8#@@ @@@A@#Urt @@ఐ栐!r+Y@@@@@3@@@@@@@@@@A@B@8+@A@@@@A@@@@@@3&%%&&&&&@ @@@/Closure_offsetsC@@&@@@ H************************************************************************JA@@KA@L@ H PBMMQBM@ H OCaml VCWC@ H \D]D3@ H Pierre Chambart, OCamlPro bE44cE4@ H Mark Shinwell and Leo White, Jane Street Europe hFiF@ H nGoG@ H Copyright 2013--2016 OCamlPro SAS tHuHg@ H Copyright 2014--2016 Jane Street Group LLC zIhh{Ih@ H JJ@ H All rights reserved. This file is distributed under the terms of KKN@ H the GNU Lesser General Public License version 2.1, with the LOOLO@ H special exception on linking described in the file LICENSE. MM@ H NN5@ H************************************************************************O66O6@ Build the table mapping the functions declared by the set of closures to the positions of their individual "infix" closures inside the runtime closure block. (All of the environment entries will come afterwards.) []H@ 0 GC header; either [Closure_tag] or [Infix_tag] cS`cS@? full application code pointer dd@' arity ee@ " partial application code pointer ff-@ i Adds the mapping of free variables to their offset. Recall that projections of [Var_within_closure]s are only currently used when compiling accesses to the closure of a function from outside that function (in particular, as a result of inlining). Accesses to a function's own closure are compiled directly via normal [Var] accesses. u ! #z  @ CR-someday mshinwell: As discussed with lwhite, maybe this isn't ideal, and the self accesses should be explicitly marked too. {  |  @@-./boot/ocamlc)-nostdlib"-I&./boot*-use-prims2runtime/primitives"-g0-strict-sequence*-principal(-absname"-w8+a-4-9-40-41-42-44-45-48+-warn-error"+a*-bin-annot/-strict-formats"-I2middle_end/flambda"-I%utils"-I'parsing"-I&typing"-I(bytecomp"-I,file_formats"-I&lambda"-I*middle_end"-I2middle_end/closure"-I2middle_end/flambda"-I=middle_end/flambda/base_types"-I'asmcomp"-I&driver"-I(toplevel"-I%tools"-I'runtime"-I1otherlibs/dynlink"-I-otherlibs/str"-I4otherlibs/systhreads"-I.otherlibs/unix"-I8otherlibs/runtime_events"-c =/builds/workspace/precheck/flambda/false/label/ocaml-linux-32 >10/.-,+*)('&%$#"! @@0Y`UX_fc3        @ @@/Allocated_const0ЖݔTWŠ(Asttypes0>n{T8cئ5Build_path_prefix_map0z HkGs8CamlinternalFormatBasics0%FU(Q/Tu0CamlinternalLazy0&͂7 Pˆ2Clambda_primitives01U1/Closure_element0YWZ̡Q.hV&05:z[ކW0o+U*.Closure_origin0vˆtT{(}z*Cmi_format0c˯7͗ԩmݠ0Compilation_unit0 {p-Vg_*Data_types0I'Ue`wq]Ѡ)Debuginfo0PtJ=^w/#Env0zV L{YWI0Idvu "0%#, s*Format_doc0]mWϓ:Mݠ%Ident0">WA+9*X,Identifiable0 {d\FX'`7Internal_variable_names0HdeՄL ԩ&Lambda0z1x]&ZT,Linkage_name0EwKсڊs)Load_path0I@18 ~(Location0a7cK_H%9)Longident0s `7mɕc$Misc0ob]6>Vê>0Mutable_variable0~emPs&Switch0ܨnm\7&Symbol0ҡ4d,#Tag0\݅}x.Type_immediacy0A^abOhՠ%Types0^Y~# )Unit_info0ڀh%(00SSJh6 (Variable0' Gr㠠(Warnings0mJɒkgr@@ Lo@KU@@@P@h@e@@@A A@C@@@A C@@@B@@B@@