fix bootstrap on intel mac

db4
erg 2008-04-02 20:33:36 -05:00
parent c53e75ef0f
commit 5de68cd30f
7 changed files with 29 additions and 32 deletions

View File

@ -10,12 +10,12 @@ IN: io.unix.mmap
>r f -roll r> open-r/w [ 0 mmap ] keep >r f -roll r> open-r/w [ 0 mmap ] keep
over MAP_FAILED = [ close (io-error) ] when ; over MAP_FAILED = [ close (io-error) ] when ;
M: unix-io <mapped-file> ( path length -- obj ) M: unix <mapped-file> ( path length -- obj )
swap >r swap >r
dup PROT_READ PROT_WRITE bitor MAP_FILE MAP_SHARED bitor dup PROT_READ PROT_WRITE bitor MAP_FILE MAP_SHARED bitor
r> mmap-open f mapped-file construct-boa ; r> mmap-open f mapped-file construct-boa ;
M: unix-io close-mapped-file ( mmap -- ) M: unix close-mapped-file ( mmap -- )
[ mapped-file-address ] keep [ mapped-file-address ] keep
[ mapped-file-length munmap ] keep [ mapped-file-length munmap ] keep
mapped-file-handle close mapped-file-handle close

View File

@ -7,7 +7,7 @@ USING: alien alien.c-types generic io kernel math namespaces
io.nonblocking parser threads unix sequences io.nonblocking parser threads unix sequences
byte-arrays io.sockets io.binary io.unix.backend byte-arrays io.sockets io.binary io.unix.backend
io.streams.duplex io.sockets.impl math.parser continuations libc io.streams.duplex io.sockets.impl math.parser continuations libc
combinators io.backend io.files ; combinators io.backend io.files system ;
IN: io.unix.sockets IN: io.unix.sockets
: pending-init-error ( port -- ) : pending-init-error ( port -- )
@ -23,7 +23,7 @@ IN: io.unix.sockets
: sockopt ( fd level opt -- ) : sockopt ( fd level opt -- )
1 <int> "int" heap-size setsockopt io-error ; 1 <int> "int" heap-size setsockopt io-error ;
M: unix-io addrinfo-error ( n -- ) M: unix addrinfo-error ( n -- )
dup zero? [ drop ] [ gai_strerror throw ] if ; dup zero? [ drop ] [ gai_strerror throw ] if ;
! Client sockets - TCP and Unix domain ! Client sockets - TCP and Unix domain
@ -42,7 +42,7 @@ M: connect-task do-io-task
: wait-to-connect ( port -- ) : wait-to-connect ( port -- )
[ <connect-task> add-io-task ] with-port-continuation drop ; [ <connect-task> add-io-task ] with-port-continuation drop ;
M: unix-io (client) ( addrspec -- client-in client-out ) M: unix (client) ( addrspec -- client-in client-out )
dup make-sockaddr/size >r >r dup make-sockaddr/size >r >r
protocol-family SOCK_STREAM socket-fd protocol-family SOCK_STREAM socket-fd
dup r> r> connect dup r> r> connect
@ -91,11 +91,11 @@ USE: io.sockets
dup rot make-sockaddr/size bind dup rot make-sockaddr/size bind
zero? [ dup close (io-error) ] unless ; zero? [ dup close (io-error) ] unless ;
M: unix-io (server) ( addrspec -- handle ) M: unix (server) ( addrspec -- handle )
SOCK_STREAM server-fd SOCK_STREAM server-fd
dup 10 listen zero? [ dup close (io-error) ] unless ; dup 10 listen zero? [ dup close (io-error) ] unless ;
M: unix-io (accept) ( server -- addrspec handle ) M: unix (accept) ( server -- addrspec handle )
#! Wait for a client connection. #! Wait for a client connection.
dup check-server-port dup check-server-port
dup wait-to-accept dup wait-to-accept
@ -104,7 +104,7 @@ M: unix-io (accept) ( server -- addrspec handle )
swap server-port-client ; swap server-port-client ;
! Datagram sockets - UDP and Unix domain ! Datagram sockets - UDP and Unix domain
M: unix-io <datagram> M: unix <datagram>
[ SOCK_DGRAM server-fd ] keep <datagram-port> ; [ SOCK_DGRAM server-fd ] keep <datagram-port> ;
SYMBOL: receive-buffer SYMBOL: receive-buffer
@ -147,7 +147,7 @@ M: receive-task do-io-task
: wait-receive ( stream -- ) : wait-receive ( stream -- )
[ <receive-task> add-io-task ] with-port-continuation drop ; [ <receive-task> add-io-task ] with-port-continuation drop ;
M: unix-io receive ( datagram -- packet addrspec ) M: unix receive ( datagram -- packet addrspec )
dup check-datagram-port dup check-datagram-port
dup wait-receive dup wait-receive
dup pending-error dup pending-error
@ -179,7 +179,7 @@ M: send-task do-io-task
[ <send-task> add-io-task ] with-port-continuation [ <send-task> add-io-task ] with-port-continuation
2drop 2drop ; 2drop 2drop ;
M: unix-io send ( packet addrspec datagram -- ) M: unix send ( packet addrspec datagram -- )
3dup check-datagram-send 3dup check-datagram-send
[ >r make-sockaddr/size r> wait-send ] keep [ >r make-sockaddr/size r> wait-send ] keep
pending-error ; pending-error ;

