]> gitweb.factorcode.org Git - factor.git/commitdiff
Remove many uses of <int> and *int etc
authorDoug Coleman <doug.coleman@gmail.com>
Wed, 20 Oct 2010 22:42:53 +0000 (17:42 -0500)
committerDoug Coleman <doug.coleman@gmail.com>
Mon, 25 Oct 2010 17:49:12 +0000 (12:49 -0500)
49 files changed:
basis/alien/c-types/c-types-docs.factor
basis/alien/c-types/c-types-tests.factor
basis/alien/c-types/c-types.factor
basis/alien/fortran/fortran-tests.factor
basis/alien/fortran/fortran.factor
basis/compiler/tests/codegen.factor
basis/compiler/tests/intrinsics.factor
basis/compiler/tree/cleanup/cleanup-tests.factor
basis/core-foundation/numbers/numbers.factor
basis/endian/endian.factor
basis/game/input/dinput/dinput.factor
basis/io/backend/unix/unix.factor
basis/io/files/windows/windows.factor
basis/io/monitors/windows/windows.factor
basis/io/sockets/sockets.factor
basis/io/sockets/unix/unix.factor
basis/io/sockets/windows/windows.factor
basis/opengl/opengl.factor
basis/opengl/shaders/shaders.factor
basis/random/random.factor
basis/specialized-arrays/specialized-arrays-docs.factor
basis/system-info/macosx/macosx.factor
basis/system-info/windows/windows.factor
basis/ui/backend/cocoa/cocoa.factor
basis/ui/backend/cocoa/views/views.factor
basis/ui/backend/windows/windows.factor
basis/unix/groups/groups.factor
basis/unix/types/netbsd/netbsd.factor
basis/unix/types/openbsd/openbsd.factor
basis/windows/registry/registry.factor
basis/x11/clipboard/clipboard.factor
basis/x11/xim/xim.factor
basis/x11/xinput2/xinput2.factor
extra/alien/cxx/demangle/libstdcxx/libstdcxx.factor
extra/cuda/contexts/contexts.factor
extra/cuda/devices/devices.factor
extra/cuda/gl/gl.factor
extra/ecdsa/ecdsa.factor
extra/gpu/buffers/buffers.factor
extra/gpu/framebuffers/framebuffers.factor
extra/gpu/shaders/shaders.factor
extra/gpu/state/state.factor
extra/openal/alut/macosx/macosx.factor
extra/openal/alut/other/other.factor
extra/openal/openal.factor
extra/opencl/ffi/ffi-tests.factor
extra/opencl/opencl-tests.factor
extra/opencl/opencl.factor
extra/tokyo/assoc-functor/assoc-functor.factor

index 32c1d18d51d0154eec25e0bd7faa69b3b1f536da..8643ae8072597f0c71f28e98cd6ff656fa076afd 100644 (file)
@@ -121,38 +121,10 @@ $nl
 ARTICLE: "c-out-params" "Output parameters in C"
 "A frequently-occurring idiom in C code is the \"out parameter\". If a C function returns more than one value, the caller passes pointers of the correct type, and the C function writes its return values to those locations."
 $nl
-"Each numerical C type, together with " { $snippet "void*" } ", has an associated " { $emphasis "out parameter constructor" } " word which takes a Factor object as input, constructs a byte array of the correct size, and converts the Factor object to a C value stored into the byte array:"
-{ $subsections
-    <char>
-    <uchar>
-    <short>
-    <ushort>
-    <int>
-    <uint>
-    <long>
-    <ulong>
-    <longlong>
-    <ulonglong>
-    <float>
-    <double>
-    <void*>
-}
-"You call the out parameter constructor with the required initial value, then pass the byte array to the C function, which receives a pointer to the start of the byte array's data area. The C function then returns, leaving the result in the byte array; you read it back using the next set of words:"
-{ $subsections
-    *char
-    *uchar
-    *short
-    *ushort
-    *int
-    *uint
-    *long
-    *ulong
-    *longlong
-    *ulonglong
-    *float
-    *double
-    *void*
-}
+"To wrap Factor data for consumption by the FFI, we use a utility word that constructs a byte array of the correct size and converts the Factor object to a C value stored into that byte array:"
+{ $subsections <ref> }
+"You call the out parameter constructor with the required initial value, then pass the byte array to the C function, which receives a pointer to the start of the byte array's data area. The C function then returns, leaving the result in the byte array; you read it back using this word:"
+{ $subsections deref }
 "Note that while structure and union types do not get these words defined for them, there is no loss of generality since " { $link <void*> } " and " { $link *void* } " may be used." ;
 
 ARTICLE: "c-types.primitives" "Primitive C types"
index 96976b7b6c5d7c8ca5ec4b18a411677769f6213d..7125f24d4156212003368a1b5851c5062b13cb1f 100644 (file)
@@ -2,24 +2,25 @@ USING: alien alien.syntax alien.c-types alien.parser
 eval kernel tools.test sequences system libc alien.strings
 io.encodings.ascii io.encodings.utf8 math.constants classes.struct classes
 accessors compiler.units ;
+FROM: alien.c-types => short ;
 IN: alien.c-types.tests
 
 CONSTANT: xyz 123
 
 [ 492 ] [ { int xyz } heap-size ] unit-test
 
-[ -1 ] [ -1 <char> *char ] unit-test
-[ -1 ] [ -1 <short> *short ] unit-test
-[ -1 ] [ -1 <int> *int ] unit-test
+[ -1 ] [ -1 char <ref> char deref ] unit-test
+[ -1 ] [ -1 short <ref> short deref ] unit-test
+[ -1 ] [ -1 int <ref> int deref ] unit-test
 
 ! I don't care if this throws an error or works, but at least
 ! it should be consistent between platforms
-[ -1 ] [ -1.0 <int> *int ] unit-test
-[ -1 ] [ -1.0 <long> *long ] unit-test
-[ -1 ] [ -1.0 <longlong> *longlong ] unit-test
-[ 1 ] [ 1.0 <uint> *uint ] unit-test
-[ 1 ] [ 1.0 <ulong> *ulong ] unit-test
-[ 1 ] [ 1.0 <ulonglong> *ulonglong ] unit-test
+[ -1 ] [ -1.0 int <ref> int deref ] unit-test
+[ -1 ] [ -1.0 long <ref> long deref ] unit-test
+[ -1 ] [ -1.0 longlong <ref> longlong deref ] unit-test
+[ 1 ] [ 1.0 uint <ref> uint deref ] unit-test
+[ 1 ] [ 1.0 ulong <ref> ulong deref ] unit-test
+[ 1 ] [ 1.0 ulonglong <ref> ulonglong deref ] unit-test
 
 UNION-STRUCT: foo
     { a int }
index f703f0d0f7bf7173f5ff38831297053bef3aa7bf..1bef9ea273ac8fb956ae6c8cadc23b8c76f59d4e 100644 (file)
@@ -1,12 +1,9 @@
 ! Copyright (C) 2004, 2010 Slava Pestov.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: byte-arrays arrays assocs delegate kernel kernel.private math
-math.order math.parser namespaces make parser sequences strings
-words splitting cpu.architecture alien alien.accessors
-alien.strings quotations layouts system compiler.units io
-io.files io.encodings.binary io.streams.memory accessors
-combinators effects continuations fry classes vocabs
-vocabs.loader words.symbol macros ;
+USING: accessors alien alien.accessors arrays byte-arrays
+classes combinators compiler.units cpu.architecture delegate
+fry kernel layouts locals macros math math.order quotations
+sequences system words words.symbol ;
 QUALIFIED: math
 IN: alien.c-types
 
@@ -21,8 +18,8 @@ SYMBOLS:
 
 SINGLETON: void
 
-DEFER: <int>
-DEFER: *char
+DEFER: <ref>
+DEFER: deref
 
 TUPLE: abstract-c-type
 { class class initial: object }
@@ -111,7 +108,7 @@ M: c-type-name base-type c-type ;
 
 M: c-type base-type ;
 
-: little-endian? ( -- ? ) 1 <int> *char 1 = ; foldable
+: little-endian? ( -- ? ) 1 int <ref> char deref 1 = ; foldable
 
 GENERIC: heap-size ( name -- size )
 
