|
From: Wesley T. <we...@ml...> - 2006-06-10 19:37:35
|
This commit gets MinGW to completely rebuild.
The first change switches world & profiling code to use stdio:
1. stdio is ANSI C and thus more portable
2. the raw io used previously did not
a. deal with binary/text mode under windows (=> corrupt world files)
b. restart large reads/writes when they only partially completed
c. align writes on sector boundaries; Linus threatened to break this!
The second change is how the SML code saves the world:
Now the filename is passed to C, and a failure does not abort the program.
Instead, we check return codes and propogate the error code back to an SML
exception, raised with the correct error status.
To effect this change, I had to change the save primitive's prototype.
Also, I had to output nicer C code in the codegen to keep error status.
----------------------------------------------------------------------
U mlton/branches/on-20050822-x86_64-branch/basis-library/config/c/x86-mingw/c-types.sml
U mlton/branches/on-20050822-x86_64-branch/basis-library/mlton/world.sml
U mlton/branches/on-20050822-x86_64-branch/basis-library/primitive/basis-ffi.sml
U mlton/branches/on-20050822-x86_64-branch/basis-library/primitive/prim-mlton.sml
U mlton/branches/on-20050822-x86_64-branch/include/main.h
U mlton/branches/on-20050822-x86_64-branch/mlton/atoms/hash-type.fun
U mlton/branches/on-20050822-x86_64-branch/mlton/backend/ssa-to-rssa.fun
U mlton/branches/on-20050822-x86_64-branch/mlton/codegen/c-codegen/c-codegen.fun
U mlton/branches/on-20050822-x86_64-branch/mlton/ssa/ssa-tree2.fun
U mlton/branches/on-20050822-x86_64-branch/runtime/gc/gc_state.h
U mlton/branches/on-20050822-x86_64-branch/runtime/gc/profiling.c
U mlton/branches/on-20050822-x86_64-branch/runtime/gc/profiling.h
U mlton/branches/on-20050822-x86_64-branch/runtime/gc/read_write.c
U mlton/branches/on-20050822-x86_64-branch/runtime/gc/world.c
U mlton/branches/on-20050822-x86_64-branch/runtime/gc/world.h
U mlton/branches/on-20050822-x86_64-branch/runtime/gen/gen-types.c
U mlton/branches/on-20050822-x86_64-branch/runtime/platform/diskBack.unix.c
U mlton/branches/on-20050822-x86_64-branch/runtime/util/read_write.h
U mlton/branches/on-20050822-x86_64-branch/runtime/util/safe.h
----------------------------------------------------------------------
Modified: mlton/branches/on-20050822-x86_64-branch/basis-library/config/c/x86-mingw/c-types.sml
===================================================================
--- mlton/branches/on-20050822-x86_64-branch/basis-library/config/c/x86-mingw/c-types.sml 2006-06-10 20:28:00 UTC (rev 4641)
+++ mlton/branches/on-20050822-x86_64-branch/basis-library/config/c/x86-mingw/c-types.sml 2006-06-11 02:37:23 UTC (rev 4642)
@@ -1,131 +1,131 @@
-(* Copyright (C) 2004-2006 Henry Cejtin, Matthew Fluet, Suresh
- * Jagannathan, and Stephen Weeks.
- *
- * MLton is released under a BSD-style license.
- * See the file MLton-LICENSE for details.
- *)
-
-
-(* C *)
-structure C_Char = struct open Int8 type t = int end
-functor C_Char_ChooseIntN (A: CHOOSE_INTN_ARG) = ChooseIntN_Int8 (A)
-structure C_SChar = struct open Int8 type t = int end
-functor C_SChar_ChooseIntN (A: CHOOSE_INTN_ARG) = ChooseIntN_Int8 (A)
-structure C_UChar = struct open Word8 type t = word end
-functor C_UChar_ChooseWordN (A: CHOOSE_WORDN_ARG) = ChooseWordN_Word8 (A)
-structure C_Short = struct open Int16 type t = int end
-functor C_Short_ChooseIntN (A: CHOOSE_INTN_ARG) = ChooseIntN_Int16 (A)
-structure C_SShort = struct open Int16 type t = int end
-functor C_SShort_ChooseIntN (A: CHOOSE_INTN_ARG) = ChooseIntN_Int16 (A)
-structure C_UShort = struct open Word16 type t = word end
-functor C_UShort_ChooseWordN (A: CHOOSE_WORDN_ARG) = ChooseWordN_Word16 (A)
-structure C_Int = struct open Int32 type t = int end
-functor C_Int_ChooseIntN (A: CHOOSE_INTN_ARG) = ChooseIntN_Int32 (A)
-structure C_SInt = struct open Int32 type t = int end
-functor C_SInt_ChooseIntN (A: CHOOSE_INTN_ARG) = ChooseIntN_Int32 (A)
-structure C_UInt = struct open Word32 type t = word end
-functor C_UInt_ChooseWordN (A: CHOOSE_WORDN_ARG) = ChooseWordN_Word32 (A)
-structure C_Long = struct open Int32 type t = int end
-functor C_Long_ChooseIntN (A: CHOOSE_INTN_ARG) = ChooseIntN_Int32 (A)
-structure C_SLong = struct open Int32 type t = int end
-functor C_SLong_ChooseIntN (A: CHOOSE_INTN_ARG) = ChooseIntN_Int32 (A)
-structure C_ULong = struct open Word32 type t = word end
-functor C_ULong_ChooseWordN (A: CHOOSE_WORDN_ARG) = ChooseWordN_Word32 (A)
-structure C_LongLong = struct open Int64 type t = int end
-functor C_LongLong_ChooseIntN (A: CHOOSE_INTN_ARG) = ChooseIntN_Int64 (A)
-structure C_SLongLong = struct open Int64 type t = int end
-functor C_SLongLong_ChooseIntN (A: CHOOSE_INTN_ARG) = ChooseIntN_Int64 (A)
-structure C_ULongLong = struct open Word64 type t = word end
-functor C_ULongLong_ChooseWordN (A: CHOOSE_WORDN_ARG) = ChooseWordN_Word64 (A)
-structure C_Float = struct open Real32 type t = real end
-functor C_Float_ChooseRealN (A: CHOOSE_REALN_ARG) = ChooseRealN_Real32 (A)
-structure C_Double = struct open Real64 type t = real end
-functor C_Double_ChooseRealN (A: CHOOSE_REALN_ARG) = ChooseRealN_Real64 (A)
-structure C_Size = struct open Word32 type t = word end
-functor C_Size_ChooseWordN (A: CHOOSE_WORDN_ARG) = ChooseWordN_Word32 (A)
-
-structure C_Pointer = struct open Word32 type t = word end
-functor C_Pointer_ChooseWordN (A: CHOOSE_WORDN_ARG) = ChooseWordN_Word32 (A)
-structure C_String = struct open Word32 type t = word end
-functor C_String_ChooseWordN (A: CHOOSE_WORDN_ARG) = ChooseWordN_Word32 (A)
-structure C_StringArray = struct open Word32 type t = word end
-functor C_StringArray_ChooseWordN (A: CHOOSE_WORDN_ARG) = ChooseWordN_Word32 (A)
-
-(* Generic integers *)
-structure C_Fd = C_Int
-functor C_Fd_ChooseIntN (A: CHOOSE_INTN_ARG) = C_Int_ChooseIntN (A)
-structure C_Signal = C_Int
-functor C_Signal_ChooseIntN (A: CHOOSE_INTN_ARG) = C_Int_ChooseIntN (A)
-structure C_Status = C_Int
-functor C_Status_ChooseIntN (A: CHOOSE_INTN_ARG) = C_Int_ChooseIntN (A)
-structure C_Sock = C_Int
-functor C_Sock_ChooseIntN (A: CHOOSE_INTN_ARG) = C_Int_ChooseIntN (A)
-
-(* C99 *)
-structure C_Ptrdiff = struct open Int32 type t = int end
-functor C_Ptrdiff_ChooseIntN (A: CHOOSE_INTN_ARG) = ChooseIntN_Int32 (A)
-structure C_Intmax = struct open Int64 type t = int end
-functor C_Intmax_ChooseIntN (A: CHOOSE_INTN_ARG) = ChooseIntN_Int64 (A)
-structure C_UIntmax = struct open Word64 type t = word end
-functor C_UIntmax_ChooseWordN (A: CHOOSE_WORDN_ARG) = ChooseWordN_Word64 (A)
-structure C_Intptr = struct open Int32 type t = int end
-functor C_Intptr_ChooseIntN (A: CHOOSE_INTN_ARG) = ChooseIntN_Int32 (A)
-structure C_UIntptr = struct open Word32 type t = word end
-functor C_UIntptr_ChooseWordN (A: CHOOSE_WORDN_ARG) = ChooseWordN_Word32 (A)
-
-(* from <dirent.h> *)
-structure C_DirP = struct open Word32 type t = word end
-functor C_DirP_ChooseWordN (A: CHOOSE_WORDN_ARG) = ChooseWordN_Word32 (A)
-
-(* from <poll.h> *)
-structure C_NFds = struct open Word32 type t = word end
-functor C_NFds_ChooseWordN (A: CHOOSE_WORDN_ARG) = ChooseWordN_Word32 (A)
-
-(* from <resource.h> *)
-structure C_RLim = struct open Word32 type t = word end
-functor C_RLim_ChooseWordN (A: CHOOSE_WORDN_ARG) = ChooseWordN_Word32 (A)
-
-(* from <sys/types.h> *)
-structure C_Clock = struct open Int32 type t = int end
-functor C_Clock_ChooseIntN (A: CHOOSE_INTN_ARG) = ChooseIntN_Int32 (A)
-structure C_Dev = struct open Word32 type t = word end
-functor C_Dev_ChooseWordN (A: CHOOSE_WORDN_ARG) = ChooseWordN_Word32 (A)
-structure C_GId = struct open Word16 type t = word end
-functor C_GId_ChooseWordN (A: CHOOSE_WORDN_ARG) = ChooseWordN_Word16 (A)
-structure C_Id = struct open Int32 type t = int end
-functor C_Id_ChooseIntN (A: CHOOSE_INTN_ARG) = ChooseIntN_Int32 (A)
-structure C_INo = struct open Int16 type t = int end
-functor C_INo_ChooseIntN (A: CHOOSE_INTN_ARG) = ChooseIntN_Int16 (A)
-structure C_Mode = struct open Word16 type t = word end
-functor C_Mode_ChooseWordN (A: CHOOSE_WORDN_ARG) = ChooseWordN_Word16 (A)
-structure C_NLink = struct open Int16 type t = int end
-functor C_NLink_ChooseIntN (A: CHOOSE_INTN_ARG) = ChooseIntN_Int16 (A)
-structure C_Off = struct open Int32 type t = int end
-functor C_Off_ChooseIntN (A: CHOOSE_INTN_ARG) = ChooseIntN_Int32 (A)
-structure C_PId = struct open Int32 type t = int end
-functor C_PId_ChooseIntN (A: CHOOSE_INTN_ARG) = ChooseIntN_Int32 (A)
-structure C_SSize = struct open Int32 type t = int end
-functor C_SSize_ChooseIntN (A: CHOOSE_INTN_ARG) = ChooseIntN_Int32 (A)
-structure C_SUSeconds = struct open Int32 type t = int end
-functor C_SUSeconds_ChooseIntN (A: CHOOSE_INTN_ARG) = ChooseIntN_Int32 (A)
-structure C_Time = struct open Int32 type t = int end
-functor C_Time_ChooseIntN (A: CHOOSE_INTN_ARG) = ChooseIntN_Int32 (A)
-structure C_UId = struct open Word16 type t = word end
-functor C_UId_ChooseWordN (A: CHOOSE_WORDN_ARG) = ChooseWordN_Word16 (A)
-
-(* from <sys/socket.h> *)
-structure C_Socklen = struct open Int32 type t = int end
-functor C_Socklen_ChooseIntN (A: CHOOSE_INTN_ARG) = ChooseIntN_Int32 (A)
-
-(* from <termios.h> *)
-structure C_CC = struct open Word8 type t = word end
-functor C_CC_ChooseWordN (A: CHOOSE_WORDN_ARG) = ChooseWordN_Word8 (A)
-structure C_Speed = struct open Word32 type t = word end
-functor C_Speed_ChooseWordN (A: CHOOSE_WORDN_ARG) = ChooseWordN_Word32 (A)
-structure C_TCFlag = struct open Word32 type t = word end
-functor C_TCFlag_ChooseWordN (A: CHOOSE_WORDN_ARG) = ChooseWordN_Word32 (A)
-
-(* from "gmp.h" *)
-structure C_MPLimb = struct open Word32 type t = word end
-functor C_MPLimb_ChooseWordN (A: CHOOSE_WORDN_ARG) = ChooseWordN_Word32 (A)
-
+(* Copyright (C) 2004-2006 Henry Cejtin, Matthew Fluet, Suresh
+ * Jagannathan, and Stephen Weeks.
+ *
+ * MLton is released under a BSD-style license.
+ * See the file MLton-LICENSE for details.
+ *)
+
+
+(* C *)
+structure C_Char = struct open Int8 type t = int end
+functor C_Char_ChooseIntN (A: CHOOSE_INTN_ARG) = ChooseIntN_Int8 (A)
+structure C_SChar = struct open Int8 type t = int end
+functor C_SChar_ChooseIntN (A: CHOOSE_INTN_ARG) = ChooseIntN_Int8 (A)
+structure C_UChar = struct open Word8 type t = word end
+functor C_UChar_ChooseWordN (A: CHOOSE_WORDN_ARG) = ChooseWordN_Word8 (A)
+structure C_Short = struct open Int16 type t = int end
+functor C_Short_ChooseIntN (A: CHOOSE_INTN_ARG) = ChooseIntN_Int16 (A)
+structure C_SShort = struct open Int16 type t = int end
+functor C_SShort_ChooseIntN (A: CHOOSE_INTN_ARG) = ChooseIntN_Int16 (A)
+structure C_UShort = struct open Word16 type t = word end
+functor C_UShort_ChooseWordN (A: CHOOSE_WORDN_ARG) = ChooseWordN_Word16 (A)
+structure C_Int = struct open Int32 type t = int end
+functor C_Int_ChooseIntN (A: CHOOSE_INTN_ARG) = ChooseIntN_Int32 (A)
+structure C_SInt = struct open Int32 type t = int end
+functor C_SInt_ChooseIntN (A: CHOOSE_INTN_ARG) = ChooseIntN_Int32 (A)
+structure C_UInt = struct open Word32 type t = word end
+functor C_UInt_ChooseWordN (A: CHOOSE_WORDN_ARG) = ChooseWordN_Word32 (A)
+structure C_Long = struct open Int32 type t = int end
+functor C_Long_ChooseIntN (A: CHOOSE_INTN_ARG) = ChooseIntN_Int32 (A)
+structure C_SLong = struct open Int32 type t = int end
+functor C_SLong_ChooseIntN (A: CHOOSE_INTN_ARG) = ChooseIntN_Int32 (A)
+structure C_ULong = struct open Word32 type t = word end
+functor C_ULong_ChooseWordN (A: CHOOSE_WORDN_ARG) = ChooseWordN_Word32 (A)
+structure C_LongLong = struct open Int64 type t = int end
+functor C_LongLong_ChooseIntN (A: CHOOSE_INTN_ARG) = ChooseIntN_Int64 (A)
+structure C_SLongLong = struct open Int64 type t = int end
+functor C_SLongLong_ChooseIntN (A: CHOOSE_INTN_ARG) = ChooseIntN_Int64 (A)
+structure C_ULongLong = struct open Word64 type t = word end
+functor C_ULongLong_ChooseWordN (A: CHOOSE_WORDN_ARG) = ChooseWordN_Word64 (A)
+structure C_Float = struct open Real32 type t = real end
+functor C_Float_ChooseRealN (A: CHOOSE_REALN_ARG) = ChooseRealN_Real32 (A)
+structure C_Double = struct open Real64 type t = real end
+functor C_Double_ChooseRealN (A: CHOOSE_REALN_ARG) = ChooseRealN_Real64 (A)
+structure C_Size = struct open Word32 type t = word end
+functor C_Size_ChooseWordN (A: CHOOSE_WORDN_ARG) = ChooseWordN_Word32 (A)
+
+structure C_Pointer = struct open Word32 type t = word end
+functor C_Pointer_ChooseWordN (A: CHOOSE_WORDN_ARG) = ChooseWordN_Word32 (A)
+structure C_String = struct open Word32 type t = word end
+functor C_String_ChooseWordN (A: CHOOSE_WORDN_ARG) = ChooseWordN_Word32 (A)
+structure C_StringArray = struct open Word32 type t = word end
+functor C_StringArray_ChooseWordN (A: CHOOSE_WORDN_ARG) = ChooseWordN_Word32 (A)
+
+(* Generic integers *)
+structure C_Fd = C_Int
+functor C_Fd_ChooseIntN (A: CHOOSE_INTN_ARG) = C_Int_ChooseIntN (A)
+structure C_Signal = C_Int
+functor C_Signal_ChooseIntN (A: CHOOSE_INTN_ARG) = C_Int_ChooseIntN (A)
+structure C_Status = C_Int
+functor C_Status_ChooseIntN (A: CHOOSE_INTN_ARG) = C_Int_ChooseIntN (A)
+structure C_Sock = C_Int
+functor C_Sock_ChooseIntN (A: CHOOSE_INTN_ARG) = C_Int_ChooseIntN (A)
+
+(* C99 *)
+structure C_Ptrdiff = struct open Int32 type t = int end
+functor C_Ptrdiff_ChooseIntN (A: CHOOSE_INTN_ARG) = ChooseIntN_Int32 (A)
+structure C_Intmax = struct open Int64 type t = int end
+functor C_Intmax_ChooseIntN (A: CHOOSE_INTN_ARG) = ChooseIntN_Int64 (A)
+structure C_UIntmax = struct open Word64 type t = word end
+functor C_UIntmax_ChooseWordN (A: CHOOSE_WORDN_ARG) = ChooseWordN_Word64 (A)
+structure C_Intptr = struct open Int32 type t = int end
+functor C_Intptr_ChooseIntN (A: CHOOSE_INTN_ARG) = ChooseIntN_Int32 (A)
+structure C_UIntptr = struct open Word32 type t = word end
+functor C_UIntptr_ChooseWordN (A: CHOOSE_WORDN_ARG) = ChooseWordN_Word32 (A)
+
+(* from <dirent.h> *)
+structure C_DirP = struct open Word32 type t = word end
+functor C_DirP_ChooseWordN (A: CHOOSE_WORDN_ARG) = ChooseWordN_Word32 (A)
+
+(* from <poll.h> *)
+structure C_NFds = struct open Word32 type t = word end
+functor C_NFds_ChooseWordN (A: CHOOSE_WORDN_ARG) = ChooseWordN_Word32 (A)
+
+(* from <resource.h> *)
+structure C_RLim = struct open Word32 type t = word end
+functor C_RLim_ChooseWordN (A: CHOOSE_WORDN_ARG) = ChooseWordN_Word32 (A)
+
+(* from <sys/types.h> *)
+structure C_Clock = struct open Int32 type t = int end
+functor C_Clock_ChooseIntN (A: CHOOSE_INTN_ARG) = ChooseIntN_Int32 (A)
+structure C_Dev = struct open Word32 type t = word end
+functor C_Dev_ChooseWordN (A: CHOOSE_WORDN_ARG) = ChooseWordN_Word32 (A)
+structure C_GId = struct open Word16 type t = word end
+functor C_GId_ChooseWordN (A: CHOOSE_WORDN_ARG) = ChooseWordN_Word16 (A)
+structure C_Id = struct open Int32 type t = int end
+functor C_Id_ChooseIntN (A: CHOOSE_INTN_ARG) = ChooseIntN_Int32 (A)
+structure C_INo = struct open Int16 type t = int end
+functor C_INo_ChooseIntN (A: CHOOSE_INTN_ARG) = ChooseIntN_Int16 (A)
+structure C_Mode = struct open Word16 type t = word end
+functor C_Mode_ChooseWordN (A: CHOOSE_WORDN_ARG) = ChooseWordN_Word16 (A)
+structure C_NLink = struct open Int16 type t = int end
+functor C_NLink_ChooseIntN (A: CHOOSE_INTN_ARG) = ChooseIntN_Int16 (A)
+structure C_Off = struct open Int32 type t = int end
+functor C_Off_ChooseIntN (A: CHOOSE_INTN_ARG) = ChooseIntN_Int32 (A)
+structure C_PId = struct open Int32 type t = int end
+functor C_PId_ChooseIntN (A: CHOOSE_INTN_ARG) = ChooseIntN_Int32 (A)
+structure C_SSize = struct open Int32 type t = int end
+functor C_SSize_ChooseIntN (A: CHOOSE_INTN_ARG) = ChooseIntN_Int32 (A)
+structure C_SUSeconds = struct open Int32 type t = int end
+functor C_SUSeconds_ChooseIntN (A: CHOOSE_INTN_ARG) = ChooseIntN_Int32 (A)
+structure C_Time = struct open Int32 type t = int end
+functor C_Time_ChooseIntN (A: CHOOSE_INTN_ARG) = ChooseIntN_Int32 (A)
+structure C_UId = struct open Word16 type t = word end
+functor C_UId_ChooseWordN (A: CHOOSE_WORDN_ARG) = ChooseWordN_Word16 (A)
+
+(* from <sys/socket.h> *)
+structure C_Socklen = struct open Int32 type t = int end
+functor C_Socklen_ChooseIntN (A: CHOOSE_INTN_ARG) = ChooseIntN_Int32 (A)
+
+(* from <termios.h> *)
+structure C_CC = struct open Word8 type t = word end
+functor C_CC_ChooseWordN (A: CHOOSE_WORDN_ARG) = ChooseWordN_Word8 (A)
+structure C_Speed = struct open Word32 type t = word end
+functor C_Speed_ChooseWordN (A: CHOOSE_WORDN_ARG) = ChooseWordN_Word32 (A)
+structure C_TCFlag = struct open Word32 type t = word end
+functor C_TCFlag_ChooseWordN (A: CHOOSE_WORDN_ARG) = ChooseWordN_Word32 (A)
+
+(* from "gmp.h" *)
+structure C_MPLimb = struct open Word32 type t = word end
+functor C_MPLimb_ChooseWordN (A: CHOOSE_WORDN_ARG) = ChooseWordN_Word32 (A)
+
Modified: mlton/branches/on-20050822-x86_64-branch/basis-library/mlton/world.sml
===================================================================
--- mlton/branches/on-20050822-x86_64-branch/basis-library/mlton/world.sml 2006-06-10 20:28:00 UTC (rev 4641)
+++ mlton/branches/on-20050822-x86_64-branch/basis-library/mlton/world.sml 2006-06-11 02:37:23 UTC (rev 4642)
@@ -9,39 +9,25 @@
structure MLtonWorld: MLTON_WORLD =
struct
structure Prim = Primitive.MLton.World
+ structure Error = PosixError
+ structure SysCall = Error.SysCall
val gcState = Primitive.MLton.GCState.gcState
datatype status = Clone | Original
(* Need to worry about:
- * - open file descriptors
* - redetermine buffer status when restart
*)
fun save' (file: string): status =
let
- val fd =
- let
- open Posix.FileSys
- val flags =
- O.flags [O.trunc, PrimitiveFFI.Posix.FileSys.O.BINARY]
- val mode =
- let
- open S
- in
- flags [irusr, iwusr, irgrp, iwgrp, iroth, iwoth]
- end
- in
- createf (file, O_WRONLY, flags, mode)
- handle e =>
- raise Fail (concat ["MLton.World.save unable to open ",
- file, " due to ",
- General.exnMessage e])
- end
- val _ = Prim.save fd
+ val () =
+ SysCall.simple'
+ ({ errVal = true },
+ fn () => Prim.save (NullString.nullTerm file))
in
if Prim.getAmOriginal gcState
- then (Posix.IO.close fd; Original)
+ then Original
else (Prim.setAmOriginal (gcState, true)
; Cleaner.clean Cleaner.atLoadWorld
; Clone)
Modified: mlton/branches/on-20050822-x86_64-branch/basis-library/primitive/basis-ffi.sml
===================================================================
--- mlton/branches/on-20050822-x86_64-branch/basis-library/primitive/basis-ffi.sml 2006-06-10 20:28:00 UTC (rev 4641)
+++ mlton/branches/on-20050822-x86_64-branch/basis-library/primitive/basis-ffi.sml 2006-06-11 02:37:23 UTC (rev 4642)
@@ -1,1411 +1,1411 @@
-(* This file is automatically generated. Do not edit. *)
-
-local open Primitive in
-structure PrimitiveFFI =
-struct
-structure CommandLine =
-struct
-val (argcGet, argcSet) = _symbol "CommandLine_argc": (unit -> (C_Int.t)) * ((C_Int.t) -> unit);
-val (argvGet, argvSet) = _symbol "CommandLine_argv": (unit -> (C_StringArray.t)) * ((C_StringArray.t) -> unit);
-val (commandNameGet, commandNameSet) = _symbol "CommandLine_commandName": (unit -> (C_String.t)) * ((C_String.t) -> unit);
-end
-structure Cygwin =
-struct
-val toFullWindowsPath = _import "Cygwin_toFullWindowsPath" : NullString8.t -> C_String.t;
-end
-structure Date =
-struct
-val gmTime = _import "Date_gmTime" : (C_Time.t) ref -> (C_Int.t) C_Errno.t;
-val localOffset = _import "Date_localOffset" : unit -> C_Double.t;
-val localTime = _import "Date_localTime" : (C_Time.t) ref -> (C_Int.t) C_Errno.t;
-val mkTime = _import "Date_mkTime" : unit -> (C_Time.t) C_Errno.t;
-val strfTime = _import "Date_strfTime" : (Char8.t) array * C_Size.t * NullString8.t -> C_Size.t;
-structure Tm =
-struct
-val getHour = _import "Date_Tm_getHour" : unit -> C_Int.t;
-val getIsDst = _import "Date_Tm_getIsDst" : unit -> C_Int.t;
-val getMDay = _import "Date_Tm_getMDay" : unit -> C_Int.t;
-val getMin = _import "Date_Tm_getMin" : unit -> C_Int.t;
-val getMon = _import "Date_Tm_getMon" : unit -> C_Int.t;
-val getSec = _import "Date_Tm_getSec" : unit -> C_Int.t;
-val getWDay = _import "Date_Tm_getWDay" : unit -> C_Int.t;
-val getYDay = _import "Date_Tm_getYDay" : unit -> C_Int.t;
-val getYear = _import "Date_Tm_getYear" : unit -> C_Int.t;
-val setHour = _import "Date_Tm_setHour" : C_Int.t -> unit;
-val setIsDst = _import "Date_Tm_setIsDst" : C_Int.t -> unit;
-val setMDay = _import "Date_Tm_setMDay" : C_Int.t -> unit;
-val setMin = _import "Date_Tm_setMin" : C_Int.t -> unit;
-val setMon = _import "Date_Tm_setMon" : C_Int.t -> unit;
-val setSec = _import "Date_Tm_setSec" : C_Int.t -> unit;
-val setWDay = _import "Date_Tm_setWDay" : C_Int.t -> unit;
-val setYDay = _import "Date_Tm_setYDay" : C_Int.t -> unit;
-val setYear = _import "Date_Tm_setYear" : C_Int.t -> unit;
-end
-end
-structure IEEEReal =
-struct
-structure FloatClass =
-struct
-val FP_INFINITE = _const "IEEEReal_FloatClass_FP_INFINITE" : C_Int.t;
-val FP_NAN = _const "IEEEReal_FloatClass_FP_NAN" : C_Int.t;
-val FP_NORMAL = _const "IEEEReal_FloatClass_FP_NORMAL" : C_Int.t;
-val FP_SUBNORMAL = _const "IEEEReal_FloatClass_FP_SUBNORMAL" : C_Int.t;
-val FP_ZERO = _const "IEEEReal_FloatClass_FP_ZERO" : C_Int.t;
-end
-val getRoundingMode = _import "IEEEReal_getRoundingMode" : unit -> C_Int.t;
-structure RoundingMode =
-struct
-val FE_DOWNWARD = _const "IEEEReal_RoundingMode_FE_DOWNWARD" : C_Int.t;
-val FE_NOSUPPORT = _const "IEEEReal_RoundingMode_FE_NOSUPPORT" : C_Int.t;
-val FE_TONEAREST = _const "IEEEReal_RoundingMode_FE_TONEAREST" : C_Int.t;
-val FE_TOWARDZERO = _const "IEEEReal_RoundingMode_FE_TOWARDZERO" : C_Int.t;
-val FE_UPWARD = _const "IEEEReal_RoundingMode_FE_UPWARD" : C_Int.t;
-end
-val setRoundingMode = _import "IEEEReal_setRoundingMode" : C_Int.t -> unit;
-end
-structure MLton =
-struct
-val bug = _import "MLton_bug" : NullString8.t -> unit;
-structure Itimer =
-struct
-val PROF = _const "MLton_Itimer_PROF" : C_Int.t;
-val REAL = _const "MLton_Itimer_REAL" : C_Int.t;
-val set = _import "MLton_Itimer_set" : C_Int.t * C_Time.t * C_SUSeconds.t * C_Time.t * C_SUSeconds.t -> (C_Int.t) C_Errno.t;
-val VIRTUAL = _const "MLton_Itimer_VIRTUAL" : C_Int.t;
-end
-structure Process =
-struct
-val cwait = _import "MLton_Process_cwait" : C_PId.t * (C_Status.t) ref -> (C_PId.t) C_Errno.t;
-val spawne = _import "MLton_Process_spawne" : NullString8.t * NullString8Array.t * NullString8Array.t -> (C_Int.t) C_Errno.t;
-val spawnp = _import "MLton_Process_spawnp" : NullString8.t * NullString8Array.t -> (C_Int.t) C_Errno.t;
-end
-structure Rlimit =
-struct
-val AS = _const "MLton_Rlimit_AS" : C_Int.t;
-val CORE = _const "MLton_Rlimit_CORE" : C_Int.t;
-val CPU = _const "MLton_Rlimit_CPU" : C_Int.t;
-val DATA = _const "MLton_Rlimit_DATA" : C_Int.t;
-val FSIZE = _const "MLton_Rlimit_FSIZE" : C_Int.t;
-val get = _import "MLton_Rlimit_get" : C_Int.t -> (C_Int.t) C_Errno.t;
-val getHard = _import "MLton_Rlimit_getHard" : unit -> C_RLim.t;
-val getSoft = _import "MLton_Rlimit_getSoft" : unit -> C_RLim.t;
-val INFINITY = _const "MLton_Rlimit_INFINITY" : C_RLim.t;
-val NOFILE = _const "MLton_Rlimit_NOFILE" : C_Int.t;
-val set = _import "MLton_Rlimit_set" : C_Int.t * C_RLim.t * C_RLim.t -> (C_Int.t) C_Errno.t;
-val STACK = _const "MLton_Rlimit_STACK" : C_Int.t;
-end
-structure Rusage =
-struct
-val children_stime_sec = _import "MLton_Rusage_children_stime_sec" : unit -> C_Time.t;
-val children_stime_usec = _import "MLton_Rusage_children_stime_usec" : unit -> C_SUSeconds.t;
-val children_utime_sec = _import "MLton_Rusage_children_utime_sec" : unit -> C_Time.t;
-val children_utime_usec = _import "MLton_Rusage_children_utime_usec" : unit -> C_SUSeconds.t;
-val gc_stime_sec = _import "MLton_Rusage_gc_stime_sec" : unit -> C_Time.t;
-val gc_stime_usec = _import "MLton_Rusage_gc_stime_usec" : unit -> C_SUSeconds.t;
-val gc_utime_sec = _import "MLton_Rusage_gc_utime_sec" : unit -> C_Time.t;
-val gc_utime_usec = _import "MLton_Rusage_gc_utime_usec" : unit -> C_SUSeconds.t;
-val getrusage = _import "MLton_Rusage_getrusage" : unit -> unit;
-val self_stime_sec = _import "MLton_Rusage_self_stime_sec" : unit -> C_Time.t;
-val self_stime_usec = _import "MLton_Rusage_self_stime_usec" : unit -> C_SUSeconds.t;
-val self_utime_sec = _import "MLton_Rusage_self_utime_sec" : unit -> C_Time.t;
-val self_utime_usec = _import "MLton_Rusage_self_utime_usec" : unit -> C_SUSeconds.t;
-end
-structure Syslog =
-struct
-val closelog = _import "MLton_Syslog_closelog" : unit -> unit;
-structure Facility =
-struct
-val LOG_AUTH = _const "MLton_Syslog_Facility_LOG_AUTH" : C_Int.t;
-val LOG_CRON = _const "MLton_Syslog_Facility_LOG_CRON" : C_Int.t;
-val LOG_DAEMON = _const "MLton_Syslog_Facility_LOG_DAEMON" : C_Int.t;
-val LOG_KERN = _const "MLton_Syslog_Facility_LOG_KERN" : C_Int.t;
-val LOG_LOCAL0 = _const "MLton_Syslog_Facility_LOG_LOCAL0" : C_Int.t;
-val LOG_LOCAL1 = _const "MLton_Syslog_Facility_LOG_LOCAL1" : C_Int.t;
-val LOG_LOCAL2 = _const "MLton_Syslog_Facility_LOG_LOCAL2" : C_Int.t;
-val LOG_LOCAL3 = _const "MLton_Syslog_Facility_LOG_LOCAL3" : C_Int.t;
-val LOG_LOCAL4 = _const "MLton_Syslog_Facility_LOG_LOCAL4" : C_Int.t;
-val LOG_LOCAL5 = _const "MLton_Syslog_Facility_LOG_LOCAL5" : C_Int.t;
-val LOG_LOCAL6 = _const "MLton_Syslog_Facility_LOG_LOCAL6" : C_Int.t;
-val LOG_LOCAL7 = _const "MLton_Syslog_Facility_LOG_LOCAL7" : C_Int.t;
-val LOG_LPR = _const "MLton_Syslog_Facility_LOG_LPR" : C_Int.t;
-val LOG_MAIL = _const "MLton_Syslog_Facility_LOG_MAIL" : C_Int.t;
-val LOG_NEWS = _const "MLton_Syslog_Facility_LOG_NEWS" : C_Int.t;
-val LOG_USER = _const "MLton_Syslog_Facility_LOG_USER" : C_Int.t;
-val LOG_UUCP = _const "MLton_Syslog_Facility_LOG_UUCP" : C_Int.t;
-end
-structure Logopt =
-struct
-val LOG_CONS = _const "MLton_Syslog_Logopt_LOG_CONS" : C_Int.t;
-val LOG_NDELAY = _const "MLton_Syslog_Logopt_LOG_NDELAY" : C_Int.t;
-val LOG_NOWAIT = _const "MLton_Syslog_Logopt_LOG_NOWAIT" : C_Int.t;
-val LOG_ODELAY = _const "MLton_Syslog_Logopt_LOG_ODELAY" : C_Int.t;
-val LOG_PID = _const "MLton_Syslog_Logopt_LOG_PID" : C_Int.t;
-end
-val openlog = _import "MLton_Syslog_openlog" : NullString8.t * C_Int.t * C_Int.t -> unit;
-structure Severity =
-struct
-val LOG_ALERT = _const "MLton_Syslog_Severity_LOG_ALERT" : C_Int.t;
-val LOG_CRIT = _const "MLton_Syslog_Severity_LOG_CRIT" : C_Int.t;
-val LOG_DEBUG = _const "MLton_Syslog_Severity_LOG_DEBUG" : C_Int.t;
-val LOG_EMERG = _const "MLton_Syslog_Severity_LOG_EMERG" : C_Int.t;
-val LOG_ERR = _const "MLton_Syslog_Severity_LOG_ERR" : C_Int.t;
-val LOG_INFO = _const "MLton_Syslog_Severity_LOG_INFO" : C_Int.t;
-val LOG_NOTICE = _const "MLton_Syslog_Severity_LOG_NOTICE" : C_Int.t;
-val LOG_WARNING = _const "MLton_Syslog_Severity_LOG_WARNING" : C_Int.t;
-end
-val syslog = _import "MLton_Syslog_syslog" : C_Int.t * NullString8.t -> unit;
-end
-end
-structure Net =
-struct
-val htonl = _import "Net_htonl" : Word32.t -> Word32.t;
-val htons = _import "Net_htons" : Word16.t -> Word16.t;
-val ntohl = _import "Net_ntohl" : Word32.t -> Word32.t;
-val ntohs = _import "Net_ntohs" : Word16.t -> Word16.t;
-end
-structure NetHostDB =
-struct
-val getByAddress = _import "NetHostDB_getByAddress" : (Word8.t) vector * C_Socklen.t -> Bool.t;
-val getByName = _import "NetHostDB_getByName" : NullString8.t -> Bool.t;
-val getEntryAddrsN = _import "NetHostDB_getEntryAddrsN" : C_Int.t * (Word8.t) array -> unit;
-val getEntryAddrsNum = _import "NetHostDB_getEntryAddrsNum" : unit -> C_Int.t;
-val getEntryAddrType = _import "NetHostDB_getEntryAddrType" : unit -> C_Int.t;
-val getEntryAliasesN = _import "NetHostDB_getEntryAliasesN" : C_Int.t -> C_String.t;
-val getEntryAliasesNum = _import "NetHostDB_getEntryAliasesNum" : unit -> C_Int.t;
-val getEntryLength = _import "NetHostDB_getEntryLength" : unit -> C_Int.t;
-val getEntryName = _import "NetHostDB_getEntryName" : unit -> C_String.t;
-val getHostName = _import "NetHostDB_getHostName" : (Char8.t) array * C_Size.t -> (C_Int.t) C_Errno.t;
-val INADDR_ANY = _const "NetHostDB_INADDR_ANY" : C_Int.t;
-val inAddrSize = _const "NetHostDB_inAddrSize" : C_Size.t;
-end
-structure NetProtDB =
-struct
-val getByName = _import "NetProtDB_getByName" : NullString8.t -> Bool.t;
-val getByNumber = _import "NetProtDB_getByNumber" : C_Int.t -> Bool.t;
-val getEntryAliasesN = _import "NetProtDB_getEntryAliasesN" : C_Int.t -> C_String.t;
-val getEntryAliasesNum = _import "NetProtDB_getEntryAliasesNum" : unit -> C_Int.t;
-val getEntryName = _import "NetProtDB_getEntryName" : unit -> C_String.t;
-val getEntryProto = _import "NetProtDB_getEntryProto" : unit -> C_Int.t;
-end
-structure NetServDB =
-struct
-val getByName = _import "NetServDB_getByName" : NullString8.t * NullString8.t -> Bool.t;
-val getByNameNull = _import "NetServDB_getByNameNull" : NullString8.t -> Bool.t;
-val getByPort = _import "NetServDB_getByPort" : C_Int.t * NullString8.t -> Bool.t;
-val getByPortNull = _import "NetServDB_getByPortNull" : C_Int.t -> Bool.t;
-val getEntryAliasesN = _import "NetServDB_getEntryAliasesN" : C_Int.t -> C_String.t;
-val getEntryAliasesNum = _import "NetServDB_getEntryAliasesNum" : unit -> C_Int.t;
-val getEntryName = _import "NetServDB_getEntryName" : unit -> C_String.t;
-val getEntryPort = _import "NetServDB_getEntryPort" : unit -> C_Int.t;
-val getEntryProto = _import "NetServDB_getEntryProto" : unit -> C_String.t;
-end
-structure OS =
-struct
-structure IO =
-struct
-val poll = _import "OS_IO_poll" : (C_Fd.t) vector * (C_Short.t) vector * C_NFds.t * C_Int.t * (C_Short.t) array -> (C_Int.t) C_Errno.t;
-val POLLIN = _const "OS_IO_POLLIN" : C_Short.t;
-val POLLOUT = _const "OS_IO_POLLOUT" : C_Short.t;
-val POLLPRI = _const "OS_IO_POLLPRI" : C_Short.t;
-end
-end
-structure PackReal32 =
-struct
-val subArr = _import "PackReal32_subArr" : (Word8.t) array * C_Ptrdiff.t -> Real32.t;
-val subArrRev = _import "PackReal32_subArrRev" : (Word8.t) array * C_Ptrdiff.t -> Real32.t;
-val subVec = _import "PackReal32_subVec" : (Word8.t) vector * C_Ptrdiff.t -> Real32.t;
-val subVecRev = _import "PackReal32_subVecRev" : (Word8.t) vector * C_Ptrdiff.t -> Real32.t;
-val update = _import "PackReal32_update" : (Word8.t) array * C_Ptrdiff.t * Real32.t -> unit;
-val updateRev = _import "PackReal32_updateRev" : (Word8.t) array * C_Ptrdiff.t * Real32.t -> unit;
-end
-structure PackReal64 =
-struct
-val subArr = _import "PackReal64_subArr" : (Word8.t) array * C_Ptrdiff.t -> Real64.t;
-val subArrRev = _import "PackReal64_subArrRev" : (Word8.t) array * C_Ptrdiff.t -> Real64.t;
-val subVec = _import "PackReal64_subVec" : (Word8.t) vector * C_Ptrdiff.t -> Real64.t;
-val subVecRev = _import "PackReal64_subVecRev" : (Word8.t) vector * C_Ptrdiff.t -> Real64.t;
-val update = _import "PackReal64_update" : (Word8.t) array * C_Ptrdiff.t * Real64.t -> unit;
-val updateRev = _import "PackReal64_updateRev" : (Word8.t) array * C_Ptrdiff.t * Real64.t -> unit;
-end
-structure PackWord16 =
-struct
-val subArr = _import "PackWord16_subArr" : (Word8.t) array * C_Ptrdiff.t -> Word16.t;
-val subArrRev = _import "PackWord16_subArrRev" : (Word8.t) array * C_Ptrdiff.t -> Word16.t;
-val subVec = _import "PackWord16_subVec" : (Word8.t) vector * C_Ptrdiff.t -> Word16.t;
-val subVecRev = _import "PackWord16_subVecRev" : (Word8.t) vector * C_Ptrdiff.t -> Word16.t;
-val update = _import "PackWord16_update" : (Word8.t) array * C_Ptrdiff.t * Word16.t -> unit;
-val updateRev = _import "PackWord16_updateRev" : (Word8.t) array * C_Ptrdiff.t * Word16.t -> unit;
-end
-structure PackWord32 =
-struct
-val subArr = _import "PackWord32_subArr" : (Word8.t) array * C_Ptrdiff.t -> Word32.t;
-val subArrRev = _import "PackWord32_subArrRev" : (Word8.t) array * C_Ptrdiff.t -> Word32.t;
-val subVec = _import "PackWord32_subVec" : (Word8.t) vector * C_Ptrdiff.t -> Word32.t;
-val subVecRev = _import "PackWord32_subVecRev" : (Word8.t) vector * C_Ptrdiff.t -> Word32.t;
-val update = _import "PackWord32_update" : (Word8.t) array * C_Ptrdiff.t * Word32.t -> unit;
-val updateRev = _import "PackWord32_updateRev" : (Word8.t) array * C_Ptrdiff.t * Word32.t -> unit;
-end
-structure PackWord64 =
-struct
-val subArr = _import "PackWord64_subArr" : (Word8.t) array * C_Ptrdiff.t -> Word64.t;
-val subArrRev = _import "PackWord64_subArrRev" : (Word8.t) array * C_Ptrdiff.t -> Word64.t;
-val subVec = _import "PackWord64_subVec" : (Word8.t) vector * C_Ptrdiff.t -> Word64.t;
-val subVecRev = _import "PackWord64_subVecRev" : (Word8.t) vector * C_Ptrdiff.t -> Word64.t;
-val update = _import "PackWord64_update" : (Word8.t) array * C_Ptrdiff.t * Word64.t -> unit;
-val updateRev = _import "PackWord64_updateRev" : (Word8.t) array * C_Ptrdiff.t * Word64.t -> unit;
-end
-structure PackWord8 =
-struct
-val subArr = _import "PackWord8_subArr" : (Word8.t) array * C_Ptrdiff.t -> Word8.t;
-val subArrRev = _import "PackWord8_subArrRev" : (Word8.t) array * C_Ptrdiff.t -> Word8.t;
-val subVec = _import "PackWord8_subVec" : (Word8.t) vector * C_Ptrdiff.t -> Word8.t;
-val subVecRev = _import "PackWord8_subVecRev" : (Word8.t) vector * C_Ptrdiff.t -> Word8.t;
-val update = _import "PackWord8_update" : (Word8.t) array * C_Ptrdiff.t * Word8.t -> unit;
-val updateRev = _import "PackWord8_updateRev" : (Word8.t) array * C_Ptrdiff.t * Word8.t -> unit;
-end
-structure Posix =
-struct
-structure Error =
-struct
-val clearErrno = _import "Posix_Error_clearErrno" : unit -> unit;
-val E2BIG = _const "Posix_Error_E2BIG" : C_Int.t;
-val EACCES = _const "Posix_Error_EACCES" : C_Int.t;
-val EADDRINUSE = _const "Posix_Error_EADDRINUSE" : C_Int.t;
-val EADDRNOTAVAIL = _const "Posix_Error_EADDRNOTAVAIL" : C_Int.t;
-val EAFNOSUPPORT = _const "Posix_Error_EAFNOSUPPORT" : C_Int.t;
-val EAGAIN = _const "Posix_Error_EAGAIN" : C_Int.t;
-val EALREADY = _const "Posix_Error_EALREADY" : C_Int.t;
-val EBADF = _const "Posix_Error_EBADF" : C_Int.t;
-val EBADMSG = _const "Posix_Error_EBADMSG" : C_Int.t;
-val EBUSY = _const "Posix_Error_EBUSY" : C_Int.t;
-val ECANCELED = _const "Posix_Error_ECANCELED" : C_Int.t;
-val ECHILD = _const "Posix_Error_ECHILD" : C_Int.t;
-val ECONNABORTED = _const "Posix_Error_ECONNABORTED" : C_Int.t;
-val ECONNREFUSED = _const "Posix_Error_ECONNREFUSED" : C_Int.t;
-val ECONNRESET = _const "Posix_Error_ECONNRESET" : C_Int.t;
-val EDEADLK = _const "Posix_Error_EDEADLK" : C_Int.t;
-val EDESTADDRREQ = _const "Posix_Error_EDESTADDRREQ" : C_Int.t;
-val EDOM = _const "Posix_Error_EDOM" : C_Int.t;
-val EDQUOT = _const "Posix_Error_EDQUOT" : C_Int.t;
-val EEXIST = _const "Posix_Error_EEXIST" : C_Int.t;
-val EFAULT = _const "Posix_Error_EFAULT" : C_Int.t;
-val EFBIG = _const "Posix_Error_EFBIG" : C_Int.t;
-val EHOSTUNREACH = _const "Posix_Error_EHOSTUNREACH" : C_Int.t;
-val EIDRM = _const "Posix_Error_EIDRM" : C_Int.t;
-val EILSEQ = _const "Posix_Error_EILSEQ" : C_Int.t;
-val EINPROGRESS = _const "Posix_Error_EINPROGRESS" : C_Int.t;
-val EINTR = _const "Posix_Error_EINTR" : C_Int.t;
-val EINVAL = _const "Posix_Error_EINVAL" : C_Int.t;
-val EIO = _const "Posix_Error_EIO" : C_Int.t;
-val EISCONN = _const "Posix_Error_EISCONN" : C_Int.t;
-val EISDIR = _const "Posix_Error_EISDIR" : C_Int.t;
-val ELOOP = _const "Posix_Error_ELOOP" : C_Int.t;
-val EMFILE = _const "Posix_Error_EMFILE" : C_Int.t;
-val EMLINK = _const "Posix_Error_EMLINK" : C_Int.t;
-val EMSGSIZE = _const "Posix_Error_EMSGSIZE" : C_Int.t;
-val EMULTIHOP = _const "Posix_Error_EMULTIHOP" : C_Int.t;
-val ENAMETOOLONG = _const "Posix_Error_ENAMETOOLONG" : C_Int.t;
-val ENETDOWN = _const "Posix_Error_ENETDOWN" : C_Int.t;
-val ENETRESET = _const "Posix_Error_ENETRESET" : C_Int.t;
-val ENETUNREACH = _const "Posix_Error_ENETUNREACH" : C_Int.t;
-val ENFILE = _const "Posix_Error_ENFILE" : C_Int.t;
-val ENOBUFS = _const "Posix_Error_ENOBUFS" : C_Int.t;
-val ENODATA = _const "Posix_Error_ENODATA" : C_Int.t;
-val ENODEV = _const "Posix_Error_ENODEV" : C_Int.t;
-val ENOENT = _const "Posix_Error_ENOENT" : C_Int.t;
-val ENOEXEC = _const "Posix_Error_ENOEXEC" : C_Int.t;
-val ENOLCK = _const "Posix_Error_ENOLCK" : C_Int.t;
-val ENOLINK = _const "Posix_Error_ENOLINK" : C_Int.t;
-val ENOMEM = _const "Posix_Error_ENOMEM" : C_Int.t;
-val ENOMSG = _const "Posix_Error_ENOMSG" : C_Int.t;
-val ENOPROTOOPT = _const "Posix_Error_ENOPROTOOPT" : C_Int.t;
-val ENOSPC = _const "Posix_Error_ENOSPC" : C_Int.t;
-val ENOSR = _const "Posix_Error_ENOSR" : C_Int.t;
-val ENOSTR = _const "Posix_Error_ENOSTR" : C_Int.t;
-val ENOSYS = _const "Posix_Error_ENOSYS" : C_Int.t;
-val ENOTCONN = _const "Posix_Error_ENOTCONN" : C_Int.t;
-val ENOTDIR = _const "Posix_Error_ENOTDIR" : C_Int.t;
-val ENOTEMPTY = _const "Posix_Error_ENOTEMPTY" : C_Int.t;
-val ENOTSOCK = _const "Posix_Error_ENOTSOCK" : C_Int.t;
-val ENOTSUP = _const "Posix_Error_ENOTSUP" : C_Int.t;
-val ENOTTY = _const "Posix_Error_ENOTTY" : C_Int.t;
-val ENXIO = _const "Posix_Error_ENXIO" : C_Int.t;
-val EOPNOTSUPP = _const "Posix_Error_EOPNOTSUPP" : C_Int.t;
-val EOVERFLOW = _const "Posix_Error_EOVERFLOW" : C_Int.t;
-val EPERM = _const "Posix_Error_EPERM" : C_Int.t;
-val EPIPE = _const "Posix_Error_EPIPE" : C_Int.t;
-val EPROTO = _const "Posix_Error_EPROTO" : C_Int.t;
-val EPROTONOSUPPORT = _const "Posix_Error_EPROTONOSUPPORT" : C_Int.t;
-val EPROTOTYPE = _const "Posix_Error_EPROTOTYPE" : C_Int.t;
-val ERANGE = _const "Posix_Error_ERANGE" : C_Int.t;
-val EROFS = _const "Posix_Error_EROFS" : C_Int.t;
-val ESPIPE = _const "Posix_Error_ESPIPE" : C_Int.t;
-val ESRCH = _const "Posix_Error_ESRCH" : C_Int.t;
-val ESTALE = _const "Posix_Error_ESTALE" : C_Int.t;
-val ETIME = _const "Posix_Error_ETIME" : C_Int.t;
-val ETIMEDOUT = _const "Posix_Error_ETIMEDOUT" : C_Int.t;
-val ETXTBSY = _const "Posix_Error_ETXTBSY" : C_Int.t;
-val EWOULDBLOCK = _const "Posix_Error_EWOULDBLOCK" : C_Int.t;
-val EXDEV = _const "Posix_Error_EXDEV" : C_Int.t;
-val getErrno = _import "Posix_Error_getErrno" : unit -> C_Int.t;
-val strError = _import "Posix_Error_strError" : C_Int.t -> C_String.t;
-end
-structure FileSys =
-struct
-structure A =
-struct
-val F_OK = _const "Posix_FileSys_A_F_OK" : C_Int.t;
-val R_OK = _const "Posix_FileSys_A_R_OK" : C_Int.t;
-val W_OK = _const "Posix_FileSys_A_W_OK" : C_Int.t;
-val X_OK = _const "Posix_FileSys_A_X_OK" : C_Int.t;
-end
-val access = _import "Posix_FileSys_access" : NullString8.t * C_Int.t -> (C_Int.t) C_Errno.t;
-val chdir = _import "Posix_FileSys_chdir" : NullString8.t -> (C_Int.t) C_Errno.t;
-val chmod = _import "Posix_FileSys_chmod" : NullString8.t * C_Mode.t -> (C_Int.t) C_Errno.t;
-val chown = _import "Posix_FileSys_chown" : NullString8.t * C_UId.t * C_GId.t -> (C_Int.t) C_Errno.t;
-structure Dirstream =
-struct
-val closeDir = _import "Posix_FileSys_Dirstream_closeDir" : C_DirP.t -> (C_Int.t) C_Errno.t;
-val openDir = _import "Posix_FileSys_Dirstream_openDir" : NullString8.t -> (C_DirP.t) C_Errno.t;
-val readDir = _import "Posix_FileSys_Dirstream_readDir" : C_DirP.t -> (C_String.t) C_Errno.t;
-val rewindDir = _import "Posix_FileSys_Dirstream_rewindDir" : C_DirP.t -> unit;
-end
-val fchdir = _import "Posix_FileSys_fchdir" : C_Fd.t -> (C_Int.t) C_Errno.t;
-val fchmod = _import "Posix_FileSys_fchmod" : C_Fd.t * C_Mode.t -> (C_Int.t) C_Errno.t;
-val fchown = _import "Posix_FileSys_fchown" : C_Fd.t * C_UId.t * C_GId.t -> (C_Int.t) C_Errno.t;
-val fpathconf = _import "Posix_FileSys_fpathconf" : C_Fd.t * C_Int.t -> (C_Long.t) C_Errno.t;
-val ftruncate = _import "Posix_FileSys_ftruncate" : C_Fd.t * C_Off.t -> (C_Int.t) C_Errno.t;
-val getcwd = _import "Posix_FileSys_getcwd" : (Char8.t) array * C_Size.t -> (C_String.t) C_Errno.t;
-val link = _import "Posix_FileSys_link" : NullString8.t * NullString8.t -> (C_Int.t) C_Errno.t;
-val mkdir = _import "Posix_FileSys_mkdir" : NullString8.t * C_Mode.t -> (C_Int.t) C_Errno.t;
-val mkfifo = _import "Posix_FileSys_mkfifo" : NullString8.t * C_Mode.t -> (C_Int.t) C_Errno.t;
-structure O =
-struct
-val APPEND = _const "Posix_FileSys_O_APPEND" : C_Int.t;
-val BINARY = _const "Posix_FileSys_O_BINARY" : C_Int.t;
-val CREAT = _const "Posix_FileSys_O_CREAT" : C_Int.t;
-val DSYNC = _const "Posix_FileSys_O_DSYNC" : C_Int.t;
-val EXCL = _const "Posix_FileSys_O_EXCL" : C_Int.t;
-val NOCTTY = _const "Posix_FileSys_O_NOCTTY" : C_Int.t;
-val NONBLOCK = _const "Posix_FileSys_O_NONBLOCK" : C_Int.t;
-val RDONLY = _const "Posix_FileSys_O_RDONLY" : C_Int.t;
-val RDWR = _const "Posix_FileSys_O_RDWR" : C_Int.t;
-val RSYNC = _const "Posix_FileSys_O_RSYNC" : C_Int.t;
-val SYNC = _const "Posix_FileSys_O_SYNC" : C_Int.t;
-val TEXT = _const "Posix_FileSys_O_TEXT" : C_Int.t;
-val TRUNC = _const "Posix_FileSys_O_TRUNC" : C_Int.t;
-val WRONLY = _const "Posix_FileSys_O_WRONLY" : C_Int.t;
-end
-val open2 = _import "Posix_FileSys_open2" : NullString8.t * C_Int.t -> (C_Fd.t) C_Errno.t;
-val open3 = _import "Posix_FileSys_open3" : NullString8.t * C_Int.t * C_Mode.t -> (C_Fd.t) C_Errno.t;
-val pathconf = _import "Posix_FileSys_pathconf" : NullString8.t * C_Int.t -> (C_Long.t) C_Errno.t;
-structure PC =
-struct
-val ALLOC_SIZE_MIN = _const "Posix_FileSys_PC_ALLOC_SIZE_MIN" : C_Int.t;
-val ASYNC_IO = _const "Posix_FileSys_PC_ASYNC_IO" : C_Int.t;
-val CHOWN_RESTRICTED = _const "Posix_FileSys_PC_CHOWN_RESTRICTED" : C_Int.t;
-val FILESIZEBITS = _const "Posix_FileSys_PC_FILESIZEBITS" : C_Int.t;
-val LINK_MAX = _const "Posix_FileSys_PC_LINK_MAX" : C_Int.t;
-val MAX_CANON = _const "Posix_FileSys_PC_MAX_CANON" : C_Int.t;
-val MAX_INPUT = _const "Posix_FileSys_PC_MAX_INPUT" : C_Int.t;
-val NAME_MAX = _const "Posix_FileSys_PC_NAME_MAX" : C_Int.t;
-val NO_TRUNC = _const "Posix_FileSys_PC_NO_TRUNC" : C_Int.t;
-val PATH_MAX = _const "Posix_FileSys_PC_PATH_MAX" : C_Int.t;
-val PIPE_BUF = _const "Posix_FileSys_PC_PIPE_BUF" : C_Int.t;
-val PRIO_IO = _const "Posix_FileSys_PC_PRIO_IO" : C_Int.t;
-val REC_INCR_XFER_SIZE = _const "Posix_FileSys_PC_REC_INCR_XFER_SIZE" : C_Int.t;
-val REC_MAX_XFER_SIZE = _const "Posix_FileSys_PC_REC_MAX_XFER_SIZE" : C_Int.t;
-val REC_MIN_XFER_SIZE = _const "Posix_FileSys_PC_REC_MIN_XFER_SIZE" : C_Int.t;
-val REC_XFER_ALIGN = _const "Posix_FileSys_PC_REC_XFER_ALIGN" : C_Int.t;
-val SYMLINK_MAX = _const "Posix_FileSys_PC_SYMLINK_MAX" : C_Int.t;
-val SYNC_IO = _const "Posix_FileSys_PC_SYNC_IO" : C_Int.t;
-val TWO_SYMLINKS = _const "Posix_FileSys_PC_TWO_SYMLINKS" : C_Int.t;
-val VDISABLE = _const "Posix_FileSys_PC_VDISABLE" : C_Int.t;
-end
-val readlink = _import "Posix_FileSys_readlink" : NullString8.t * (Char8.t) array * C_Size.t -> (C_SSize.t) C_Errno.t;
-val rename = _import "Posix_FileSys_rename" : NullString8.t * NullString8.t -> (C_Int.t) C_Errno.t;
-val rmdir = _import "Posix_FileSys_rmdir" : NullString8.t -> (C_Int.t) C_Errno.t;
-structure S =
-struct
-val IFBLK = _const "Posix_FileSys_S_IFBLK" : C_Mode.t;
-val IFCHR = _const "Posix_FileSys_S_IFCHR" : C_Mode.t;
-val IFDIR = _const "Posix_FileSys_S_IFDIR" : C_Mode.t;
-val IFIFO = _const "Posix_FileSys_S_IFIFO" : C_Mode.t;
-val IFLNK = _const "Posix_FileSys_S_IFLNK" : C_Mode.t;
-val IFMT = _const "Posix_FileSys_S_IFMT" : C_Mode.t;
-val IFREG = _const "Posix_FileSys_S_IFREG" : C_Mode.t;
-val IFSOCK = _const "Posix_FileSys_S_IFSOCK" : C_Mode.t;
-val IRGRP = _const "Posix_FileSys_S_IRGRP" : C_Mode.t;
-val IROTH = _const "Posix_FileSys_S_IROTH" : C_Mode.t;
-val IRUSR = _const "Posix_FileSys_S_IRUSR" : C_Mode.t;
-val IRWXG = _const "Posix_FileSys_S_IRWXG" : C_Mode.t;
-val IRWXO = _const "Posix_FileSys_S_IRWXO" : C_Mode.t;
-val IRWXU = _const "Posix_FileSys_S_IRWXU" : C_Mode.t;
-val ISGID = _const "Posix_FileSys_S_ISGID" : C_Mode.t;
-val ISUID = _const "Posix_FileSys_S_ISUID" : C_Mode.t;
-val ISVTX = _const "Posix_FileSys_S_ISVTX" : C_Mode.t;
-val IWGRP = _const "Posix_FileSys_S_IWGRP" : C_Mode.t;
-val IWOTH = _const "Posix_FileSys_S_IWOTH" : C_Mode.t;
-val IWUSR = _const "Posix_FileSys_S_IWUSR" : C_Mode.t;
-val IXGRP = _const "Posix_FileSys_S_IXGRP" : C_Mode.t;
-val IXOTH = _const "Posix_FileSys_S_IXOTH" : C_Mode.t;
-val IXUSR = _const "Posix_FileSys_S_IXUSR" : C_Mode.t;
-end
-structure ST =
-struct
-val isBlk = _import "Posix_FileSys_ST_isBlk" : C_Mode.t -> Bool.t;
-val isChr = _import "Posix_FileSys_ST_isChr" : C_Mode.t -> Bool.t;
-val isDir = _import "Posix_FileSys_ST_isDir" : C_Mode.t -> Bool.t;
-val isFIFO = _import "Posix_FileSys_ST_isFIFO" : C_Mode.t -> Bool.t;
-val isLink = _import "Posix_FileSys_ST_isLink" : C_Mode.t -> Bool.t;
-val isReg = _import "Posix_FileSys_ST_isReg" : C_Mode.t -> Bool.t;
-val isSock = _import "Posix_FileSys_ST_isSock" : C_Mode.t -> Bool.t;
-end
-structure Stat =
-struct
-val fstat = _import "Posix_FileSys_Stat_fstat" : C_Fd.t -> (C_Int.t) C_Errno.t;
-val getATime = _import "Posix_FileSys_Stat_getATime" : unit -> C_Time.t;
-val getCTime = _import "Posix_FileSys_Stat_getCTime" : unit -> C_Time.t;
-val getDev = _import "Posix_FileSys_Stat_getDev" : unit -> C_Dev.t;
-val getGId = _import "Posix_FileSys_Stat_getGId" : unit -> C_GId.t;
-val getINo = _import "Posix_FileSys_Stat_getINo" : unit -> C_INo.t;
-val getMode = _import "Posix_FileSys_Stat_getMode" : unit -> C_Mode.t;
-val getMTime = _import "Posix_FileSys_Stat_getMTime" : unit -> C_Time.t;
-val getNLink = _import "Posix_FileSys_Stat_getNLink" : unit -> C_NLink.t;
-val getRDev = _import "Posix_FileSys_Stat_getRDev" : unit -> C_Dev.t;
-val getSize = _import "Posix_FileSys_Stat_getSize" : unit -> C_Off.t;
-val getUId = _import "Posix_FileSys_Stat_getUId" : unit -> C_UId.t;
-val lstat = _import "Posix_FileSys_Stat_lstat" : NullString8.t -> (C_Int.t) C_Errno.t;
-val stat = _import "Posix_FileSys_Stat_stat" : NullString8.t -> (C_Int.t) C_Errno.t;
-end
-val symlink = _import "Posix_FileSys_symlink" : NullString8.t * NullString8.t -> (C_Int.t) C_Errno.t;
-val truncate = _import "Posix_FileSys_truncate" : NullString8.t * C_Off.t -> (C_Int.t) C_Errno.t;
-val umask = _import "Posix_FileSys_umask" : C_Mode.t -> C_Mode.t;
-val unlink = _import "Posix_FileSys_unlink" : NullString8.t -> (C_Int.t) C_Errno.t;
-structure Utimbuf =
-struct
-val setAcTime = _import "Posix_FileSys_Utimbuf_setAcTime" : C_Time.t -> unit;
-val setModTime = _import "Posix_FileSys_Utimbuf_setModTime" : C_Time.t -> unit;
-val utime = _import "Posix_FileSys_Utimbuf_utime" : NullString8.t -> (C_Int.t) C_Errno.t;
-end
-end
-structure IO =
-struct
-val close = _import "Posix_IO_close" : C_Fd.t -> (C_Int.t) C_Errno.t;
-val dup = _import "Posix_IO_dup" : C_Fd.t -> (C_Fd.t) C_Errno.t;
-val dup2 = _import "Posix_IO_dup2" : C_Fd.t * C_Fd.t -> (C_Fd.t) C_Errno.t;
-val F_DUPFD = _const "Posix_IO_F_DUPFD" : C_Int.t;
-val F_GETFD = _const "Posix_IO_F_GETFD" : C_Int.t;
-val F_GETFL = _const "Posix_IO_F_GETFL" : C_Int.t;
-val F_GETOWN = _const "Posix_IO_F_GETOWN" : C_Int.t;
-val F_SETFD = _const "Posix_IO_F_SETFD" : C_Int.t;
-val F_SETFL = _const "Posix_IO_F_SETFL" : C_Int.t;
-val F_SETOWN = _const "Posix_IO_F_SETOWN" : C_Int.t;
-val fcntl2 = _import "Posix_IO_fcntl2" : C_Fd.t * C_Int.t -> (C_Int.t) C_Errno.t;
-val fcntl3 = _import "Posix_IO_fcntl3" : C_Fd.t * C_Int.t * C_Int.t -> (C_Int.t) C_Errno.t;
-structure FD =
-struct
-val CLOEXEC = _const "Posix_IO_FD_CLOEXEC" : C_Int.t;
-end
-structure FLock =
-struct
-val F_GETLK = _const "Posix_IO_FLock_F_GETLK" : C_Int.t;
-val F_RDLCK = _const "Posix_IO_FLock_F_RDLCK" : C_Short.t;
-val F_SETLK = _const "Posix_IO_FLock_F_SETLK" : C_Int.t;
-val F_SETLKW = _const "Posix_IO_FLock_F_SETLKW" : C_Int.t;
-val F_UNLCK = _const "Posix_IO_FLock_F_UNLCK" : C_Short.t;
-val F_WRLCK = _const "Posix_IO_FLock_F_WRLCK" : C_Short.t;
-val fcntl = _import "Posix_IO_FLock_fcntl" : C_Fd.t * C_Int.t -> (C_Int.t) C_Errno.t;
-val getLen = _import "Posix_IO_FLock_getLen" : unit -> C_Off.t;
-val getPId = _import "Posix_IO_FLock_getPId" : unit -> C_PId.t;
-val getStart = _import "Posix_IO_FLock_getStart" : unit -> C_Off.t;
-val getType = _import "Posix_IO_FLock_getType" : unit -> C_Short.t;
-val getWhence = _import "Posix_IO_FLock_getWhence" : unit -> C_Short.t;
-val SEEK_CUR = _const "Posix_IO_FLock_SEEK_CUR" : C_Short.t;
-val SEEK_END = _const "Posix_IO_FLock_SEEK_END" : C_Short.t;
-val SEEK_SET = _const "Posix_IO_FLock_SEEK_SET" : C_Short.t;
-val setLen = _import "Posix_IO_FLock_setLen" : C_Off.t -> unit;
-val setPId = _import "Posix_IO_FLock_setPId" : C_PId.t -> unit;
-val setStart = _import "Posix_IO_FLock_setStart" : C_Off.t -> unit;
-val setType = _import "Posix_IO_FLock_setType" : C_Short.t -> unit;
-val setWhence = _import "Posix_IO_FLock_setWhence" : C_Short.t -> unit;
-end
-val fsync = _import "Posix_IO_fsync" : C_Fd.t -> (C_Int.t) C_Errno.t;
-val lseek = _import "Posix_IO_lseek" : C_Fd.t * C_Off.t * C_Int.t -> (C_Off.t) C_Errno.t;
-val O_ACCMODE = _const "Posix_IO_O_ACCMODE" : C_Int.t;
-val pipe = _import "Posix_IO_pipe" : (C_Fd.t) array -> (C_Int.t) C_Errno.t;
-val readChar8 = _import "Posix_IO_readChar8" : C_Fd.t * (Char8.t) array * C_Int.t * C_Size.t -> (C_SSize.t) C_Errno.t;
-val readWord8 = _import "Posix_IO_readWord8" : C_Fd.t * (Word8.t) array * C_Int.t * C_Size.t -> (C_SSize.t) C_Errno.t;
-val SEEK_CUR = _const "Posix_IO_SEEK_CUR" : C_Int.t;
-val SEEK_END = _const "Posix_IO_SEEK_END" : C_Int.t;
-val SEEK_SET = _const "Posix_IO_SEEK_SET" : C_Int.t;
-val setbin = _import "Posix_IO_setbin" : C_Fd.t -> unit;
-val settext = _import "Posix_IO_settext" : C_Fd.t -> unit;
-val writeChar8Arr = _import "Posix_IO_writeChar8Arr" : C_Fd.t * (Char8.t) array * C_Int.t * C_Size.t -> (C_SSize.t) C_Errno.t;
-val writeChar8Vec = _import "Posix_IO_writeChar8Vec" : C_Fd.t * (Char8.t) vector * C_Int.t * C_Size.t -> (C_SSize.t) C_Errno.t;
-val writeWord8Arr = _import "Posix_IO_writeWord8Arr" : C_Fd.t * (Word8.t) array * C_Int.t * C_Size.t -> (C_SSize.t) C_Errno.t;
-val writeWord8Vec = _import "Posix_IO_writeWord8Vec" : C_Fd.t * (Word8.t) vector * C_Int.t * C_Size.t -> (C_SSize.t) C_Errno.t;
-end
-structure ProcEnv =
-struct
-val ctermid = _import "Posix_ProcEnv_ctermid" : unit -> C_String.t;
-val (environGet, environSet) = _symbol "Posix_ProcEnv_environ": (unit -> (C_StringArray.t)) * ((C_StringArray.t) -> unit);
-val getegid = _import "Posix_ProcEnv_getegid" : unit -> C_GId.t;
-val getenv = _import "Posix_ProcEnv_getenv" : NullString8.t -> C_String.t;
-val geteuid = _import "Posix_ProcEnv_geteuid" : unit -> C_UId.t;
-val getgid = _import "Posix_ProcEnv_getgid" : unit -> C_GId.t;
-val getgroups = _import "Posix_ProcEnv_getgroups" : C_Int.t * (C_GId.t) array -> (C_Int.t) C_Errno.t;
-val getgroupsN = _import "Posix_ProcEnv_getgroupsN" : unit -> C_Int.t;
-val getlogin = _import "Posix_ProcEnv_getlogin" : unit -> (C_String.t) C_Errno.t;
-val getpgrp = _import "Posix_ProcEnv_getpgrp" : unit -> C_PId.t;
-val getpid = _import "Posix_ProcEnv_getpid" : unit -> C_PId.t;
-val getppid = _import "Posix_ProcEnv_getppid" : unit -> C_PId.t;
-val getuid = _import "Posix_ProcEnv_getuid" : unit -> C_UId.t;
-val isatty = _import "Posix_ProcEnv_isatty" : C_Fd.t -> Bool.t;
-val SC_2_C_BIND = _const "Posix_ProcEnv_SC_2_C_BIND" : C_Int.t;
-val SC_2_C_DEV = _const "Posix_ProcEnv_SC_2_C_DEV" : C_Int.t;
-val SC_2_CHAR_TERM = _const "Posix_ProcEnv_SC_2_CHAR_TERM" : C_Int.t;
-val SC_2_FORT_DEV = _const "Posix_ProcEnv_SC_2_FORT_DEV" : C_Int.t;
-val SC_2_FORT_RUN = _const "Posix_ProcEnv_SC_2_FORT_RUN" : C_Int.t;
-val SC_2_LOCALEDEF = _const "Posix_ProcEnv_SC_2_LOCALEDEF" : C_Int.t;
-val SC_2_PBS = _const "Posix_ProcEnv_SC_2_PBS" : C_Int.t;
-val SC_2_PBS_ACCOUNTING = _const "Posix_ProcEnv_SC_2_PBS_ACCOUNTING" : C_Int.t;
-val SC_2_PBS_CHECKPOINT = _const "Posix_ProcEnv_SC_2_PBS_CHECKPOINT" : C_Int.t;
-val SC_2_PBS_LOCATE = _const "Posix_ProcEnv_SC_2_PBS_LOCATE" : C_Int.t;
-val SC_2_PBS_MESSAGE = _const "Posix_ProcEnv_SC_2_PBS_MESSAGE" : C_Int.t;
-val SC_2_PBS_TRACK = _const "Posix_ProcEnv_SC_2_PBS_TRACK" : C_Int.t;
-val SC_2_SW_DEV = _const "Posix_ProcEnv_SC_2_SW_DEV" : C_Int.t;
-val SC_2_UPE = _const "Posix_ProcEnv_SC_2_UPE" : C_Int.t;
-val SC_2_VERSION = _const "Posix_ProcEnv_SC_2_VERSION" : C_Int.t;
-val SC_ADVISORY_INFO = _const "Posix_ProcEnv_SC_ADVISORY_INFO" : C_Int.t;
-val SC_AIO_LISTIO_MAX = _const "Posix_ProcEnv_SC_AIO_LISTIO_MAX" : C_Int.t;
-val SC_AIO_MAX = _const "Posix_ProcEnv_SC_AIO_MAX" : C_Int.t;
-val SC_AIO_PRIO_DELTA_MAX = _const "Posix_ProcEnv_SC_AIO_PRIO_DELTA_MAX" : C_Int.t;
-val SC_ARG_MAX = _const "Posix_ProcEnv_SC_ARG_MAX" : C_Int.t;
-val SC_ASYNCHRONOUS_IO = _const "Posix_ProcEnv_SC_ASYNCHRONOUS_IO" : C_Int.t;
-val SC_ATEXIT_MAX = _const "Posix_ProcEnv_SC_ATEXIT_MAX" : C_Int.t;
-val SC_BARRIERS = _const "Posix_ProcEnv_SC_BARRIERS" : C_Int.t;
-val SC_BC_BASE_MAX = _const "Posix_ProcEnv_SC_BC_BASE_MAX" : C_Int.t;
-val SC_BC_DIM_MAX = _const "Posix_ProcEnv_SC_BC_DIM_MAX" : C_Int.t;
-val SC_BC_SCALE_MAX = _const "Posix_ProcEnv_SC_BC_SCALE_MAX" : C_Int.t;
-val SC_BC_STRING_MAX = _const "Posix_ProcEnv_SC_BC_STRING_MAX" : C_Int.t;
-val SC_CHILD_MAX = _const "Posix_ProcEnv_SC_CHILD_MAX" : C_Int.t;
-val SC_CLK_TCK = _const "Posix_ProcEnv_SC_CLK_TCK" : C_Int.t;
-val SC_CLOCK_SELECTION = _const "Posix_ProcEnv_SC_CLOCK_SELECTION" : C_Int.t;
-val SC_COLL_WEIGHTS_MAX = _const "Posix_ProcEnv_SC_COLL_WEIGHTS_MAX" : C_Int.t;
-val SC_CPUTIME = _const "Posix_ProcEnv_SC_CPUTIME" : C_Int.t;
-val SC_DELAYTIMER_MAX = _const "Posix_ProcEnv_SC_DELAYTIMER_MAX" : C_Int.t;
-val SC_EXPR_NEST_MAX = _const "Posix_ProcEnv_SC_EXPR_NEST_MAX" : C_Int.t;
-val SC_FSYNC = _const "Posix_ProcEnv_SC_FSYNC" : C_Int.t;
-val SC_GETGR_R_SIZE_MAX = _const "Posix_ProcEnv_SC_GETGR_R_SIZE_MAX" : C_Int.t;
-val SC_GETPW_R_SIZE_MAX = _const "Posix_ProcEnv_SC_GETPW_R_SIZE_MAX" : C_Int.t;
-val SC_HOST_NAME_MAX = _const "Posix_ProcEnv_SC_HOST_NAME_MAX" : C_Int.t;
-val SC_IOV_MAX = _const "Posix_ProcEnv_SC_IOV_MAX" : C_Int.t;
-val SC_IPV6 = _const "Posix_ProcEnv_SC_IPV6" : C_Int.t;
-val SC_JOB_CONTROL = _const "Posix_ProcEnv_SC_JOB_CONTROL" : C_Int.t;
-val SC_LINE_MAX = _const "Posix_ProcEnv_SC_LINE_MAX" : C_Int.t;
-val SC_LOGIN_NAME_MAX = _const "Posix_ProcEnv_SC_LOGIN_NAME_MAX" : C_Int.t;
-val SC_MAPPED_FILES = _const "Posix_ProcEnv_SC_MAPPED_FILES" : C_Int.t;
-val SC_MEMLOCK = _const "Posix_ProcEnv_SC_MEMLOCK" : C_Int.t;
-val SC_MEMLOCK_RANGE = _const "Posix_ProcEnv_SC_MEMLOCK_RANGE" : C_Int.t;
-val SC_MEMORY_PROTECTION = _const "Posix_ProcEnv_SC_MEMORY_PROTECTION" : C_Int.t;
-val SC_MESSAGE_PASSING = _const "Posix_ProcEnv_SC_MESSAGE_PASSING" : C_Int.t;
-val SC_MONOTONIC_CLOCK = _const "Posix_ProcEnv_SC_MONOTONIC_CLOCK" : C_Int.t;
-val SC_MQ_OPEN_MAX = _const "Posix_ProcEnv_SC_MQ_OPEN_MAX" : C_Int.t;
-val SC_MQ_PRIO_MAX = _const "Posix_ProcEnv_SC_MQ_PRIO_MAX" : C_Int.t;
-val SC_NGROUPS_MAX = _const "Posix_ProcEnv_SC_NGROUPS_MAX" : C_Int.t;
-val SC_OPEN_MAX = _const "Posix_ProcEnv_SC_OPEN_MAX" : C_Int.t;
-val SC_PAGE_SIZE = _const "Posix_ProcEnv_SC_PAGE_SIZE" : C_Int.t;
-val SC_PAGESIZE = _const "Posix_ProcEnv_SC_PAGESIZE" : C_Int.t;
-val SC_PRIORITIZED_IO = _const "Posix_ProcEnv_SC_PRIORITIZED_IO" : C_Int.t;
-val SC_PRIORITY_SCHEDULING = _const "Posix_ProcEnv_SC_PRIORITY_SCHEDULING" : C_Int.t;
-val SC_RAW_SOCKETS = _const "Posix_ProcEnv_SC_RAW_SOCKETS" : C_Int.t;
-val SC_RE_DUP_MAX = _const "Posix_ProcEnv_SC_RE_DUP_MAX" : C_Int.t;
-val SC_READER_WRITER_LOCKS = _const "Posix_ProcEnv_SC_READER_WRITER_LOCKS" : C_Int.t;
-val SC_REALTIME_SIGNALS = _const "Posix_ProcEnv_SC_REALTIME_SIGNALS" : C_Int.t;
-val SC_REGEXP = _const "Posix_ProcEnv_SC_REGEXP" : C_Int.t;
-val SC_RTSIG_MAX = _const "Posix_ProcEnv_SC_RTSIG_MAX" : C_Int.t;
-val SC_SAVED_IDS = _const "Posix_ProcEnv_SC_SAVED_IDS" : C_Int.t;
-val SC_SEM_NSEMS_MAX = _const "Posix_ProcEnv_SC_SEM_NSEMS_MAX" : C_Int.t;
-val SC_SEM_VALUE_MAX = _const "Posix_ProcEnv_SC_SEM_VALUE_MAX" : C_Int.t;
-val SC_SEMAPHORES = _const "Posix_ProcEnv_SC_SEMAPHORES" : C_Int.t;
-val SC_SHARED_MEMORY_OBJECTS = _const "Posix_ProcEnv_SC_SHARED_MEMORY_OBJECTS" : C_Int.t;
-val SC_SHELL = _const "Posix_ProcEnv_SC_SHELL" : C_Int.t;
-val SC_SIGQUEUE_MAX = _const "Posix_ProcEnv_SC_SIGQUEUE_MAX" : C_Int.t;
-val SC_SPAWN = _const "Posix_ProcEnv_SC_SPAWN" : C_Int.t;
-val SC_SPIN_LOCKS = _const "Posix_ProcEnv_SC_SPIN_LOCKS" : C_Int.t;
-val SC_SPORADIC_SERVER = _const "Posix_ProcEnv_SC_SPORADIC_SERVER" : C_Int.t;
-val SC_SS_REPL_MAX = _const "Posix_ProcEnv_SC_SS_REPL_MAX" : C_Int.t;
-val SC_STREAM_MAX = _const "Posix_ProcEnv_SC_STREAM_MAX" : C_Int.t;
-val SC_SYMLOOP_MAX = _const "Posix_ProcEnv_SC_SYMLOOP_MAX" : C_Int.t;
-val SC_SYNCHRONIZED_IO = _const "Posix_ProcEnv_SC_SYNCHRONIZED_IO" : C_Int.t;
-val SC_THREAD_ATTR_STACKADDR = _const "Posix_ProcEnv_SC_THREAD_ATTR_STACKADDR" : C_Int.t;
-val SC_THREAD_ATTR_STACKSIZE = _const "Posix_ProcEnv_SC_THREAD_ATTR_STACKSIZE" : C_Int.t;
-val SC_THREAD_CPUTIME = _const "Posix_ProcEnv_SC_THREAD_CPUTIME" : C_Int.t;
-val SC_THREAD_DESTRUCTOR_ITERATIONS = _const "Posix_ProcEnv_SC_THREAD_DESTRUCTOR_ITERATIONS" : C_Int.t;
-val SC_THREAD_KEYS_MAX = _const "Posix_ProcEnv_SC_THREAD_KEYS_MAX" : C_Int.t;
-val SC_THREAD_PRIO_INHERIT = _const "Posix_ProcEnv_SC_THREAD_PRIO_INHERIT" : C_Int.t;
-val SC_THREAD_PRIO_PROTECT = _const "Posix_ProcEnv_SC_THREAD_PRIO_PROTECT" : C_Int.t;
-val SC_THREAD_PRIORITY_SCHEDULING = _const "Posix_ProcEnv_SC_THREAD_PRIORITY_SCHEDULING" : C_Int.t;
-val SC_THREAD_PROCESS_SHARED = _const "Posix_ProcEnv_SC_THREAD_PROCESS_SHARED" : C_Int.t;
-val SC_THREAD_SAFE_FUNCTIONS = _const "Posix_ProcEnv_SC_THREAD_SAFE_FUNCTIONS" : C_Int.t;
-val SC_THREAD_SPORADIC_SERVER = _const "Posix_ProcEnv_SC_THREAD_SPORADIC_SERVER" : C_Int.t;
-val SC_THREAD_STACK_MIN = _const "Posix_ProcEnv_SC_THREAD_STACK_MIN" : C_Int.t;
-val SC_THREAD_THREADS_MAX = _const "Posix_ProcEnv_SC_THREAD_THREADS_MAX" : C_Int.t;
-val SC_THREADS = _const "Posix_ProcEnv_SC_THREADS" : C_Int.t;
-val SC_TIMEOUTS = _const "Posix_ProcEnv_SC_TIMEOUTS" : C_Int.t;
-val SC_TIMER_MAX = _const "Posix_ProcEnv_SC_TIMER_MAX" : C_Int.t;
-val SC_TIMERS = _const "Posix_ProcEnv_SC_TIMERS" : C_Int.t;
-val SC_TRACE = _const "Posix_ProcEnv_SC_TRACE" : C_Int.t;
-val SC_TRACE_EVENT_FILTER = _const "Posix_ProcEnv_SC_TRACE_EVENT_FILTER" : C_Int.t;
-val SC_TRACE_EVENT_NAME_MAX = _const "Posix_ProcEnv_SC_TRACE_EVENT_NAME_MAX" : C_Int.t;
-val SC_TRACE_INHERIT = _const "Posix_ProcEnv_SC_TRACE_INHERIT" : C_Int.t;
-val SC_TRACE_LOG = _const "Posix_ProcEnv_SC_TRACE_LOG" : C_Int.t;
-val SC_TRACE_NAME_MAX = _const "Posix_ProcEnv_SC_TRACE_NAME_MAX" : C_Int.t;
-val SC_TRACE_SYS_MAX = _const "Posix_ProcEnv_SC_TRACE_SYS_MAX" : C_Int.t;
-val SC_TRACE_USER_EVENT_MAX = _const "Posix_ProcEnv_SC_TRACE_USER_EVENT_MAX" : C_Int.t;
-val SC_TTY_NAME_MAX = _const "Posix_ProcEnv_SC_TTY_NAME_MAX" : C_Int.t;
-val SC_TYPED_MEMORY_OBJECTS = _const "Posix_ProcEnv_SC_TYPED_MEMORY_OBJECTS" : C_Int.t;
-val SC_TZNAME_MAX = _const "Posix_ProcEnv_SC_TZNAME_MAX" : C_Int.t;
-val SC_V6_ILP32_OFF32 = _const "Posix_ProcEnv_SC_V6_ILP32_OFF32" : C_Int.t;
-val SC_V6_ILP32_OFFBIG = _const "Posix_ProcEnv_SC_V6_ILP32_OFFBIG" : C_Int.t;
-val SC_V6_LP64_OFF64 = _const "Posix_ProcEnv_SC_V6_LP64_OFF64" : C_Int.t;
-val SC_V6_LPBIG_OFFBIG = _const "Posix_ProcEnv_SC_V6_LPBIG_OFFBIG" : C_Int.t;
-val SC_VERSION = _const "Posix_ProcEnv_SC_VERSION" : C_Int.t;
-val SC_XBS5_ILP32_OFF32 = _const "Posix_ProcEnv_SC_XBS5_ILP32_OFF32" : C_Int.t;
-val SC_XBS5_ILP32_OFFBIG = _const "Posix_ProcEnv_SC_XBS5_ILP32_OFFBIG" : C_Int.t;
-val SC_XBS5_LP64_OFF64 = _const "Posix_ProcEnv_SC_XBS5_LP64_OFF64" : C_Int.t;
-val SC_XBS5_LPBIG_OFFBIG = _const "Posix_ProcEnv_SC_XBS5_LPBIG_OFFBIG" : C_Int.t;
-val SC_XOPEN_CRYPT = _const "Posix_ProcEnv_SC_XOPEN_CRYPT" : C_Int.t;
-val SC_XOPEN_ENH_I18N = _const "Posix_ProcEnv_SC_XOPEN_ENH_I18N" : C_Int.t;
-val SC_XOPEN_LEGACY = _const "Posix_ProcEnv_SC_XOPEN_LEGACY" : C_Int.t;
-val SC_XOPEN_REALTIME = _const "Posix_ProcEnv_SC_XOPEN_REALTIME" : C_Int.t;
-val SC_XOPEN_REALTIME_THREADS = _const "Posix_ProcEnv_SC_XOPEN_REALTIME_THREADS" : C_Int.t;
-val SC_XOPEN_SHM = _const "Posix_ProcEnv_SC_XOPEN_SHM" : C_Int.t;
-val SC_XOPEN_STREAMS = _const "Posix_ProcEnv_SC_XOPEN_STREAMS" : C_Int.t;
-val SC_XOPEN_UNIX = _const "Posix_ProcEnv_SC_XOPEN_UNIX" : C_Int.t;
-val SC_XOPEN_VERSION = _const "Posix_ProcEnv_SC_XOPEN_VERSION" : C_Int.t;
-val setenv = _import "Posix_ProcEnv_setenv" : NullString8.t * NullString8.t -> (C_Int.t) C_Errno.t;
-val setgid = _import "Posix_ProcEnv_setgid" : C_GId.t -> (C_Int.t) C_Errno.t;
-val setgroups = _impor...
[truncated message content] |