Caml1999T037%)bC+TestDynlinkР'Harness&Import'Harness>testsuite/tools/testDynlink.mlOO@ OO@@ @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@@@@A3@@@O@@@3@@@@ఠ#run SS@AA@@@'Harness&Import&config@@@-JA@!@@"@+Environment!t@@@.4A@'@@(@"$mode@@@A@-@@.$unitF@@@.kA@/@@0A@)@@*A@#@@$A@ 3@L@@@࣠@&config"ASS@ BA@@A3@]PSc@@@@@  @@#env#AS S@CA@@C3@!X@@@@@@@@$mode$ASS@0DA@@D3@W@@@@@@@@ డ&Format&printf1T2T@ 5T6T@@@&Stdlib&format!a@&Stdlib&Format)formatter@@@$unitF@@@@@@@@@@@*format.mliww)@@.Stdlib__Format@2-@@@*@&stringQ@@@U@@T@@@E@E@'E@>@@SE@7@@@ 0@@@ @@@@@@@3~~@my@p@q@@@@ภ8CamlinternalFormatBasicsa&FormatcTTA;&Format8CamlinternalFormatBasics'format6!a@!b@!c@!d@!e@!f@@@@@'#fmt$ @@@ݠ`@@@@B@@A@A@@@F@%@@డ!=6U 7U @@!a@@@@@@$boolE@@@@@@@&%equalBA @@@@*stdlib.mliyy@@Q@! @@@A@A@A@A@\A@`A@A@@@@@@'@@@@@@@@@ఐc$modeyUzU @@@@@ภ&NativeU U@;&Native$mode@@@@@@AB@@A;testsuite/tools/harness.mliu ; =u ; E@@@W@@@@:G@@@@@L@@@G@@&nativeUU @@UU!@@:F@!@(bytecodeU(U0@@U'U1@@GF@.@UU2@@1@@@@CE@3@@ఠ,test_programV4:V4F@EA@@&stringQ@@@qE@3@I@@@డ+Environment,in_test_root+EnvironmentWIMWIX@ WIYWIe@@@#@@@@@@)@@@@@-@@@@@@@@?testsuite/tools/environment.mliJ  J  F@@1M@ @@@;@@@e@@d@@@@c@@bD@@@a@@`@@_A@@ఐ#envWIfWIi@@@WN@@డ2#exe'Harness0WIk1WIr@ 4WIs5WIv@@@&stringQ@@@@@@@@@@@X!!X!;@@d@@@@@@@{@@z@@@y@@x@@+test_script]WIx^WI@@`WIwaWI@@*@@@G@G@@@jWIjkWI@@{@@@s@G@@@ @@@A@uV46 @@@ఠ4compile_test_program[LR[Lf@FA@@@-@@@E@@@@$listKb@@@"!@@@" E@"@&custom@@@")@@@"(@@"'@-@@@"&@@"%$unitF@@@"$@@"#@@""E@"@@"E@@@E@3@:@@@@@࣠@%paramAĠ"()[Lg[Li@;lI@@@N@@@@A@@A@@n@@@@P3@_[LNK>P@@@@@@@ డQ+Out_channel.with_open_text\lp\l{@ \l|\l@@@&stringQ@@@p@@o@@+Out_channel!t@@@n@@m!a@"@@l@@k@@j@@i@/out_channel.mliH  H  @@@3Stdlib__Out_channelQ@,'@@@$@@@@@@@!@@@@@@@@H@5H@@@@@@@@@3,++,,,,,@\@@@@6test_install_script.ml?\l@\l@@B\lC\l@@K@@@I@I@3A@@AAAAA@q@@@@࣠@"ocAZ\l[\l@qGA@@S@@@ @@@@డ&Printf'fprintfp]q]@ t]u]@@@&Stdlib+out_channel@@@@@@ &format!a@+out_channel@@@$unitF@@@@@@@@@@@@@*printf.mliR[[R[@@.Stdlib__Printf@@61@@@.@@@%@@$@)@J@@@@@J@uJ@@@J@1@@@"/@@@#@@@!@@ @@@@3@z@@@@t@u@@@@ఐ"oc]]@@@@@@<@@ภUT]gASภ`  s let load_library basename = let lib = Dynlink.adapt_filename (basename ^ ".cma") in let dir = Filename.concat @@@@@K@K@7@ภtԠ+Caml_string ;+Caml_stringI!x@$!b@%!c@&!d@'!e@(!f@)@@@!a@,@ܠ'@@@@ @@@@@@@}0,($ @@@ @BCAYAAv}}w$@@@c@ภ!"l@l@L@@@@K@@ภ12| S basename in Dynlink.loadfile (Filename.concat dir lib); Printf.printf "Loaded @@i@@@K@K@@ภE,Char_literalG;,Char_literal!a@!b@!c@!d@!e@!f@@@@>@$charB@@@?)%!@@@@@BLAYAA%%%%@@@l@e@@@@K@K@@ภ2 s\n" lib let () = let () = Dynlink.allow_unsafe_modules true in List.iter load_library (List.tl (Array.to_list Sys.argv)) @@@@@K@K@ @ภF*)@@-J@J@J@J@J@L@֠g@@@4K@tK@K@K@K@K@@@@K@6@@@?#L@ $%&'@@@K@B@@"@K-L@#./01@@@K@N@@.@W`,789:@@@K@Y@@9@buL@y6ABCD@@@K@e@@E@nL@T@xyz{@@@vK@q@ I let load_library basename = let lib = Dynlink.adapt_filename (basename ^ ".cma") in let dir = Filename.concat %S basename in Dynlink.loadfile (Filename.concat dir lib); Printf.printf "Loaded %%s\n" lib let () = let () = Dynlink.allow_unsafe_modules true in List.iter load_library (List.tl (Array.to_list Sys.argv)) V@V@u@@@wK@K@}@@]\@@àV@@@3K@s@@డ&libdir+Environmentagbg!@ eg"fg(@@@@@@@@@@@@@@xv  yv  ,@@H@@@@@@@ @@ @@@ @@ @@ఐ#envg)g,@p@@@@gg-@@L@@@&@@J@:@\lh.3@@@@@@@@v@@I@I@Z@@ @@w[@ డ%flushi59i5>@@m+out_channel@@@b@@a$unitF@@@`@@_@rjjsj@@w@@@@@@@%@@$@@@#@@"@@డ?&stdouti5?i5E@'@@@@%pp%pp@@@  @@3@@@.I@0I@/@@>@@u@@@1H@,@@ఠ(compiler&jGOjGW@ HA@@8@@@VH@2.@డ5)tool_path+Environment jGZ jGe@  jGf jGo@@@V@@@@@@'Harness&Import$mode@@@@@@j@@@@@@r@@@@@>@@@@@@@@@@@@I|  J|  @@yJ@50@@@@@@@@@?@-@@@>@@=@&@@@<@@;@%@@@:@@9b@@@8@@7@@6@@5@@4@@ఐn#env sjGp tjGs@V@@@@ఐj$mode jGt jGx@@@@@&ocamlc jGz jG@@ jGy jG@@^@@@ZI@bI@a@@(ocamlopt jG jG@@ jG jG@@j@@@XI@dI@c@@ @@@A@ jGK @@@ఠ$args' k k@ IA@@ ,@@@lH@g@@@iH@e3        @@@@@@ภ":: l n  A; / >@@U@ 0B@AA@A @@ *"-I l l@@ l@@@ภ lA(+dynlink l l@@  l@@1H@t-@ภ+ l*A)డ #lib'Harness l@  l l@@@\$mode@@@@@@@@@@@@@@@@@@@dQQdQs@@kg@0@@@@@@@@@@@@@@@@@@@~@@}t@@ఐ0$mode Fl Gl@@@p@@'dynlink Ql Rl@@ Tl Ul@@<@@@I@I@@@c @@I@@ภ flA(-linkall ml nl@@  pl@@H@@ภ ymA"-o m m@@  m@@H@@ภ mAఐϠ,test_program  m@Ұ @@H@@ภϰ mA͠6test_install_script.ml m m @@  m @@H@@ภ"[] n  A; @@@@AA@A @@ @A@ I@@@@H@@@!A@ I@@@@H@@@=A@ " I@@@@H@ @@YA@ +I@@@@H@@@u A@ 4I@v@@@{H@@@A@ ='I@n@@@sH@z$@@A@ F0@@@kH@r+@@ k#@@76@@@j1@A@ k)@@@ఠ%files( o  % o  *@ JA@@sp@@@@@@H@3        @K`Y@Z@[@@@డ $)files_for'Harness "o  - #o  4@  &o  5 'o  >@@.source_and_cmi&optionL$boolE@@@@@@@@@ f@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@hi-@@ h@C>@@;96@@@@@@@@@ @@@@@@3@@@@@@21@@@@@@@@@@@@@@@@@@@@@@~@fภ$None c;   @@W@@@@AA@A i@@ @ i@pm@@@@@@@@@@ఐ $mode o  ? o  C@ (@@ @@3test_install_script o  E o  X@@ o  D o  Y@@}@@@I@I@@@ภ o  [ o  hAఐ,test_program  o  g@ @@@@@I@I@I@@ภ9A7@A@ E@@@I@@@ o  Z#@@@@@I@@@*@@@A@ o  !,@@@ఠ'compile) p l t p l {@ KA@@fd|@@@ H@ @@@ @@ @@@@H@@@k@@@!H@@@H@@@H@ 3        @+$@%@&@@@࣠%*opt*Aఠ+ 9p l ~ :p l @ PLA@@+H@H@3 6 5 5 6 6 6 6 6@> Dp l p EH &@@@@ภ%false Lp l  Mp l @;  @@@M@@@@B@@A @@ @ @@@@@@@ Yp l | Zp l @@AĠ dp l  ep l @@@@@G3 ] \ \ ] ] ] ] ]@(3-@.@/@@@@@@ డ #Sys+file_exists }q   ~q  @  q   q  @@@&stringQ@@@@@$boolE@@@@@ݐ4caml_sys_file_existsAA @@@'sys.mlimjjmj@@+Stdlib__SysC@$@@@@@@ @@ @@@ @@ 3        @D@@@@ఐ,test_program q   q  @@@4@@@ M@ M@ @@D @@)@@@ M@ @డ *erase_file'Harness r   r  @  r   r  @@@@@@@@$unitF@@@@@@Z`[`@@ .f@@@@@@@ @@ @@@ @@ M@@ఐ<,test_program r   r  @@@@*@@@ M@ M@ a@@: @@ @@@ L@ M@ i@@ q  @@ k@@ఠ$args s   !s  @ 7MA@@h @@@ L@ @@@ L@ @ఐ&custom 8t   9t  @Ѱ@@@ภ":: Au  # Bu  %@p'-custom Iu   Ju  !@@ Lu   Mu  "@@#@ఐ$args Vu  & Wu  *@D@@ 7@@@ L@ L@ @@ @@<@@@ @ภ, l{ d  m{ d @4-set-runtime-default t{ d o u{ d @@ w{ d n x{ d @@PL@ @ภA |   |  @ (standard_library_default=/does-not-exist { d  { d @@ { d  { d @@eL@ )@ఐࠐ$args |   |  @@@ yM@ @@@ L@ L@ >@@ @@ L@ @@@ L@ G@@8@@OL@ J@ t  @@QL@A@ s  @@@ఠ'runtime @ V ` @ V g@ NA@@ @@@ L@ 3        @c@@@@@డ 8"&& A j  A j @@ @@@V@@U@ @@@T@@S#@@@R@@Q@@P(%sequandBA @@@@  @@ ]@ @@@@@@ @@ @@@@ @@ >@@@ @@ @@ =@@డ u ܠ ްA j wA j x@ ۰@@@ ?M@ @@ @@@  @@@ @@ @@ X@@ఐ $mode+A j r,A j v@ @@ Ue@@ภ(Bytecode7A j y8A j @;(Bytecode @@@@B@@A s   s  @@@ V@@  @@ hN@!z@@ @@l@@@ @!N@!@@డ]9ocamlc_fails_after_rename'Harness[A j \A j @ _A j `A j @@@ &config@@@@@6@@@@@@ s sI@@ j@@@@@@@! @@! @@@! @@!@@ఐ &configA j A j @ }@@ @@2@@@@@ @!N@!@@j @@@A@@ V \ @@@ఠ&stdlibE g qE g w@OA@@ b@@@!(L@!3@@@@@@డ   E g E g @ @@@ @@@!-@@@!,L@!@@!@@@! @@@!@@!@@!$@@ఐ 預&configE g {E g @ ΰ@@ &3@3has_relative_libdirE g E g @33has_relative_libdir ,@@@*)@@@@@@@@B'3,has_ocamlnat @@@@@@@A gz   hz  @@ ;Y@3,has_ocamlopt@@@@@A@A q|   r|  @@ EZ@!32has_runtime_search!&Config-search_method@@@@@C@A A   A  !@@ S\@3>launcher_searches_for_ocamlrun/@@@@@D)@A C e i C e @@ ]]@3 %target_launcher_searches_for_ocamlrun9@@@@@E3@A G e i G e @@ g^@3@@!=@@!<@@!;@@!:H@ภ$Some; 2@A@AA@A@@ఐ'runtimeG  G  @*@@@@@!M@!M@!d@@@ 1 @@@!h@ภRQ@@1@@@!@@@!@@!x@ภ0/ఐ`&stdlibG  G  @@@*@@@!M@!M@!@@@ ^ @@@!@,ภ~@@^/@@@!@@@!@@!@.ภ@@n1@@@!@@@!@@!@0ภ@@~3@@@!@@@!@@!@@ఐD#envIG  JG  @,@@@@ఐX(compilerVG  WG  @@@E@@@!M@!M@!@Dภ2@2@G@@@!@@@!@@!@@ఐZ$argszG  {G  @@@SR@@@!@@@!M@!M@!@@@@@@@@!M@!@A@F  @@డ .display_output+EnvironmentH H @ H H @@@! @@@R@@@Q@@P @@@O@@N@     ! @@T@@@@@@@!@@@!@@! @@@!@@!3@RLE@F@G@@@@ఐS&outputH  @ @@21@@@!@@@!L@!L@!@@F@@@U@@m@@@>@S@@ @6@@@@@@A@H@!@A@@ ఐ'compileJ.2J.9@@@@@ V T j@@@"@@@"@@"@ @@@!@@! S@@@!@@!@@!3@@@@ mภ@@ p @@@"@@@"@@"@@ภ [,J.:-J.<@ Z@@@ @@@"I@""@@<@@@@@"H@"(@@ఐ@%filesEK>BFK>G@@@ 6@@ఐJ'compileQK>I s@W t@@ A@@ u@@@ @ @@"*H@b |@@I@ }@@2@a ~@@ K@d @@ @ @@  @  @@  @ p @@  @  A@ E@"- @A@ @@ఠ6test_libraries_in_prognP oP#@QA@@2expected_exit_code ͠#intA@@@+E@"/@@@"0@@"1@@@@*E@"6@@"7@kj@@@*@@@*E@"<@@"=&@@@, E@">@@"?E@"8@@"9E@"2@@"3E@".3@  + $@ %@ &@@@࣠66A:P%P7@RA@@<3@MP zC@@@@@P$ @@#envAP8P;@SA@@?3@!T@@@@@@@@)librariesAP<PE@TA@@E3@S@@@@@@@@@ఠ+has_c_stubsSS@UA@@@@@@"I@"C@@"D7@@@"\I@"E@@"FI@"B3@$0k@'@(@@@࣠@'libraryA SS@$VA@@3@+SS@@@@@  @@డMO!S"S @L@@@L@@@"P@@"O@K@@@"N@@"Mm@@@"L@@"K@@"J3+**+++++@%1C@(@)@@@@డCSDS@ @@@qK@"f@@"g@@@"e @@@"d@@"c@@"b@@ఐG$mode]S^S@԰@@+@@ภ(BytecodeiSjS@2@@@L@"v9@@@@@@@"`@"wL@"qA@@డ"<>SS@@!a@@@ @@@L@@@@@@@)%notequalBAJ@@@@I~QQJ~Q@@NR@@@@I@"}@@"~@@@"|@@@"{@@"z@@"yv@@ఐ'libraryS S@@@@@'dynlinkSS@@SS@@@@@@@@@"^@"L@"@@S@@@A@I@"@A@@@ఠ+has_c_stubsT#+T#6@WA@@$boolE@@@(I@"3@@@@@@డX$List&existsT#9T#=@ T#>T#D@@@@!a@$ @@&*@@@&@@&@@&@$listK@@@&@@&9@@@&@@&@@&@(list.mli$$$$@@,Stdlib__Liste@-(@@@@E@+E@(I@'@@''@@@'@@'@@'@&@@@'@@'\@@@'@@'@@'Y@@ఐ`+has_c_stubsKT#ELT#P@c@@@@@@@(@@(@@@(@@(p@@ఐ)librariesbT#QcT#Z@c@@}@@n@@~@A@gT#'@@@ఠ'runtimeנrXCKsXCR@XA@@@@@(+I@(3qppqqqqq@@@@@@డZkqZks@@@@@@@(@@(@@@@(@@(@@@(@@(@@(@@డ prYU`YUa@o@@@J@(5@@(6@@@(4m@@@(3@@(2@@(1:@@ఐ$modeYU[YU_@6@@G@@ภ(BytecodeYUbYUj@@@@K@(EU@@@@@@@(/@(FK@(@]@@డG[[@@@@@@@(N@@(M@ @@@(L@@(K/@@@(J@@(I@@(H|@@డf͠ϰZkZk@̰@@@K@(d@@(e@@@(c@@@(b@@(a@@(`@@ఐl2expected_exit_codeZktZk@Q@@@@ภ$None(Zk)Zk@ @@@E@(u@@@@V@@@(^@(vL@(o@@డln@\A\@k@@@k@@@(~@@(}@j@@@(|@@({@@@(z@@(y@@(x@@డ#not`[a[@@"@@@O@@N&@@@M@@L(%boolnotAA$@@@"LL#Lt@@'\@@@@@@@(@@(@@@(@@(@@ఐ&config[[@@@@ %target_launcher_searches_for_ocamlrun[[@{ @@5@@@(M@(M@($@@@ @@@@@(@(M@(,@@డ}\\@|@@@@@@(@@@(L@(@@(@ @@(@@@(@@(@@(N@@ఐ䠐&config\\@ɰ@@!]@3has_relative_libdir\\@ @@$d@@ภ$None\\@ R@@@2L@(r@@@@@@@(@(M@(z@@ @@@@@(\@(L@(@@@@@@@(-@(K@(Z@@G@@@A@XCG@@@ఠ%stubsؠ``@)YA@@S@@@(I@(3@@@@@@డRT&b'b@Q@@@Q@@@(@@(@P@@@(@@(r@@@(@@(@@(@@ఐh+has_c_stubsDaEa@ɰ@@o@@@(J@(J@(3@@డYcZc@@@@@@@(@@(@@@@(@@(@@@(@@(@@(R@@డCExbyb@B@@@K@(@@(@@@(@@@@(@@(@@(m@@ఐ⠐2expected_exit_codebb@ǰ@@z@@ภ$Nonebb@ @@@)E@) @@@@@@@(@) L@)@@డ⠐dd@@@@@@@)@@)@@@@)@@) @@@)@@) @@) @@డ&Config9supports_shared_libraries&Configcc@ cc@@$boolE@@@)@0utils/config.mlia**a**@@&ConfigR@@@ @@@)"L@)L@)@@డe̠ΰdd @˰@@@LK@@@*@@@*L@*@@*@ @@*@@@*@@)@@)@@ఐ3&config$d%d @@@p @3has_relative_libdir+d ,d@J @@$@@ภ$None7d!8d%@ @@@2L@*!@@@@ ]@@@) @*M@* )@@k @@ e@@@(@*L@)1@@@@ m@@@(@*K@(9@@@@=:@A@V`@@@ఠ2expected_exit_code;af-5bf-G@xZA@@E@+AE@*3^]]^^^^^@N\U@V@W@@@ఐĠ2expected_exit_codetgJVugJh@@@3mllmmmmm@@@@Ġ$Somehnvhnz@ఠ$code<hn{hn@[A@@E@*@@@@@@@@@@ఐ$codejj@ @@@@83@6@@@Ġ$Nonekk@ @@@@25@@25@@@డ ⠐ nSnS@ @@@ @@@**@@*)@ @@@*(@@*' @@@*&@@*%@@*$S@@డ9#notnS`nSc@v@@@v@@@*?@@*>u@@@*=@@*<l@@డ9supports_shared_libraries&ConfignSdnSj@ nSknS@@@@@@@*HM@*JM@*I@@+ @@ )@@@*:@*KM@*F@@ఐ6+has_c_stubsnSnS@@@ 5@@@*8L@*ML@*L@@G @@@@@*NL@*6@B&o'o@@E@*O@@.q/q@@ K@*P@3nS]@@@@@A5gJP@@@A@7f-1 @@@@ఠ)exit_code=FsGs@]\A@@@@@*I@*Y3EDDEEEEE@@@@@@@ఠ&output>Zs[s@q]A@@ՠ@@@*@@@*I@*Z@@" @@@"@@@*]@@ఠ%fails?xtyt@^A@@@@@*oJ@*^2@డ"<>t t@@@@kJ@*d@@*e@@@*c@@@*b@@*a@@*`K@@ఐC2expected_exit_codett @U@@BX@@@tt@@K@*rc@@tt@@7f@A@t@@డ+run_process+Environmentuu'@ u(u3@@ @@   @@@*@@@*@@*  ! @@@*@@@*@@*  , @@@*@@@*@@*  7 @@@*@@@*@@*  B @@@*@@@*@@*  M @@@*@@@*@@*@G@@@*@@*@ @@@*@@*  f@@@*@@@*@@*@@@@*@@@*@@*@ @@@*@  @@@*@@@*@@*~@@*}@@*|@@*{@@*z@@*y@@*x@@*w@@*v@@*u@@*t387788888@@@@@@ ภఐ⠐'runtimeTu<UuC@9@@ @@@*J@*J@*@@@ @@@* @ ภ4ఐ_%stubsquEruJ@ @@ @@@*J@+J@*9@@@Π @@@+=@ ภ Q @Q@ Π @@@+@@@+@@+M@ ภ a @a@ ޠ @@@+@@@+@@+]@ ภq@q@  @@@+ @@@+ @@+m@ ภఐF%failsu5u:@|@@ @@@*J@+ J@+ @@@ @@@+ @@ఐ#envuKuN@@@M@@ఐ,test_programuOu[@!@@ @@@*J@+J@+@ ѐภ]\@@ < @@@+@@@+@@+@@ఐ2)librariesu\ue@@@s@@G@@@Ǡ@@@+J@*@^ @@ @A@s@@ డE.display_output+Environment%wmq&wm|@ )wm}*wm@@@@@@@@+@@@+@@+|@@@+@@+310011111@@@@@@@@@ఐ&outputJwmKwm@ @@@@@+(@@@+'J@++J@+)@@4@@@@@+-I@+%#@డ"<>ixjx@@@@ H@+3@@+4@@@+2@@@+1@@+0@@+/>@@ఐ=)exit_codexx@G@@K@@ఐ/2expected_exit_codexx@A@@.X@@@@@@@+BI@+>^@డ,fail_because'Harnessyy@ yy@@@&Stdlib'format4!a@ @@@ܠ@@@ݠ!b@@@@@@@@@?oZZ@oZ@@i@-(@@@%@p@@@+@@+@j@@+KH@+JH@+@@+H@+@@+H@+E/@@@+H.@@@+I @AD!'format6)H@+H@+Y@+_@+`@+a$@+b@A8CamlinternalFormatBasics'format6@+e2@+f1@+g4@+h7@+iA@+j@@+k@+d9@+c@+^@@+G@@+FU@@+D@@ภ:y;yAภ ภ@@wJ@+w@@@+I@+@ภ&z'#y & is expected to return with exit code (@(@^@@@+I@+I@+-@ภ:#Int<8;#Int!x@1!b@2!c@3!d@4!e@5!f@6@@@ !y@9!a@<@(int_conv@@@ M2@@@ )precision@ 6@@@@@@@@@@#C?;73@@@@DDAYAA%%@@@&d@ภ:%Int_d;%Int_d4@@@@@@@P@@AUU@@@9E@@@>@@@+I@+@ภRkj@@ J@+ĠH@+I@+@@@+I@+@ภeŠ,No_precision;,No_precisionS!a@@@@.@@@@BAAA3lLN4lLq@@@jo@@@c"-@@@+I@+@ภih@@Y7j@@@+TI@+I@+I@+I@+֠q@@@+UI@+I@+I@+I@+נ  RJ@+@@@+I@+@@@|`J@+"`J@+@@@+I@+@@@n-"#$mJ@+@@@+I@+@@ @J@+m9./0{J@+r@@@+I@+,@ *%s is expected to return with exit code %d3@3@@@@+I@+I@+8@@:9@@ĠQF@AI@+_I@,VI@,I@,@AI@,sI@,jI@,mI@,pI@, I@, @@, I@,/@,I@+@@+SI@+p@@ఐ,test_programz#z/@@@I@, @@ఐc2expected_exit_codez0zB@u@@b@@"@@H@+\@@x@@@ @@@ @@~@ @@f@y @@@ @@U@j @@ @  @@  @  A@ aE@, @A@ @@ఠ+not_dynlink@|IO|IZ@_A@@@נ@@@,?G@,/@@@,=E@,@@,@@@,&E@,@@,E@,3@ V  @ @ @@@࣠@!lBA|I[ |I\@`A@@#3@2|IK|Iy@@@@@  @@డ#not|I_|Ib@@@@@@@,@@,@@@,@@,3      @+D@"@#@@@@డ$List#mem=|Id>|Ih@ A|IiB|Il@@@!a@#@@&@f @@@&@@& s@@@&@@&@@&@ ;+'C'C <+'C'b@@ :h@!@@@s@@,0@{z@@@,.@@,-@@@,,@@,+@@,*C@@'dynlinku|Inv|Iu@@x|Imy|Iv@@P@@ఐ!l|Iw|Ix@Z@@]@@|Icx@@&@@@,(@,AH@,;f@@t@@g@A@E@,C@A@@@@ఠ%filesC}}}}@aA@@ @@@,k@@@,jE@,E3@@@@@@@ఠ*re_compileD}}}}@bA@@-@@@,s@@@,r@@,q@C@@@,p@@,o@@@,n@@,m@@,lE@,F&@@4@@@4@@@,I-@ఐe4compile_test_program}}}}@ @@@@`@@@,X@@,W@[X@@@,N@@@,M@USi@@@,V@@@,U@@,T@@@@,S@@,RR@@@,Q@@,P@@,O@@,L@@,Kb@@ภH}}}}@G@@@@@@,uF@,yr@@=@@@@l@@,zF@,i{@A@+}}@@@ఠ2expected_exit_codeE6~7~@McA@@)@@@-E@-@@@-E@,{3;::;;;;;@@@@@@@@డTU@@@@@@@,@@,@~@@@,@@,@@@,@@,~@@,}#@@డ>@st@=@@@F@,@@,@@@,;@@@,@@,@@,>@@ఐw$mode@@@K@@ภ(Bytecode@b@@@G@,Y@@@@@@@,@,G@,a@@డݠ߰ @ܰ@@@@@@,@@,@@@@,@@,@@@,@@,@@,@@డ4"<>@ O@@@@@@,@@@,G@,@@,@ @@, T@@@,@@,@@,@@ఐ&config@@@@@3has_relative_libdir@ @@$@@ภ$None@q@@@2G@,@@@@5@@@,@,H@,@@డKM07 09@J@@@J@@@,@@,@I@@@,@@,k@@@,@@,@@,@@డC7no_caml_executable_name'HarnessAB@ EF/@@@@@@[[@@e@ @@z@@@,H@,H@,@@డ1launched_via_stub+Environmenti0:j0E@ m0Fn0W@@@@@@@@@@@@@@ZQQZQw@@Q@@@@@@@,@@,@@@,@@,G@@ఐР,test_program0X0d@԰@@(@@@-I@-I@-[@@8 @@@@@,@- I@-c@@h@@@@@,@- H@,k@@@@@@@,@- G@,s@@,"@@!@@@- F@,y@ภ$Somejpjt@Bjujv@@@@ @@5@@@-@ภ$None@C@@@E@-@@@@A@~@@@ఠ)librariesF@ dA@@ ޠ @@@-E@@@-DE@-@@@-/E@-3@@@@@@డp$List&filter  @   @@@@!a@#@@'  B@@@' @@' @@'@ @@@'@@'?@@@'@@'@@'@ ^-)-) ^-)-X@@ o@*%@@@@L@@-!@@@- @@-@@-@V@@@-@@-[Z@@@-@@-@@-Q@@ఐ|+not_dynlink [ \@@@@wS@@@-@@@@-?@@-> @@@-=@@-<l@@ఐ&config x y@l@@{@)libraries  @G @@Z@@@-1F@-KF@-G@@{ @@@A@  @@ డ$List$iter  @   @@@@!a@$@@%@@@%@@%@@%@ @@@%@@%@@@%@@%@@%@  @@ U@)$@@@@@@@-@@@-F@-T@@-X&@@@-W@@-V@@-U@%@@@-S@@-R@@@-Q@@-P@@-O3        @@@@@@@ఐ6test_libraries_in_prog  @@@O@@@-z@@@-y@@-x@<@@@-w@@-v@@@@-u@@@-t@@-s@@@-r@@-q@@-p@@-o2@ఐ점2expected_exit_code!"!#@"@@|@@@-@@@-I@-I@-J@@ఐ5#env!:!;@@@tW@@!>!?@@@@@@-@@@-@@-@@@-@@-h@@ఐl)libraries!X!Y@r@@@@@-hG@-G@-}@@ @@@@@-F@-f@డ"<>!t!;!u!=@ @@@ h@@@-@@@-E@-@@-@ @@- @@@-@@-@@-@@ఐ_2expected_exit_code!!(!!:@@@@@ภ$None!!>!!B@ @@@)E@-@@@@@@@-F@-@ఐ*re_compile! !@p@@'@@@-@@@-@@-@=@@@-@@-@@@-@@-@@-@(ภ ! ภ$true!! @;!@@@AB@@A!@@!@@@J@@@-G@-@@@:@@@-@@ภ"!!!#@!@@@l@@@-G@-@@E@@@@@@-@Ġ7"" @6@@@@O@@@-(@@R@@@-+@@@డ ~$List$iter"'-"'1@ ""'2"#'6@@@@@@@@@.E@@@.DG@-@@-@@@-@@-@@-@@@@-@@- `@@@-@@-@@-_@@ఐ㠐6test_libraries_in_prog"Q'8"R'N@W@@@@@.@@@.@@.@ @@@.@@.@<;@@@.@@@.@@.@@@.@@.@@.@@.@ภ"F@"F@Р@@@.:@@@.9@@.8@@ఐ #env"'O"'R@ q@@ @@"'7"'S@@@ji@@@.@@@@.?@@.> #@@@.=@@.<@@ఐ)libraries"'T"']@ư@@@@@. H@.IH@.F@@ @@ <@@@-@@@A"@@ A@@@.L@@"!%@@@%@@@Ġ""@@@@@ S@@@.P@@ V@@@.Q@@@డ!B$List$iter"ce"ci@ "cj"cn@@D@@@@@@@.~F@.Y@@.]E@@@.\@@.[@@.Z@D@@@.X@@.W! @@@.V@@.U@@.T@@డ#*erase_file'Harness#co#cv@ #cw#c@@@@@@@@@@.z@@.y?@@@.x@@.w?@@ఐ%files#/c!3@!4@@{F@@@.mG@.G@.S@@X!=@@!ZT@@@A#;!?@@!\V@!@@@!]=@]!A@@!^@!B@@!_@0!C@@!`F@!D@@!a@d!E@@!b@!F@@!cq@!!G@@!dr@!Q!HA@!A@.!O@A@!L@!L!K@!`@!!@!@!@@3#A#@#@#A#A#A#A#A@!!@@@!+TestDynlinkA@@ H************************************************************************#UA@@#VA@L@ H #[BMM#\BM@ H OCaml #aC#bC@ H #gD#hD3@ H David Allsopp, University of Cambridge & Tarides #mE44#nE4@ H #sF#tF@ H Copyright 2024 David Allsopp Ltd. #yG#zG@ H #H#Hg@ H All rights reserved. This file is distributed under the terms of #Ihh#Ih@ H the GNU Lesser General Public License version 2.1, with the #J#J@ H special exception on linking described in the file LICENSE. #K#KN@ H #LOO#LO@ H************************************************************************#M#M@ This test verifies that a series of libraries can be loaded via Dynlink. Any failures will cause either an exception or a compilation error. #Q#RK@ The test program is given a list of library names (e.g. unix threads) on the command line and uses Dynlink to load that library from a subdirectory with the same name in libdir #X#Z'K@  Hardening to ensure that Bytecode Dynlink is using the runtime's search path, not compiler's (i.e. unix.cma should be located using Config.standard_library_default but dllunixbyt.so should be located using caml_runtime_standard_library_default) #w 8 B#z ' c@ } In the Renamed phase for a bytecode-only build, ocamlc will be ocamlc.byte and will need to be called via ocamlrun #~  #  U@ In the Renamed phase, Config.standard_library will still point to the Original location, unless the compiler has been configured with a relative libdir #B  #D K f@ Call the test program individually for each library. ~expected_exit_code is part of a mechanism required for Relocatable OCaml which is at present not needed. #MVX#O@ For simplicity, the test for whether libraries have C stubs is based on the names, rather than inspecting the library metadata #QHL#R@ In the Renamed phase, the test driver will need to be launched with ocamlrun, unless executables produced by the compiler are capable of searching for the runtime (as the Windows executable launcher does) #U^b#WB@ If the library needs C stubs to be loaded dynamically, then the runtime will need CAML_LD_LIBRARY_PATH set in the Renamed phase. #^#_I@ + The test driver is _not_ expected to work #i#i@ h Systems configured with --disable-shared can't load bytecode libraries which need C stubs #l#m&R@ Relocatable OCaml bytecode executables launched using the executable header require caml_executable_name, or they end up being accidentally relative, since the exec call leaves argv[0] as being the bytecode image itself. ##@ The test driver is unable to locate ocamlrun, which means that it can't locate ld.conf. Re-build the test driver using -custom to work around this. #HN#@@(./ocamlc)-nostdlib"-I(./stdlib"-g0-strict-sequence*-principal(-absname"-w8+a-4-9-40-41-42-44-45-48+-warn-error"+a*-bin-annot/-strict-formats"-I/testsuite/tools"-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"-I/testsuite/tools"-I/testsuite/tools"-c$*$+ L/home/touraine/ci/builds/workspace/precheck/flambda/false/label/ocaml-arm-32 @543210/.-,+*)('&%$#"! @@0*;PqncM3$@$?$?$@$@$@$@$@@$>@@5Build_path_prefix_map0DGl}%Y5Lhi(Byterntm0udTw|dxv ,Bytesections0@3\f8CamlinternalFormatBasics0|.e1R$|o&Config0܈[P(N {~Š0A. ,wEzD*Format_doc0uy@GmWUࠠ$q06la7̖n$Misc0]\/j*^e&Stdlib0t0VoS%{<F:0Stdlib__Bigarray081}wJf֠.Stdlib__Buffer0,I[?z/Stdlib__Complex0e<9r@fǠ.Stdlib__Digest0#z25I*.Stdlib__Domain0'Ϳo\0m.K.Stdlib__Either0HD ?|>.Stdlib__Format0b HvkR/Stdlib__Hashtbl0(L%bԠ,Stdlib__List0+TJaN.?+Stdlib__Map0*4ɇ2ɠ$0 mP6%ra@@AYC@@  "#3#=@#-@BP  v ~i@6 @ y @@@  @y@@GQ@  ak@(2 @@@P%#@#h@#e@@@A@@