Loading CREDITS +2 −1 Original line number Diff line number Diff line Loading @@ -675,10 +675,12 @@ Raymond Wiker: INITIALS GLOSSARY (helpful when reading comments, CVS commit logs, etc.) VJA Vincent Arkesteijn MNA Martin Atzmueller DB Daniel Barlow (also "dan") DTC Douglas Crosher APD Alexey Dejneka PFD Paul F. Dietz NJF Nathan Froyd AL Arthur Lemmens RAM Robert MacLachlan Loading @@ -687,4 +689,3 @@ WHN William ("Bill") Newman CSR Christophe Rhodes PVE Peter Van Eynde PW Paul Werkowski PFD Paul F. Dietz NEWS +2 −0 Original line number Diff line number Diff line Loading @@ -2259,6 +2259,8 @@ changes in sbcl-0.8.8 relative to sbcl-0.8.7: recursive manner. * bug fix: arrays specialized on (UNSIGNED-BYTE 15) are now recognized as being TYPEP their class. * bug fix: the PUSHNEW documentation string has been corrected. (thanks to Vincent Arkesteijn) * optimization: implemented multiplication as a modular (UNSIGNED-BYTE 32) operation on the x86 backend. * optimization: SEARCH on simple-base-strings can now be open-coded. Loading contrib/sb-posix/constants.lisp +127 −2 Original line number Diff line number Diff line Loading @@ -11,7 +11,9 @@ "sys/socket.h" "sys/un.h" "netinet/in.h" "netinet/in_systm.h" "netinet/ip.h" "net/if.h" "netdb.h" "errno.h" "netinet/tcp.h" "fcntl.h" "sys/mman.h" "dirent.h" "signal.h") "dirent.h" "signal.h" "termios.h") ;;; then the stuff we're looking for ((:integer af-inet "AF_INET" "IP Protocol family") Loading Loading @@ -289,4 +291,127 @@ (:integer f-getown "F_GETOWN") (:integer f-setown "F_SETOWN") ;; tcgetattr(), tcsetattr() (:type cc-t "cc_t") (:type speed-t "speed_t") (:type tcflag-t "tcflag_t") (:integer nccs "NCCS") (:structure termios ("struct termios" (tcflag-t iflag "tcflag_t" "c_iflag") (tcflag-t oflag "tcflag_t" "c_oflag") (tcflag-t cflag "tcflag_t" "c_cflag") (tcflag-t lflag "tcflag_t" "c_lflag") ;; Uh, so what's the point of grovelling CC-T if I can't ;; use it here? the c_cc field is an array of NCCS ;; elements of type cc_t. FIXME ((array (unsigned 8)) cc "cc_t" "c_cc"))) (:integer veof "VEOF") (:integer veol "VEOL") (:integer verase "VERASE") (:integer vintr "VINTR") (:integer vkill "VKILL") (:integer vmin "VMIN") (:integer vquit "VQUIT") (:integer vstart "VSTART") (:integer vstop "VSTOP") (:integer vsusp "VSUSP") (:integer vtime "VTIME") (:integer brkint "BRKINT") (:integer icrnl "ICRNL") (:integer ignbrk "IGNBRK") (:integer igncr "IGNCR") (:integer ignpar "IGNPAR") (:integer inlcr "INLCR") (:integer inpck "INPCK") (:integer istrip "ISTRIP") #+xsi ; FIXME: an extension, apparently (:integer ixany "IXANY") (:integer ixoff "IXOFF") (:integer ixon "IXON") (:integer parmrk "PARMRK") (:integer opost "OPOST") #+xsi (:integer onlcr "ONLCR") (:integer ocrnl "OCRNL") (:integer onlret "ONLRET") (:integer ofill "OFILL") (:integer nldly "NLDLY") (:integer nl0 "NL0") (:integer nl1 "NL1") (:integer crdly "CRDLY") (:integer cr0 "CR0") (:integer cr1 "CR1") (:integer cr2 "CR2") (:integer cr3 "CR3") (:integer tabdly "TABDLY") (:integer tab0 "TAB0") (:integer tab1 "TAB1") (:integer tab2 "TAB2") (:integer tab3 "TAB3") (:integer bsdly "BSDLY") (:integer bs0 "BS0") (:integer bs1 "BS1") (:integer vtdly "VTDLY") (:integer vt0 "VT0") (:integer vt1 "VT1") (:integer ffdly "FFDLY") (:integer ff0 "FF0") (:integer ff1 "FF1") (:integer b0 "B0") (:integer b50 "B50") (:integer b75 "B75") (:integer b110 "B110") (:integer b134 "B134") (:integer b150 "B150") (:integer b200 "B200") (:integer b300 "B300") (:integer b600 "B600") (:integer b1200 "B1200") (:integer b1800 "B1800") (:integer b2400 "B2400") (:integer b4800 "B4800") (:integer b9600 "B9600") (:integer b19200 "B19200") (:integer b38400 "B38400") (:integer csize "CSIZE") (:integer cs5 "CS5") (:integer cs6 "CS6") (:integer cs7 "CS7") (:integer cs8 "CS8") (:integer cstopb "CSTOPB") (:integer cread "CREAD") (:integer parenb "PARENB") (:integer parodd "PARODD") (:integer hupcl "HUPCL") (:integer clocal "CLOCAL") (:integer echo "ECHO") (:integer echoe "ECHOE") (:integer echok "ECHOK") (:integer echonl "ECHONL") (:integer icanon "ICANON") (:integer iexten "IEXTEN") (:integer isig "ISIG") (:integer noflsh "NOFLSH") (:integer tostop "TOSTOP") (:integer tcsanow "TCSANOW") (:integer tcsadrain "TCSADRAIN") (:integer tcsaflush "TCSAFLUSH") (:integer tciflush "TCIFLUSH") (:integer tcioflush "TCIOFLUSH") (:integer tcoflush "TCOFLUSH") (:integer tcioff "TCIOFF") (:integer tcion "TCION") (:integer tcooff "TCOOFF") (:integer tcoon "TCOON") ) contrib/sb-posix/interface.lisp +38 −0 Original line number Diff line number Diff line Loading @@ -197,3 +197,41 @@ (when (minusp r) (syscall-error))) (values (aref filedes2 0) (aref filedes2 1))) (export 'sb-posix::tcsetattr :sb-posix) (declaim (inline sb-posix::tcsetattr)) (defun sb-posix::tcsetattr (fd actions termios) (let ((fd (sb-posix::file-descriptor fd))) (let* ((s (sb-sys:int-sap ;; FIXME: WILL NOT WORK ON 64-BIT LISP. VECTOR-SAP would ;; be better if the STAT object were guaranteed to be a ;; vector, but it's not (and may well turn into an alien ;; soon). (+ 8 (logandc2 (sb-kernel:get-lisp-obj-address termios) 7)))) (r (alien-funcall ;; it's the old (* T) problem again :-( (extern-alien "tcsetattr" (function int int int (* t))) fd actions s))) (when (minusp r) (syscall-error))) (values))) (export 'sb-posix::tcgetattr :sb-posix) (declaim (inline sb-posix::tcgetattr)) (defun sb-posix::tcgetattr (fd &optional termios) (unless termios (setq termios (sb-posix::allocate-termios))) ;; FIXME: Hmm. WITH-PINNED-OBJECTS/WITHOUT-GCING or something ;; is probably needed round here. (let* ((s (sb-sys:int-sap ;; FIXME: WILL NOT WORK ON 64-BIT LISP. VECTOR-SAP would ;; be better if the STAT object were guaranteed to be a ;; vector, but it's not (and may well turn into an alien ;; soon). (+ 8 (logandc2 (sb-kernel:get-lisp-obj-address termios) 7)))) (r (alien-funcall (extern-alien "tcgetattr" (function int int (* t))) (sb-posix::file-descriptor fd) s))) (when (minusp r) (syscall-error))) termios) version.lisp-expr +1 −1 Original line number Diff line number Diff line Loading @@ -17,4 +17,4 @@ ;;; checkins which aren't released. (And occasionally for internal ;;; versions, especially for internal versions off the main CVS ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) "0.8.7.52" "0.8.7.53" Loading
CREDITS +2 −1 Original line number Diff line number Diff line Loading @@ -675,10 +675,12 @@ Raymond Wiker: INITIALS GLOSSARY (helpful when reading comments, CVS commit logs, etc.) VJA Vincent Arkesteijn MNA Martin Atzmueller DB Daniel Barlow (also "dan") DTC Douglas Crosher APD Alexey Dejneka PFD Paul F. Dietz NJF Nathan Froyd AL Arthur Lemmens RAM Robert MacLachlan Loading @@ -687,4 +689,3 @@ WHN William ("Bill") Newman CSR Christophe Rhodes PVE Peter Van Eynde PW Paul Werkowski PFD Paul F. Dietz
NEWS +2 −0 Original line number Diff line number Diff line Loading @@ -2259,6 +2259,8 @@ changes in sbcl-0.8.8 relative to sbcl-0.8.7: recursive manner. * bug fix: arrays specialized on (UNSIGNED-BYTE 15) are now recognized as being TYPEP their class. * bug fix: the PUSHNEW documentation string has been corrected. (thanks to Vincent Arkesteijn) * optimization: implemented multiplication as a modular (UNSIGNED-BYTE 32) operation on the x86 backend. * optimization: SEARCH on simple-base-strings can now be open-coded. Loading
contrib/sb-posix/constants.lisp +127 −2 Original line number Diff line number Diff line Loading @@ -11,7 +11,9 @@ "sys/socket.h" "sys/un.h" "netinet/in.h" "netinet/in_systm.h" "netinet/ip.h" "net/if.h" "netdb.h" "errno.h" "netinet/tcp.h" "fcntl.h" "sys/mman.h" "dirent.h" "signal.h") "dirent.h" "signal.h" "termios.h") ;;; then the stuff we're looking for ((:integer af-inet "AF_INET" "IP Protocol family") Loading Loading @@ -289,4 +291,127 @@ (:integer f-getown "F_GETOWN") (:integer f-setown "F_SETOWN") ;; tcgetattr(), tcsetattr() (:type cc-t "cc_t") (:type speed-t "speed_t") (:type tcflag-t "tcflag_t") (:integer nccs "NCCS") (:structure termios ("struct termios" (tcflag-t iflag "tcflag_t" "c_iflag") (tcflag-t oflag "tcflag_t" "c_oflag") (tcflag-t cflag "tcflag_t" "c_cflag") (tcflag-t lflag "tcflag_t" "c_lflag") ;; Uh, so what's the point of grovelling CC-T if I can't ;; use it here? the c_cc field is an array of NCCS ;; elements of type cc_t. FIXME ((array (unsigned 8)) cc "cc_t" "c_cc"))) (:integer veof "VEOF") (:integer veol "VEOL") (:integer verase "VERASE") (:integer vintr "VINTR") (:integer vkill "VKILL") (:integer vmin "VMIN") (:integer vquit "VQUIT") (:integer vstart "VSTART") (:integer vstop "VSTOP") (:integer vsusp "VSUSP") (:integer vtime "VTIME") (:integer brkint "BRKINT") (:integer icrnl "ICRNL") (:integer ignbrk "IGNBRK") (:integer igncr "IGNCR") (:integer ignpar "IGNPAR") (:integer inlcr "INLCR") (:integer inpck "INPCK") (:integer istrip "ISTRIP") #+xsi ; FIXME: an extension, apparently (:integer ixany "IXANY") (:integer ixoff "IXOFF") (:integer ixon "IXON") (:integer parmrk "PARMRK") (:integer opost "OPOST") #+xsi (:integer onlcr "ONLCR") (:integer ocrnl "OCRNL") (:integer onlret "ONLRET") (:integer ofill "OFILL") (:integer nldly "NLDLY") (:integer nl0 "NL0") (:integer nl1 "NL1") (:integer crdly "CRDLY") (:integer cr0 "CR0") (:integer cr1 "CR1") (:integer cr2 "CR2") (:integer cr3 "CR3") (:integer tabdly "TABDLY") (:integer tab0 "TAB0") (:integer tab1 "TAB1") (:integer tab2 "TAB2") (:integer tab3 "TAB3") (:integer bsdly "BSDLY") (:integer bs0 "BS0") (:integer bs1 "BS1") (:integer vtdly "VTDLY") (:integer vt0 "VT0") (:integer vt1 "VT1") (:integer ffdly "FFDLY") (:integer ff0 "FF0") (:integer ff1 "FF1") (:integer b0 "B0") (:integer b50 "B50") (:integer b75 "B75") (:integer b110 "B110") (:integer b134 "B134") (:integer b150 "B150") (:integer b200 "B200") (:integer b300 "B300") (:integer b600 "B600") (:integer b1200 "B1200") (:integer b1800 "B1800") (:integer b2400 "B2400") (:integer b4800 "B4800") (:integer b9600 "B9600") (:integer b19200 "B19200") (:integer b38400 "B38400") (:integer csize "CSIZE") (:integer cs5 "CS5") (:integer cs6 "CS6") (:integer cs7 "CS7") (:integer cs8 "CS8") (:integer cstopb "CSTOPB") (:integer cread "CREAD") (:integer parenb "PARENB") (:integer parodd "PARODD") (:integer hupcl "HUPCL") (:integer clocal "CLOCAL") (:integer echo "ECHO") (:integer echoe "ECHOE") (:integer echok "ECHOK") (:integer echonl "ECHONL") (:integer icanon "ICANON") (:integer iexten "IEXTEN") (:integer isig "ISIG") (:integer noflsh "NOFLSH") (:integer tostop "TOSTOP") (:integer tcsanow "TCSANOW") (:integer tcsadrain "TCSADRAIN") (:integer tcsaflush "TCSAFLUSH") (:integer tciflush "TCIFLUSH") (:integer tcioflush "TCIOFLUSH") (:integer tcoflush "TCOFLUSH") (:integer tcioff "TCIOFF") (:integer tcion "TCION") (:integer tcooff "TCOOFF") (:integer tcoon "TCOON") )
contrib/sb-posix/interface.lisp +38 −0 Original line number Diff line number Diff line Loading @@ -197,3 +197,41 @@ (when (minusp r) (syscall-error))) (values (aref filedes2 0) (aref filedes2 1))) (export 'sb-posix::tcsetattr :sb-posix) (declaim (inline sb-posix::tcsetattr)) (defun sb-posix::tcsetattr (fd actions termios) (let ((fd (sb-posix::file-descriptor fd))) (let* ((s (sb-sys:int-sap ;; FIXME: WILL NOT WORK ON 64-BIT LISP. VECTOR-SAP would ;; be better if the STAT object were guaranteed to be a ;; vector, but it's not (and may well turn into an alien ;; soon). (+ 8 (logandc2 (sb-kernel:get-lisp-obj-address termios) 7)))) (r (alien-funcall ;; it's the old (* T) problem again :-( (extern-alien "tcsetattr" (function int int int (* t))) fd actions s))) (when (minusp r) (syscall-error))) (values))) (export 'sb-posix::tcgetattr :sb-posix) (declaim (inline sb-posix::tcgetattr)) (defun sb-posix::tcgetattr (fd &optional termios) (unless termios (setq termios (sb-posix::allocate-termios))) ;; FIXME: Hmm. WITH-PINNED-OBJECTS/WITHOUT-GCING or something ;; is probably needed round here. (let* ((s (sb-sys:int-sap ;; FIXME: WILL NOT WORK ON 64-BIT LISP. VECTOR-SAP would ;; be better if the STAT object were guaranteed to be a ;; vector, but it's not (and may well turn into an alien ;; soon). (+ 8 (logandc2 (sb-kernel:get-lisp-obj-address termios) 7)))) (r (alien-funcall (extern-alien "tcgetattr" (function int int (* t))) (sb-posix::file-descriptor fd) s))) (when (minusp r) (syscall-error))) termios)
version.lisp-expr +1 −1 Original line number Diff line number Diff line Loading @@ -17,4 +17,4 @@ ;;; checkins which aren't released. (And occasionally for internal ;;; versions, especially for internal versions off the main CVS ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) "0.8.7.52" "0.8.7.53"