From: <cli...@li...> - 2005-09-02 03:19:25
|
Send clisp-cvs mailing list submissions to cli...@li... To subscribe or unsubscribe via the World Wide Web, visit https://lists.sourceforge.net/lists/listinfo/clisp-cvs or, via email, send a message with subject or body 'help' to cli...@li... You can reach the person managing the list at cli...@li... When replying, please edit your Subject line so it is more specific than "Re: Contents of clisp-cvs digest..." CLISP CVS commits for today Today's Topics: 1. clisp/src TODO,1.115,1.116 (Sam Steingold) 2. clisp/modules/syscalls test.tst,1.8,1.9 (Sam Steingold) 3. clisp/modules/rawsock test.tst,1.9,1.10 (Sam Steingold) 4. clisp/src symbol.d,1.33,1.34 lispbibl.d,1.663,1.664 error.d,1.135,1.136 ChangeLog,1.4863,1.4864 (Sam Steingold) 5. clisp/src ChangeLog,1.4864,1.4865 (Sam Steingold) 6. clisp/tests tests.lisp,1.67,1.68 (Sam Steingold) 7. clisp/modules/rawsock test.tst,1.10,1.11 (Sam Steingold) 8. clisp/src ChangeLog,1.4865,1.4866 (Sam Steingold) 9. clisp/modules/rawsock rawsock.c,1.37,1.38 (Sam Steingold) 10. clisp/doc faq.xml,1.8,1.9 (Sam Steingold) 11. clisp/doc impbyte.xml,1.82,1.83 (Sam Steingold) --__--__-- Message: 1 From: Sam Steingold <sd...@us...> To: cli...@li... Subject: clisp/src TODO,1.115,1.116 Date: Thu, 01 Sep 2005 15:23:44 +0000 Reply-To: cli...@li... Update of /cvsroot/clisp/clisp/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17134/src Modified Files: TODO Log Message: LISTEN should work on all streams and READ-CHAR-WILL-HANG-P should be merged with READ-BYTE-WILL-HANG-P into WILL-HANG-P Index: TODO =================================================================== RCS file: /cvsroot/clisp/clisp/src/TODO,v retrieving revision 1.115 retrieving revision 1.116 diff -u -d -r1.115 -r1.116 --- TODO 29 Aug 2005 15:36:28 -0000 1.115 +++ TODO 1 Sep 2005 15:23:42 -0000 1.116 @@ -86,6 +86,9 @@ Note that this runs into the FRESH-LINE/same_handle_p issues. Maybe (SETF STREAM-ELEMENT-TYPE) should work on TERMINAL-STREAMs? Maybe all streams should be bivalent? +Related issue: LISTEN works on binary streams in all Lisps except CLISP. +LISTEN should work on all streams and READ-CHAR-WILL-HANG-P should be +merged with READ-BYTE-WILL-HANG-P into WILL-HANG-P. remove clhs.txt; add impnotes id-href.map lookup --__--__-- Message: 2 From: Sam Steingold <sd...@us...> To: cli...@li... Subject: clisp/modules/syscalls test.tst,1.8,1.9 Date: Thu, 01 Sep 2005 17:47:10 +0000 Reply-To: cli...@li... Update of /cvsroot/clisp/clisp/modules/syscalls In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12651/modules/syscalls Modified Files: test.tst Log Message: (stream-options): unix-only Index: test.tst =================================================================== RCS file: /cvsroot/clisp/clisp/modules/syscalls/test.tst,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- test.tst 23 Aug 2005 15:28:14 -0000 1.8 +++ test.tst 1 Sep 2005 17:47:08 -0000 1.9 @@ -15,13 +15,13 @@ T) T -(find :rdwr (show (os:stream-options *tmp1* :fl))) :RDWR -(with-open-file (s *tmp1*) (find :rdonly (show (os:stream-options s :fl)))) :RDONLY -(os:stream-options *tmp1* :fd) NIL -(os:stream-options *tmp1* :fd '(:cloexec)) NIL -(os:stream-options *tmp1* :fd) (:cloexec) -(os:stream-options *tmp1* :fd nil) NIL -(os:stream-options *tmp1* :fd) NIL +#+unix (find :rdwr (show (os:stream-options *tmp1* :fl))) #+unix :RDWR +#+unix (with-open-file (s *tmp1*) (find :rdonly (show (os:stream-options s :fl)))) #+unix :RDONLY +#+unix (os:stream-options *tmp1* :fd) NIL +#+unix (os:stream-options *tmp1* :fd '(:cloexec)) NIL +#+unix (os:stream-options *tmp1* :fd) #+unix (:cloexec) +#+unix (os:stream-options *tmp1* :fd nil) NIL +#+unix (os:stream-options *tmp1* :fd) NIL (os:stream-lock *tmp1* t) T (os:stream-lock *tmp1* nil) NIL --__--__-- Message: 3 From: Sam Steingold <sd...@us...> To: cli...@li... Subject: clisp/modules/rawsock test.tst,1.9,1.10 Date: Thu, 01 Sep 2005 17:50:07 +0000 Reply-To: cli...@li... Update of /cvsroot/clisp/clisp/modules/rawsock In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14552/modules/rawsock Modified Files: test.tst Log Message: (socket-option): unix-only (shutdown): replaced with socket-stream-shutdown Index: test.tst =================================================================== RCS file: /cvsroot/clisp/clisp/modules/rawsock/test.tst,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- test.tst 2 Aug 2005 17:21:12 -0000 1.9 +++ test.tst 1 Sep 2005 17:50:05 -0000 1.10 @@ -58,14 +58,16 @@ (show (setq *recv-ret* (list size (from-bytes *buffer* size)))) T) T +#+unix (listp (setf (rawsock:socket-option *sock* NIL) (show (rawsock:socket-option *sock* NIL) :pretty t))) T +#+unix (listp (setf (rawsock:socket-option *sock* NIL :level :ALL) (show (rawsock:socket-option *sock* NIL :level :ALL) :pretty t))) T -(rawsock:shutdown *sock* :io) 0 +(ext:socket-stream-shutdown *sock* :io) NIL (rawsock:sock-close *sock*) 0 (let ((so (rawsock:socket :INET :STREAM nil))) --__--__-- Message: 4 From: Sam Steingold <sd...@us...> To: cli...@li... Subject: clisp/src symbol.d,1.33,1.34 lispbibl.d,1.663,1.664 error.d,1.135,1.136 ChangeLog,1.4863,1.4864 Date: Thu, 01 Sep 2005 19:20:23 +0000 Reply-To: cli...@li... Update of /cvsroot/clisp/clisp/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20346/src Modified Files: symbol.d lispbibl.d error.d ChangeLog Log Message: (fehler_plist_odd): moved from symbol.d to error.d Index: symbol.d =================================================================== RCS file: /cvsroot/clisp/clisp/src/symbol.d,v retrieving revision 1.33 retrieving revision 1.34 diff -u -d -r1.33 -r1.34 --- symbol.d 7 Jan 2005 13:30:39 -0000 1.33 +++ symbol.d 1 Sep 2005 19:20:20 -0000 1.34 @@ -12,16 +12,6 @@ pushSTACK(symbol); pushSTACK(S(get)); fehler(type_error,GETTEXT("~S: the property list of ~S has an odd length")); } -/* Error when the property list has odd length - fehler_plist_odd(caller,plist); - > caller: Subr - > plist: bad plist */ -nonreturning_function(local, fehler_plist_odd, (object caller, object plist)) { - pushSTACK(plist); /* TYPE-ERROR slot DATUM */ - pushSTACK(S(plist)); /* TYPE-ERROR slot EXPECTED-TYPE*/ - pushSTACK(plist); pushSTACK(caller); - fehler(type_error,GETTEXT("~S: the property list ~S has an odd length")); -} /* UP: find the key in the property list > plist_: the address of the plist @@ -149,7 +139,7 @@ { /* (GETF place key [not-found]), CLTL p. 166 */ var gcv_object_t *plistr_ = plist_find(&STACK_2,STACK_1); if (plistr_ == NULL) /* property list has odd length */ - fehler_plist_odd(S(getf),STACK_2); + fehler_plist_odd(STACK_2); var object plistr = *plistr_; if (endp(plistr)) { /* key not found */ if (eq( value1 = STACK_0, unbound)) /* default value is not-found */ @@ -159,7 +149,7 @@ /* found key */ plistr = Cdr(plistr); if (atomp(plistr)) - fehler_plist_odd(S(getf),STACK_2); + fehler_plist_odd(STACK_2); VALUES1(Car(plistr)); skipSTACK(3); } @@ -169,7 +159,7 @@ see places.lisp: this will return NIL if place was a CONS, i.e., if the list was modified "in place" and the PLACE does not have to be set */ var gcv_object_t *tail = plist_find(&STACK_2,STACK_1); - if (tail == NULL) fehler_plist_odd(S(putf),STACK_2); + if (tail == NULL) fehler_plist_odd(STACK_2); var object plistr = *tail; if (endp(plistr)) { /* key not found => extend plist with 2 conses */ pushSTACK(allocate_cons()); @@ -191,7 +181,7 @@ } } else { plistr = Cdr(plistr); - if (atomp(plistr)) fehler_plist_odd(S(putf),STACK_2); + if (atomp(plistr)) fehler_plist_odd(STACK_2); Car(plistr) = STACK_0; /* value */ VALUES1(NIL); } @@ -204,12 +194,12 @@ (when (and removed (null new-place)) (setf place new-place)) removed-p) see places.lisp: PLACE has to be modified only if the new value is ATOM */ var gcv_object_t *tail = plist_find(&STACK_1,STACK_0); - if (tail == NULL) fehler_plist_odd(S(remf),STACK_1); + if (tail == NULL) fehler_plist_odd(STACK_1); var object plistr = *tail; if (endp(plistr)) value2 = NIL; /* key not found => not removed */ else { plistr = Cdr(plistr); - if (atomp(plistr)) fehler_plist_odd(S(remf),STACK_1); + if (atomp(plistr)) fehler_plist_odd(STACK_1); plistr = Cdr(plistr); if (atomp(plistr)) *tail = plistr; else { /* shorten the property list by 2 elements */ @@ -246,7 +236,7 @@ value2 = Car(plistr); /* 2nd value = value for key */ mv_count=3; return; /* 2 values */ odd: /* property list has odd length */ - fehler_plist_odd(S(get_properties),plist); + fehler_plist_odd(plist); notfound: /* key not found */ VALUES3(NIL,NIL,NIL); return; /* all 3 values */ } Index: error.d =================================================================== RCS file: /cvsroot/clisp/clisp/src/error.d,v retrieving revision 1.135 retrieving revision 1.136 diff -u -d -r1.135 -r1.136 --- error.d 26 Aug 2005 16:07:42 -0000 1.135 +++ error.d 1 Sep 2005 19:20:20 -0000 1.136 @@ -1220,6 +1220,16 @@ goto restart; } +/* Error when the property list has odd length + fehler_plist_odd(caller,plist); + > plist: bad plist */ +nonreturning_function(global, fehler_plist_odd, (object plist)) { + pushSTACK(plist); /* TYPE-ERROR slot DATUM */ + pushSTACK(S(plist)); /* TYPE-ERROR slot EXPECTED-TYPE*/ + pushSTACK(plist); pushSTACK(TheSubr(subr_self)->name); + fehler(type_error,GETTEXT("~S: the property list ~S has an odd length")); +} + /* error-message for non-paired keyword-arguments fehler_key_odd(argcount,caller); > argcount: the number of arguments on the STACK Index: lispbibl.d =================================================================== RCS file: /cvsroot/clisp/clisp/src/lispbibl.d,v retrieving revision 1.663 retrieving revision 1.664 diff -u -d -r1.663 -r1.664 --- lispbibl.d 30 Aug 2005 18:18:20 -0000 1.663 +++ lispbibl.d 1 Sep 2005 19:20:20 -0000 1.664 @@ -15373,6 +15373,12 @@ bool keyword_p); /* used by ENCODING, FOREIGN */ +/* Error when the property list has odd length + fehler_plist_odd(caller,plist); + > plist: bad plist */ +nonreturning_function(extern, fehler_plist_odd, (object plist)); +%% printf("nonreturning_function(extern, fehler_plist_odd, (object plist));\n"); + /* error-message for non-paired keyword-arguments fehler_key_odd(argcount,caller); > argcount: the number of arguments on the STACK Index: ChangeLog =================================================================== RCS file: /cvsroot/clisp/clisp/src/ChangeLog,v retrieving revision 1.4863 retrieving revision 1.4864 diff -u -d -r1.4863 -r1.4864 --- ChangeLog 30 Aug 2005 21:53:12 -0000 1.4863 +++ ChangeLog 1 Sep 2005 19:20:20 -0000 1.4864 @@ -1,3 +1,11 @@ +2005-09-01 Sam Steingold <sd...@gn...> + + * error.d (fehler_plist_odd): moved here from symbol.d, + do not accept caller argument, use subr_self instead + * symbol.d (fehler_plist_odd): moved to error.d + (GETF, PUTF, REMF, GET-PROPERTIES): updated calls to fehler_plist_odd() + * lispbibl.d (fehler_plist_odd): added the prototype + 2005-08-30 Sam Steingold <sd...@gn...> * utils/modprep.lisp (print-tables-1, print-tables-2): --__--__-- Message: 5 From: Sam Steingold <sd...@us...> To: cli...@li... Subject: clisp/src ChangeLog,1.4864,1.4865 Date: Thu, 01 Sep 2005 19:23:26 +0000 Reply-To: cli...@li... Update of /cvsroot/clisp/clisp/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23087/src Modified Files: ChangeLog Log Message: capture failed test output into the log file Index: ChangeLog =================================================================== RCS file: /cvsroot/clisp/clisp/src/ChangeLog,v retrieving revision 1.4864 retrieving revision 1.4865 diff -u -d -r1.4864 -r1.4865 --- ChangeLog 1 Sep 2005 19:20:20 -0000 1.4864 +++ ChangeLog 1 Sep 2005 19:23:24 -0000 1.4865 @@ -1,5 +1,14 @@ 2005-09-01 Sam Steingold <sd...@gn...> + capture failed test output into the log file + * tests/tests.lisp (*eval-out*, *eval-err*): new variables + (my-eval): reset their streams before evaluating the form + (do-test, do-errcheck): write them to log on test failure + (run-test): bind *EVAL-OUT* and *EVAL-ERR* to string streams + and *ERROR-OUTPUT* and *STANDARD-OUTPUT* to broadcast streams + +2005-09-01 Sam Steingold <sd...@gn...> + * error.d (fehler_plist_odd): moved here from symbol.d, do not accept caller argument, use subr_self instead * symbol.d (fehler_plist_odd): moved to error.d --__--__-- Message: 6 From: Sam Steingold <sd...@us...> To: cli...@li... Subject: clisp/tests tests.lisp,1.67,1.68 Date: Thu, 01 Sep 2005 19:23:26 +0000 Reply-To: cli...@li... Update of /cvsroot/clisp/clisp/tests In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23087/tests Modified Files: tests.lisp Log Message: capture failed test output into the log file Index: tests.lisp =================================================================== RCS file: /cvsroot/clisp/clisp/tests/tests.lisp,v retrieving revision 1.67 retrieving revision 1.68 diff -u -d -r1.67 -r1.68 --- tests.lisp 2 Aug 2005 21:29:47 -0000 1.67 +++ tests.lisp 1 Sep 2005 19:23:23 -0000 1.68 @@ -59,7 +59,11 @@ #-(or CLISP AKCL GCL ECL ALLEGRO CMU) (lisp-implementation-type)) (defvar *eval-method* :eval) +(defvar *eval-out* nil) +(defvar *eval-err* nil) (defun my-eval (form) + (when *eval-out* (get-output-stream-string *eval-out*)) + (when *eval-err* (get-output-stream-string *eval-err*)) (ecase *eval-method* (:eval (eval form)) (:compile (funcall (compile nil `(lambda () ,form)))) @@ -102,7 +106,7 @@ (defun do-test (stream log) (let ((eof "EOF") (error-count 0) (total-count 0)) (loop - (let ((form (read stream nil eof)) + (let ((form (read stream nil eof)) out err (result (read stream nil eof))) (when (or (eq form eof) (eq result eof)) (return)) (incf total-count) @@ -111,6 +115,8 @@ (if *test-ignore-errors* (with-ignored-errors (my-eval form)) ; return ERROR on errors (my-eval form)) ; don't disturb the condition system when testing it! + (setq out (and *eval-out* (get-output-stream-string *eval-out*)) + err (and *eval-err* (get-output-stream-string *eval-err*))) (cond ((eql result my-result) (format t "~&EQL-OK: ~S~%" result)) ((equal result my-result) @@ -124,7 +130,8 @@ form result lisp-implementation my-result error-message) (pretty-compare result my-result log) - (format log "~%")))))) + (format log "~[~:;OUT:~%~S~%~]~[~:;ERR:~%~S~]~2%" + (length out) out (length err) err)))))) (values total-count error-count))) (defmacro check-ignore-errors (&body body) @@ -163,7 +170,9 @@ (when (or (eq form eof) (eq errtype eof)) (return)) (incf total-count) (show form) - (let ((my-result (check-ignore-errors (my-eval form)))) + (let ((my-result (check-ignore-errors (my-eval form))) + (out (and *eval-out* (get-output-stream-string *eval-out*))) + (err (and *eval-err* (get-output-stream-string *eval-err*)))) (multiple-value-bind (typep-result typep-error) (ignore-errors (typep my-result errtype)) (cond ((and (not typep-error) typep-result) @@ -171,9 +180,10 @@ (t (incf error-count) (format t "~&ERROR!! ~S instead of ~S !~%" my-result errtype) - (format log "~&Form: ~S~%CORRECT: ~S~%~7A: ~S~%" - form errtype lisp-implementation - my-result))))))) + (format log "~&Form: ~S~%CORRECT: ~S~%~7A: ~S~%~ + ~[~:;OUT:~%~S~%~]~[~:;ERR:~%~S~]~2%" + form errtype lisp-implementation my-result + (length out) out (length err) err))))))) (values total-count error-count))) (defvar *run-test-tester* #'do-test) @@ -188,10 +198,16 @@ (with-open-file (s (merge-extension "tst" testname) :direction :input) (format t "~&~s: started ~s~%" 'run-test s) (with-open-file (log logfile :direction :output - #+(or CMU SBCL) :if-exists #+(or CMU SBCL) :supersede + #+(or CMU SBCL) :if-exists + #+(or CMU SBCL) :supersede #+ANSI-CL :if-exists #+ANSI-CL :new-version) (setq logfile (truename log)) - (let ((*package* *package*) (*print-circle* t) (*print-pretty* nil)) + (let* ((*package* *package*) (*print-circle* t) (*print-pretty* nil) + (*eval-err* (make-string-output-stream)) + (*error-output* (make-broadcast-stream *error-output* *eval-err*)) + (*eval-out* (make-string-output-stream)) + (*standard-output* (make-broadcast-stream *standard-output* + *eval-out*))) (setf (values total-count error-count) (funcall *run-test-tester* s log))))) (format t "~&~s: finished ~s (~:d error~:p out of ~:d test~:p)~%" --__--__-- Message: 7 From: Sam Steingold <sd...@us...> To: cli...@li... Subject: clisp/modules/rawsock test.tst,1.10,1.11 Date: Thu, 01 Sep 2005 19:56:21 +0000 Reply-To: cli...@li... Update of /cvsroot/clisp/clisp/modules/rawsock In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14486/modules/rawsock Modified Files: test.tst Log Message: do not pass the whole return value of SOCKET-OPTION to (SETF SOCKET-OPTION) Index: test.tst =================================================================== RCS file: /cvsroot/clisp/clisp/modules/rawsock/test.tst,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- test.tst 1 Sep 2005 17:50:05 -0000 1.10 +++ test.tst 1 Sep 2005 19:56:19 -0000 1.11 @@ -59,14 +59,26 @@ T) T #+unix -(listp (setf (rawsock:socket-option *sock* NIL) - (show (rawsock:socket-option *sock* NIL) :pretty t))) +(listp (show (rawsock:socket-option *sock* NIL) :pretty t)) T #+unix -(listp (setf (rawsock:socket-option *sock* NIL :level :ALL) - (show (rawsock:socket-option *sock* NIL :level :ALL) :pretty t))) +(listp (show (rawsock:socket-option *sock* NIL :level :ALL) :pretty t)) T +#+unix (setf (rawsock:socket-option *sock* NIL) '(:debug nil)) +#+unix (:DEBUG NIL) + +#+unix (setf (rawsock:socket-option *sock* NIL :level :all) + '(:sol-socket (:debug nil))) +#+unix (:SOL-SOCKET (:DEBUG NIL)) + +#+unix (setf (rawsock:socket-option *sock* :debug) nil) +#+unix NIL + +#+unix (setf (rawsock:socket-option *sock* :debug :level :all) + '(:sol-socket nil)) +#+unix (:SOL-SOCKET NIL) + (ext:socket-stream-shutdown *sock* :io) NIL (rawsock:sock-close *sock*) 0 --__--__-- Message: 8 From: Sam Steingold <sd...@us...> To: cli...@li... Subject: clisp/src ChangeLog,1.4865,1.4866 Date: Thu, 01 Sep 2005 19:58:24 +0000 Reply-To: cli...@li... Update of /cvsroot/clisp/clisp/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15918/src Modified Files: ChangeLog Log Message: (set_sock_opt_many): new function (SET-SOCKET-OPTION): use it also use endp() and fehler_plist_odd() to report argument errors Index: ChangeLog =================================================================== RCS file: /cvsroot/clisp/clisp/src/ChangeLog,v retrieving revision 1.4865 retrieving revision 1.4866 diff -u -d -r1.4865 -r1.4866 --- ChangeLog 1 Sep 2005 19:23:24 -0000 1.4865 +++ ChangeLog 1 Sep 2005 19:58:21 -0000 1.4866 @@ -1,5 +1,11 @@ 2005-09-01 Sam Steingold <sd...@gn...> + * modules/rawsock/rawsock.c (set_sock_opt_many): new function + (SET-SOCKET-OPTION): use it; also use endp() and + fehler_plist_odd() to report argument errors + +2005-09-01 Sam Steingold <sd...@gn...> + capture failed test output into the log file * tests/tests.lisp (*eval-out*, *eval-err*): new variables (my-eval): reset their streams before evaluating the form --__--__-- Message: 9 From: Sam Steingold <sd...@us...> To: cli...@li... Subject: clisp/modules/rawsock rawsock.c,1.37,1.38 Date: Thu, 01 Sep 2005 19:58:24 +0000 Reply-To: cli...@li... Update of /cvsroot/clisp/clisp/modules/rawsock In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15918/modules/rawsock Modified Files: rawsock.c Log Message: (set_sock_opt_many): new function (SET-SOCKET-OPTION): use it also use endp() and fehler_plist_odd() to report argument errors Index: rawsock.c =================================================================== RCS file: /cvsroot/clisp/clisp/modules/rawsock/rawsock.c,v retrieving revision 1.37 retrieving revision 1.38 diff -u -d -r1.37 -r1.38 --- rawsock.c 18 Aug 2005 15:42:37 -0000 1.37 +++ rawsock.c 1 Sep 2005 19:58:22 -0000 1.38 @@ -768,6 +768,25 @@ } } #undef SET_SOCK_OPT +/* name=-1 => set many socket options from the plist + otherwise => set this option + can trigger GC */ +static void set_sock_opt_many (rawsock_t sock, int level, int name, + object opt_or_plist) { + if (name == -1) { + pushSTACK(opt_or_plist); pushSTACK(opt_or_plist); + while (!endp(STACK_0)) { + int name = sockopt_name(Car(STACK_0)); + STACK_0 = Cdr(STACK_0); + if (!consp(STACK_0)) fehler_plist_odd(STACK_1); + set_sock_opt(sock,level,name,Car(STACK_0)); + STACK_0 = Cdr(STACK_0); + } + skipSTACK(2); + } else + set_sock_opt(sock,level,name,opt_or_plist); +} + DEFUN(RAWSOCK::SET-SOCKET-OPTION, value sock name &key :LEVEL) { /* http://www.opengroup.org/onlinepubs/009695399/functions/setsockopt.html */ int level = sockopt_level(popSTACK()); @@ -776,52 +795,21 @@ stream_handles(popSTACK(),true,NULL,&sock,NULL); if (level == -1) { /* :ALL */ pushSTACK(STACK_0); - while (consp(STACK_0)) { + while (!endp(STACK_0)) { int level = sockopt_level(Car(STACK_0)); STACK_0 = Cdr(STACK_0); - if (!consp(STACK_0)) goto set_socket_option_error; - if (name == -1) { - pushSTACK(Car(STACK_0)); - while (consp(STACK_0)) { - name = sockopt_name(Car(STACK_0)); - STACK_0 = Cdr(STACK_0); - if (!consp(STACK_0)) goto set_socket_option_error; - set_sock_opt(sock,level,name,Car(STACK_0)); - } - name = -1; - if (!nullp(STACK_0)) goto set_socket_option_error; - skipSTACK(1); - } else - set_sock_opt(sock,level,name,Car(STACK_0)); + if (!consp(STACK_0)) fehler_plist_odd(STACK_1); + set_sock_opt_many(sock,level,name,Car(STACK_0)); + STACK_0 = Cdr(STACK_0); } - if (!nullp(STACK_0)) goto set_socket_option_error; skipSTACK(1); - } else { - if (name == -1) { - pushSTACK(STACK_0); - while (consp(STACK_0)) { - name = sockopt_name(Car(STACK_0)); - STACK_0 = Cdr(STACK_0); - if (!consp(STACK_0)) goto set_socket_option_error; - set_sock_opt(sock,level,name,Car(STACK_0)); - } - if (!nullp(STACK_0)) goto set_socket_option_error; - skipSTACK(1); - } else - set_sock_opt(sock,level,name,Car(STACK_0)); - } - VALUES1(popSTACK()); return; - set_socket_option_error: - /* the bad value is now STACK_0 */ - pushSTACK(sockopt_level_reverse(level)); - pushSTACK(sockopt_name_reverse(name)); - pushSTACK(fixnum(sock)); - pushSTACK(TheSubr(subr_self)->name); - fehler(error,GETTEXT("~S(~S ~S ~S): invalid value: ~S")); + } else + set_sock_opt_many(sock,level,name,STACK_0); + VALUES1(popSTACK()); } #endif -/* ================== CHECKSUM from Fred Cohen ================== */ +/* ================== CHECKSUM from Fred Cohen ================== */ DEFUN(RAWSOCK:IPCSUM, &optional buffer) { /* IP CHECKSUM */ unsigned char* buffer = TheSbvector(check_buffer_arg(popSTACK()))->data; register long sum=0; /* assumes long == 32 bits */ --__--__-- Message: 10 From: Sam Steingold <sd...@us...> To: cli...@li... Subject: clisp/doc faq.xml,1.8,1.9 Date: Thu, 01 Sep 2005 21:47:24 +0000 Reply-To: cli...@li... Update of /cvsroot/clisp/clisp/doc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30283/doc Modified Files: faq.xml Log Message: (faq-contrib): <filename role="clisp-cvs"> Index: faq.xml =================================================================== RCS file: /cvsroot/clisp/clisp/doc/faq.xml,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- faq.xml 30 Aug 2005 10:41:09 -0000 1.8 +++ faq.xml 1 Sep 2005 21:47:22 -0000 1.9 @@ -164,11 +164,11 @@ <qandaentry id="faq-contrib"><question id="faq-contrib-q"><simpara>How do I help?</simpara></question> -<answer><para>Please read <xref linkend="extend"/> and - submit your patch, together with a <filename>src/ChangeLog</filename> +<answer><para>Please read <xref linkend="extend"/> and submit your patch, + together with a <filename role="clisp-cvs">src/ChangeLog</filename> entry (see other entries there for inspiration), to &clisp-devel;.</para> - <para>See <filename>src/CodingStyle</filename> for the style one should - follow.</para> + <para>See <filename role="clisp-cvs">src/CodingStyle</filename> for the + style one should follow.</para> <para>If your patch is more than just a few lines, it is <emphasis>much</emphasis> preferred that you make your patch available on the web and send the link to the list.</para> --__--__-- Message: 11 From: Sam Steingold <sd...@us...> To: cli...@li... Subject: clisp/doc impbyte.xml,1.82,1.83 Date: Thu, 01 Sep 2005 21:51:13 +0000 Reply-To: cli...@li... Update of /cvsroot/clisp/clisp/doc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv731/doc Modified Files: impbyte.xml Log Message: added role="unix" Index: impbyte.xml =================================================================== RCS file: /cvsroot/clisp/clisp/doc/impbyte.xml,v retrieving revision 1.82 retrieving revision 1.83 diff -u -d -r1.82 -r1.83 --- impbyte.xml 28 Aug 2005 20:11:39 -0000 1.82 +++ impbyte.xml 1 Sep 2005 21:51:11 -0000 1.83 @@ -1282,11 +1282,10 @@ </simpara></listitem> <listitem><simpara>export your function name from the appropriate package in file &init-lisp;;</simpara></listitem> - <listitem><simpara>when you are done, you should run <command>make - check-sources</command> in your build directory: this will check - that the definitions (source files) and the declarations - (&subr-d;, &subrkw-d; - and &fsubr-d;) are in sync.</simpara></listitem> + <listitem><simpara>when you are done, you should run + <command role="unix">make check-sources</command> in your build directory: + this will check that the definitions (source files) and the declarations + (&subr-d;, &subrkw-d; and &fsubr-d;) are in sync.</simpara></listitem> </itemizedlist></para> <warning><para>Be very careful with the <emphasis>GC-unsafe</emphasis> --__--__-- _______________________________________________ clisp-cvs mailing list cli...@li... https://lists.sourceforge.net/lists/listinfo/clisp-cvs End of clisp-cvs Digest |