@@ -489,3 +486,11 @@ M: double-2-rep rep-component-type drop double ;
 : c-type-clamp ( value c-type -- value' )
     dup { float double } member-eq?
     [ drop ] [ c-type-interval clamp ] if ; inline
+
+:: <ref> ( value c-type -- c-ptr )
+    c-type heap-size <byte-array> :> c-ptr
+    value c-ptr 0 c-type set-alien-value
+    c-ptr ; inline
+
+: deref ( c-ptr c-type -- value )
+    [ 0 ] dip alien-value ; inline
index dc0585cab8fcadce43ae066df092f676116e73ed..38e0d5f27a41e1d24c5e3f3ab8328b4f85fd8491 100644 (file)
@@ -192,10 +192,10 @@ intel-unix-abi fortran-abi [
         {
             [ {
                 [ ascii string>alien ]
-                [ <longlong> ]
-                [ <float> ]
+                [ longlong <ref> ]
+                [ float <ref> ]
                 [ <complex-float> ]
-                [ 1 0 ? <short> ]
+                [ 1 0 ? c:short <ref> ]
             } spread ]
             [ { [ length ] [ drop ] [ drop ] [ drop ] [ drop ] } spread ]
         } 5 ncleave
@@ -211,7 +211,7 @@ intel-unix-abi fortran-abi [
             [ drop ]
             [ drop ]
             [ drop ]
-            [ *float ]
+            [ float deref ]
             [ drop ]
             [ drop ]
         } spread
@@ -280,7 +280,7 @@ intel-unix-abi fortran-abi [
         {
             [ {
                 [ ascii string>alien ]
-                [ <float> ]
+                [ float <ref> ]
                 [ ascii string>alien ]
             } spread ]
             [ { [ length ] [ drop ] [ length ] } spread ]
@@ -298,7 +298,7 @@ intel-unix-abi fortran-abi [
             [ ascii alien>nstring ]
             [ ]
             [ ascii alien>nstring ]
-            [ *float ]
+            [ float deref ]
             [ ]
             [ ascii alien>nstring ]
         } spread
index 3d874310841dc3b81dc59b6ca5b8b6d9e46848e9..4b7142c4350160540b2b45219ad5cbf5a2ed4cec 100755 (executable)
@@ -1,5 +1,5 @@
 ! (c) 2009 Joe Groff, see BSD license
-USING: accessors alien alien.c-types alien.complex alien.data
+USING: accessors alien alien.complex alien.c-types alien.data
 alien.parser grouping alien.strings alien.syntax arrays ascii
 assocs byte-arrays combinators combinators.short-circuit fry
 generalizations kernel lexer macros math math.parser namespaces
@@ -211,11 +211,11 @@ GENERIC: (fortran-arg>c-args) ( type -- main-quot added-quot )
 M: integer-type (fortran-arg>c-args)
     [
         size>> {
-            { f [ [ <int>      ] [ drop ] ] }
-            { 1 [ [ <char>     ] [ drop ] ] }
-            { 2 [ [ <short>    ] [ drop ] ] }
-            { 4 [ [ <int>      ] [ drop ] ] }
-            { 8 [ [ <longlong> ] [ drop ] ] }
+            { f [ [ c:int <ref>     ] [ drop ] ] }
+            { 1 [ [ c:char <ref>    ] [ drop ] ] }
+            { 2 [ [ c:short <ref>   ] [ drop ] ] }
+            { 4 [ [ c:int <ref>     ] [ drop ] ] }
+            { 8 [ [ c:longlong <ref> ] [ drop ] ] }
             [ invalid-fortran-type ]
         } case
     ] args?dims ;
@@ -226,9 +226,9 @@ M: logical-type (fortran-arg>c-args)
 M: real-type (fortran-arg>c-args)
     [
         size>> {
-            { f [ [ <float>  ] [ drop ] ] }
-            { 4 [ [ <float>  ] [ drop ] ] }
-            { 8 [ [ <double> ] [ drop ] ] }
+            { f [ [ c:float <ref> ] [ drop ] ] }
+            { 4 [ [ c:float <ref> ] [ drop ] ] }
+            { 8 [ [ c:double <ref> ] [ drop ] ] }
             [ invalid-fortran-type ]
         } case
     ] args?dims ;
@@ -244,14 +244,14 @@ M: real-complex-type (fortran-arg>c-args)
     ] args?dims ;
 
 M: double-precision-type (fortran-arg>c-args)
-    [ drop [ <double> ] [ drop ] ] args?dims ;
+    [ drop [ c:double <ref> ] [ drop ] ] args?dims ;
 
 M: double-complex-type (fortran-arg>c-args)
     [ drop [ <complex-double> ] [ drop ] ] args?dims ;
 
 M: character-type (fortran-arg>c-args)
     fix-character-type single-char?
-    [ [ first <char> ] [ drop ] ]
+    [ [ first c:char <ref> ] [ drop ] ]
     [ [ ascii string>alien ] [ length ] ] if ;
 
 M: misc-type (fortran-arg>c-args)
@@ -263,23 +263,25 @@ GENERIC: (fortran-result>) ( type -- quots )
     [ dup dims>> [ drop { [ ] } ] ] dip if ; inline
 
 M: integer-type (fortran-result>)
-    [ size>> {
-        { f [ { [ *int      ] } ] }
-        { 1 [ { [ *char     ] } ] }
-        { 2 [ { [ *short    ] } ] }
-        { 4 [ { [ *int      ] } ] }
-        { 8 [ { [ *longlong ] } ] }
-        [ invalid-fortran-type ]
-    } case ] result?dims ;
+    [
+        size>> {
+            { f [ { [ c:int deref      ] } ] }
+            { 1 [ { [ c:char deref     ] } ] }
+            { 2 [ { [ c:short deref    ] } ] }
+            { 4 [ { [ c:int deref      ] } ] }
+            { 8 [ { [ c:longlong deref ] } ] }
+            [ invalid-fortran-type ]
+        } case
+    ] result?dims ;
 
 M: logical-type (fortran-result>)
     [ call-next-method first [ zero? not ] append 1array ] result?dims ;
 
 M: real-type (fortran-result>)
     [ size>> {
-        { f [ { [ *float  ] } ] }
-        { 4 [ { [ *float  ] } ] }
-        { 8 [ { [ *double ] } ] }
+        { f [ { [ c:float deref ] } ] }
+        { 4 [ { [ c:float deref ] } ] }
+        { 8 [ { [ c:double deref ] } ] }
         [ invalid-fortran-type ]
     } case ] result?dims ;
 
@@ -292,14 +294,14 @@ M: real-complex-type (fortran-result>)
     } case ] result?dims ;
 
 M: double-precision-type (fortran-result>)
-    [ drop { [ *double ] } ] result?dims ;
+    [ drop { [ c:double deref ] } ] result?dims ;
 
 M: double-complex-type (fortran-result>)
     [ drop { [ *complex-double ] } ] result?dims ;
 
 M: character-type (fortran-result>)
     fix-character-type single-char?
-    [ { [ *char 1string ] } ]
+    [ { [ c:char deref 1string ] } ]
     [ { [ ] [ ascii alien>nstring ] } ] if ;
 
 M: misc-type (fortran-result>)
index 4c4e8de94dd6c78bf1e705467ce5a67b6c97c584..4e822ba32c09529a43cf03038f696f3bb6fb51b6 100644 (file)
@@ -275,7 +275,8 @@ M: cucumber equal? "The cucumber has no equal" throw ;
 
 [ 4294967295 B{ 255 255 255 255 } -1 ]
 [
-    -1 <int> -1 <int>
+    -1 int <ref>
+    -1 int <ref>
     [ [ 0 alien-unsigned-4 swap ] [ 0 alien-signed-2 ] bi ]
     compile-call
 ] unit-test
index 53017ff45231449876c4e7346372d6149b32e6f6..b217d1b57e517698019bc3a932599fb0459e9422 100644 (file)
@@ -6,6 +6,7 @@ sbufs strings.private slots.private alien math.order
 alien.accessors alien.c-types alien.data alien.syntax alien.strings
 namespaces libc io.encodings.ascii classes compiler.test ;
 FROM: math => float ;
+FROM: alien.c-types => short ;
 IN: compiler.tests.intrinsics
 
 ! Make sure that intrinsic ops compile to correct code.
@@ -442,31 +443,31 @@ ERROR: bug-in-fixnum* x y a b ;
 [ 252 ] [ B{ 1 2 3 -4 5 } 3 [ { byte-array fixnum } declare alien-unsigned-1 ] compile-call ] unit-test
 [ -4 ] [ B{ 1 2 3 -4 5 } 3 [ { byte-array fixnum } declare alien-signed-1 ] compile-call ] unit-test
 
-[ -100 ] [ -100 <char> [ { byte-array } declare *char ] compile-call ] unit-test
-[ 156 ] [ -100 <uchar> [ { byte-array } declare *uchar ] compile-call ] unit-test
+[ -100 ] [ -100 char <ref> [ { byte-array } declare char deref ] compile-call ] unit-test
+[ 156 ] [ -100 uchar <ref> [ { byte-array } declare uchar deref ] compile-call ] unit-test
 
-[ -100 ] [ -100 \ <char> def>> [ { fixnum } declare ] prepend compile-call *char ] unit-test
-[ 156 ] [ -100 \ <uchar> def>> [ { fixnum } declare ] prepend compile-call *uchar ] unit-test
+[ -100 ] [ -100 \ <char> def>> [ { fixnum } declare ] prepend compile-call char deref ] unit-test
+[ 156 ] [ -100 \ <uchar> def>> [ { fixnum } declare ] prepend compile-call uchar deref ] unit-test
 
-[ -1000 ] [ -1000 <short> [ { byte-array } declare *short ] compile-call ] unit-test
-[ 64536 ] [ -1000 <ushort> [ { byte-array } declare *ushort ] compile-call ] unit-test
+[ -1000 ] [ -1000 short <ref> [ { byte-array } declare short deref ] compile-call ] unit-test
+[ 64536 ] [ -1000 ushort <ref> [ { byte-array } declare ushort deref ] compile-call ] unit-test
 
-[ -1000 ] [ -1000 \ <short> def>> [ { fixnum } declare ] prepend compile-call *short ] unit-test
-[ 64536 ] [ -1000 \ <ushort> def>> [ { fixnum } declare ] prepend compile-call *ushort ] unit-test
+[ -1000 ] [ -1000 \ <short> def>> [ { fixnum } declare ] prepend compile-call short deref ] unit-test
+[ 64536 ] [ -1000 \ <ushort> def>> [ { fixnum } declare ] prepend compile-call ushort deref ] unit-test
 
-[ -100000 ] [ -100000 <int> [ { byte-array } declare *int ] compile-call ] unit-test
-[ 4294867296 ] [ -100000 <uint> [ { byte-array } declare *uint ] compile-call ] unit-test
+[ -100000 ] [ -100000 int <ref> [ { byte-array } declare int deref ] compile-call ] unit-test
+[ 4294867296 ] [ -100000 uint <ref> [ { byte-array } declare uint deref ] compile-call ] unit-test
 
-[ -100000 ] [ -100000 \ <int> def>> [ { fixnum } declare ] prepend compile-call *int ] unit-test
-[ 4294867296 ] [ -100000 \ <uint> def>> [ { fixnum } declare ] prepend compile-call *uint ] unit-test
+[ -100000 ] [ -100000 \ <int> def>> [ { fixnum } declare ] prepend compile-call int deref ] unit-test
+[ 4294867296 ] [ -100000 \ <uint> def>> [ { fixnum } declare ] prepend compile-call uint deref ] unit-test
 
-[ t ] [ pi pi <double> *double = ] unit-test
+[ t ] [ pi pi double <ref> double deref = ] unit-test
 
-[ t ] [ pi <double> [ { byte-array } declare *double ] compile-call pi = ] unit-test
+[ t ] [ pi double <ref> [ { byte-array } declare double deref ] compile-call pi = ] unit-test
 
 ! Silly
 [ t ] [ pi 4 <byte-array> [ [ { float byte-array } declare 0 set-alien-float ] compile-call ] keep *float pi - -0.001 0.001 between? ] unit-test
-[ t ] [ pi <float> [ { byte-array } declare *float ] compile-call pi - -0.001 0.001 between? ] unit-test
+[ t ] [ pi float <ref> [ { byte-array } declare float deref ] compile-call pi - -0.001 0.001 between? ] unit-test
 
 [ t ] [ pi 8 <byte-array> [ [ { float byte-array } declare 0 set-alien-double ] compile-call ] keep *double pi = ] unit-test
 
index 88e7895c896b514f2948a8ff64349f6bd6114795..46255d9fbcbdb745e470028685bc7e88585205a3 100644 (file)
@@ -244,22 +244,22 @@ cell-bits 32 = [
 ] when
 
 [ t ] [
-    [ B{ 1 0 } *short 0 number= ]
+    [ B{ 1 0 } short deref 0 number= ]
     \ number= inlined?
 ] unit-test
 
 [ t ] [
-    [ B{ 1 0 } *short 0 { number number } declare number= ]
+    [ B{ 1 0 } short deref 0 { number number } declare number= ]
     \ number= inlined?
 ] unit-test
 
 [ t ] [
-    [ B{ 1 0 } *short 0 = ]
+    [ B{ 1 0 } short deref 0 = ]
     \ number= inlined?
 ] unit-test
 
 [ t ] [
-    [ B{ 1 0 } *short dup number? [ 0 number= ] [ drop f ] if ]
+    [ B{ 1 0 } short deref dup number? [ 0 number= ] [ drop f ] if ]
     \ number= inlined?
 ] unit-test
 
index ae061cb4eb8e0e3dcf560e5f87700b7158cf63a3..4d9f4e8d9f34d7e2309f9d36b5dccd8147b8351e 100644 (file)
@@ -30,14 +30,14 @@ FUNCTION: CFNumberRef CFNumberCreate ( CFAllocatorRef allocator, CFNumberType th
 GENERIC: <CFNumber> ( number -- alien )
 
 M: integer <CFNumber>
-    [ f kCFNumberLongLongType ] dip <longlong> CFNumberCreate ;
+    [ f kCFNumberLongLongType ] dip longlong <ref> CFNumberCreate ;
 
 M: float <CFNumber>
-    [ f kCFNumberDoubleType ] dip <double> CFNumberCreate ;
+    [ f kCFNumberDoubleType ] dip double <ref> CFNumberCreate ;
 
 M: t <CFNumber>
-    drop f kCFNumberIntType 1 <int> CFNumberCreate ;
+    drop f kCFNumberIntType 1 int <ref> CFNumberCreate ;
 
 M: f <CFNumber>
-    drop f kCFNumberIntType 0 <int> CFNumberCreate ;
+    drop f kCFNumberIntType 0 int <ref> CFNumberCreate ;
 
index 492845854315c969fbc2337d7d3664e960471a76..502b13026511f574995db14e6222885dce802166 100644 (file)
@@ -7,7 +7,7 @@ IN: endian
 SINGLETONS: big-endian little-endian ;
 
 : compute-native-endianness ( -- class )
-    1 <int> *char 0 = big-endian little-endian ? ;
+    1 int <ref> char deref 0 = big-endian little-endian ? ;
 
 SYMBOL: native-endianness
 native-endianness [ compute-native-endianness ] initialize
index f5b3520b12d9bdecffc14c6f22859c0999c25925..61216fb3170d3e0234dfb3a087a5f349d5eedaf9 100755 (executable)
@@ -303,8 +303,8 @@ CONSTANT: pov-values
     } 2cleave ;
 
 : read-device-buffer ( device buffer count -- buffer count' )
-    [ DIDEVICEOBJECTDATA heap-size ] 2dip <uint>
-    [ 0 IDirectInputDevice8W::GetDeviceData ole32-error ] 2keep *uint ;
+    [ DIDEVICEOBJECTDATA heap-size ] 2dip uint <def>
+    [ 0 IDirectInputDevice8W::GetDeviceData ole32-error ] 2keep uint deref ;
 
 : (fill-mouse-state) ( state DIDEVICEOBJECTDATA -- state )
     [ dwData>> 32 >signed ] [ dwOfs>> ] bi {
index fd9fed0472c1c56dc50e91047b3f5d3c4e768af0..e84f1a8825d3f7aa5ba0510108d5fe2cd1d9ce71 100755 (executable)
@@ -146,7 +146,7 @@ M: stdin dispose*
 
 : wait-for-stdin ( stdin -- size )
     [ control>> CHAR: X over io:stream-write1 io:stream-flush ]
-    [ size>> ssize_t heap-size swap io:stream-read *int ]
+    [ size>> ssize_t heap-size swap io:stream-read int deref ]
     bi ;
 
 :: refill-stdin ( buffer stdin size -- )
@@ -167,11 +167,11 @@ M: stdin refill
 M: stdin cancel-operation
     [ size>> ] [ control>> ] bi [ cancel-operation ] bi@ ;
 
-: control-write-fd ( -- fd ) &: control_write *uint ;
+: control-write-fd ( -- fd ) &: control_write uint deref ;
 
-: size-read-fd ( -- fd ) &: size_read *uint ;
+: size-read-fd ( -- fd ) &: size_read uint deref ;
 
-: data-read-fd ( -- fd ) &: stdin_read *uint ;
+: data-read-fd ( -- fd ) &: stdin_read uint deref ;
 
 : <stdin> ( -- stdin )
     stdin new-disposable
index 024b278b4ba7ebd5a48713bdcbc58a4a194e7a6a..70fe03b290324134c578e7e8d7a2392c32126437 100644 (file)
@@ -131,7 +131,7 @@ M: winnt init-io ( -- )
 ERROR: invalid-file-size n ;
 
 : handle>file-size ( handle -- n )
-    0 <ulonglong> [ GetFileSizeEx win32-error=0/f ] keep *ulonglong ;
+    0 ulonglong <ref> [ GetFileSizeEx win32-error=0/f ] keep ulonglong deref ;
 
 ERROR: seek-before-start n ;
 
@@ -249,7 +249,7 @@ M: winnt init-stdio
     GetLastError ERROR_ALREADY_EXISTS = not ;
 
 : set-file-pointer ( handle length method -- )
-    [ [ handle>> ] dip d>w/w <uint> ] dip SetFilePointer
+    [ [ handle>> ] dip d>w/w uint <ref> ] dip SetFilePointer
     INVALID_SET_FILE_POINTER = [ "SetFilePointer failed" throw ] when ;
 
 M: windows (file-reader) ( path -- stream )
@@ -350,4 +350,4 @@ M: winnt home
         [ "HOMEDRIVE" os-env "HOMEPATH" os-env append-path ]
         [ "USERPROFILE" os-env ]
         [ my-documents ]
-    } 0|| ;
\ No newline at end of file
+    } 0|| ;
index 8887d718d11059b78d49dc8e64560ac8f0fdcbfb..43b3ac7ef4dcbf4479d6aa722c9745b94a5a7b62 100644 (file)
@@ -32,7 +32,7 @@ TUPLE: win32-monitor < monitor port ;
         [ recursive>> 1 0 ? ]
     } cleave
     FILE_NOTIFY_CHANGE_ALL
