Caml1999T037vS~OC/Closure_offsets-ocaml.warning %middle_end/flambda/closure_offsets.mlQQ@2+a-4-9-30-40-41-42 QQ@@QQ@@@@@@QQ@@3@@@@@@#intA;@@#intA@@@@@&_none_@@A@A@$charB;@@$charA@@@@@ @A@&stringQ;@@&stringA@@@@@@@@%bytesC;@@%bytesA@@@@@@@@%floatD;@@%floatA@@@@@@@@$boolE;@@%falsec@@%@$trued@@+@@@A@@@@@,@A@$unitF;@@"()e@@6@@@A@@@@@7@A@ #exnG;@@@A@@@@@;@@@#effH;@@O@A@A@@@@@@D@@@,continuationI;@@Q@@P@B,continuationA@nY@@@@@@T@@@%arrayJ;@@R@A%arrayA@@@@@@_@@@ $listK;@@S@A"[]f@@l@"::g@@@T@@y@ @@A@Y@@@@@|@@@&optionL;@@V@A$Noneh@@@$Somei@@@@@A@Y@@@@@@@@)nativeintM;@@)nativeintA@@@@@@@@%int32N;@@%int32A@@@@@@@@%int64O;@@%int64A@@@@@@@@&lazy_tP;@@X@A&lazy_tA@Y@@@@@@@@ 5extension_constructorR;@@5extension_constructorA@@@@@@@@*floatarrayS;@@*floatarrayA@@@@@@@@&iarrayT;@@Y@A&iarrayA@Y@@@@@@@@ *atomic_locU;@@Z@A*atomic_locA@@@@@@@@@ .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@@A5!4!@)Not_foundZ#O@@@A&=)<)@-Out_of_memoryW#W@@@A.E1D1@.Stack_overflow^#_@@@A6M9L9@.Sys_blocked_io_#g@@@A>UATA@)Sys_error[#o@j@@AG^J]J@:Undefined_recursive_modulea#x@@w@s@u@@h@@AXo[n[@:Continuation_already_takenb#@@@A`wcvc@&Stdlib@@A+&resultASS@@;@@0function_offsets^@@*Closure_id#Map!t@@@ @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@@ 4U5U@@ABA@@A@@@@@8S9V !@@@@E@A@#J@T@I@@Ш@г*Closure_idMTNT@QTRT@@VTWT@ @г#int`TaT@@3KJJKKKKK@J;@@@A@@@@@/@@@,@@@@@@@@@ @u@#qq:nU@9@@Ш@гt2Var_within_closure{U|U@zUU@@~UU@ @г#intUU@@.@@@/ @@@@ 2@a@@A@]@@]\@~@ఠ3add_closure_offsetsX#'X#:@CA@@@@@@0B@*@'Flambda/set_of_closures@@@B@;@@@3B@<@@=B@+@@,B@)3@@@@࣠@%paramAঠ0function_offsetsY;CY;SA3+@@@(@@@3@@A@A@@A@ఠ   @DA@&@@@2@@@13@'LX##M@@@@5free_variable_offsetsY;UY;jAఠ@EA@@@@7@@@6@@@Y;AY;l@@]D@- @@@@CAঠ.function_declsZmvZmA3.function_decls'Flambda/set_of_closures@@@5function_declarations@@@z@@@3)free_vars(Variable#Map!t.specialised_to@@@|@@@{@@A@@>middle_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@xFA@N@@@3ZYYZZZZZ@@@~{@}@|@@@)free_vars|Zm}ZmAXఠ8@GA@\U@@@@@@@@@ZmtZm@гݠ'FlambdaZmZm@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_declA0^1^@=JA@@k3@!|@@@@@@@@s'A@ఠ#mapF^G^@SKA@@m332233333@#@@@@@@ఠ'env_posU^V^@bLA@@h@@Z^[^@@@@q@@ @@ @@@ఠ#posn_o_@{MA@@@@@!I@ 3`__`````@/8@2@3*@$@%@@@డ!+__@@@@@~@@@@}@@@|@@{@@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_utils a a$@ a%a3@@@J@@@!"@@@!@@!@ $middle_end/flambda/flambda_utils.mlif88f8p@@-Flambda_utilsC@@@@Y@@@"n1@@@"m@@"lG@@ఐ-function_decl4a45aA@@@nT@@-@@BU@A@9a @@డBfCf@@@@T@@@"|@@@@"{g@@@"z@@"y@@"x3;::;;;;;@pha@b@c@@@@డܠް`eae@۰@@@r@@@"@@@@"@@@"@@"@@"@@డ{d|d@@@@@@@"@@@@"@@@"@@"@@"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@"@@డ_!> f f@@!a@@$boolE@@@0@@/@@.,%greaterthanBA@@@@@@T@@@@2@@@"J@"@@@@"@@"@@"@@ఐJ%arity:f;f@@@@@ADfEf@@ K@"@@@@@@@"K@"@ASfTf@@@@@"J@"J@" @@afbf@@J@"J@"@hfif@@@@@@@3@@@A@m`@@@ఠ*closure_idxh5=yh5G@PA@@!t@@@"I@"3lkklllll@@@@@@డ$wrap*Closure_idh5Jh5T@ h5Uh5Y@@@@@@"@@@@@@ 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@@ఐ預#map/i`0i`@@@U"@@\@@@@@#OJ@"(@డ$Misc,fatal_errorf$MiscGjHj@ KjLj@@@&Stdlib'format4!a@$ݠ&Format)formatter@@@$$unitF@@@$!b@$@@@$@@$@.utils/misc.mli\DD\D@@$MiscA@2-@@@*@@*@@@&TI@+@!t@@@,I@&YI@+2@@@&UI@+@@+@@+I@&V@7@@@,I@,I@&Z@@&[I@&W@@&XI@&HL@@@&JH@@@&KI@&L@@@&I6@@&G@@ภ8CamlinternalFormatBasics|&Format~jk 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"@@ 3}  E 4}  O@@@r@c@@1+@@ @@@ఠ2var_within_closure G~ R Z H~ R l@ TXA@@ 5!t@@@1I@13 ; : : ; ; ; ; ;@D7@1@2,@&@'@@@డ [$wrap2Var_within_closure d~ R o e~ R @  h~ R  i~ R @@@@@@ a$@@@ `@@ _@ 1middle_end/flambda/base_types/closure_element.mliUU@@/Closure_element@@@@@@@@13@@@1@@11@@ఐ#var ~ R  ~ R @}@@>@@-@@D?@A@ ~ 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@@ภ   c@   dA  XAภ *a + ` >Closure_offsets.add_closure_offsets: free variable offset for @@E@@@2bJ@2eJ@2d@ภ >) ?(ภ F} G'| would be defined multiple times,@,@a@@@2J@2J@2@ภ Z [;@;@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_closureB Y aB Y s@ B Y tB Y y@@@ &Format)formatter@@@ ^@@@@ ]$unitF@@@ \@@ [@@ Z@`jcmajc@@,IdentifiableD@"@@ I@2S@@ఐ2var_within_closure>B Y z?B Y @]@@ I@2b@@D  EC  @@e@@G  @@g@@ఠ#mapRD  SD  @_YA@@w@@@2I@23EDDEEEEE@{@@@డ b#Map#add2Var_within_closurenD  oD  @ rD  sD  @@wD  xD  @ @@@@@ %@!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_offsets7G  8G @DZA@@t M@@@3]@@@3`E@33-,,-----@X@@@@@@@KG LG @@E@3  @@@@@@ @@3#@డ#Map$fold(VariablegHhH"@ kH#lH&@@pH'qH+@ @ @@@@@@@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_offsets+L,LAఐ @@j3@@@3D@3D@3@@@3@@@?K T@@ @< U@@ @= V@@ U@ W@@ @  X@@  8@ B YA@ B@3 `@A@ ]@ ] \@ @ఠ'computeSOTO@`[A@@@ 'program@@@3B@3 @@@8)B@3@@3B@33QPPQQQQQ@   @ @ @@@࣠@'programA@vOwO@@@@@33dccddddd@-OY@@@@  @\A'г*'FlambdaOO@1OO@@@9@@@3 @@OO@@@@"@@@@@@PP@@@@@33@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_offsets R+1R+F@డ#Map%empty2Var_within_closureR+IR+[@ "R+\#R+_@@'R+`(R+e@ @b!a@ @@@ @g@cE@ @@l5@@@4'D@41D@4/@@@4.@@@AQBSgl@г@@@@3@ A@@@@@4HD@4G@A@UP@@@ఠ!r`UrxaUry@m^A@@@@@8D@4I3RQQRRRRR@@@@@@డ$List)fold_leftyV|zV|@ }V|~V|@@@@#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&@@2W3W@@@@@8E@8(F@8#@@ @@@A@>Urt @@ఐ栐!rFY@@@@@321122222@@@@@@@@@@A@B@8+@A@@@@A@@@@@@3A@@AAAAA@ @@@/Closure_offsetsC@@&@@@ H************************************************************************eA@@fA@L@ H kBMMlBM@ H OCaml qCrC@ H wDxD3@ H Pierre Chambart, OCamlPro }E44~E4@ H Mark Shinwell and Leo White, Jane Street Europe FF@ H GG@ H Copyright 2013--2016 OCamlPro SAS HHg@ H Copyright 2014--2016 Jane Street Group LLC IhhIh@ 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. {  |  @@*./ocamlopt)-nostdlib"-I(./stdlib"-I1otherlibs/dynlink"-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_events2-function-sections"-c!" F/home/ci/builds/workspace/main/flambda/false/label/ocaml-ubuntu-latest ?>3210/.-,+*)('&%$#"! @@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[ކt0o+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~emP*%"e$Path0Y2kf֯J._Ϡ)Primitive0²~$xzT෠*Projection0$WF 8E2Set_of_closures_id0wi xtW#SSD=6Set_of_closures_origin0 7|MӑTrќt%Shape0oNՄBH0Static_exception0e6Z@F<jiޢ2_&Stdlib0Lku]8_٠.Stdlib__Buffer08APF< t..Stdlib__Digest0l!LHgErζ .Stdlib__Domain0Hݶ/m.Stdlib__Either0Vy`u~c à.Stdlib__Format0ɢb tLir/Stdlib__Hashtbl0ѱN][/!-Stdlib__Int640l-J ~m-۠,Stdlib__Lazy0* -S$.)"0D.Stdlib__Lexing0e<.V ,Stdlib__List0MYm 7R+Stdlib__Map0L5xE|O0~,J-.Stdlib__Result06 ]/J+Stdlib__Seq0nwzG&amg+Stdlib__Set0\$;7 .Stdlib__String0s&Switch0ܨnm\7&Symbol0ҡ4d,#Tag0\݅}x.Type_immediacy0A^abOhՠ%Types0xH+}q)Unit_info0ڀh%(00SSJh6 (Variable0' Gr㠠(Warnings0mJɒkgr