View File

@ -1,5 +1,5 @@
USING: io.unix.backend io.unix.files io.unix.sockets io.timeouts USING: io.unix.backend io.unix.files io.unix.sockets io.timeouts
io.unix.launcher io.unix.mmap io.backend combinators namespaces io.unix.launcher io.unix.mmap io.backend combinators namespaces
system vocabs.loader sequences ; system vocabs.loader sequences words ;
"io.unix." os word-name append require "io.unix." os word-name append require

View File

@ -73,8 +73,8 @@ C-STRUCT: sockaddr-un
: SEEK_END 2 ; inline : SEEK_END 2 ; inline
os { os {
{ "macosx" [ "unix.bsd.macosx" require ] } { macosx [ "unix.bsd.macosx" require ] }
{ "freebsd" [ "unix.bsd.freebsd" require ] } { freebsd [ "unix.bsd.freebsd" require ] }
{ "openbsd" [ "unix.bsd.openbsd" require ] } { openbsd [ "unix.bsd.openbsd" require ] }
{ "netbsd" [ "unix.bsd.netbsd" require ] } { netbsd [ "unix.bsd.netbsd" require ] }
} case } case

View File

@ -1,6 +1,6 @@
! Copyright (C) 2008 Slava Pestov. ! Copyright (C) 2008 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: alien.syntax system sequences vocabs.loader ; USING: alien.syntax system sequences vocabs.loader words ;
IN: unix.kqueue IN: unix.kqueue
<< "unix.kqueue." os word-name append require >> << "unix.kqueue." os word-name append require >>

View File

@ -1,17 +1,14 @@
USING: kernel system alien.syntax combinators vocabs.loader
USING: kernel system alien.syntax combinators vocabs.loader ; system ;
IN: unix.types IN: unix.types
TYPEDEF: void* caddr_t TYPEDEF: void* caddr_t
os os {
{ { linux [ "unix.types.linux" require ] }
{ "linux" [ "unix.types.linux" require ] } { macosx [ "unix.types.macosx" require ] }
{ "macosx" [ "unix.types.macosx" require ] } { freebsd [ "unix.types.freebsd" require ] }
{ "freebsd" [ "unix.types.freebsd" require ] } { openbsd [ "unix.types.openbsd" require ] }
{ "openbsd" [ "unix.types.openbsd" require ] } { netbsd [ "unix.types.netbsd" require ] }
{ "netbsd" [ "unix.types.netbsd" require ] } { winnt [ ] }
{ "winnt" [ ] } } case
}
case

View File

@ -161,8 +161,8 @@ FUNCTION: pid_t waitpid ( pid_t wpid, int* status, int options ) ;
FUNCTION: ssize_t write ( int fd, void* buf, size_t nbytes ) ; FUNCTION: ssize_t write ( int fd, void* buf, size_t nbytes ) ;
{ {
{ [ linux? ] [ "unix.linux" require ] } { [ os linux? ] [ "unix.linux" require ] }
{ [ bsd? ] [ "unix.bsd" require ] } { [ os bsd? ] [ "unix.bsd" require ] }
{ [ solaris? ] [ "unix.solaris" require ] } { [ os solaris? ] [ "unix.solaris" require ] }
} cond } cond