Caml1999I031PcC7Semantics_of_primitives'effects(8@@*No_effects @@ &middle_end/semantics_of_primitives.mlix : Ix : S@@A7Only_generative_effects @@ x : T x : m@@B1Arbitrary_effects@@x : nx : @@#C@@A@@@@@x : :@@A@&@A@)coeffects)8@@,No_coeffects@@%y  &y  @@5E-Has_coeffects@@.y  /y  @@>F@@A@@@@@2y  @@A@ADA@-for_primitive*@2Clambda_primitives)primitive@@@S@@@3@@@@@@@@P  Q  @@`I@+return_type+8@@%Float%@@_B`B@@oK%Other&@@hCiC&@@xL@@A@@@@@lA@@A@{JA@8return_type_of_primitive,@:)primitive@@@)@@@@@@E((E(q@@M@@77Semantics_of_primitives0>EQNB(Warnings0zdͦkUe$%Types0lm?ƈ.Type_immediacy0dV^25b)̓ԆSj%Subst0BYw>*Su}Ck-Stdlib__Uchar0*Ujmyc6]]W.Stdlib__String0I3UK# +Stdlib__Set0.z9FX+Stdlib__Seq05"g1<)b+Stdlib__Map0kZ,ҷ'V.Stdlib__Lexing01'jh,-k4,Stdlib__Lazy0C 4 "$p1tU/Stdlib__Hashtbl04$*uկdD.Stdlib__Format0{hXsHW#ȼ.Stdlib__Either0&]XF.Stdlib__Digest0aI]2t*x4%".Stdlib__Buffer0K ɦb+Z8)#KH"&Stdlib0yӶ~*%Shape0H[DTċwToe@Q)Primitive0յ_9|br$Path0L%SsN|#Ɣj)Parsetree0`ⰧkRE+Outcometree0gCtr>?????@mE@A@8return_type_of_primitive'^E(,_E(D@б@г)primitive2Clambda_primitiveslE(FmE(b@@ @@@0]\\]]]]]@JD@A@@гN+return_type{E(f|E(q@@ @@@@@@@@@@@E(( @@M@ @@@+%A@A@@hbA@9@@0~~@#;@A@ H************************************************************************A@@A@L@ H BMMBM@ H OCaml CC@ H DD3@ H Pierre Chambart, OCamlPro E44E4@ 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@ * Description of the semantics of primitives, to be used for optimization purposes. "No effects" means that the primitive does not change the observable state of the world. For example, it must not write to any mutable storage, call arbitrary external functions or change control flow (e.g. by raising an exception). Note that allocation is not "No effects" (see below). It is assumed in the compiler that applications of primitives with no effects, whose results are not used, may be eliminated. It is further assumed that applications of primitives with no effects may be duplicated (and thus possibly executed more than once). (Exceptions arising from allocation points, for example "out of memory" or exceptions propagated from finalizers or signal handlers, are treated as "effects out of the ether" and thus ignored for our determination here of effectfulness. The same goes for floating point operations that may cause hardware traps on some platforms.) "Only generative effects" means that a primitive does not change the observable state of the world save for possibly affecting the state of the garbage collector by performing an allocation. Applications of primitives that only have generative effects and whose results are unused may be eliminated by the compiler. However, unlike "No effects" primitives, such applications will never be eligible for duplication. "Arbitrary effects" covers all other primitives. "No coeffects" means that the primitive does not observe the effects (in the sense described above) of other expressions. For example, it must not read from any mutable storage or call arbitrary external functions. It is assumed in the compiler that, subject to data dependencies, expressions with neither effects nor coeffects may be reordered with respect to other expressions.  * Describe the semantics of a primitive. This does not take into account of the (non-)(co)effectfulness of the arguments in a primitive application. To determine whether such an application is (co)effectful, the arguments must also be analysed. @-./boot/ocamlc"-g)-nostdlib"-I$boot*-use-prims2runtime/primitives0-strict-sequence*-principal(-absname"-w>+a-4-9-40-41-42-44-45-48-66-70+-warn-error"+a*-bin-annot,-safe-string/-strict-formats"-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"-c!" 3/home/barsac/ci/builds/workspace/step-by-step-build - @0/t }0"!!"""""@ @@(Asttypes0'$O~75Build_path_prefix_map0xөvĠ8CamlinternalFormatBasics0cEXyEQNB%Shape0H[DTċwToe@Q&Stdlib0yӶ~*.Stdlib__Buffer0K ɦb+Z8)#KH".Stdlib__Digest0aI]2t*x4%".Stdlib__Either0&]XF.Stdlib__Format0{hXsHW#ȼ/Stdlib__Hashtbl04$*uկdD,Stdlib__Lazy0C 4 "$p1tU.Stdlib__Lexing01'jh,-k4+Stdlib__Map0kZ,ҷ'V+Stdlib__Seq05"g1<)b+Stdlib__Set0.z9FX.Stdlib__String0I3UK# -Stdlib__Uchar0*Ujmyc6]]W%Subst0BYw>*Su}Ck.Type_immediacy0dV^25b)̓ԆSj%Types0lm?ƈ(Warnings0zdͦkUe$@0>EQNBAE@@@@@@@@>@@@@@rq@@vx@@@@P@