-    0 <uint>
+    0 uint <ref>
     (make-overlapped)
     [ f ReadDirectoryChangesW win32-error=0/f ] keep ;
 
index 2a7391c36b2514f2f641fe79eaa2d84807e09581..a1bfd4c6aac60e314ad04db672cb5180ddbffd32 100644 (file)
@@ -106,10 +106,10 @@ M: ipv4 make-sockaddr ( inet -- sockaddr )
         swap
         [ port>> htons >>port ]
         [ host>> "0.0.0.0" or ]
-        [ inet-pton *uint >>addr ] tri ;
+        [ inet-pton uint deref >>addr ] tri ;
 
 M: ipv4 parse-sockaddr ( sockaddr-in addrspec -- newaddrspec )
-    [ addr>> <uint> ] dip inet-ntop <ipv4> ;
+    [ addr>> uint <ref> ] dip inet-ntop <ipv4> ;
 
 TUPLE: inet4 < ipv4 { port integer read-only } ;
 
index 4d6c6992113ac758b84a6da8fd7201dc894b8ceb..3f91c0e8b6e1afe3f152170f0f872720258a810a 100644 (file)
@@ -16,7 +16,7 @@ IN: io.sockets.unix
     socket dup io-error <fd> init-fd |dispose ;
 
 : set-socket-option ( fd level opt -- )
