[MLton-commit] r4428

Matthew Fluet MLton@mlton.org
Sun, 30 Apr 2006 13:08:37 -0700


Define MLton.Pointer.t = C_Pointer.t
----------------------------------------------------------------------

U   mlton/branches/on-20050822-x86_64-branch/basis-library.refactor/Makefile
U   mlton/branches/on-20050822-x86_64-branch/basis-library.refactor/build/sources.mlb
U   mlton/branches/on-20050822-x86_64-branch/basis-library.refactor/config/c/amd64-linux/c-types.sml
U   mlton/branches/on-20050822-x86_64-branch/basis-library.refactor/config/c/misc/c-types.m32.sml
U   mlton/branches/on-20050822-x86_64-branch/basis-library.refactor/config/c/misc/c-types.m64.sml
U   mlton/branches/on-20050822-x86_64-branch/basis-library.refactor/config/c/x86-linux/c-types.sml
U   mlton/branches/on-20050822-x86_64-branch/basis-library.refactor/primitive/prim-basis.sml
U   mlton/branches/on-20050822-x86_64-branch/basis-library.refactor/primitive/prim-mlton.sml
U   mlton/branches/on-20050822-x86_64-branch/basis-library.refactor/primitive/primitive.mlb
U   mlton/branches/on-20050822-x86_64-branch/basis-library.refactor/primitive/primitive.sml
U   mlton/branches/on-20050822-x86_64-branch/runtime/gen/gen-types.c

----------------------------------------------------------------------

Modified: mlton/branches/on-20050822-x86_64-branch/basis-library.refactor/Makefile
===================================================================
--- mlton/branches/on-20050822-x86_64-branch/basis-library.refactor/Makefile	2006-04-30 19:24:40 UTC (rev 4427)
+++ mlton/branches/on-20050822-x86_64-branch/basis-library.refactor/Makefile	2006-04-30 20:08:35 UTC (rev 4428)
@@ -23,7 +23,8 @@
 OBJPTR_REP_MAPS = objptr-rep32.map objptr-rep64.map 
 HEADER_MAPS = header-word32.map header-word64.map
 SEQ_INDEX_MAPS = seqindex-int32.map seqindex-int64.map 
-CTYPES_MAPS = c-types.m32.map c-types.m64.map c-types.weird.map
+# CTYPES_MAPS = c-types.m32.map c-types.m64.map c-types.weird.map
+CTYPES_MAPS = c-types.m32.map c-types.m64.map
 DEFAULT_CHAR_MAPS = default-char8.map
 DEFAULT_INT_MAPS = default-int32.map default-int64.map default-int-inf.map 
 DEFAULT_REAL_MAPS = default-real32.map default-real64.map

Modified: mlton/branches/on-20050822-x86_64-branch/basis-library.refactor/build/sources.mlb
===================================================================
--- mlton/branches/on-20050822-x86_64-branch/basis-library.refactor/build/sources.mlb	2006-04-30 19:24:40 UTC (rev 4427)
+++ mlton/branches/on-20050822-x86_64-branch/basis-library.refactor/build/sources.mlb	2006-04-30 20:08:35 UTC (rev 4428)
@@ -21,7 +21,7 @@
    ../integer/word0.sml
    local 
       ../config/bind/int-prim.sml 
-      ../config/bind/pointer-prim.sml 
+      (* ../config/bind/pointer-prim.sml *)
       ../config/bind/real-prim.sml 
       ../config/bind/word-prim.sml 
    in ann "forceUsed" in
@@ -113,7 +113,7 @@
    ../integer/word.sml
    local 
       ../config/bind/int-top.sml 
-      ../config/bind/pointer-prim.sml 
+      (* ../config/bind/pointer-prim.sml *)
       ../config/bind/real-prim.sml 
       ../config/bind/word-top.sml 
    in ann "forceUsed" in
@@ -145,7 +145,7 @@
    ../integer/pack-word.sml
    local 
       ../config/bind/int-top.sml 
-      ../config/bind/pointer-prim.sml 
+      (* ../config/bind/pointer-prim.sml *)
       ../config/bind/real-prim.sml 
       ../config/bind/word-top.sml 
    in ann "forceUsed" in
@@ -188,7 +188,7 @@
    ../real/real-global.sml
    local 
       ../config/bind/int-top.sml 
-      ../config/bind/pointer-prim.sml 
+      (* ../config/bind/pointer-prim.sml *)
       ../config/bind/real-top.sml 
       ../config/bind/word-top.sml 
    in ann "forceUsed" in
