Caml1999I037 SV0Stdlib__Filename0current_dir_name(&stringQ@@@@,filename.mliRYYRYv@@@@@/parent_dir_name)@@@@UU@@A@@'dir_sep*@@@@Y>>Y>R@@+B@@&concat+@,@@@@2@@@6@@@@@@@@4^5^@@DC@@+is_relative,@E@@@$boolE@@@@@@Ib##Jb#C@@YD@@+is_implicit-@Z@@@@@@@@@\g]g@@lE@@,check_suffix.@m@@@@s@@@.@@@@@@@@umvm@@F@@+chop_suffix/@@@@@@@@@@@@@@@@v s sv s @@G@@/chop_suffix_opt0&suffix@@@@@@@&optionL@@@@@@@@@@@| C C| C @@H@@)extension1@@@@@@@@@@J ) )J ) I@@I@@0remove_extension2@@@@@@@@@@Y  Y  @@J@@.chop_extension3@@@@@@@@@@ee6@@K@@(basename4@@@@@@@@@@jj@@ L@@'dirname5@ @@@@@@@@@uu@@M@@$null6@@@@zsszs@@,N@@)temp_file7(temp_dir3@@@@@@@:@@@@@@@@D@@@@@@@@@@B55C5t@@RO@@.open_temp_file8$mode&$listK&Stdlib)open_flag@@@@@@@@@%perms=#intA@@@@@@(temp_dirK}@@@@@@@@@@@@@@@@@@ՠ@:+out_channel@@@@@@@@@@@@@@@@AA@@P@@(temp_dir9(temp_dir{@@@@@@%permsJ@@@@@@@@@@@@@@@@@@@@@@@@@@   V@@Q@@1get_temp_dir_name:@$unitF@@@@@@@@@@@R@@1set_temp_dir_name;@@@@@@@@@@@@S@@%quote<@@@@@@@@@@   !@@T@@-quote_command=@@@@%stdin@@@@@@&stdout+@@@@@@&stderr7@@@@@@@B@@@@@@G@@@@@@@@@@@@@@E"("(F""@@UU@@@n;/0Stdlib__Filename0&L dj&Stdlib0Lku]8_٠8CamlinternalFormatBasics0%FU(Q/Tu@@@Caml1999T037x 9y07C0Stdlib__Filename*ocaml.text&_none_@@A; Operations on file names. ,filename.mliP77P7W@@@@@@3@@@@@@#intA;@@#intA@@@@@;@A@$charB;@@$charA@@@@@A@A@&stringQ;@@&stringA@@@@@G@@@%bytesC;@@%bytesA@@@@@M@@@%floatD;@@%floatA@@@@@S@@@$boolE;@@%falsec@@]@$trued@@c@@@A@@@@@d@A@$unitF;@@"()e@@n@@@A@@@@@o@A@ #exnG;@@@A@@@@@s@@@#effH;@@O@A@A@@@@@@|@@@,continuationI;@@Q@@P@B,continuationA@nY@@@@@@@@@%arrayJ;@@R@A%arrayA@@@@@@@@@ $listK;@@S@A"[]f@@@"::g@@@T@@@ @@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\#$@@@A366@'FailureY#,@'@@A<??@0Invalid_argumentX#5@0@@AE$H#H@-Match_failureV#>@@=@9@;@@a@@AV5Y4Y@)Not_foundZ#O@@@A^=a<a@-Out_of_memoryW#W@@@AfEiDi@.Stack_overflow^#_@@@AnMqLq@.Sys_blocked_io_#g@@@AvUyTy@)Sys_error[#o@j@@A^]@:Undefined_recursive_modulea#x@@w@s@u@@h@@Aon@:Continuation_already_takenb#@@@Awv@&Stdlib@A0current_dir_nameRY]RYm@гj&stringRYpRYv@@ @@@@@@RYY@)ocaml.doc E The conventional name for the current directory (e.g. [.] in Unix). SwwSw@@@@@@@@@@@ΐ@@@@@@/parent_dir_nameUU@г&stringUU@@ @@@3@K8@A@@@U @9 W The conventional name for the parent of the current directory (e.g. [..] in Unix). VW"<@@@@@@@ A@@@I@@@@@@!'dir_sepY>B Y>I@гؠ&stringY>LY>R@@ @@@3@8K6@A@@@Y>> @p @ The directory separator (e.g. [/] in Unix). @since 3.11.2 (ZSS)\@@@@@@@AB@@@<@@@@@@!&concat?^@^@б@г&stringJ^K^@@ @@@3LKKLLLLL@:M8@A@@б@г"&string[^\^@@ @@@@@г/&stringh^i^@@ @@@@@@@@!@@@'@@$* @@@v^@ː Z [concat dir file] returns a file name that designates file [file] in directory [dir]. _`!@@@@@@@C@@@@@@@@@C+is_relativeb#'b#2@б@гl&stringb#5b#;@@ @@@3@\q8@A@@гi$boolb#?b#C@@ @@@@@@@@@@@b## @ Return [true] if the file name is relative to the current directory, [false] if it is absolute (i.e. in Unix, starts with [/]). cDDe@@@@@@@D@@@$@@@@@@1+is_implicitgg@б@г&stringgg@@ @@@3@J_8@A@@г$boolgg@@ @@@@@@@@@@@g @] Return [true] if the file name is relative and does not start with an explicit reference to the current directory ([./] or [../] in Unix), [false] if it starts with an explicit reference to the root directory or the current directory. hk@@@@@@@.E@@@m)@@@@@@1,check_suffix,m-m@б@г&string7m8m@@ @@@398899999@J_8@A@@б@г&stringHm Im@@ @@@@@г $boolUmVm@@ @@@@@@@@!@@@'@@$* @@@cm@ Q [check_suffix name suff] returns [true] if the filename [name] ends with the suffix [suff]. Under Windows ports (including Cygwin), comparison is case-insensitive, relying on [String.lowercase_ascii]. Note that this does not match exactly the interpretation of case-insensitive filename equivalence from Windows. pnqt G q@@@@@@@F@@@@@@@@@C+chop_suffixv s wv s @б@гY&stringv s v s @@ @@@3@\q8@A@@б@гj&stringv s v s @@ @@@@@гw&stringv s v s @@ @@@@@@@@!@@@'@@$* @@@v s s@ [chop_suffix name suff] removes the suffix [suff] from the filename [name]. @raise Invalid_argument if [name] does not end with the suffix [suff]. w  z ? A@@@@@@@G@@@#ߐ@@@@@@C/chop_suffix_opt| C G| C V@б&suffixг&string| C _| C e@@ @@@3@^s:@A@@б@гǠ&string| C i| C o@@ @@@@@гa&option | C z| C @гޠ&string| C s| C y@@ @@@(@@@@@@- @@@"@@0%@@A6@@3(| C X@@@+| C C@  [chop_suffix_opt ~suffix filename] removes the suffix from the [filename] if possible, or returns [None] if the filename does not end with the suffix. Under Windows ports (including Cygwin), comparison is case-insensitive, relying on [String.lowercase_ascii]. Note that this does not match exactly the interpretation of case-insensitive filename equivalence from Windows. @since 4.08 8}  9G $ &@@@@@@@QH@@.@L@@@@@@S)extensionOJ ) -PJ ) 6@б@г!&stringZJ ) 9[J ) ?@@ @@@3\[[\\\\\@l8@A@@г0&stringiJ ) CjJ ) I@@ @@@@@@@@@@@tJ ) ) @ɐ u [extension name] is the shortest suffix [ext] of [name0] where: - [name0] is the longest suffix of [name] that does not contain a directory separator; - [ext] starts with a period; - [ext] is preceded by at least one non-period character in [name0]. If such a suffix does not exist, [extension name] is the empty string. @since 4.04 K J JW  @@@@@@@I@@@@@@@@@10remove_extensionY  Y  @б@гj&stringY  Y  @@ @@@3@J_8@A@@гy&stringY  Y  @@ @@@@@@@@@@@Y   @  Return the given file name without its extension, as defined in {!Filename.extension}. If the extension is empty, the function returns the given file name. The following invariant holds for any file name [s]: [remove_extension s ^ extension s = s] @since 4.04 Z  c @@@@@@@J@@@"ސ@@@@@@1.chop_extensionee#@б@г&stringe&e,@@ @@@3@J_8@A@@г &stringe0e6@@ @@@@@@@@@@@e @[ r Same as {!Filename.remove_extension}, but raise [Invalid_argument] if the given name has an empty extension. f77g~@@@@@@@,K@@@k'@@@@@@1(basename*j+j@б@г&string5j6j@@ @@@376677777@J_8@A@@г &stringDjEj@@ @@@@@@@@@@@Oj @  Split a file name into directory name / base file name. If [name] is a valid file name, then [concat (dirname name) (basename name)] returns a file name which is equivalent to [name]. Moreover, after setting the current directory to [dirname name] (with {!Sys.chdir}), references to [basename name] (which is a relative file name) designate the same file as [name] before the call to {!Sys.chdir}. This function conforms to the specification of POSIX.1-2008 for the [basename] utility. \k]s@@@@@@@uL@@@p@@@@@@1'dirnamesutu@б@гE&string~uu@@ @@@3@J_8@A@@гT&stringuu@@ @@@@@@@@@@@u @퐠 x See {!Filename.basename}. This function conforms to the specification of POSIX.1-2008 for the [dirname] utility. vxYq@@@@@@@M@@@@@@@@@1$null zswzs{@г&stringzs~zs@@ @@@3@H]6@A@@@zss @$ [null] is ["/dev/null"] on POSIX and ["NUL"] on Windows. It represents a file on the OS that discards all writes and returns end of file on reads. @since 4.10 {~!3@@@@@@@N@@@4𐠠@@@@@@!)temp_file!595B@б(temp_dirгǠ&string5P5V@@ @@@3@<O:@A@@б@гؠ&string5Z5`@@ @@@@@б@г砐&string 5d!5j@@ @@@ @@г&string-5n.5t@@ @@@-@@@@@0@@@%@@3( @@D=@@@ @@;A5E@@ @D55@  [temp_file prefix suffix] returns the name of a fresh temporary file in the temporary directory. The base name of the temporary file is formed by concatenating [prefix], then a suitably chosen integer number, then [suffix]. The optional argument [temp_dir] indicates the temporary directory to use, defaulting to the current result of {!Filename.get_temp_dir_name}. The temporary file is created empty, with permissions [0o600] (readable and writable only by the file owner). The file is guaranteed to be different from any other file that existed when [temp_file] was called. @raise Sys_error if the file could not be created. @before 3.11.2 no ?temp_dir optional argument QuuR=?@@@@@@@jO@@'@e@@@@@@[.open_temp_file"hAEiAS@б$modeг栐$listuVmvVq@г)open_flagVcVl@@ @@@3@D@A@@@ @@@ @@б%permsгj#intV}V@@ @@@@@б(temp_dirгo&stringVV@@ @@@)@@б@г~&stringVV@@ @@@8@@б@г&string@@ @@@G@@В@г&string@@ @@@X@@@гS+out_channel@@ @@@g@@@@@ @@n @@@- @@q0@@@?@@tB@@\T@@@ @@{V@@uȠm@@@@@Vu"@@Р@@@@@V\*@@ @AA-@h : Same as {!Filename.temp_file}, but returns both the name of a fresh temporary file, and an output channel opened (atomically) on this file. This function is more secure than [temp_file]: there is no risk that the temporary file will be modified (e.g. replaced by a symbolic link) before the program opens it. The optional argument [mode] is a list of additional flags to control the opening of the file. It can contain one or several of [Open_append], [Open_binary], and [Open_text]. The default is [[Open_text]] (open in text mode). The file is created with permissions [perms] (defaults to readable and writable only by the file owner, [0o600]). @raise Sys_error if the file could not be opened. @before 4.03 no ?perms optional argument @before 3.11.2 no ?temp_dir optional argument  !@@@@@@@9P@@=@x4@@@@@@(temp_dir#7  8 @б(temp_dirг &stringD #E )@@ @@@3FEEFFFFF@:@A@@б%permsг*#intW 4X 7@@ @@@@@б@г-&stringf <g B@@ @@@"@@б@г<&stringu Fv L@@ @@@1@@гI&string P V@@ @@@>@@@@@A@@@%@@D( @@BU:@@@ @@K -@@]]U@@@@@S @@ @  @ f [temp_dir prefix suffix] creates and returns the name of a fresh temporary directory with permissions [perms] (defaults to 0o700) inside [temp_dir]. The base name of the temporary directory is formed by concatenating [prefix], then a suitably chosen integer number, then [suffix]. The optional argument [temp_dir] indicates the temporary directory to use, defaulting to the current result of {!Filename.get_temp_dir_name}. The temporary directory is created empty, with permissions [0o700] (readable, writable, and searchable only by the file owner). The directory is guaranteed to be different from any other directory that existed when [temp_dir] was called. If temp_dir does not exist, this function does not create it. Instead, it raises Sys_error. @raise Sys_error if the directory could not be created. @since 5.1 WW@@@@@@@Q@@.@@@@@@@s1get_temp_dir_name$@б@гs$unit@@ @@@3@8@A@@г&string@@ @@@@@@@@@@@ @>  The name of the temporary directory: Under Unix, the value of the [TMPDIR] environment variable, or "/tmp" if the variable is not set. Under Windows, the value returned by [GetTempPath2] (if available) or [GetTempPath]. The temporary directory can be changed with {!Filename.set_temp_dir_name}. Under Windows, before OCaml 5.4, it would return the value of the [TEMP] environment variable, or "." if the variable was not set. @since 4.00 @@@@@@@R@@@N @@@@@@11set_temp_dir_name% @б@гߠ&string@@ @@@3@J_8@A@@гˠ$unit'(@@ @@@@@@@@@@@2 @ Change the temporary directory returned by {!Filename.get_temp_dir_name} and used by {!Filename.temp_file} and {!Filename.open_temp_file}. The temporary directory is a domain-local value which is inherited by child domains. @since 4.00 ?@  @@@@@@@XS@@@S@@@@@@1%quote&V  W !@б@г(&stringa !b ! @@ @@@3cbbccccc@J_8@A@@г7&stringp !q !@@ @@@@@@@@@@@{   @А  Return a quoted version of a file name, suitable for use as one argument in a command line, escaping all meta-characters. Warning: under Windows, the output is only suitable for use with programs that follow the standard Windows quoting conventions. !!"#"&@@@@@@@T@@@@@@@@@1-quote_command'"(","("9@б@гq&string"<"C"<"I@@ @@@3@J_8@A@@б%stdinг&string"<"T"<"Z@@ @@@@@б&stdoutг&string"<"f"<"l@@ @@@$@@б&stderrг&string"<"x"<"~@@ @@@5@@б@г_$list""""@г&string""""@@ @@@N@@@@@@S @@гѠ&string "" ""@@ @@@`@@@@@c@@?ڠ7@@@ @@j "<"p@@XP@@@@@r ""<"^@@qi@@@ @@ z *"<"M @@@ @@ ~#@@@ 0"("(&@  [quote_command cmd args] returns a quoted command line, suitable for use as an argument to {!Sys.command}, {!Unix.system}, and the {!Unix.open_process} functions. The string [cmd] is the command to call. The list [args] is the list of arguments to pass to this command. It can be empty. The optional arguments [?stdin] and [?stdout] and [?stderr] are file names used to redirect the standard input, the standard output, or the standard error of the command. If [~stdin:f] is given, a redirection [< f] is performed and the standard input of the command reads from file [f]. If [~stdout:f] is given, a redirection [> f] is performed and the standard output of the command is written to file [f]. If [~stderr:f] is given, a redirection [2> f] is performed and the standard error of the command is written to file [f]. If both [~stdout:f] and [~stderr:f] are given, with the exact same file name [f], a [2>&1] redirection is performed so that the standard output and the standard error of the command are interleaved and redirected to the same file [f]. Under Unix and Cygwin, the command, the arguments, and the redirections if any are quoted using {!Filename.quote}, then concatenated. Under Win32, additional quoting is performed as required by the [cmd.exe] shell that is called by {!Sys.command}. @raise Failure if the command cannot be escaped on the current platform. @since 4.10  ="" >(s(u@@@@@@@ VU@@6@ Q@@@@@@@@n@N9@@@yR@2@@5@@@`@@@@@}*@ ]@=@@kD@$@J@@3 u t t u u u u u@L@A@ H************************************************************************ ~A@@ A@L@ H  BMM BM@ H OCaml  C C@ H  D D3@ H Xavier Leroy, projet Cristal, INRIA Rocquencourt  E44 E4@ H  F F@ H Copyright 1996 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@<* Operations on file names.  Ҡ F* The conventional name for the current directory (e.g. [.] in Unix).  X* The conventional name for the parent of the current directory (e.g. [..] in Unix). 砠 A* The directory separator (e.g. [/] in Unix). @since 3.11.2  [* [concat dir file] returns a file name that designates file [file] in directory [dir]. [ * Return [true] if the file name is relative to the current directory, [false] if it is absolute (i.e. in Unix, starts with [/]).  * Return [true] if the file name is relative and does not start with an explicit reference to the current directory ([./] or [../] in Unix), [false] if it starts with an explicit reference to the root directory or the current directory. Ϡ R* [check_suffix name suff] returns [true] if the filename [name] ends with the suffix [suff]. Under Windows ports (including Cygwin), comparison is case-insensitive, relying on [String.lowercase_ascii]. Note that this does not match exactly the interpretation of case-insensitive filename equivalence from Windows. w * [chop_suffix name suff] removes the suffix [suff] from the filename [name]. @raise Invalid_argument if [name] does not end with the suffix [suff].  * [chop_suffix_opt ~suffix filename] removes the suffix from the [filename] if possible, or returns [None] if the filename does not end with the suffix. Under Windows ports (including Cygwin), comparison is case-insensitive, relying on [String.lowercase_ascii]. Note that this does not match exactly the interpretation of case-insensitive filename equivalence from Windows. @since 4.08  v* [extension name] is the shortest suffix [ext] of [name0] where: - [name0] is the longest suffix of [name] that does not contain a directory separator; - [ext] starts with a period; - [ext] is preceded by at least one non-period character in [name0]. If such a suffix does not exist, [extension name] is the empty string. @since 4.04 o * Return the given file name without its extension, as defined in {!Filename.extension}. If the extension is empty, the function returns the given file name. The following invariant holds for any file name [s]: [remove_extension s ^ extension s = s] @since 4.04 ) s* Same as {!Filename.remove_extension}, but raise [Invalid_argument] if the given name has an empty extension. 㠠 * Split a file name into directory name / base file name. If [name] is a valid file name, then [concat (dirname name) (basename name)] returns a file name which is equivalent to [name]. Moreover, after setting the current directory to [dirname name] (with {!Sys.chdir}), references to [basename name] (which is a relative file name) designate the same file as [name] before the call to {!Sys.chdir}. This function conforms to the specification of POSIX.1-2008 for the [basename] utility.  y* See {!Filename.basename}. This function conforms to the specification of POSIX.1-2008 for the [dirname] utility. W * [null] is ["/dev/null"] on POSIX and ["NUL"] on Windows. It represents a file on the OS that discards all writes and returns end of file on reads. @since 4.10 # * [temp_file prefix suffix] returns the name of a fresh temporary file in the temporary directory. The base name of the temporary file is formed by concatenating [prefix], then a suitably chosen integer number, then [suffix]. The optional argument [temp_dir] indicates the temporary directory to use, defaulting to the current result of {!Filename.get_temp_dir_name}. The temporary file is created empty, with permissions [0o600] (readable and writable only by the file owner). The file is guaranteed to be different from any other file that existed when [temp_file] was called. @raise Sys_error if the file could not be created. @before 3.11.2 no ?temp_dir optional argument  ;* Same as {!Filename.temp_file}, but returns both the name of a fresh temporary file, and an output channel opened (atomically) on this file. This function is more secure than [temp_file]: there is no risk that the temporary file will be modified (e.g. replaced by a symbolic link) before the program opens it. The optional argument [mode] is a list of additional flags to control the opening of the file. It can contain one or several of [Open_append], [Open_binary], and [Open_text]. The default is [[Open_text]] (open in text mode). The file is created with permissions [perms] (defaults to readable and writable only by the file owner, [0o600]). @raise Sys_error if the file could not be opened. @before 4.03 no ?perms optional argument @before 3.11.2 no ?temp_dir optional argument 堠 g* [temp_dir prefix suffix] creates and returns the name of a fresh temporary directory with permissions [perms] (defaults to 0o700) inside [temp_dir]. The base name of the temporary directory is formed by concatenating [prefix], then a suitably chosen integer number, then [suffix]. The optional argument [temp_dir] indicates the temporary directory to use, defaulting to the current result of {!Filename.get_temp_dir_name}. The temporary directory is created empty, with permissions [0o700] (readable, writable, and searchable only by the file owner). The directory is guaranteed to be different from any other directory that existed when [temp_dir] was called. If temp_dir does not exist, this function does not create it. Instead, it raises Sys_error. @raise Sys_error if the directory could not be created. @since 5.1 [ * The name of the temporary directory: Under Unix, the value of the [TMPDIR] environment variable, or "/tmp" if the variable is not set. Under Windows, the value returned by [GetTempPath2] (if available) or [GetTempPath]. The temporary directory can be changed with {!Filename.set_temp_dir_name}. Under Windows, before OCaml 5.4, it would return the value of the [TEMP] environment variable, or "." if the variable was not set. @since 4.00  * Change the temporary directory returned by {!Filename.get_temp_dir_name} and used by {!Filename.temp_file} and {!Filename.open_temp_file}. The temporary directory is a domain-local value which is inherited by child domains. @since 4.00 Ϡ  * Return a quoted version of a file name, suitable for use as one argument in a command line, escaping all meta-characters. Warning: under Windows, the output is only suitable for use with programs that follow the standard Windows quoting conventions.  * [quote_command cmd args] returns a quoted command line, suitable for use as an argument to {!Sys.command}, {!Unix.system}, and the {!Unix.open_process} functions. The string [cmd] is the command to call. The list [args] is the list of arguments to pass to this command. It can be empty. The optional arguments [?stdin] and [?stdout] and [?stderr] are file names used to redirect the standard input, the standard output, or the standard error of the command. If [~stdin:f] is given, a redirection [< f] is performed and the standard input of the command reads from file [f]. If [~stdout:f] is given, a redirection [> f] is performed and the standard output of the command is written to file [f]. If [~stderr:f] is given, a redirection [2> f] is performed and the standard error of the command is written to file [f]. If both [~stdout:f] and [~stderr:f] are given, with the exact same file name [f], a [2>&1] redirection is performed so that the standard output and the standard error of the command are interleaved and redirected to the same file [f]. Under Unix and Cygwin, the command, the arguments, and the redirections if any are quoted using {!Filename.quote}, then concatenated. Under Win32, additional quoting is performed as required by the [cmd.exe] shell that is called by {!Sys.command}. @raise Failure if the command cannot be escaped on the current platform. @since 4.10 @?)../ocamlc0-strict-sequence(-absname"-w5+a-4-9-41-42-44-45-48"-g+-warn-error"+A*-bin-annot)-nostdlib*-principal"-o4stdlib__Filename.cmi"-c ! " Z/home/teraram/ci/builds/workspace/parallel-build/flambda/true/label/ocaml-manycores/stdlib @@0P A3_Z 3 & % % & & & & &@ $@@8CamlinternalFormatBasics0%FU(Q/Tu&Stdlib0Lku]8_٠ L0&L dj@0&L djAVC_*de@X@@0jĐ@  F@@@+@@@$@͐@@c7@?;c@t@@P@@