-    [ handle-fd ] 2dip 1 <int> dup byte-length setsockopt io-error ;
+    [ handle-fd ] 2dip 1 int <ref> dup byte-length setsockopt io-error ;
 
 M: unix addrinfo-error ( n -- )
     [ gai_strerror throw ] unless-zero ;
@@ -39,11 +39,11 @@ M: unix addrspec-of-family ( af -- addrspec )
 
 ! Client sockets - TCP and Unix domain
 M: object (get-local-address) ( handle remote -- sockaddr )
-    [ handle-fd ] dip empty-sockaddr/size <int>
+    [ handle-fd ] dip empty-sockaddr/size int <ref>
     [ getsockname io-error ] 2keep drop ;
 
 M: object (get-remote-address) ( handle local -- sockaddr )
-    [ handle-fd ] dip empty-sockaddr/size <int>
+    [ handle-fd ] dip empty-sockaddr/size int <ref>
     [ getpeername io-error ] 2keep drop ;
 
 : init-client-socket ( fd -- )
@@ -101,7 +101,7 @@ M: object (server) ( addrspec -- handle )
     ] with-destructors ;
 
 : do-accept ( server addrspec -- fd sockaddr )
-    [ handle>> handle-fd ] [ empty-sockaddr/size <int> ] bi*
+    [ handle>> handle-fd ] [ empty-sockaddr/size int <ref> ] bi*
     [ accept ] 2keep drop ; inline
 
 M: object (accept) ( server addrspec -- fd sockaddr )
@@ -138,7 +138,7 @@ CONSTANT: packet-size 65536
     packet-size ! nbytes
     0 ! flags
     sockaddr ! from
-    len <int> ! fromlen
+    len int <ref> ! fromlen
     recvfrom dup 0 >=
     [ receive-buffer get-global swap memory>byte-array sockaddr ]
     [ drop f f ]
index 157aa5c848b295f5c35774708dfae3fabd668910..ec82631f7049a766f33338f0c6e74300582dca3c 100755 (executable)
@@ -48,11 +48,11 @@ M: win32-socket dispose* ( stream -- )
     opened-socket ;\r
 \r
 M: object (get-local-address) ( socket addrspec -- sockaddr )\r
-    [ handle>> ] dip empty-sockaddr/size <int>\r
+    [ handle>> ] dip empty-sockaddr/size int <ref>\r
     [ getsockname socket-error ] 2keep drop ;\r
 \r
 M: object (get-remote-address) ( socket addrspec -- sockaddr )\r
-    [ handle>> ] dip empty-sockaddr/size <int>\r
+    [ handle>> ] dip empty-sockaddr/size int <ref>\r
     [ getpeername socket-error ] 2keep drop ;\r
 \r
 : bind-socket ( win32-socket sockaddr len -- )\r
@@ -87,7 +87,7 @@ M: windows (raw) ( addrspec -- handle )
     [ SOCK_RAW server-socket ] with-destructors ;\r
 \r
 : malloc-int ( n -- alien )\r
-    <int> malloc-byte-array ; inline\r
+    int <ref> malloc-byte-array ; inline\r
 \r
 M: winnt WSASocket-flags ( -- DWORD )\r
     WSA_FLAG_OVERLAPPED ;\r
@@ -181,7 +181,7 @@ TUPLE: AcceptEx-args port
     } cleave AcceptEx drop winsock-error ; inline\r
 \r
 : (extract-remote-address) ( lpOutputBuffer dwReceiveDataLength dwLocalAddressLength dwRemoteAddressLength -- sockaddr )\r
-    f <void*> 0 <int> f <void*> [ 0 <int> GetAcceptExSockaddrs ] keep *void* ;\r
+    f <void*> 0 int <ref> f <void*> [ 0 int <ref> GetAcceptExSockaddrs ] keep *void* ;\r
 \r
 : extract-remote-address ( AcceptEx -- sockaddr )\r
     [\r
@@ -246,7 +246,7 @@ TUPLE: WSARecvFrom-args port
     [\r
         [ port>> addr>> empty-sockaddr dup ]\r
         [ lpFrom>> ]\r
-        [ lpFromLen>> *int ]\r
+        [ lpFromLen>> int deref ]\r
         tri memcpy\r
     ] bi ; inline\r
 \r
@@ -278,7 +278,7 @@ TUPLE: WSASendTo-args port
         swap make-send-buffer >>lpBuffers\r
         1 >>dwBufferCount\r
         0 >>dwFlags\r
-        0 <uint> >>lpNumberOfBytesSent\r
+        0 uint <ref> >>lpNumberOfBytesSent\r
         (make-overlapped) >>lpOverlapped ; inline\r
 \r
 : call-WSASendTo ( WSASendTo -- )\r
index fda840b281c73290359712d600cb9a3c09da2acc..0589e0eede0ba22e630a182cbfc1354904eaf4f3 100644 (file)
@@ -142,7 +142,7 @@ MACRO: all-enabled-client-state ( seq quot -- )
     [ 1 { uint } ] dip with-out-parameters ; inline
 
 : (delete-gl-object) ( id quot -- )
-    [ 1 swap <uint> ] dip call ; inline
+    [ 1 swap uint <ref> ] dip call ; inline
 
 : gen-gl-buffer ( -- id )
     [ glGenBuffers ] (gen-gl-object) ;
index 720665a1b8593928640abc712cbd819cc96faaef..76a9f969333da7d5777fe93f4b3e83ee57f61885 100644 (file)
@@ -47,7 +47,7 @@ IN: opengl.shaders
 : gl-shader-info-log ( shader -- log )
     dup gl-shader-info-log-length dup [
         1 calloc &free
-        [ 0 <int> swap glGetShaderInfoLog ] keep
+        [ 0 int <ref> swap glGetShaderInfoLog ] keep
         ascii alien>string
     ] with-destructors ;
 
@@ -90,7 +90,7 @@ PREDICATE: fragment-shader < gl-shader (fragment-shader?) ;
 : gl-program-info-log ( program -- log )
     dup gl-program-info-log-length dup [
         1 calloc &free
-        [ 0 <int> swap glGetProgramInfoLog ] keep
+        [ 0 int <ref> swap glGetProgramInfoLog ] keep
         ascii alien>string
     ] with-destructors ;
 
@@ -107,7 +107,7 @@ PREDICATE: fragment-shader < gl-shader (fragment-shader?) ;
 
 : gl-program-shaders ( program -- shaders )
     dup gl-program-shaders-length 2 *
-    0 <int>
+    0 int <ref>
     over <uint-array>
     [ glGetAttachedShaders ] keep [ zero? not ] filter ;
 
index ba5d9c7ca316f8fd951373607317241d7afacaca..ae7c0ad1e38c7bc26873047408f4b17ca49d294c 100644 (file)
@@ -90,8 +90,8 @@ ERROR: too-many-samples seq n ;
     secure-random-generator get swap with-random ; inline
 
 : uniform-random-float ( min max -- n )
-    4 random-bytes underlying>> *uint >float
-    4 random-bytes underlying>> *uint >float
+    4 random-bytes underlying>> uint deref >float
+    4 random-bytes underlying>> uint deref >float
     2.0 32 ^ * +
     [ over - 2.0 -64 ^ * ] dip
     * + ; inline
index b476a4707251c5c6f50821831f1782b41b2b02b1..722dff6d915c8cd0678dd2c78800682c35165663 100644 (file)
@@ -94,7 +94,7 @@ $nl
     ""
     "FUNCTION: void get_device_info ( int* length ) ;"
     ""
-    "0 <int> [ get_device_info ] keep <direct-int-array> ."
+    "0 int <ref> [ get_device_info ] keep <direct-int-array> ."
 }
 "For a full discussion of Factor heap allocation versus unmanaged memory allocation, see " { $link "byte-arrays-gc" } "."
 $nl
