Caml1999I037j ۠*Cmt_format-binary_annots;@@&Packed̐%Types)signature@@@$listK&stringQ@@@@@@@@;file_formats/cmt_format.mliee@@(F@.Implementation:)Typedtree)structure@@@@@ff @@:G@)Interface;)signature@@@@@"g  #g %@@IH@6Partial_implementation<%arrayJ+binary_part@@@@@@@@9h&(:h&U@@`I@1Partial_interface=@@@@@@@@KiVXLiV@@rJ@@@A@@@@@Od@@@@uC@A@;@@1Partial_structure>Q)structure@@@@@albl@@K@6Partial_structure_item?`.structure_item@@@@@pmqm@@L@2Partial_expression@o*expression@@@@@nn@@M@/Partial_patternA~0pattern_category!k@@@@/general_pattern @@@@i@@@o  o V@@N@2Partial_class_exprB*class_expr@@@@@pWYpW{@@O@1Partial_signatureC)signature@@@@@q|~q|@@P@6Partial_signature_itemD.signature_item@@@@@rr@@Q@3Partial_module_typeE+module_type@@@@@ss@@R@@@A@@@@@k@@@@D@B@/dependency_kind;@@9Definition_to_declarationG@@u u $@@T@:Declaration_to_declarationH@@u %u A@@U@@@A@@@@@u@@A@S@A@)cmt_infos;@@+cmt_modnameJ@@$Misc'modname@@@˰w U Ww U m@@5W@*cmt_annotsK@@9@@@ʰx n px n @@AX@s-Stdlib__Uchar056uf4[_+Stdlib__Sys0 -ռ鱦s5/.Stdlib__String0Vê>)Longident0s `7mɕc(Location0a7cK_H%9)Load_path0I@18 ~,Identifiable0 {d\FX'`%Ident0">WA+9*X*Format_doc0]mWϓ:Mݠ#Env0zV L{YWI*Data_types0I'Ue`wq]Ѡ*Cmi_format0c˯7͗ԩmݠ0CamlinternalLazy0&͂7 Pˆ8CamlinternalFormatBasics0%FU(Q/Tu5Build_path_prefix_map0z HkGs(Asttypes0>n{T8cئ@@@Caml1999T037Y 96 C*Cmt_format*ocaml.text&_none_@@A< cmt and cmti files format. ;file_formats/cmt_format.mliP77P7X@@@@@@3@@@@@@#intA;@@@A@@@@@:@A@$charB;@@A@@@@@>@A@&stringQ;@@ A@@@@@B@@@%bytesC;@@ A@@@@@F@@@%floatD;@@A@@@@@J@@@$boolE;@@%falsec@@T@$trued@@Z@@@A@@@@@[@A@$unitF;@@"()e@@e@@@A@@@@@f@A@ #exnG;@@@A@@@@@j@@@#effH;@@O@A@A@@@@@@s@@@,continuationI;@@Q@@P@B@A@nY@@@@@@@@@%arrayJ;@@R@A@A@@@@@@@@@ $listK;@@S@A"[]f@@@"::g@@@T@@@ @@A@Y@@@@@@@@&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@@A;5>4>@)Not_foundZ#O@@@AC=F<F@-Out_of_memoryW#W@@@AKENDN@.Stack_overflow^#_@@@ASMVLV@.Sys_blocked_io_#g@@@A[U^T^@)Sys_error[#o@j@@Ad^g]g@:Undefined_recursive_modulea#x@@w@s@u@@h@@Auoxnx@:Continuation_already_takenb#@@@A}wv@&Stdlib@Axࠐ$Misc$MiscRZ_RZc@@A3@ @ARZZ@@@ . The layout of a cmt file is as follows: := \{\} \{cmt infos\} \{\} where is the cmi file format: := . More precisely, the optional part must be present if and only if the file is: - a cmti, or - a cmt, for a ml file which has no corresponding mli (hence no corresponding cmti). Thus, we provide a common reading function for cmi and cmt(i) files which returns an option for each of the three parts: cmi info, cmt info, source info. Tee`u@@@@@@ࠐ)Typedtree)Typedtreebb@@A3@% @Ab@@(@A+-binary_annotsAdd@@;@@&Packed̐%Types)signature@@@M@@@@@@@@ee@@F@.Implementation:@)structure@@@@@ff @@G@)Interface;O)signature@@@@@g  g %@@ H@6Partial_implementation<+binary_partA@@@@@@@@h&(h&U@@ I@1Partial_interface=@@@@@@@@iVXiV@@3J@@@A@@@@@d@@@@6C@@#ff%e&e@Q@гh%Types1e2e@m5e6e@@@w354455555@;@@@A@@@@@ @@@;;@@@A@@@@@@kAs@@@@YD@@A@@г{$listKew@г&stringSeTe@@@@@@@@@@#[f\f@x@гdf@@-@@@@@#jg kg @x@гsg @@<@@@@@#yh&*zh&@@r@г%arrayh&P|@г+binary_parth&Dh&O@@U@@@V@@@@@#iVZiVk@y@г%arrayiV{@г+binary_partiVoiVz@@o@@@p@@@@@@A@@+kk@@;@@1Partial_structure>)structure@@@@@ll@@K@6Partial_structure_item?).structure_item@@@@@mm@@L@2Partial_expression@8*expression@@@@@nn@@M@/Partial_patternAG0pattern_category!k@B@@@@T/general_pattern B@@@@@@@@o  o V@@N@2Partial_class_exprBk*class_expr@@@@@pWYpW{@@'O@1Partial_signatureCz)signature@@@@@q|~q|@@6P@6Partial_signature_itemD.signature_item@@@@@,r-r@@EQ@3Partial_module_typeE+module_type@@@@@;s@@SR@@@A@@@@@@@@@#BlCl@@гKl@@@@@@@#QmRm@@гZm@@#@@@@@#`nan@@гin@@2@@@@@#oo  po @p@гxo "yo 2@АE~o o !@@@H@@гo 8o G@А!kUo 5o 7@@@X @@@г+binary_parto K@@a@@@#pW[pWm@@гpWq@@p@@@@@#q|q|@@гq|@@@@@@@#rr@@гr@@@@@@@#ss@@гs@@@@@@@@A@@@-@A+/dependency_kindFBuu @@;@@9Definition_to_declarationG@@u u $@@T@:Declaration_to_declarationH@@u %u A@@ U@@@A@@@@@u@@A@S@@#@@@@@#u '@@@@@@A@@@3@^YUO@A@A+)cmt_infosICv B Gv B P@@;@@+cmt_modnameJ@@'modname@@@ w U W!w U m@@9W@*cmt_annotsK@@w@@@,x n p-x n @@EX@G  @ AG  BG  @@@ɰ@@@ʰ @@@@&9@@#  LH  (@@@Ш@г $listUI + `@В@г(LocationcI + <dI + D@gI + EhI + H@@г)LongidentsI + 0tI + 9@ wI + :xI + ;@@@*@@@1 @@@г#,Shape_reduceI + KI + W@(I + XI + ^@@@2@@@H@@@MI + /+@@Q@@&@/@@A@+@@3@@A,+@A+%errorDL h mL h r@@;@@/Not_a_typedtreey@@@.@@M u yM u @@m@@@A@@@@@L h h@@@Al@@# M u @ @г&stringM u @@3@H+;@@@A@@@@@@@@@A@@@@@@A@@@3@@A@%ErrorEO  O  @#@A@@@.$@@AO  O  @@n@@г %errorO   @@3@(RL@A@@@@@@@$readYY @б@гˠ&stringYY@@ @@@.&3@93@A@@В@гs&optionY-Y3@г*Cmi_format)cmi_infos*Cmi_format$Y%Y"@ (Y#)Y,@@@@@@.e( @@@"@@@.g-@@@г&option=Y@>YF@г5)cmt_infosGY6HY?@@ @@@.hF@@@@@@.jK @@@@'@ @@.kR5@@@X @@.lU[@@@^Y!@ڐ O [read filename] opens filename, and extract both the cmi_infos, if it exists, and the cmt_infos, if it exists. Thus, it can be used with .cmi, .cmt and .cmti files. .cmti files always contain a cmi_infos at the beginning. .cmt files only contain a cmi_infos at the beginning if there is no associated .cmti file. kQ  lX@@@@@@@o@@1@@@@@@@t(read_cmt[HL[HT@б@гW&string[HW[H]@@ @@@.m3@8@A@@г)cmt_infos[Ha[Hj@@ @@@.n@@@@@.o@@@[HH @@p@@ @@(read_cmi\ko\kw@б@г&string\kz\k@@ @@@.p3@1F@A@@г)cmi_infos*Cmi_format\k\k@ \k\k@@@@@@.q @@@@@.r! @@@\kk @@q@@@@!(save_cmt`` @б@г)Unit_info(Artifact!t)Unit_info a a@  a a$@@ a% a&@ @@@@@/D3        @Nc3@A@@б@гd-binary_annots b*, b*9@@ @@@/E@@б@гK!t#Env .c=? /c=B@  2c=C 3c=D@@@@@@/F) @@б@г&option BdZq CdZw@г.)cmi_infos*Cmi_format PdZ\ QdZf@  TdZg UdZp@@@@@@/GK @@@ @@@/IP@@б@гȠ&option ie je@гU!t%Shape we xe@  {e |e@@@@@@/Jr @@@ @@@/Lw@@г ;$unit f f@@ @@@/M@@@@@/N @@@>@@/OJ @@@g@@/Po@@@@@/Q@@@@@/R@@@ `@! a [save_cmt filename modname binary_annots sourcefile initial_env cmi] writes a cmt(i) file.  ^ _@@@@@@@ r@@'@1 Ɛ@@@@@@1read_magic_number j j@б@г\*in_channel j j@@ @@@/S3        @8@A@@г &string j j@@ @@@/T@@@@@/U@@@ j @@ s@@ @@%clear l l @б@г $unit l  l@@ @@@/V3        @1F@A@@г $unit l l@@ @@@/W@@@@@/X@@@ l @@ 6t@@ @@.add_saved_type )n *n-@б@г.+binary_part 4n0 5n;@@ @@@/Y3 6 5 5 6 6 6 6 6@1F@A@@г $unit Cn? DnC@@ @@@/Z@@@@@/[@@@ Nn @@ fu@@ @@/get_saved_types YoDH ZoDW@б@г $unit doDZ eoD^@@ @@@/\3 f e e f f f f f@1F@A@@г $list soDn toDr@гw+binary_part }oDb ~oDm@@ @@@/]@@@@@@/_ @@@$@@/`!'@@@ oDD@@ v@@@@'/set_saved_types psw ps@б@г $list ps ps@г+binary_part ps ps@@ @@@/a3        @J_)@A@@@ @@@/c @@г n$unit ps ps@@ @@@/d@@@@@/e@@@ pss @@ w@@ @@=record_declaration_dependency r r@б@В@г/dependency_kind r r@@ @@@/f3        @:Y#@A@@@г T#Uid!t r r@  r r@@@@@@/g @@@г l#Uid!t r r@  r r@@@@@@/h2 @@@@:@"@ @@/i;A@@г ۠$unit .r /r@@ @@@/jH@@@@@/kKQ@@@ 9r @@ Qx@@ @@Q@  A@ >B@f`A@60A@A@ysB@X@@p@i@f@_8@1 @@@%@@3 Y X X Y Y Y Y Y@r'@A@ H************************************************************************ bA@@ cA@L@ H  hBMM iBM@ H OCaml  nC oC@ H  tD uD3@ H Fabrice Le Fessant, INRIA Saclay  zE44 {E4@ H  F F@ H Copyright 2012 Institut National de Recherche en Informatique et  G G@ H en Automatique.  H Hg@ H  Ihh Ih@ H All rights reserved. This file is distributed under the terms of  J J@ H the GNU Lesser General Public License version 2.1, with the  K KN@ H special exception on linking described in the file LICENSE.  LOO LO@ H  M M@ H************************************************************************ N N5@=* cmt and cmti files format.  /* The layout of a cmt file is as follows: := \{\} \{cmt infos\} \{\} where is the cmi file format: := . More precisely, the optional part must be present if and only if the file is: - a cmti, or - a cmt, for a ml file which has no corresponding mli (hence no corresponding cmti). Thus, we provide a common reading function for cmi and cmt(i) files which returns an option for each of the three parts: cmi info, cmt info, source info.  * {!Sys.argv} from the compiler invocation which created the file. [Sys.argv.(0)] is rewritten using [BUILD_PATH_PREFIX_MAP]. ). None for mli  G   G  @ P* [read filename] opens filename, and extract both the cmi_infos, if it exists, and the cmt_infos, if it exists. Thus, it can be used with .cmi, .cmt and .cmti files. .cmti files always contain a cmi_infos at the beginning. .cmt files only contain a cmi_infos at the beginning if there is no associated .cmti file. Z b* [save_cmt filename modname binary_annots sourcefile initial_env cmi] writes a cmt(i) file. - initial env  c=H c=Y@9 if a .cmi was generated  dZ{ dZ@9 Miscellaneous functions  h h@ - val is_magic_number : string -> bool val read : in_channel -> Env.cmi_infos option * t val write_magic_number : out_channel -> unit val write : out_channel -> t -> unit val find : string list -> string -> string val read_signature : 'a -> string -> Types.signature * 'b list * 'c list  t ~ @@-./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"-I,file_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"-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/.-,+*)('&%$#"! @@0lg͕B# :[o~3 5 4 4 5 5 5 5 5@ 3@@(Asttypes0>n{T8cئ5Build_path_prefix_map0z HkGs8CamlinternalFormatBasics0%FU(Q/Tu0CamlinternalLazy0&͂7 Pˆ*Cmi_format0c˯7͗ԩmݠ j0BLq%쥠ᥠ*Data_types0I'Ue`wq]Ѡ#Env0zV L{YWI*Format_doc0]mWϓ:Mݠ%Ident0">WA+9*X,Identifiable0 {d\FX'`)Load_path0I@18 ~(Location0a7cK_H%9)Longident0s `7mɕc 0ob]6>Vê>+Outcometree0kX%d5Q/+)Parsetree0T鿁ۘ7Qu$Path0Y2kf֯J._Ϡ)Primitive0²~$xzT෠%Shape0oNՄBH0hqXN&Stdlib0Lku]8_٠.Stdlib__Buffer08APF< t..Stdlib__Digest0l!LHgErζ .Stdlib__Domain0:M;׉<O$Ġ.Stdlib__Either0Vy`u~c à.Stdlib__Format0ܚ#G7m|/Stdlib__Hashtbl0ѱN][/!,Stdlib__Lazy0* -S$.)"0D.Stdlib__Lexing0e<.V +Stdlib__Map0L5xE|O0~,J-.Stdlib__Result06 ]/J+Stdlib__Seq0nwzG&amg+Stdlib__Set0\$;7 .Stdlib__String0s.Type_immediacy0A^abOhՠ V0ekG |t%Types0^Y~# )Unit_info0ڀh%(/Value_rec_types0`4xiVC(Warnings0mJɒkgr