From: <cli...@li...> - 2007-09-21 19:10:27
|
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/modules/gdbm gdbm.c, 1.7, 1.8 gdbm.lisp, 1.2, 1.3 gdbm.xml, 1.3, 1.4 test.tst, 1.2, 1.3 (onjo) 2. clisp/tests tests.lisp,1.82,1.83 ChangeLog,1.514,1.515 (Sam Steingold) 3. clisp/doc impext.xml,1.477,1.478 (Sam Steingold) 4. clisp/modules/rawsock rawsock.c,1.85,1.86 (Sam Steingold) 5. clisp/src ChangeLog,1.5558,1.5559 (Sam Steingold) 6. clisp/src ChangeLog,1.5559,1.5560 (Sam Steingold) 7. clisp/modules/berkeley-db bdb.c,1.106,1.107 (Sam Steingold) 8. clisp/modules/rawsock rawsock.c,1.86,1.87 (Sam Steingold) 9. clisp/src ChangeLog,1.5560,1.5561 (Sam Steingold) ---------------------------------------------------------------------- Message: 1 Date: Thu, 20 Sep 2007 15:20:37 +0000 From: onjo <m_...@us...> Subject: clisp/modules/gdbm gdbm.c, 1.7, 1.8 gdbm.lisp, 1.2, 1.3 gdbm.xml, 1.3, 1.4 test.tst, 1.2, 1.3 To: cli...@li... Message-ID: <E1I...@ma...> Update of /cvsroot/clisp/clisp/modules/gdbm In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv17051 Modified Files: gdbm.c gdbm.lisp gdbm.xml test.tst Log Message: modules/gdbm: add new function Index: gdbm.lisp =================================================================== RCS file: /cvsroot/clisp/clisp/modules/gdbm/gdbm.lisp,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- gdbm.lisp 17 Sep 2007 22:29:31 -0000 1.2 +++ gdbm.lisp 20 Sep 2007 15:20:35 -0000 1.3 @@ -6,7 +6,7 @@ (:documentation "GDBM - The GNU database manager - <http://www.gnu.org/software/gdbm/>") (:use #:lisp) - (:export #:gdbm + (:export #:gdbm #:gdbm-version #:gdbm-open #:gdbm-close #:do-db #:with-db #:gdbm-store #:gdbm-fetch #:gdbm-delete #:gdbm-exists #:gdbm-firstkey #:gdbm-nextkey Index: test.tst =================================================================== RCS file: /cvsroot/clisp/clisp/modules/gdbm/test.tst,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- test.tst 17 Sep 2007 22:29:31 -0000 1.2 +++ test.tst 20 Sep 2007 15:20:35 -0000 1.3 @@ -1,11 +1,13 @@ ;; -*- Lisp -*- -;; some tests for Berkeley-DB +;; some tests for GDBM ;; clisp -K full -E 1:1 -q -norc -i ../tests/tests -x '(run-test "gdbm/test")' (listp (show (multiple-value-list (ext:module-info "gdbm" t)) :pretty t)) T (defvar *db* nil) *DB* +(stringp (gdbm:gdbm-version)) T + (handler-case (gdbm::gdbm-p (setf *db* (gdbm:gdbm-open "///" :read-write :newdb))) (gdbm::gdbm-error (condition) Index: gdbm.c =================================================================== RCS file: /cvsroot/clisp/clisp/modules/gdbm/gdbm.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- gdbm.c 17 Sep 2007 22:53:56 -0000 1.7 +++ gdbm.c 20 Sep 2007 15:20:35 -0000 1.8 @@ -33,6 +33,11 @@ NOTREACHED; } +DEFUN(GDBM::GDBM-VERSION,) +{ + VALUES1(asciz_to_string(gdbm_version, GLO(foreign_encoding))); +} + DEFCHECKER(gdbm_open_read_write, prefix=GDBM, READER WRITER WRCREAT NEWDB) DEFCHECKER(gdbm_open_option, prefix=GDBM, SYNC NOLOCK FAST) DEFUN(GDBM::GDBM-OPEN, name &key :BLOCKSIZE :READ-WRITE :OPTION :MODE) Index: gdbm.xml =================================================================== RCS file: /cvsroot/clisp/clisp/modules/gdbm/gdbm.xml,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- gdbm.xml 19 Sep 2007 01:12:33 -0000 1.3 +++ gdbm.xml 20 Sep 2007 15:20:35 -0000 1.4 @@ -7,6 +7,8 @@ symbol <constant>:GDBM</constant>.</simpara> <variablelist id="gdbm-api"><title>GDBM module API</title> + <varlistentry id="gdbm-version"><term><code>(GDBM:GDBM-VERSION)</code></term> + <listitem><para>Return the version string.</para></listitem></varlistentry> <varlistentry id="gdbm-open"><term><code>(GDBM:GDBM-OPEN &filename-r; &key-amp; :BLOCKSIZE :READ-WRITE :OPTION :MODE)</code></term> <listitem><para>Open &filename-r; database file. ------------------------------ Message: 2 Date: Thu, 20 Sep 2007 21:12:38 +0000 From: Sam Steingold <sd...@us...> Subject: clisp/tests tests.lisp,1.82,1.83 ChangeLog,1.514,1.515 To: cli...@li... Message-ID: <E1I...@ma...> Update of /cvsroot/clisp/clisp/tests In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv22248/tests Modified Files: tests.lisp ChangeLog Log Message: (do-test, do-errcheck): do (force-output log) so that we have a non-empty log file in case of a hard crash Index: tests.lisp =================================================================== RCS file: /cvsroot/clisp/clisp/tests/tests.lisp,v retrieving revision 1.82 retrieving revision 1.83 diff -u -d -r1.82 -r1.83 --- tests.lisp 6 Jun 2007 15:10:37 -0000 1.82 +++ tests.lisp 20 Sep 2007 21:12:36 -0000 1.83 @@ -154,7 +154,8 @@ my-result error-message) (pretty-compare result my-result log) (format log "~[~*~:;OUT:~%~S~%~]~[~*~:;ERR:~%~S~]~2%" - (length out) out (length err) err)))))) + (length out) out (length err) err) + (force-output log)))))) (values total-count error-count))) (defmacro check-ignore-errors (&body body) @@ -206,7 +207,8 @@ (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))))))) + (length out) out (length err) err) + (force-output log))))))) (values total-count error-count))) (defvar *run-test-tester* #'do-test) Index: ChangeLog =================================================================== RCS file: /cvsroot/clisp/clisp/tests/ChangeLog,v retrieving revision 1.514 retrieving revision 1.515 diff -u -d -r1.514 -r1.515 --- ChangeLog 24 Aug 2007 20:15:21 -0000 1.514 +++ ChangeLog 20 Sep 2007 21:12:36 -0000 1.515 @@ -1,3 +1,8 @@ +2007-09-20 Sam Steingold <sd...@gn...> + + * tests.lisp (do-test, do-errcheck): do (force-output log) so that + we have a non-empty log file in case of a hard crash + 2007-08-24 Sam Steingold <sd...@gn...> * path.tst: test rename-dir ------------------------------ Message: 3 Date: Thu, 20 Sep 2007 21:38:18 +0000 From: Sam Steingold <sd...@us...> Subject: clisp/doc impext.xml,1.477,1.478 To: cli...@li... Message-ID: <E1I...@ma...> Update of /cvsroot/clisp/clisp/doc In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv32316 Modified Files: impext.xml Log Message: (mod-ffi-vs-c-granularity, mod-ffi-vs-c-naming): add Index: impext.xml =================================================================== RCS file: /cvsroot/clisp/clisp/doc/impext.xml,v retrieving revision 1.477 retrieving revision 1.478 diff -u -d -r1.477 -r1.478 --- impext.xml 17 Sep 2007 15:25:22 -0000 1.477 +++ impext.xml 20 Sep 2007 21:38:16 -0000 1.478 @@ -2430,6 +2430,14 @@ for <link linkend="gc-safety">GC-safety</link> too. </simpara></listitem></varlistentry> </variablelist></para> +<note id="mod-ffi-vs-c-granularity"><simpara>The granularity of the + choice is <emphasis>per function</emphasis>: the same module can use + both &modprep; and &ffi-pac;.</simpara></note> +<note id="mod-ffi-vs-c-naming"><simpara>It is not a good idea to have + both <filename>foo.lisp</filename> and <filename>foo.c</filename> + files in a module, because if you ever add an &ffi-pac; form to the + former, &compile-file-my; will + <link linkend="c-file-overwrite">overwrite</link> the latter.</simpara></note> </section> <section id="included-modules"> ------------------------------ Message: 4 Date: Fri, 21 Sep 2007 02:06:52 +0000 From: Sam Steingold <sd...@us...> Subject: clisp/modules/rawsock rawsock.c,1.85,1.86 To: cli...@li... Message-ID: <E1I...@ma...> Update of /cvsroot/clisp/clisp/modules/rawsock In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv4602/modules/rawsock Modified Files: rawsock.c Log Message: use writing_to_subprocess to avoid being killed by SIGPIPE Index: rawsock.c =================================================================== RCS file: /cvsroot/clisp/clisp/modules/rawsock/rawsock.c,v retrieving revision 1.85 retrieving revision 1.86 diff -u -d -r1.85 -r1.86 --- rawsock.c 18 Sep 2007 15:45:59 -0000 1.85 +++ rawsock.c 21 Sep 2007 02:06:50 -0000 1.86 @@ -305,9 +305,19 @@ skipSTACK(2); } +/* ================== SIGPIPE handling ================== */ +#if defined(HAVE_SIGNALS) +extern bool writing_to_subprocess; +# define begin_sock_call() writing_to_subprocess=true; begin_system_call() +# define end_sock_call() writing_to_subprocess=false; end_system_call() +#else +# define begin_sock_call() begin_system_call() +# define end_sock_call() end_system_call() +#endif + /* invoke system call C, place return value in R, report error on socket S */ #define SYSCALL(r,s,c) \ - do { begin_system_call(); r = c; end_system_call(); \ + do { begin_sock_call(); r = c; end_sock_call(); \ if (r == -1) { \ if (s<=0) OS_error(); \ else OS_file_error(fixnum(s)); \ @@ -1177,9 +1187,9 @@ opt_type val; \ CLISP_SOCKLEN_T len = sizeof(val); \ int status; \ - begin_system_call(); \ + begin_sock_call(); \ status = getsockopt(sock,level,name,(SETSOCKOPT_ARG_T)&val,&len); \ - end_system_call(); \ + end_sock_call(); \ if (status==0) return retform; \ else return (err_p ? OS_file_error(fixnum(sock)),NIL : S(Kerror)); \ } while(0) @@ -1290,9 +1300,9 @@ #define SET_SOCK_OPT(opt_type,valform) do { \ int status; \ opt_type val; valform; \ - begin_system_call(); \ + begin_sock_call(); \ status = setsockopt(sock,level,name,(SETSOCKOPT_ARG_T)&val,sizeof(val)); \ - end_system_call(); \ + end_sock_call(); \ if (status) OS_file_error(fixnum(sock)); \ return; \ } while(0) ------------------------------ Message: 5 Date: Fri, 21 Sep 2007 02:06:52 +0000 From: Sam Steingold <sd...@us...> Subject: clisp/src ChangeLog,1.5558,1.5559 To: cli...@li... Message-ID: <E1I...@ma...> Update of /cvsroot/clisp/clisp/src In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv4602/src Modified Files: ChangeLog Log Message: use writing_to_subprocess to avoid being killed by SIGPIPE Index: ChangeLog =================================================================== RCS file: /cvsroot/clisp/clisp/src/ChangeLog,v retrieving revision 1.5558 retrieving revision 1.5559 diff -u -d -r1.5558 -r1.5559 --- ChangeLog 20 Sep 2007 15:47:49 -0000 1.5558 +++ ChangeLog 21 Sep 2007 02:06:49 -0000 1.5559 @@ -1,5 +1,13 @@ 2007-09-20 Sam Steingold <sd...@gn...> + * modules/rawsock/rawsock.c [HAVE_SIGNALS]: use writing_to_subprocess + to avoid being killed by SIGPIPE + (begin_sock_call, end_sock_call): define + (SYSCALL, GET_SOCK_OPT, SET_SOCK_OPT): use them instead of + begin_system_call/end_system_call + +2007-09-20 Sam Steingold <sd...@gn...> + * modules/gdbm/gdbm.c (GDBM-STORE, GDBM-FETCH, GDBM-DELETE) (GDBM-NEXTKEY, GDBM-EXISTS): use a variable from with_string_0 instead of calling asciz_length() ------------------------------ Message: 6 Date: Fri, 21 Sep 2007 14:29:11 +0000 From: Sam Steingold <sd...@us...> Subject: clisp/src ChangeLog,1.5559,1.5560 To: cli...@li... Message-ID: <E1I...@ma...> Update of /cvsroot/clisp/clisp/src In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv28860/src Modified Files: ChangeLog Log Message: (dbe_get_data_dirs): declare a variable in the block where it is actually used (record_length): use default: to avoid a compiler warning about enumeration values not handled in switch and control reaching end of non-void function Index: ChangeLog =================================================================== RCS file: /cvsroot/clisp/clisp/src/ChangeLog,v retrieving revision 1.5559 retrieving revision 1.5560 diff -u -d -r1.5559 -r1.5560 --- ChangeLog 21 Sep 2007 02:06:49 -0000 1.5559 +++ ChangeLog 21 Sep 2007 14:29:08 -0000 1.5560 @@ -1,3 +1,11 @@ +2007-09-21 Sam Steingold <sd...@gn...> + + * modules/berkeley-db/bdb.c (dbe_get_data_dirs): declare a variable + in the block where it is actually used + (record_length): use default: to avoid a compiler warning about + enumeration values not handled in switch and control reaching end + of non-void function + 2007-09-20 Sam Steingold <sd...@gn...> * modules/rawsock/rawsock.c [HAVE_SIGNALS]: use writing_to_subprocess ------------------------------ Message: 7 Date: Fri, 21 Sep 2007 14:29:11 +0000 From: Sam Steingold <sd...@us...> Subject: clisp/modules/berkeley-db bdb.c,1.106,1.107 To: cli...@li... Message-ID: <E1I...@ma...> Update of /cvsroot/clisp/clisp/modules/berkeley-db In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv28860/modules/berkeley-db Modified Files: bdb.c Log Message: (dbe_get_data_dirs): declare a variable in the block where it is actually used (record_length): use default: to avoid a compiler warning about enumeration values not handled in switch and control reaching end of non-void function Index: bdb.c =================================================================== RCS file: /cvsroot/clisp/clisp/modules/berkeley-db/bdb.c,v retrieving revision 1.106 retrieving revision 1.107 diff -u -d -r1.106 -r1.107 --- bdb.c 24 Aug 2007 19:08:58 -0000 1.106 +++ bdb.c 21 Sep 2007 14:29:09 -0000 1.107 @@ -866,11 +866,12 @@ /* get the data directory list can trigger GC */ static object dbe_get_data_dirs (DB_ENV *dbe) { - const char **dirs; int ii; + const char **dirs; SYSCALL(dbe->get_data_dirs,(dbe,&dirs)); if (dirs) { - for (ii=0; dirs[ii]; ii++) - pushSTACK(asciz_to_string(dirs[ii],GLO(pathname_encoding))); + int ii=0; + for (; *dirs; dirs++, ii++) + pushSTACK(asciz_to_string(*dirs,GLO(pathname_encoding))); return listof(ii); } else return NIL; } @@ -1390,7 +1391,6 @@ /* extract record length, not errors */ static u_int32_t record_length (DB *db) { switch (db_get_type(db)) { - case DB_BTREE: case DB_HASH: return 0; case DB_RECNO: case DB_QUEUE: { u_int32_t ret; int status; @@ -1402,6 +1402,7 @@ return 0; } else return ret; } + default: return 0; } } /* check whether the DB uses logical record numbers, see ------------------------------ Message: 8 Date: Fri, 21 Sep 2007 18:56:06 +0000 From: Sam Steingold <sd...@us...> Subject: clisp/modules/rawsock rawsock.c,1.86,1.87 To: cli...@li... Message-ID: <E1I...@ma...> Update of /cvsroot/clisp/clisp/modules/rawsock In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv4178/modules/rawsock Modified Files: rawsock.c Log Message: (CHECK_SOCKADDR): new macro (SOCKADDR-FAMILY, optional_sockaddr_argument, BIND, CONNECT) (GETNAMEINFO, fill_msghdr, SENDTO): use it Index: rawsock.c =================================================================== RCS file: /cvsroot/clisp/clisp/modules/rawsock/rawsock.c,v retrieving revision 1.86 retrieving revision 1.87 diff -u -d -r1.86 -r1.87 --- rawsock.c 21 Sep 2007 02:06:50 -0000 1.86 +++ rawsock.c 21 Sep 2007 18:56:01 -0000 1.87 @@ -151,6 +151,7 @@ return start_address; } } +#define CHECK_SOCKADDR(a,s,p) (struct sockaddr*)check_struct_data(`RAWSOCK::SOCKADDR`,a,s,p) /* check that the arg is a vector of byte vectors > *arg_: vector @@ -218,9 +219,7 @@ DEFUN(RAWSOCK:SOCKADDR-FAMILY, sa) { CLISP_SOCKLEN_T size; - struct sockaddr *sa = - (struct sockaddr*)check_struct_data(`RAWSOCK::SOCKADDR`,popSTACK(),&size, - PROT_READ); + struct sockaddr *sa = CHECK_SOCKADDR(popSTACK(),&size,PROT_READ); VALUES2(fixnum(sa->sa_family),fixnum(size)); } DEFUN(RAWSOCK::SOCKADDR-SLOT,&optional slot) { @@ -715,8 +714,7 @@ if (nullp(*arg)) *sa = NULL; else { if (eq(T,*arg)) *arg = make_sockaddr(); - *sa = (struct sockaddr*)check_struct_data(`RAWSOCK::SOCKADDR`,*arg,size, - PROT_READ_WRITE); + *sa = CHECK_SOCKADDR(*arg,size,PROT_READ_WRITE); } } @@ -735,9 +733,7 @@ rawsock_t sock = I_to_uint(check_uint(STACK_1)); int retval; CLISP_SOCKLEN_T size; - struct sockaddr *sa = - (struct sockaddr*)check_struct_data(`RAWSOCK::SOCKADDR`,STACK_0,&size, - PROT_READ); + struct sockaddr *sa = CHECK_SOCKADDR(STACK_0,&size,PROT_READ); /* no GC after this point! */ SYSCALL(retval,sock,bind(sock,sa,size)); VALUES0; skipSTACK(2); @@ -747,9 +743,7 @@ rawsock_t sock = I_to_uint(check_uint(STACK_1)); int retval; CLISP_SOCKLEN_T size; - struct sockaddr *sa = - (struct sockaddr*)check_struct_data(`RAWSOCK::SOCKADDR`,STACK_0,&size, - PROT_READ); + struct sockaddr *sa = CHECK_SOCKADDR(STACK_0,&size,PROT_READ); /* no GC after this point! */ SYSCALL(retval,sock,connect(sock,sa,size)); VALUES0; skipSTACK(2); @@ -839,9 +833,7 @@ NUMERICSERV NUMERICSCOPE DGRAM) { int flags = getnameinfo_flags(); CLISP_SOCKLEN_T size; - struct sockaddr *sa = - (struct sockaddr*)check_struct_data(`RAWSOCK::SOCKADDR`,popSTACK(),&size, - PROT_READ); + struct sockaddr *sa = CHECK_SOCKADDR(popSTACK(),&size,PROT_READ); char node[BUFSIZ], service[BUFSIZ]; int status; begin_system_call(); @@ -1002,10 +994,8 @@ (aint)mhp->msg_control + mhp->msg_controllen); fill_iovec(TheStructure(*mho)->recdata[MSG_IOVEC],offset,mhp->msg_iovlen, mhp->msg_iov,prot); - mhp->msg_name = (struct sockaddr*) - check_struct_data(`RAWSOCK::SOCKADDR`, - TheStructure(*mho)->recdata[MSG_SOCKADDR], - &(mhp->msg_namelen),prot); + mhp->msg_name = CHECK_SOCKADDR(TheStructure(*mho)->recdata[MSG_SOCKADDR], + &(mhp->msg_namelen),prot); } /* POSIX recvmsg() */ DEFUN(RAWSOCK:RECVMSG,socket message &key START END PEEK OOB WAITALL) { @@ -1088,8 +1078,7 @@ if (!missingp(STACK_0)) STACK_0 = check_posfixnum(STACK_0); if (!missingp(STACK_1)) STACK_1 = check_posfixnum(STACK_1); STACK_3 = check_byte_vector(STACK_3); - sa = (struct sockaddr*)check_struct_data(`RAWSOCK::SOCKADDR`,STACK_2,&size, - PROT_READ); + sa = CHECK_SOCKADDR(STACK_2,&size,PROT_READ); /* no GC after this point! - buffer, start, end have been checked already */ buffer = parse_buffer_arg(&STACK_3,&buffer_len,PROT_READ); SYSCALL(retval,sock,sendto(sock,(const BUF_TYPE_T)buffer, ------------------------------ Message: 9 Date: Fri, 21 Sep 2007 18:56:03 +0000 From: Sam Steingold <sd...@us...> Subject: clisp/src ChangeLog,1.5560,1.5561 To: cli...@li... Message-ID: <E1I...@ma...> Update of /cvsroot/clisp/clisp/src In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv4178/src Modified Files: ChangeLog Log Message: (CHECK_SOCKADDR): new macro (SOCKADDR-FAMILY, optional_sockaddr_argument, BIND, CONNECT) (GETNAMEINFO, fill_msghdr, SENDTO): use it Index: ChangeLog =================================================================== RCS file: /cvsroot/clisp/clisp/src/ChangeLog,v retrieving revision 1.5560 retrieving revision 1.5561 diff -u -d -r1.5560 -r1.5561 --- ChangeLog 21 Sep 2007 14:29:08 -0000 1.5560 +++ ChangeLog 21 Sep 2007 18:56:00 -0000 1.5561 @@ -1,5 +1,11 @@ 2007-09-21 Sam Steingold <sd...@gn...> + * modules/rawsock/rawsock.c (CHECK_SOCKADDR): new macro + (SOCKADDR-FAMILY, optional_sockaddr_argument, BIND, CONNECT) + (GETNAMEINFO, fill_msghdr, SENDTO): use it + +2007-09-21 Sam Steingold <sd...@gn...> + * modules/berkeley-db/bdb.c (dbe_get_data_dirs): declare a variable in the block where it is actually used (record_length): use default: to avoid a compiler warning about ------------------------------ ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ ------------------------------ _______________________________________________ clisp-cvs mailing list cli...@li... https://lists.sourceforge.net/lists/listinfo/clisp-cvs End of clisp-cvs Digest, Vol 17, Issue 10 ***************************************** |