index b51fd52995ae448b066274b5b3565273e424571a..11a89fc4bd069aca142663784f41062145aab12e 100644 (file)
@@ -11,23 +11,23 @@ LIBRARY: libc
 FUNCTION: int sysctl ( int* name, uint namelen, void* oldp, size_t* oldlenp, void* newp, size_t newlen ) ;
 
 : make-int-array ( seq -- byte-array )
-    [ <int> ] map concat ;
+    [ int <ref> ] map concat ;
 
 : (sysctl-query) ( name namelen oldp oldlenp -- oldp )
     over [ f 0 sysctl io-error ] dip ;
 
 : sysctl-query ( seq n -- byte-array )
     [ [ make-int-array ] [ length ] bi ] dip
-    [ <byte-array> ] [ <uint> ] bi (sysctl-query) ;
+    [ <byte-array> ] [ uint <ref> ] bi (sysctl-query) ;
 
 : sysctl-query-string ( seq -- n )
     4096 sysctl-query utf8 alien>string ;
 
 : sysctl-query-uint ( seq -- n )
-    4 sysctl-query *uint ;
+    4 sysctl-query uint deref ;
 
 : sysctl-query-ulonglong ( seq -- n )
-    8 sysctl-query *ulonglong ;
+    8 sysctl-query ulonglong deref ;
 
 : machine ( -- str ) { 6 1 } sysctl-query-string ;
 : model ( -- str ) { 6 2 } sysctl-query-string ;
index 0aba5eeff161bbe14ecaa8040516f9ea91cb0a13..5ea68dbbad7e4aa1efbbf36a1cc9436b2dc5311c 100644 (file)
@@ -95,10 +95,10 @@ M: winnt available-virtual-mem ( -- n )
 
 : computer-name ( -- string )
     MAX_COMPUTERNAME_LENGTH 1 +
-    [ <byte-array> dup ] keep <uint>
+    [ <byte-array> dup ] keep uint <ref>
     GetComputerName win32-error=0/f alien>native-string ;
  
 : username ( -- string )
     UNLEN 1 +
-    [ <byte-array> dup ] keep <uint>
+    [ <byte-array> dup ] keep uint <ref>
     GetUserName win32-error=0/f alien>native-string ;
index 48647df92d0632ab5bba77342a92a88560b553b4..1e7777d9d7c3860d9afc0c0cec011183d4f93f1b 100644 (file)
@@ -128,7 +128,7 @@ CONSTANT: window-control>styleMask
 
 : make-context-transparent ( view -- )
     -> openGLContext
-    0 <int> NSOpenGLCPSurfaceOpacity -> setValues:forParameter: ;
+    0 int <ref> NSOpenGLCPSurfaceOpacity -> setValues:forParameter: ;
 
 M:: cocoa-ui-backend (open-window) ( world -- )
     world [ [ dim>> ] dip <FactorView> ]
index e98c31b295391d0f142fcc638e6f25057b486f02..7837402701bd46f7fa028f9475ceaddf521eed84 100644 (file)
@@ -332,7 +332,7 @@ CLASS: FactorView < NSOpenGLView NSTextInput
 ]
 
 : sync-refresh-to-screen ( GLView -- )
-    -> openGLContext -> CGLContextObj NSOpenGLCPSwapInterval 1 <int>
+    -> openGLContext -> CGLContextObj NSOpenGLCPSwapInterval 1 int <ref>
     CGLSetParameter drop ;
 
 : <FactorView> ( dim pixel-format -- view )
index 5178dbb49969fb5239ec42a5ce603642fec8a225..09ba203857e1b54d091f9aad856773a71f9dae1b 100755 (executable)
@@ -66,7 +66,7 @@ PIXEL-FORMAT-ATTRIBUTE-TABLE: WGL_ARB { $ WGL_SUPPORT_OPENGL_ARB 1 } H{
     >WGL_ARB
     [ drop f ] [
         [ [ world>> handle>> hDC>> ] [ handle>> ] bi 0 1 ] dip
-        first <int> { int }
+        first int <ref> { int }
         [ wglGetPixelFormatAttribivARB win32-error=0/f ]
         with-out-parameters
     ] if-empty ;
@@ -168,7 +168,7 @@ M: windows-ui-backend (pixel-format-attribute)
 
 PRIVATE>
 
-: lo-word ( wparam -- lo ) <short> *short ; inline
+: lo-word ( wparam -- lo ) short <ref> short deref ; inline
 : hi-word ( wparam -- hi ) -16 shift lo-word ; inline
 : >lo-hi ( WORD -- array ) [ lo-word ] [ hi-word ] bi 2array ;
 : GET_APPCOMMAND_LPARAM ( lParam -- appCommand )
index 5da7c189aef1669d701b6590860b5645956d2684..117b60d8f599f61e54428eca14567e2240def5bd 100644 (file)
@@ -67,13 +67,13 @@ ERROR: no-group string ;
 <PRIVATE
 
 : >groups ( byte-array n -- groups )
-    [ 4 grouping:group ] dip head-slice [ *uint group-name ] map ;
+    [ 4 grouping:group ] dip head-slice [ uint deref group-name ] map ;
 
 : (user-groups) ( string -- seq )
     #! first group is -1337, legacy unix code
     -1337 unix.ffi:NGROUPS_MAX [ 4 * <byte-array> ] keep
-    <int> [ [ unix.ffi:getgrouplist ] unix-system-call drop ] 2keep
-    [ 4 tail-slice ] [ *int 1 - ] bi* >groups ;
+    int <ref> [ [ unix.ffi:getgrouplist ] unix-system-call drop ] 2keep
+    [ 4 tail-slice ] [ int deref 1 - ] bi* >groups ;
 
 PRIVATE>
     
index 7dacc97061e492d1445f7a0bfa96d14fe0f65363..00dd4bcb4a545bfd1424ea6e122331546e07675b 100644 (file)
@@ -17,7 +17,7 @@ TYPEDEF: long           ssize_t
 TYPEDEF: int            pid_t
 TYPEDEF: int            time_t
 
-ALIAS: <time_t> <int>
+: <time_t> ( n -- time_t ) int <ref> ;
 
 cell-bits {
     { 32 [ "unix.types.netbsd.32" require ] }
index 7c8fbd2b9d825a01261fd259ac1b208eece71348..071cc4747e23005adf67290dea8b08756cd1025e 100644 (file)
@@ -18,4 +18,4 @@ TYPEDEF: long           ssize_t
 TYPEDEF: int            pid_t
 TYPEDEF: int            time_t
 
-ALIAS: <time_t> <int>
\ No newline at end of file
+: <time_t> ( n -- time_t ) int <ref> ;
index 25c80061b2e464cd82bbf0e01a89e4ff2d751c6e..50b61dcf89568a55e48824c14fdf315384791c83 100644 (file)
@@ -21,7 +21,7 @@ CONSTANT: registry-value-max-length 16384
             [ key subkey mode ] dip n>win32-error-string
             open-key-failed
         ] if
-    ] keep *uint ;
+    ] keep uint deref ;
 
 :: create-key* ( hKey lpSubKey lpClass dwOptions samDesired lpSecurityAttributes -- hkey new? )
     hKey lpSubKey 0 lpClass dwOptions samDesired lpSecurityAttributes
