Caml1999T037wSOC/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@8}@A+Stdlib__Map$Make!t.@8@@8@8-@8~@8|@@ TT@@AA5free_variable_offsets@@2Var_within_closure#Map!t@@@ @A&Stdlib#Map$Make2Var_within_closure!T!t@8@AC@?)@8@@8@8(@8@8@@ 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@@@@@@aB@[@'Flambda/set_of_closures@@@CB@l@@@3B@m@@nB@\@@]B@Z3@@@@࣠@%paramAঠ0function_offsetsY;CY;SA3+@@@Y@@@3@@A@A@@A@ఠ   @DA@&@@@c@@@b3@'LX##M@@@@5free_variable_offsetsY;UY;jAఠ@EA@@@@h@@@g@@@Y;AY;l@@]D@^ @@@@CAঠ.function_declsZmvZmA3.function_decls'Flambda/set_of_closures@@@5function_declarations@@@@@@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@ఠY@ZYX@xFA@N@@@H3ZYYZZZZZ@@@~{@}@|@@@)free_vars|Zm}ZmAXఠA@GA@\U@@@N@@@M@@@ZmtZm@гݠ'FlambdaZmZm@ZmZm@@@@@@A2 @@ZmsZm@@@6@@@@@ఠ6assign_function_offset^^@HA@@@(Variable!t@@@# E@!@'Flambda4function_declaration@@@"E@!@@ #Map!t#intA@@@,E@#(@@@#zE@!"@ @@@"E@!#@@!$E@!@ I@,Y@@@,E@,@!@@@,E@,@@,E@! @@!!E@!@@!E@!@@!E@!3@@@@@@@@࣠@"idA^^@)IA@@e3      @r$^%o z @@@@@  @@-function_declA0^1^@=JA@@k3@!|@@@@@@@@s1A@ఠ#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@@@@@@@!0@@@@!/@@@!.@@!-@@!,9@@ఐe'env_pos__@A@@F@@A__@@;@@@!;J@!?J@!>V@@ @@ZW@A@_ @@@ఠ'env_pos``@NA@@@@@"I@!@3@m{t@u@v@@@@ఠ%arityaa@OA@@#intA@@@"J@!A@డ-Flambda_utils.function_arity-Flambda_utils a a$@ a%a3@@@J@@@""@@@"@@"@ $middle_end/flambda/flambda_utils.mlif88f8p@@-Flambda_utilsC@@@@Y@@@"1@@@"@@"G@@ఐ-function_decl4a45aA@@@nT@@-@@BU@A@9a @@డBfCf@@@@T@@@"@@@@"g@@@"@@"@@"3;::;;;;;@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_id xh5=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@@@}@!a@@@@|$boolE@@@{@@z@@y@6utils/identifiable.mlimm@@+Stdlib__Mape@+!@@@@@@#)@*&@@@#'@@@#&@@#%@@#$3@@@@@@@ఐ*closure_idi`zi`@ @@<@@@#kJ@#j@@ఐ預#map/i`0i`@@@U"@@\@@@@@#J@#3(@డ$Misc,fatal_errorf$MiscGjHj@ KjLj@@@&Stdlib'format4!a@%&Format)formatter@@@%!$unitF@@@%"!b@%@@@% @@%@.utils/misc.mli\DD\D@@$MiscA@2-@@@*@@*@@@&I@,@!t@@@,LI@&I@, 2@@@&I@, @@,@@,I@&@7@@@,RI@,QI@&@@&I@&@@&I@&L@@@&H@@@&I@&@@@&6@@&@@ภ8CamlinternalFormatBasics|&Format~jk A;&Format8CamlinternalFormatBasics'format6!a@&!b@&!c@&!d@&!e@&!f@&@@@+@'#fmt$ @@@+&stringQ@@@+@B@@A@A@!t@@@ =@@@ <@@ ;@@ :@6utils/identifiable.mlimm@@+Stdlib__Map\@8.@@@@+@@@,@@@@,E@,@@@q@@1E@,E@, @@,@@,@@,@+@@@,@@@,@@,@@,@@ఐ06assign_function_offset r   r  @@@@+@@@,@"@@@,@@@@@,@@@,䠠@ @@@,@@,@'@@@,ࠠ@$@@@,@@,@@,@@,@@,@@ఐ.function_decls s   s  @@@@@@1@1@$funs 's   (s  @3$funs @@@#Map!t4function_declaration@@@@@@@@C3/is_classic_mode$boolE@@@@@@ @@ 4444@@,R@32set_of_closures_id 2Set_of_closures_id!t@@@@@A@@5254525^@@:S@36set_of_closures_origin.6Set_of_closures_origin!t@@@@@B%@@)"66*"666@@HT@<@@-'7(7*.'7(7U@@LU@OB@@<F@1@@@1@@@ఐ0function_offsets ~s   s  @ @@ Ǡ9E@1@@@16@@ s   s  @@/F@1@@@ s   s  @@E@1E@@@@F@A@ q  @@@ఠ;assign_free_variable_offset }  # }  >@ TA@@@(Variable!t@@@1E@1@@@1E@1@@ #Map!t@@@3WE@1@@@2DE@1נ@E@1@@1E@1@E@2@@@3EE@3B@@@@3UE@3C@@3DE@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 @@@@@@ h$@@@ g@@ f@ 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@ 2@@@ $boolE@@@ @@ @@ @6utils/identifiable.mlimm@@+Stdlib__Mape@+!@@@@@@1@ @@@1@@@1@@1@@13        @@@@@@@ఐ2var_within_closure      @ @@<@@@25J@24@@ఐޠ#map      @@@<"@@\@@@@@2QJ@1(@డ,fatal_errorf$Misc @   @  @  @   @  @@ϰ@@@Ϡ@@@@@2`I@2@ !t@@@2I@2eI@2@@@2aI@2@@2@@2I@2b@@@@2I@2I@2f@@2gI@2c@@2dI@2T@@@2V@@@2WI@2X@@@2U5@@2Sw@@ภ   c@   dA  XAภ *a + ` >Closure_offsets.add_closure_offsets: free variable offset for @@E@@@2J@2J@2@ภ >) ?(ภ F} G'| would be defined multiple times,@,@a@@@2J@2J@2@ภ Z [;@;@NK@2ƠI@2I@2I@2K@2ǠxI@2I@2I@2K@2ȠK@2ɠ K@2ʠgK@2@@@2J@2@@\@Ԡ!I@2K@2K@2wK@2@@@2J@2@@l@K@2-&'(K@2@@@2J@2@@{@K@2w:345K@2|@@@2J@2 @ `Closure_offsets.add_closure_offsets: free variable offset for %a would be defined multiple times@@@@@2J@2J@2@@@@۠Ҡà@@@2_J@2!@@డ %print2Var_within_closureB Y aB Y s@ B Y tB Y y@@@ &Format)formatter@@@ e@@@@ d$unitF@@@ c@@ b@@ a@`jcmajc@@,IdentifiableD@"@@ I@2S@@ఐ2var_within_closure>B Y z?B Y @]@@ I@2b@@D  EC  @@e@@G  @@g@@ఠ#mapRD  SD  @_YA@@w@@@3I@23EDDEEEEE@{@@@డ b#Map#add2Var_within_closurenD  oD  @ rD  sD  @@wD  xD  @ @@@@@ 0@!a@ @ @@@ /à @@@ .@@ -@@ ,@@ +@@F@$@@@@@@2@@Ҡ@@@2֠@@@2@@2@@2@@2G@@ఐf2var_within_closureD  D  @̰@@@@@3 J@3Y@@ఐ#posD  D  @k@@f@@ఐ#mapD  D  @y@@s@@b@@xt@A@D  @@@ఐ#mapE  E  @@@@@3@@@@@డ D i kE  E  @ h@@@ @@@3K@ h@@@3J @@@3I@@3H@@3G@@ఐ٠#posE  E  @@@2)@@AE  E  @@ @@@3VI@3ZI@3Y9@@ @@1:@@E  @@@@@9@@3[B@S@@@@@@ @@ @*!A@E@3a(@A@%@@@ఠ5free_variable_offsets7G  8G @DZA@@t M@@@3@@@3E@3c3-,,-----@X@@@@@@@KG LG @@E@3d @@@@@@ @@3g@డ#Map$fold(VariablegHhH"@ kH#lH&@@pH'qH+@ @ @@@@@@@3r@ M@@@3E@3n@@Q@A@@3E@3E@3l @@3q@@3p@@3o@@@@3m@@@3k@@3j@@3iR@@ఐ;assign_free_variable_offsetH,HG@\@@@@@@3@/F@3@@ @@@3@@@3@@@3@ @@@3@ @@@3@@3@@3@@3@@3@@ఐ N)free_varsIHNIHW@ İ@@ Y@@@3@@@ఐ 점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@@@4 D@4D@4@@@4@@@?K T@@ @< U@@ @= V@@ U@ W@@ @  X@@  8@ B YA@ B@4+ `@A@ ]@ ] \@ @ఠ'computeSOTO@`[A@@@ 'program@@@42B@4- @@@8mB@4.@@4/B@4,3QPPQQQQQ@   @ @ @@@࣠@'programA@vOwO@@@@@433dccddddd@-OY@@@@  @\A'г*'FlambdaOO@1OO@@@9@@@40 @@OO@@@@"@@@@@@PP@@@@@4:3@3@8@;@-@@@$init  @]A @@@49г&resultPP@@@@@47@@! A@@@@@4;@ຠ 0function_offsetsQQ@డ#Map%empty*Closure_idQQ@ Q Q#@@Q$Q)@ @ !a@@@@@ @ E@ @@ ?@@@4FD@4PD@4N@@@4MZ@/5free_variable_offsets R+1R+F@డ#Map%empty2Var_within_closureR+IR+[@ "R+\#R+_@@'R+`(R+e@ @b!a@ $@@@ *@g@cE@ @@l5@@@4kD@4uD@4s@@@4r@@@AQBSgl@г@@@@4<@ A@@@@@4D@4@A@UP@@@ఠ!r`UrxaUry@m^A@@@@@8ZD@43RQQRRRRR@@@@@@డ$List)fold_leftyV|zV|@ }V|~V|@@@@#acc@5@!a@5 @@7#@@7"@ @$listK@@@7!@@7 @@7@@7@(list.mli333r@@,Stdlib__List]@(#@@@@AD@87@@@@8YD@89 @@8;@@8:@ @ @@@88@@86@@85@@84M@@ఐ 3add_closure_offsetsV|V|@X@@@@@@8U@@@@8T#@@@8S@@8R@@8Qg@@ఐ&$initWW@q@@yE@8[v@@డ 4all_sets_of_closures-Flambda_utilsWW@ WW@@@.'program@@@"j$listK:/set_of_closures@@@"i@@@"h@@"g@ (( (r@@ X@"@@@@@@8`@@@8_@@@8^@@8]@@ఐ'program'W(W@z@@5@@@8iF@8kF@8j@@2W3W@@@@@8HE@8lF@8g@@ @@@A@>Urt @@ఐ栐!rFY@@@@@321122222@@@@@@@@@@A@B@8o@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!" J/home/ci/builds/workspace/precheck/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_element0.1 @1ѧU0sM;@eAlxt0hwa0 .Closure_origin0aBzlt@*Cmi_format0_j~GB00Compilation_unit0i(&ۥ$P.*Data_types0I'Ue`wq]Ѡ)Debuginfo0PtJ=^w/#Env0J=,Wu01Ux|ՍCb- 0 ʆR97cZ*Format_doc0]mWϓ:Mݠ%Ident0ki8' x%+Š,Identifiable0~ܽǞ+7Internal_variable_names0HdeՄL ԩ&Lambda0.Vu$ ^3,Linkage_name0h AEa.C1 R)Load_path0I@18 ~(Location0a7cK_H%9)Longident0s `7mɕc$Misc0Z1X=_c0Mutable_variable0_ ?.+L'Numbers00$ PS6?nu.+Outcometree0euWS~d栠)Parameter0Kb"Qjʑǭ@uYu)Parsetree0Uҩ=p>*%"e$Path0(|r>8۠dwx)Primitive0²~$xzT෠*Projection0n訥(2Set_of_closures_id0pi|ny6Set_of_closures_origin0{HO/Pؠ%Shape0mA;HXߠ0Static_exception0wBߝܔd3B&Stdlib0-i8Q"L{v;.Stdlib__Buffer08APF< t..Stdlib__Digest0l!LHgErζ .Stdlib__Domain0Bj|5s)ڠ.Stdlib__Either0Vy`u~c à.Stdlib__Format0ɢb tLir/Stdlib__Hashtbl0ѱN][/!-Stdlib__Int640l-J ~m-۠,Stdlib__Lazy0* -S$.)"0D.Stdlib__Lexing0e<.V ,Stdlib__List0eXԶ4r+Stdlib__Map0hؤ5O8% By.Stdlib__Result06 ]/J+Stdlib__Seq0nwzG&amg+Stdlib__Set0kb'G|PIF(.Stdlib__String0s&Switch0ܨnm\7&Symbol0_)Ӷӥ!h#Tag0 %XC}{3.Type_immediacy0A^abOhՠ%Types0R.z78m)Unit_info0ڀh%(0H6ʤ(fc2ӉrH(Variable0]Eè0=(Warnings0mJɒkgr