@@ -261,25 +261,25 @@
    ../general/sml90.sig
    ../general/sml90.sml
 
+   ../mlton/pointer.sig
+   (* ../mlton/pointer.sml *)
+   (* ../mlton/call-stack.sig *)
+   (* ../mlton/call-stack.sml *)
+   (* ../mlton/exit.sml *)
+   (* ../mlton/exn.sig *)
+   (* ../mlton/exn.sml *)
+   (* ../mlton/thread.sig *)
+   (* ../mlton/thread.sml *)
+   (* ../mlton/signal.sig *)
+   (* ../mlton/signal.sml *)
+   (* ../mlton/process.sig *)
+   (* ../mlton/process.sml *)
+   (* ../mlton/gc.sig *)
+   (* ../mlton/gc.sml *)
+   (* ../mlton/rusage.sig *)
+   (* ../mlton/rusage.sml *)
+
 (*
-      ../../mlton/pointer.sig
-      ../../mlton/pointer.sml
-      ../../mlton/call-stack.sig
-      ../../mlton/call-stack.sml
-      ../../mlton/exit.sml
-      ../../mlton/exn.sig
-      ../../mlton/exn.sml
-      ../../mlton/thread.sig
-      ../../mlton/thread.sml
-      ../../mlton/signal.sig
-      ../../mlton/signal.sml
-      ../../mlton/process.sig
-      ../../mlton/process.sml
-      ../../mlton/gc.sig
-      ../../mlton/gc.sml
-      ../../mlton/rusage.sig
-      ../../mlton/rusage.sml
-
       ../../system/process.sig
       ../../system/process.sml
       ../../system/io.sig

Modified: mlton/branches/on-20050822-x86_64-branch/basis-library.refactor/config/c/amd64-linux/c-types.sml
===================================================================
--- mlton/branches/on-20050822-x86_64-branch/basis-library.refactor/config/c/amd64-linux/c-types.sml	2006-04-30 19:24:40 UTC (rev 4427)
+++ mlton/branches/on-20050822-x86_64-branch/basis-library.refactor/config/c/amd64-linux/c-types.sml	2006-04-30 20:08:35 UTC (rev 4428)
@@ -44,9 +44,12 @@
 structure C_Size = struct open Word32 type t = word end
 functor C_Size_ChooseWordN (A: CHOOSE_WORDN_ARG) = ChooseWordN_Word32 (A)
 
-structure C_Pointer = Pointer
-structure C_String = Pointer
-structure C_StringArray = Pointer
+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
@@ -65,6 +68,10 @@
 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

Modified: mlton/branches/on-20050822-x86_64-branch/basis-library.refactor/config/c/misc/c-types.m32.sml
===================================================================
--- mlton/branches/on-20050822-x86_64-branch/basis-library.refactor/config/c/misc/c-types.m32.sml	2006-04-30 19:24:40 UTC (rev 4427)
+++ mlton/branches/on-20050822-x86_64-branch/basis-library.refactor/config/c/misc/c-types.m32.sml	2006-04-30 20:08:35 UTC (rev 4428)
@@ -44,9 +44,12 @@
 structure C_Size = struct open Word32 type t = word end
 functor C_Size_ChooseWordN (A: CHOOSE_WORDN_ARG) = ChooseWordN_Word32 (A)
 
-structure C_Pointer = Pointer
-structure C_String = Pointer
-structure C_StringArray = Pointer
+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
@@ -65,6 +68,10 @@
 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

Modified: mlton/branches/on-20050822-x86_64-branch/basis-library.refactor/config/c/misc/c-types.m64.sml
===================================================================
--- mlton/branches/on-20050822-x86_64-branch/basis-library.refactor/config/c/misc/c-types.m64.sml	2006-04-30 19:24:40 UTC (rev 4427)
+++ mlton/branches/on-20050822-x86_64-branch/basis-library.refactor/config/c/misc/c-types.m64.sml	2006-04-30 20:08:35 UTC (rev 4428)
@@ -44,9 +44,12 @@
 structure C_Size = struct open Word64 type t = word end
 functor C_Size_ChooseWordN (A: CHOOSE_WORDN_ARG) = ChooseWordN_Word64 (A)
 
-structure C_Pointer = Pointer
-structure C_String = Pointer
-structure C_StringArray = Pointer
+structure C_Pointer = struct open Word64 type t = word end
+functor C_Pointer_ChooseWordN (A: CHOOSE_WORDN_ARG) = ChooseWordN_Word64 (A)
+structure C_String = struct open Word64 type t = word end
+functor C_String_ChooseWordN (A: CHOOSE_WORDN_ARG) = ChooseWordN_Word64 (A)
+structure C_StringArray = struct open Word64 type t = word end
+functor C_StringArray_ChooseWordN (A: CHOOSE_WORDN_ARG) = ChooseWordN_Word64 (A)
 
 (* Generic integers *)
 structure C_Fd = C_Int
@@ -65,6 +68,10 @@
 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 Int64 type t = int end
+functor C_Intptr_ChooseIntN (A: CHOOSE_INTN_ARG) = ChooseIntN_Int64 (A)
+structure C_UIntptr = struct open Word64 type t = word end
+functor C_UIntptr_ChooseWordN (A: CHOOSE_WORDN_ARG) = ChooseWordN_Word64 (A)
 
 (* from <dirent.h> *)
 structure C_DirP = struct open Word64 type t = word end

Modified: mlton/branches/on-20050822-x86_64-branch/basis-library.refactor/config/c/x86-linux/c-types.sml
===================================================================
--- mlton/branches/on-20050822-x86_64-branch/basis-library.refactor/config/c/x86-linux/c-types.sml	2006-04-30 19:24:40 UTC (rev 4427)
+++ mlton/branches/on-20050822-x86_64-branch/basis-library.refactor/config/c/x86-linux/c-types.sml	2006-04-30 20:08:35 UTC (rev 4428)
@@ -44,9 +44,12 @@
 structure C_Size = struct open Word32 type t = word end
 functor C_Size_ChooseWordN (A: CHOOSE_WORDN_ARG) = ChooseWordN_Word32 (A)
 
-structure C_Pointer = Pointer
-structure C_String = Pointer
-structure C_StringArray = Pointer
+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
@@ -65,6 +68,10 @@
 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
@@ -125,4 +132,3 @@
 functor C_MPLimb_ChooseWordN (A: CHOOSE_WORDN_ARG) = ChooseWordN_Word32 (A)
 
 
-structure C_Errno = struct type 'a t = 'a end

Modified: mlton/branches/on-20050822-x86_64-branch/basis-library.refactor/primitive/prim-basis.sml
===================================================================
--- mlton/branches/on-20050822-x86_64-branch/basis-library.refactor/primitive/prim-basis.sml	2006-04-30 19:24:40 UTC (rev 4427)
+++ mlton/branches/on-20050822-x86_64-branch/basis-library.refactor/primitive/prim-basis.sml	2006-04-30 20:08:35 UTC (rev 4428)
@@ -432,10 +432,12 @@
    end
 
 (* Primitive Basis (MLton Extensions) *)
+(*
 structure Pointer =
    struct
       type t = pointer
    end
+*)
 structure Thread =
    struct
       type t = thread

Modified: mlton/branches/on-20050822-x86_64-branch/basis-library.refactor/primitive/prim-mlton.sml
===================================================================
--- mlton/branches/on-20050822-x86_64-branch/basis-library.refactor/primitive/prim-mlton.sml	2006-04-30 19:24:40 UTC (rev 4427)
+++ mlton/branches/on-20050822-x86_64-branch/basis-library.refactor/primitive/prim-mlton.sml	2006-04-30 20:08:35 UTC (rev 4428)
@@ -25,6 +25,42 @@
 val installSignalHandler =
    _prim "MLton_installSignalHandler": unit -> unit;
 
+structure Pointer =
+   struct
+      (* open Pointer *)
+      type t = C_Pointer.t
+
+      val fromWord = fn x => x
+      val toWord = fn x => x
+               
+      val null: t = fromWord 0w0
+
+      fun isNull p = p = null
+
+      val getInt8 = _prim "Pointer_getWord8": t * C_Ptrdiff.t -> Int8.int;
+      val getInt16 = _prim "Pointer_getWord16": t * C_Ptrdiff.t -> Int16.int;
+      val getInt32 = _prim "Pointer_getWord32": t * C_Ptrdiff.t -> Int32.int;
+      val getInt64 = _prim "Pointer_getWord64": t * C_Ptrdiff.t -> Int64.int;
+      val getPointer = _prim "Pointer_getPointer": t * C_Ptrdiff.t -> 'a;
+      val getReal32 = _prim "Pointer_getReal32": t * C_Ptrdiff.t -> Real32.real;
+      val getReal64 = _prim "Pointer_getReal64": t * C_Ptrdiff.t -> Real64.real;
+      val getWord8 = _prim "Pointer_getWord8": t * C_Ptrdiff.t -> Word8.word;
+      val getWord16 = _prim "Pointer_getWord16": t * C_Ptrdiff.t -> Word16.word;
+      val getWord32 = _prim "Pointer_getWord32": t * C_Ptrdiff.t -> Word32.word;
+      val getWord64 = _prim "Pointer_getWord64": t * C_Ptrdiff.t -> Word64.word;
+      val setInt8 = _prim "Pointer_setWord8": t * C_Ptrdiff.t * Int8.int -> unit;
+      val setInt16 = _prim "Pointer_setWord16": t * C_Ptrdiff.t * Int16.int -> unit;
+      val setInt32 = _prim "Pointer_setWord32": t * C_Ptrdiff.t * Int32.int -> unit;
+      val setInt64 = _prim "Pointer_setWord64": t * C_Ptrdiff.t * Int64.int -> unit;
+      val setPointer = _prim "Pointer_setPointer": t * C_Ptrdiff.t * 'a -> unit;
+      val setReal32 = _prim "Pointer_setReal32": t * C_Ptrdiff.t * Real32.real -> unit;
+      val setReal64 = _prim "Pointer_setReal64": t * C_Ptrdiff.t * Real64.real -> unit;
+      val setWord8 = _prim "Pointer_setWord8": t * C_Ptrdiff.t * Word8.word -> unit;
+      val setWord16 = _prim "Pointer_setWord16": t * C_Ptrdiff.t * Word16.word -> unit;
+      val setWord32 = _prim "Pointer_setWord32": t * C_Ptrdiff.t * Word32.word -> unit;
+      val setWord64 = _prim "Pointer_setWord64": t * C_Ptrdiff.t * Word64.word -> unit;
+   end
+
 structure GCState =
    struct
       type t = Pointer.t
@@ -186,41 +222,6 @@
          end
    end
 
-structure Pointer =
-   struct
-      open Pointer
-
-      val fromWord = _prim "WordU32_toWord32": Word32.word -> t;
-      val toWord = _prim "WordU32_toWord32": t -> Word32.word;
-               
-      val null: t = fromWord 0w0
-
-      fun isNull p = p = null
-
-      val getInt8 = _prim "Pointer_getWord8": t * C_Ptrdiff.t -> Int8.int;
-      val getInt16 = _prim "Pointer_getWord16": t * C_Ptrdiff.t -> Int16.int;
-      val getInt32 = _prim "Pointer_getWord32": t * C_Ptrdiff.t -> Int32.int;
-      val getInt64 = _prim "Pointer_getWord64": t * C_Ptrdiff.t -> Int64.int;
-      val getPointer = _prim "Pointer_getPointer": t * C_Ptrdiff.t -> 'a;
-      val getReal32 = _prim "Pointer_getReal32": t * C_Ptrdiff.t -> Real32.real;
-      val getReal64 = _prim "Pointer_getReal64": t * C_Ptrdiff.t -> Real64.real;
-      val getWord8 = _prim "Pointer_getWord8": t * C_Ptrdiff.t -> Word8.word;
-      val getWord16 = _prim "Pointer_getWord16": t * C_Ptrdiff.t -> Word16.word;
-      val getWord32 = _prim "Pointer_getWord32": t * C_Ptrdiff.t -> Word32.word;
-      val getWord64 = _prim "Pointer_getWord64": t * C_Ptrdiff.t -> Word64.word;
-      val setInt8 = _prim "Pointer_setWord8": t * C_Ptrdiff.t * Int8.int -> unit;
-      val setInt16 = _prim "Pointer_setWord16": t * C_Ptrdiff.t * Int16.int -> unit;
-      val setInt32 = _prim "Pointer_setWord32": t * C_Ptrdiff.t * Int32.int -> unit;
-      val setInt64 = _prim "Pointer_setWord64": t * C_Ptrdiff.t * Int64.int -> unit;
-      val setPointer = _prim "Pointer_setPointer": t * C_Ptrdiff.t * 'a -> unit;
-      val setReal32 = _prim "Pointer_setReal32": t * C_Ptrdiff.t * Real32.real -> unit;
-      val setReal64 = _prim "Pointer_setReal64": t * C_Ptrdiff.t * Real64.real -> unit;
-      val setWord8 = _prim "Pointer_setWord8": t * C_Ptrdiff.t * Word8.word -> unit;
-      val setWord16 = _prim "Pointer_setWord16": t * C_Ptrdiff.t * Word16.word -> unit;
-      val setWord32 = _prim "Pointer_setWord32": t * C_Ptrdiff.t * Word32.word -> unit;
-      val setWord64 = _prim "Pointer_setWord64": t * C_Ptrdiff.t * Word64.word -> unit;
-   end
-
 structure Profile =
    struct
       val isOn = _build_const "MLton_Profile_isOn": bool;

Modified: mlton/branches/on-20050822-x86_64-branch/basis-library.refactor/primitive/primitive.mlb
===================================================================
--- mlton/branches/on-20050822-x86_64-branch/basis-library.refactor/primitive/primitive.mlb	2006-04-30 19:24:40 UTC (rev 4427)
+++ mlton/branches/on-20050822-x86_64-branch/basis-library.refactor/primitive/primitive.mlb	2006-04-30 20:08:35 UTC (rev 4428)
@@ -38,7 +38,7 @@
 
    local 
       ../config/bind/int-prim.sml 
-      ../config/bind/pointer-prim.sml 
+      (* ../config/bind/pointer-prim.sml  *)
       ../config/bind/real-prim.sml 
       ../config/bind/word-prim.sml 
    in ann "forceUsed" in

Modified: mlton/branches/on-20050822-x86_64-branch/basis-library.refactor/primitive/primitive.sml
===================================================================
--- mlton/branches/on-20050822-x86_64-branch/basis-library.refactor/primitive/primitive.sml	2006-04-30 19:24:40 UTC (rev 4427)
+++ mlton/branches/on-20050822-x86_64-branch/basis-library.refactor/primitive/primitive.sml	2006-04-30 20:08:35 UTC (rev 4428)
@@ -8,47 +8,9 @@
 
 (* Primitive names are special -- see atoms/prim.fun. *)
 
-structure Char = Char8
-type char = Char.char
-structure Int = Int32
-type int = Int.int
-structure Real = Real64
-type real = Real.real
-
-structure String = String8
-type string = String.string
-
-structure Word = Word32
-type word = Word.word
-structure LargeWord = Word64
-
 structure Primitive =
    struct
 
-      structure TextIO =
-         struct
-            val bufSize = _command_line_const "TextIO.bufSize": int = 4096;
-         end
-
-      structure Word8Array =
-         struct
-            val subWord =
-               _prim "Word8Array_subWord": Word8.word array * int -> word;
-            val subWordRev =
-               _import "Word8Array_subWord32Rev": Word8.word array * int -> word;
-            val updateWord =
-               _prim "Word8Array_updateWord": Word8.word array * int * word -> unit;
-            val updateWordRev =
-               _import "Word8Array_updateWord32Rev": Word8.word array * int * word -> unit;
-         end
-      structure Word8Vector =
-         struct
-            val subWord =
-               _prim "Word8Vector_subWord": Word8.word vector * int -> word;
-            val subWordRev =
-               _import "Word8Vector_subWord32Rev": Word8.word vector * int -> word;
-         end
-
       structure Cygwin =
          struct
             val toFullWindowsPath =

Modified: mlton/branches/on-20050822-x86_64-branch/runtime/gen/gen-types.c
===================================================================
--- mlton/branches/on-20050822-x86_64-branch/runtime/gen/gen-types.c	2006-04-30 19:24:40 UTC (rev 4427)
+++ mlton/branches/on-20050822-x86_64-branch/runtime/gen/gen-types.c	2006-04-30 20:08:35 UTC (rev 4428)
@@ -215,6 +215,11 @@
   writeString (cTypesSMLFd, " = Pointer");          \
   writeNewline (cTypesSMLFd);                       \
   } while (0)
+#undef ptrtype
+#define ptrtype(t, name)                            \
+  do {                                              \
+  systype(t, "Word", name);                         \
+  } while (0)
 
 #define aliastype(name1, bt, name2)                 \
   do {                                              \
@@ -312,7 +317,9 @@
   // chksystype(long double, "LongDouble");
   chksystype(size_t, "Size");
   writeNewline (cTypesHFd);writeNewline (cTypesSMLFd);
-  ptrtype(void*, "Pointer");
+  ptrtype(unsigned char*, "Pointer");
+  // ptrtype(void*, "Pointer");
+  // ptrtype(uintptr_t, "Pointer");
   ptrtype(char*, "String");
   ptrtype(char**, "StringArray");
 
@@ -330,6 +337,8 @@
   chksystype(ptrdiff_t, "Ptrdiff");
   chksystype(intmax_t, "Intmax");
   chksystype(uintmax_t, "UIntmax");
+  chksystype(intptr_t, "Intptr");
+  chksystype(uintptr_t, "UIntptr");
 
   writeNewline (cTypesHFd);writeNewline (cTypesSMLFd);
   writeStringWithNewline (cTypesHFd, "/* from <dirent.h> */");