@@ -29,8 +29,8 @@ CONSTANT: registry-value-max-length 16384
     DWORD <c-object>
     f :> ret!
     [ RegCreateKeyEx ret! ] 2keep
-    [ *uint ]
-    [ *uint REG_CREATED_NEW_KEY = ] bi*
+    [ uint deref ]
+    [ uint deref REG_CREATED_NEW_KEY = ] bi*
     ret ERROR_SUCCESS = [
         [
             hKey lpSubKey 0 lpClass dwOptions samDesired
@@ -67,11 +67,11 @@ CONSTANT: registry-value-max-length 16384
     length 2 * <byte-array> ;
 
 :: reg-query-value-ex ( key subkey ptr1 ptr2 buffer -- buffer )
-    buffer length <uint> :> pdword
+    buffer length uint <ref> :> pdword
     key subkey ptr1 ptr2 buffer pdword [ RegQueryValueEx ] 2keep
     rot :> ret
     ret ERROR_SUCCESS = [
-        *uint head
+        uint deref head
     ] [
         ret ERROR_MORE_DATA = [
             2drop
@@ -116,7 +116,7 @@ TUPLE: registry-enum-key ;
     key
     MAX_PATH
     dup TCHAR <c-array> dup :> class-buffer
-    swap <int> dup :> class-buffer-length
+    swap int <ref> dup :> class-buffer-length
     f
     DWORD <c-object> dup :> sub-keys
     DWORD <c-object> dup :> longest-subkey
@@ -130,13 +130,13 @@ TUPLE: registry-enum-key ;
     ret ERROR_SUCCESS = [
         key
         class-buffer
-        sub-keys *uint
-        longest-subkey *uint
-        longest-class-string *uint
-        #values *uint
-        max-value *uint
-        max-value-data *uint
-        security-descriptor *uint
+        sub-keys uint deref
+        longest-subkey uint deref
+        longest-class-string uint deref
+        #values uint deref
+        max-value uint deref
+        max-value-data uint deref
+        security-descriptor uint deref
         last-write-time FILETIME>timestamp
         registry-info boa
     ] [
@@ -191,4 +191,4 @@ PRIVATE>
     21 2^ <byte-array> reg-query-value-ex ;
     
 : read-registry ( key subkey -- registry-info )
-    KEY_READ [ reg-query-info-key ] with-open-registry-key ;
\ No newline at end of file
+    KEY_READ [ reg-query-info-key ] with-open-registry-key ;
index 496b9d688c3ea9ee381e4f6bcf836a59d1d2b69f..290c3e6aa338be2bdecc4e5b2344d2ab5a55f668 100644 (file)
@@ -32,7 +32,7 @@ TUPLE: x-clipboard atom contents ;
 
 : window-property ( win prop delete? -- string )
     [ [ dpy get ] 2dip 0 -1 ] dip AnyPropertyType
-    0 <Atom> 0 <int> 0 <ulong> 0 <ulong> f <void*>
+    0 <Atom> 0 int <ref> 0 <ulong> 0 <ulong> f <void*>
     [ XGetWindowProperty drop ] keep snarf-property ;
 
 : selection-from-event ( event window -- string )
@@ -53,7 +53,7 @@ TUPLE: x-clipboard atom contents ;
     [ dpy get ] dip
     [ requestor>> ]
     [ property>> XA_TIMESTAMP 32 PropModeReplace ]
-    [ time>> <int> ] tri
+    [ time>> int <ref> ] tri
     1 XChangeProperty drop ;
 
 : send-notify ( evt prop -- )
index 06add388b18fa4744551f61c0e93110cd4e2f7b3..d47672d59833a9a102c6415b1d6f672c6088f33e 100644 (file)
@@ -51,7 +51,7 @@ SYMBOL: keysym
 : lookup-string ( event xic -- string keysym )
     [
         prepare-lookup
-        swap keybuf get buf-size keysym get 0 <int>
+        swap keybuf get buf-size keysym get 0 int <ref>
         XwcLookupString
         finish-lookup
     ] with-scope ;
index 80aaf95d63e729f418ee393e8837fd715ca759eb..1a6b0e3cf25d77d9fbcf5bdf2e79817f108f198b 100644 (file)
@@ -5,7 +5,7 @@ x11.constants x11.xinput2.ffi ;
 IN: x11.xinput2
 
 : (xi2-available?) ( display -- ? )
-    2 0 [ <int> ] bi@
+    2 0 [ int <ref> ] bi@
     XIQueryVersion
     {
         { BadRequest [ f ] }
index 403015bad5da397dc487b02855459acbdab2c85e..522c33bbf11a61e991919daafe6717603e7fb0d6 100644 (file)
@@ -22,9 +22,9 @@ ERROR: invalid-demangle-args name ;
     "_Z" head? ;
 
 :: demangle ( mangled-name -- c++-name )
-    0 <ulong> :> length
-    0 <int> :> status [
+    0 ulong <ref> :> length
+    0 int <ref> :> status [
         mangled-name ascii string>alien f length status __cxa_demangle &(free) :> demangled-buf
-        mangled-name status *int demangle-error
+        mangled-name status int deref demangle-error
         demangled-buf ascii alien>string
     ] with-destructors ;
index 7a9ab59a6a5bc51911152c897ea9b57ec752b4c8..0ba01cc45350794138b3ccae51777ca944d8898a 100644 (file)
@@ -16,7 +16,7 @@ IN: cuda.contexts
     cuCtxSynchronize cuda-error ; inline
 
 : context-device ( -- n )
-    CUdevice <c-object> [ cuCtxGetDevice cuda-error ] keep *int ; inline
+    CUdevice <c-object> [ cuCtxGetDevice cuda-error ] keep int deref ; inline
 
 : destroy-context ( context -- ) cuCtxDestroy cuda-error ; inline
 
index 4e7a50e6f20e4b81e12c7745de488b14da9e1ae7..07e066a4397e34231568a644971fbfe0384ab2d2 100644 (file)
@@ -8,10 +8,11 @@ prettyprint sequences ;
 IN: cuda.devices
 
 : #cuda-devices ( -- n )
-    int <c-object> [ cuDeviceGetCount cuda-error ] keep *int ;
+    int <c-object> [ cuDeviceGetCount cuda-error ] keep int deref ;
 
 : n>cuda-device ( n -- device )
-    [ CUdevice <c-object> ] dip [ cuDeviceGet cuda-error ] 2keep drop *int ;
+    [ CUdevice <c-object> ] dip [ cuDeviceGet cuda-error ] 2keep
+    drop int deref ;
 
 : enumerate-cuda-devices ( -- devices )
     #cuda-devices iota [ n>cuda-device ] map ;
@@ -34,17 +35,17 @@ IN: cuda.devices
 : cuda-device-capability ( n -- pair )
     [ int <c-object> int <c-object> ] dip
     [ cuDeviceComputeCapability cuda-error ]
-    [ drop [ *int ] bi@ ] 3bi 2array ;
+    [ drop [ int deref ] bi@ ] 3bi 2array ;
 
 : cuda-device-memory ( n -- bytes )
     [ uint <c-object> ] dip
     [ cuDeviceTotalMem cuda-error ]
-    [ drop *uint ] 2bi ;
+    [ drop uint deref ] 2bi ;
 
 : cuda-device-attribute ( attribute n -- n )
     [ int <c-object> ] 2dip
     [ cuDeviceGetAttribute cuda-error ]
-    [ 2drop *int ] 3bi ;
+    [ 2drop int deref ] 3bi ;
 
 : cuda-device. ( n -- )
     {
index d4943e1350a4ce9d47eb4551ff3dbde588c36ecf..6ebee377aa04d09b2d3dc76f14299d98d2e8a45c 100644 (file)
@@ -24,7 +24,7 @@ IN: cuda.gl
     [ 1 swap <void*> f cuGraphicsMapResources cuda-error ] [
         [ CUdeviceptr <c-object> uint <c-object> ] dip
         [ cuGraphicsResourceGetMappedPointer cuda-error ] 3keep drop
-        [ *uint ] [ *uint ] bi*
+        [ uint deref ] [ uint deref ] bi*
     ] bi ; inline
 
 : unmap-resource ( resource -- )
index 547b7b9ae926d2b1f234142b2cd947d3e38a7d3b..74fdad63eac9c1e35639d9312bc928cda4d9a77f 100644 (file)
@@ -67,9 +67,9 @@ PRIVATE>
 :: ecdsa-sign ( DGST -- sig )
     ec-key-handle :> KEY
     KEY ECDSA_size dup ssl-error <byte-array> :> SIG
-    0 <uint> :> LEN
+    0 uint <ref> :> LEN
     0 DGST dup length SIG LEN KEY ECDSA_sign ssl-error
-    LEN *uint SIG resize ;
+    LEN uint deref SIG resize ;
 
 : ecdsa-verify ( dgst sig -- ? )
     ec-key-handle [ 0 -rot [ dup length ] bi@ ] dip ECDSA_verify 0 > ;
index 6172c8ad8ce616dd789e1fddf8babdd0c9e719c4..9ea08a7c837dc86d6182cf8982593966e463d81f 100644 (file)
@@ -57,7 +57,7 @@ TUPLE: buffer < gpu-object
     } case ; inline
 
 : get-buffer-int ( target enum -- value )
-    0 <int> [ glGetBufferParameteriv ] keep *int ; inline
+    0 int <ref> [ glGetBufferParameteriv ] keep int deref ; inline
 
 : bind-buffer ( buffer -- target )
     [ kind>> gl-target dup ] [ handle>> glBindBuffer ] bi ; inline
index 1aa9ae33df895449eb409b1b51a1a3561908c427..6f469a3c8bb7346b15785b51110c0be51e266b33 100644 (file)
@@ -18,7 +18,8 @@ TUPLE: renderbuffer < gpu-object
 <PRIVATE
 
 : get-framebuffer-int ( enum -- value )
-    GL_RENDERBUFFER swap 0 <int> [ glGetRenderbufferParameteriv ] keep *int ;
+    GL_RENDERBUFFER swap 0 int <ref>
+    [ glGetRenderbufferParameteriv ] keep int deref ;
 
 PRIVATE>
 
index d1c137128aa254e212e18b797abce5e6f8e51e7f..b032004d40d66ea9dadfbbb94fb2b9999deca43f 100755 (executable)
@@ -199,7 +199,7 @@ TR: hyphens>underscores "-" "_" ;
     name length 1 + :> name-buffer-length
     {
         index name-buffer-length dup
-        [ f 0 <int> 0 <int> ] dip <byte-array>
+        [ f 0 int <ref> 0 int <ref> ] dip <byte-array>
         [ glGetTransformFeedbackVarying ] 3keep
         ascii alien>string
         vertex-attribute assert-feedback-attribute    
index db767740384560dced591ffeebb77f7e8ae0cb7c..80fc89fea491c774c0dd91ef48dd4c467c459236 100755 (executable)
@@ -416,11 +416,11 @@ M: mask-state set-gpu-state*
     [ set-gpu-state* ] if ; inline
 
 : get-gl-bool ( enum -- value )
-    0 <uchar> [ glGetBooleanv ] keep *uchar c-bool> ;
+    0 uchar <ref> [ glGetBooleanv ] keep uchar deref c-bool> ;
 : get-gl-int ( enum -- value )
-    0 <int> [ glGetIntegerv ] keep *int ;
+    0 int <ref> [ glGetIntegerv ] keep int deref ;
 : get-gl-float ( enum -- value )
-    0 <float> [ glGetFloatv ] keep *float ;
+    0 float <ref> [ glGetFloatv ] keep float deref ;
 
 : get-gl-bools ( enum count -- value )
     <byte-array> [ glGetBooleanv ] keep [ c-bool> ] { } map-as ;
index 54439b762ca2f34f935041286e094ac89c0dd53f..e6e8898b93e9174725ccffbea423f5dc33a0cd8b 100755 (executable)
@@ -9,6 +9,6 @@ LIBRARY: alut
 FUNCTION: void alutLoadWAVFile ( c-string fileName, ALenum* format, void** data, ALsizei* size, ALsizei* frequency ) ;
 
 M: macosx load-wav-file ( path -- format data size frequency )
-    0 <int> f <void*> 0 <int> 0 <int>
+    0 int <ref> f <void*> 0 int <ref> 0 int <ref>
     [ alutLoadWAVFile ] 4 nkeep
-    [ [ [ *int ] dip *void* ] dip *int ] dip *int ;
+    [ [ [ int deref ] dip *void* ] dip int deref ] dip int deref ;
index 8b1cbd0cb35996a8dd50d9e520bab1637202b7a6..73b1aca86e04b6c487128f8a8980cd472f8ff3c1 100755 (executable)
@@ -9,6 +9,9 @@ LIBRARY: alut
 FUNCTION: void alutLoadWAVFile ( c-string fileName, ALenum* format, void** data, ALsizei* size, ALsizei* frequency, ALboolean* looping ) ;
 
 M: object load-wav-file ( filename -- format data size frequency )
-    0 <int> f <void*> 0 <int> 0 <int>
-    [ 0 <char> alutLoadWAVFile ] 4 nkeep
-    { [ *int ] [ *void* ] [ *int ] [ *int ] } spread ;
+    0 int <ref>
+    f <void*>
+    0 int <ref>
+    0 int <ref>
+    [ 0 char <ref> alutLoadWAVFile ] 4 nkeep
+    { [ int deref ] [ *void* ] [ int deref ] [ int deref ] } spread ;
index 853b33b38627b2a1d31034000be6006d2acd6c72..b1baa46d30af8e89d59b6bbb3466e6dde848db62 100755 (executable)
@@ -264,13 +264,13 @@ DESTRUCTOR: alcDestroyContext
     alSourcei ;
 
 : get-source-param ( source param -- value )
-    0 <uint> dup [ alGetSourcei ] dip *uint ;
+    0 uint <ref> dup [ alGetSourcei ] dip uint deref ;
 
 : set-buffer-param ( source param value -- )
     alBufferi ;
 
 : get-buffer-param ( source param -- value )
-    0 <uint> dup [ alGetBufferi ] dip *uint ;
+    0 uint <ref> dup [ alGetBufferi ] dip uint deref ;
 
 : source-play ( source -- ) alSourcePlay ;
 
index 1ec96e4c769427833b927ff6f33c24cb04e7e081..ab84c07d4916acd0e9b45993b9cbb634b94217ab 100644 (file)
@@ -29,33 +29,33 @@ ERROR: cl-error err ;
     str-alien str-buffer dup length memcpy str-alien ;
     
 :: opencl-square ( in -- out )
-    0 f 0 <uint> [ clGetPlatformIDs cl-success ] keep *uint
+    0 f 0 uint <ref> [ clGetPlatformIDs cl-success ] keep uint deref
     dup <void*-array> [ f clGetPlatformIDs cl-success ] keep first
     CL_DEVICE_TYPE_DEFAULT 1 f <void*> [ f clGetDeviceIDs cl-success ] keep *void* :> device-id
-    f 1 device-id <void*> f f 0 <int> [ clCreateContext ] keep *int cl-success   :> context
-    context device-id 0 0 <int> [ clCreateCommandQueue ] keep *int cl-success    :> queue
+    f 1 device-id <void*> f f 0 int <ref> [ clCreateContext ] keep int deref cl-success   :> context
+    context device-id 0 0 int <ref> [ clCreateCommandQueue ] keep int deref cl-success    :> queue
  
     [
         context 1 kernel-source cl-string-array <void*>
-        f 0 <int> [ clCreateProgramWithSource ] keep *int cl-success
+        f 0 int <ref> [ clCreateProgramWithSource ] keep int deref cl-success
         [ 0 f f f f clBuildProgram cl-success ]
-        [ "square" cl-string-array 0 <int> [ clCreateKernel ] keep *int cl-success ]
+        [ "square" cl-string-array 0 int <ref> [ clCreateKernel ] keep int deref cl-success ]
         [ ] tri
     ] with-destructors :> ( kernel program )
 
     context CL_MEM_READ_ONLY in byte-length f
-    0 <int> [ clCreateBuffer ] keep *int cl-success :> input
+    0 int <ref> [ clCreateBuffer ] keep int deref cl-success :> input
     
     context CL_MEM_WRITE_ONLY in byte-length f
-    0 <int> [ clCreateBuffer ] keep *int cl-success :> output
+    0 int <ref> [ clCreateBuffer ] keep int deref cl-success :> output
 
     queue input CL_TRUE 0 in byte-length in 0 f f clEnqueueWriteBuffer cl-success
 
     kernel 0 cl_mem heap-size input <void*> clSetKernelArg cl-success
     kernel 1 cl_mem heap-size output <void*> clSetKernelArg cl-success
-    kernel 2 uint heap-size in length <uint> clSetKernelArg cl-success
+    kernel 2 uint heap-size in length uint <ref> clSetKernelArg cl-success
  
-    queue kernel 1 f in length <ulonglong> f
+    queue kernel 1 f in length ulonglong <ref> f
     0 f f clEnqueueNDRangeKernel cl-success
  
     queue clFinish cl-success
index 6fd7bb581d5513b201857ca0ebe82db1c8b801eb..628a9b0d63a216caef4370ef95133207b5f87432 100644 (file)
@@ -32,7 +32,7 @@ __kernel void square(
             cl-read-access num-bytes in <cl-buffer> &dispose :> in-buffer
             cl-write-access num-bytes f <cl-buffer> &dispose :> out-buffer
             
-            kernel in-buffer out-buffer num-floats <uint> 3array
+            kernel in-buffer out-buffer num-floats uint <ref> 3array
             { num-floats } [ ] cl-queue-kernel &dispose drop
             
             cl-finish
index 17f0143ae1c067a9af94f3ff23b60f42f4381675..78e96e2ff13df86fa8ffa129180e71431d6fe37f 100644 (file)
@@ -17,7 +17,7 @@ ERROR: cl-error err ;
     dup f = [ cl-error ] [ drop ] if ; inline
  
 : info-data-size ( handle name info-quot -- size_t )
-    [ 0 f 0 <size_t> ] dip [ call cl-success ] 2keep drop *size_t ; inline
+    [ 0 f 0 <size_t> ] dip [ call cl-success ] 2keep drop size_t deref ; inline
 
 : info-data-bytes ( handle name info-quot size -- bytes )
     swap [ dup <byte-array> f ] dip [ call cl-success ] 3keep 2drop ; inline
@@ -26,7 +26,7 @@ ERROR: cl-error err ;
     [ 3dup info-data-size info-data-bytes ] dip call ; inline
 
 : 2info-data-size ( handle1 handle2 name info-quot -- size_t )
-    [ 0 f 0 <size_t> ] dip [ call cl-success ] 2keep drop *size_t ; inline
+    [ 0 f 0 <size_t> ] dip [ call cl-success ] 2keep drop size_t deref ; inline
 
 : 2info-data-bytes ( handle1 handle2 name info-quot size -- bytes )
     swap [ dup <byte-array> f ] dip [ call cl-success ] 3keep 2drop ; inline
@@ -35,22 +35,22 @@ ERROR: cl-error err ;
     [ 4dup 2info-data-size 2info-data-bytes ] dip call ; inline
     
 : info-bool ( handle name quot -- ? )
-    [ *uint CL_TRUE = ] info ; inline
+    [ uint deref CL_TRUE = ] info ; inline
 
 : info-ulong ( handle name quot -- ulong )
-    [ *ulonglong ] info ; inline
+    [ ulonglong deref ] info ; inline
 
 : info-int ( handle name quot -- int )
-    [ *int ] info ; inline
+    [ int deref ] info ; inline
 
 : info-uint ( handle name quot -- uint )
-    [ *uint ] info ; inline
+    [ uint deref ] info ; inline
 
 : info-size_t ( handle name quot -- size_t )
-    [ *size_t ] info ; inline
+    [ size_t deref ] info ; inline
 
 : 2info-size_t ( handle1 handle2 name quot -- size_t )
-    [ *size_t ] 2info ; inline
+    [ size_t deref ] 2info ; inline
 
 : info-string ( handle name quot -- string )
     [ ascii decode 1 head* ] info ; inline
@@ -311,7 +311,7 @@ M: cl-filter-linear  filter-mode-constant drop CL_FILTER_LINEAR ;
 
 : platform-devices ( platform-id -- devices )
     CL_DEVICE_TYPE_ALL [
-        0 f 0 <uint> [ clGetDeviceIDs cl-success ] keep *uint
+        0 f 0 uint <ref> [ clGetDeviceIDs cl-success ] keep uint deref
     ] [
         rot dup <void*-array> [ f clGetDeviceIDs cl-success ] keep
     ] 2bi ; inline
@@ -340,7 +340,7 @@ M: cl-filter-linear  filter-mode-constant drop CL_FILTER_LINEAR ;
         [ length ]
         [ strings>char*-array ]
         [ [ length ] size_t-array{ } map-as ] tri
-        0 <int> [ clCreateProgramWithSource ] keep *int cl-success
+        0 int <ref> [ clCreateProgramWithSource ] keep int deref cl-success
     ] with-destructors ;
 
 :: (build-program) ( program-handle device options -- program )
@@ -425,7 +425,7 @@ PRIVATE>
     ] dip bind ; inline
 
 : cl-platforms ( -- platforms )
-    0 f 0 <uint> [ clGetPlatformIDs cl-success ] keep *uint
+    0 f 0 uint <ref> [ clGetPlatformIDs cl-success ] keep uint deref
     dup <void*-array> [ f clGetPlatformIDs cl-success ] keep
     [
         dup
@@ -437,14 +437,14 @@ PRIVATE>
 : <cl-context> ( devices -- cl-context )
     [ f ] dip
     [ length ] [ [ id>> ] void*-array{ } map-as ] bi
-    f f 0 <int> [ clCreateContext ] keep *int cl-success
+    f f 0 int <ref> [ clCreateContext ] keep int deref cl-success
     cl-context new-disposable swap >>handle ;
 
 : <cl-queue> ( context device out-of-order? profiling? -- command-queue )
     [ [ handle>> ] [ id>> ] bi* ] 2dip
     [ [ CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE ] [ 0 ] if ]
     [ [ CL_QUEUE_PROFILING_ENABLE ] [ 0 ] if ] bi* bitor
-    0 <int> [ clCreateCommandQueue ] keep *int cl-success
+    0 int <ref> [ clCreateCommandQueue ] keep int deref cl-success
     cl-queue new-disposable swap >>handle ;
 
 : cl-out-of-order-execution? ( command-queue -- ? )
@@ -462,7 +462,7 @@ PRIVATE>
         [ buffer-access-constant ]
         [ [ CL_MEM_COPY_HOST_PTR ] [ CL_MEM_ALLOC_HOST_PTR ] if ] tri* bitor
     ] 2dip
-    0 <int> [ clCreateBuffer ] keep *int cl-success
+    0 int <ref> [ clCreateBuffer ] keep int deref cl-success
     cl-buffer new-disposable swap >>handle ;
 
 : cl-read-buffer ( buffer-range -- byte-array )
@@ -512,7 +512,7 @@ PRIVATE>
     [ [ CL_TRUE ] [ CL_FALSE ] if ]
     [ addressing-mode-constant ]
     [ filter-mode-constant ]
-    tri* 0 <int> [ clCreateSampler ] keep *int cl-success 
+    tri* 0 int <ref> [ clCreateSampler ] keep int deref cl-success 
     cl-sampler new-disposable swap >>handle ;
 
 : cl-normalized-coords? ( sampler -- ? )
@@ -531,7 +531,7 @@ PRIVATE>
 
 : <cl-kernel> ( program kernel-name -- kernel )
     [ handle>> ] [ ascii encode 0 suffix ] bi*
-    0 <int> [ clCreateKernel ] keep *int cl-success
+    0 int <ref> [ clCreateKernel ] keep int deref cl-success
     cl-kernel new-disposable swap >>handle ; inline
 
 : cl-kernel-name ( kernel -- string )
index de160f5598ea3ddbb590489c834e098a0bac4c4f..a7e53394bb70724c8876f69a7c3ba63b09c3b63b 100644 (file)
@@ -28,14 +28,14 @@ INSTANCE: TYPE assoc
 M: TYPE dispose* [ DBDEL f ] change-handle drop ;
 
 M: TYPE at* ( key db -- value/f ? )
-    handle>> swap object>bytes dup length 0 <int>
+    handle>> swap object>bytes dup length 0 int <ref>
     DBGET [ [ memory>object ] [ tcfree ] bi t ] [ f f ] if* ;
 
 M: TYPE assoc-size ( db -- size ) handle>> DBRNUM ;
 
 : DBKEYS ( db -- keys )
     [ assoc-size <vector> ] [ handle>> ] bi
-    dup DBITERINIT drop 0 <int>
+    dup DBITERINIT drop 0 int <ref>
     [ 2dup DBITERNEXT dup ] [
         [ memory>object ] [ tcfree ] bi
         [ pick ] dip swap push