From: <cli...@li...> - 2010-12-14 20:06:51
|
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 ChangeLog,1.7563,1.7564 NEWS,1.550,1.551 (Sam Steingold) 2. clisp/modules/syscalls calls.c, 1.321, 1.322 syscalls.xml, 1.137, 1.138 test.tst, 1.110, 1.111 (Sam Steingold) 3. clisp/src pathname.d,1.523,1.524 ChangeLog,1.7564,1.7565 (Arseny Slobodyuk) 4. clisp/src pathname.d,1.524,1.525 (Arseny Slobodyuk) 5. clisp/src makemake.in,1.960,1.961 ChangeLog,1.7565,1.7566 (Arseny Slobodyuk) ---------------------------------------------------------------------- Message: 1 Date: Wed, 20 Oct 2010 18:41:16 +0000 From: Sam Steingold <sd...@us...> Subject: clisp/src ChangeLog,1.7563,1.7564 NEWS,1.550,1.551 To: cli...@li... Message-ID: <E1P...@sf...> Update of /cvsroot/clisp/clisp/src In directory sfp-cvsdas-2.v30.ch3.sourceforge.com:/tmp/cvs-serv17121/src Modified Files: ChangeLog NEWS Log Message: * modules/syscalls/calls.c (check_rusage): add (USAGE): accept `what' argument and return a single value Index: NEWS =================================================================== RCS file: /cvsroot/clisp/clisp/src/NEWS,v retrieving revision 1.550 retrieving revision 1.551 diff -u -d -r1.550 -r1.551 --- NEWS 18 Oct 2010 22:19:24 -0000 1.550 +++ NEWS 20 Oct 2010 18:41:13 -0000 1.551 @@ -28,7 +28,11 @@ See <http://clisp.cons.org/impnotes/syscalls.html#file-tree-walk> for details. * New function POSIX:GETDATE calls getdate(). - See <http://clisp.cons.org/impnotes/syscalls.html#getdate> for details + See <http://clisp.cons.org/impnotes/syscalls.html#getdate> for details. + +* Function POSIX:USAGE now accept an optional argument and returns a + single value. + See <http://clisp.cons.org/impnotes/syscalls.html#usage> for details. * FFI now converts REALs to FLOATs automatically as necessary. Index: ChangeLog =================================================================== RCS file: /cvsroot/clisp/clisp/src/ChangeLog,v retrieving revision 1.7563 retrieving revision 1.7564 diff -u -d -r1.7563 -r1.7564 --- ChangeLog 18 Oct 2010 22:19:24 -0000 1.7563 +++ ChangeLog 20 Oct 2010 18:41:13 -0000 1.7564 @@ -1,3 +1,8 @@ +2010-10-20 Sam Steingold <sd...@gn...> + + * modules/syscalls/calls.c (check_rusage): add + (USAGE): accept `what' argument and return a single value + 2010-10-18 Sam Steingold <sd...@gn...> fix bug#3089988: (loop for x do (print x)) should barf ------------------------------ Message: 2 Date: Wed, 20 Oct 2010 18:41:15 +0000 From: Sam Steingold <sd...@us...> Subject: clisp/modules/syscalls calls.c, 1.321, 1.322 syscalls.xml, 1.137, 1.138 test.tst, 1.110, 1.111 To: cli...@li... Message-ID: <E1P...@sf...> Update of /cvsroot/clisp/clisp/modules/syscalls In directory sfp-cvsdas-2.v30.ch3.sourceforge.com:/tmp/cvs-serv17121/modules/syscalls Modified Files: calls.c syscalls.xml test.tst Log Message: * modules/syscalls/calls.c (check_rusage): add (USAGE): accept `what' argument and return a single value Index: calls.c =================================================================== RCS file: /cvsroot/clisp/clisp/modules/syscalls/calls.c,v retrieving revision 1.321 retrieving revision 1.322 diff -u -d -r1.321 -r1.322 --- calls.c 4 Oct 2010 22:07:23 -0000 1.321 +++ calls.c 20 Oct 2010 18:41:12 -0000 1.322 @@ -1432,12 +1432,29 @@ #endif /* HAVE_SYS_WAIT_H */ #if defined(HAVE_GETRUSAGE) -DEFUN(POSIX::USAGE,) { /* getrusage(3) */ +DEFCHECKER(check_rusage, prefix=RUSAGE, SELF CHILDREN THREAD LWP) +DEFUN(POSIX::USAGE, &optional what) { /* getrusage(3) */ struct rusage ru; -#define GETRU(who) begin_system_call(); getrusage(who,&ru); end_system_call(); rusage_to_lisp(&ru); pushSTACK(value1) - GETRU(RUSAGE_CHILDREN); GETRU(RUSAGE_SELF); -#undef GETRU - VALUES2(STACK_0,STACK_1); skipSTACK(2); + object what = popSTACK(); + if (missingp(what)) { + unsigned int pos; + for (pos = 0; pos < check_rusage_map.size; pos++) { + int status; + pushSTACK(*check_rusage_map.table[pos].l_const); + begin_system_call(); + status = getrusage(check_rusage_map.table[pos].c_const,&ru); + end_system_call(); + if (status) pushSTACK(S(Kerror)); + else { rusage_to_lisp(&ru); pushSTACK(value1); } + } + VALUES1(listof(2*check_rusage_map.size)); + } else { + int who = check_rusage(what); + begin_system_call(); + if (getrusage(who,&ru)) OS_error(); + end_system_call(); + rusage_to_lisp(&ru); + } } #endif /* HAVE_GETRUSAGE */ #endif /* HAVE_SYS_RESOURCE_H */ @@ -1502,7 +1519,7 @@ { /* setrlimit(3): 3 ways to call: (setf (rlimit what) (values cur max)) (setf (rlimit what) #S(rlimit :cur cur :max max)) - (setf (rlimit) rlimit-alist-as-returned-by-rlimit-without-arguments) */ + (setf (rlimit) rlimit-plist-as-returned-by-rlimit-without-arguments) */ if (nullp(STACK_2)) { /* 3rd way */ if (!nullp(STACK_0)) goto rlimit_bad; STACK_0 = STACK_1; Index: test.tst =================================================================== RCS file: /cvsroot/clisp/clisp/modules/syscalls/test.tst,v retrieving revision 1.110 retrieving revision 1.111 diff -u -d -r1.110 -r1.111 --- test.tst 4 Oct 2010 22:16:04 -0000 1.110 +++ test.tst 20 Oct 2010 18:41:12 -0000 1.111 @@ -266,12 +266,10 @@ (os:pathconf *tmp1*) '(no os:pathconf)) :pretty t)) T #+unix -(listp (show (if (fboundp 'os:usage) - (multiple-value-list (os:usage)) '(no os:usage)) :pretty t)) +(listp (show (if (fboundp 'os:usage) (os:usage) '(no os:usage)) :pretty t)) T #+unix -(listp (show (if (fboundp 'os:rlimit) - (multiple-value-list (os:rlimit)) '(no os:rlimit)) :pretty t)) +(listp (show (if (fboundp 'os:rlimit) (os:rlimit) '(no os:rlimit)) :pretty t)) T (os:uname-p (show (os:uname) :pretty t)) T Index: syscalls.xml =================================================================== RCS file: /cvsroot/clisp/clisp/modules/syscalls/syscalls.xml,v retrieving revision 1.137 retrieving revision 1.138 diff -u -d -r1.137 -r1.138 --- syscalls.xml 4 Oct 2010 22:04:40 -0000 1.137 +++ syscalls.xml 20 Oct 2010 18:41:12 -0000 1.138 @@ -538,7 +538,7 @@ <varlistentry id="rlimit"><term><code>(&rlimit; &optional-amp; &what-r;)</code></term> <listitem><simpara>Return the current and the maximal limits as two - values when &what-r; is specified or the &alist; of all available + values when &what-r; is specified or the &plist; of all available limits (as an <type>RLIMIT</type> structure) when &what-r; is missing or &nil;, by calling <function role="unix">getrlimit</function>. </simpara></listitem></varlistentry> @@ -548,7 +548,7 @@ <term><code>(&setf; (&rlimit; &what-r;) <replaceable>rlimit</replaceable>)</code></term> <term><code>(&setf; (&rlimit;) - <replaceable>rlimit-alist</replaceable>)</code></term> + <replaceable>rlimit-plist</replaceable>)</code></term> <listitem><para>Set the limits using <function role="unix">setrlimit</function>.<orderedlist> <listitem><simpara>In the first form, <replaceable>cur</replaceable> @@ -557,13 +557,15 @@ <listitem><simpara>In the second form, <replaceable>rlimit</replaceable> is an <type>RLIMIT</type> structure.</simpara></listitem> <listitem><simpara>In the third form, - <replaceable>rlimit-alist</replaceable> is an &alist;, as returned by + <replaceable>rlimit-plist</replaceable> is a &plist;, as returned by <code>(&rlimit;)</code>.</simpara></listitem> </orderedlist></para></listitem></varlistentry> - <varlistentry id="usage"><term><code>(POSIX:USAGE)</code></term> - <listitem><simpara>Return 2 structures describing the resource usage - by the lisp process and its children, using - <function role="unix">getrusage</function>. + <varlistentry id="usage"><term><code>(POSIX:USAGE + &optional-amp; &what-r;)</code></term> + <listitem><simpara>Return the <type>USAGE</type> structure describing the + resource usage of the thread, process, or its children, using + <function role="unix">getrusage</function>. WHen &what-r; is missing + or &nil;, return all available data as a &plist;. </simpara></listitem></varlistentry> <varlistentry id="bogomips"><term><code>(POSIX:BOGOMIPS)</code></term> <listitem><simpara>Compute the ------------------------------ Message: 3 Date: Thu, 21 Oct 2010 02:33:12 +0000 From: Arseny Slobodyuk <am...@us...> Subject: clisp/src pathname.d,1.523,1.524 ChangeLog,1.7564,1.7565 To: cli...@li... Message-ID: <E1P...@sf...> Update of /cvsroot/clisp/clisp/src In directory sfp-cvsdas-2.v30.ch3.sourceforge.com:/tmp/cvs-serv3171 Modified Files: pathname.d ChangeLog Log Message: Fix PROBE-PATHNAME for "/" and "file/" cases. Index: pathname.d =================================================================== RCS file: /cvsroot/clisp/clisp/src/pathname.d,v retrieving revision 1.523 retrieving revision 1.524 diff -u -d -r1.523 -r1.524 --- pathname.d 18 Oct 2010 02:29:18 -0000 1.523 +++ pathname.d 21 Oct 2010 02:33:09 -0000 1.524 @@ -5981,7 +5981,7 @@ int ret; GC_SAFE_SYSTEM_CALL(ret=, stat(namestring,&status)); if (ret) { - if (errno != ENOENT) OS_file_error(STACK_0); + if (errno != ENOENT && errno != ENOTDIR) OS_file_error(STACK_0); return NAMESTRING_NONE; /* does not exist */ } else { /* file exists. */ realpath(namestring,resolved); /* ==> success assured */ @@ -6041,12 +6041,15 @@ pushSTACK(NIL); pushSTACK(STACK_1); /* space for FWD & FSIZE */ with_sstring_0(whole_namestring(STACK_0),O(pathname_encoding), namestring_asciz, { -#if defined(UNIX) - if (cpslashp(namestring_asciz[namestring_asciz_bytelen-1])) - namestring_asciz[namestring_asciz_bytelen-1] = 0; /* strip last slash */ -#endif - classification = classify_namestring(namestring_asciz,resolved, + while (true) { + classification = classify_namestring(namestring_asciz,resolved, &STACK_1/*fwd*/,&STACK_2/*fsize*/); + if (classification == NAMESTRING_NONE + && namestring_asciz_bytelen > 1 /* no need to classify "" */ + && cpslashp(namestring_asciz[namestring_asciz_bytelen-1])) + namestring_asciz[namestring_asciz_bytelen-1] = 0; /* strip last slash */ + else break; + } }); switch (classification) { case NAMESTRING_NONE: /* does not exist */ Index: ChangeLog =================================================================== RCS file: /cvsroot/clisp/clisp/src/ChangeLog,v retrieving revision 1.7564 retrieving revision 1.7565 diff -u -d -r1.7564 -r1.7565 --- ChangeLog 20 Oct 2010 18:41:13 -0000 1.7564 +++ ChangeLog 21 Oct 2010 02:33:10 -0000 1.7565 @@ -1,3 +1,11 @@ +2010-10-21 Arseny Slobodyuk <am...@us...> + + Fix (PROBE-PATHNAME "/") on UNIX and support DWIM: + (PP "lisp.exe/") -> "path/lisp.exe" broken 10-18 + * pathname.d (PROBE-PATHNAME): strip last "/" in a loop + (classify_namestring) [UNIX]: handle ENOTDIR + like ERROR_INVALID_NAME is handled on WIN32 + 2010-10-20 Sam Steingold <sd...@gn...> * modules/syscalls/calls.c (check_rusage): add ------------------------------ Message: 4 Date: Thu, 21 Oct 2010 03:00:48 +0000 From: Arseny Slobodyuk <am...@us...> Subject: clisp/src pathname.d,1.524,1.525 To: cli...@li... Message-ID: <E1P...@sf...> Update of /cvsroot/clisp/clisp/src In directory sfp-cvsdas-2.v30.ch3.sourceforge.com:/tmp/cvs-serv11282 Modified Files: pathname.d Log Message: Oops. Index: pathname.d =================================================================== RCS file: /cvsroot/clisp/clisp/src/pathname.d,v retrieving revision 1.524 retrieving revision 1.525 diff -u -d -r1.524 -r1.525 --- pathname.d 21 Oct 2010 02:33:09 -0000 1.524 +++ pathname.d 21 Oct 2010 03:00:46 -0000 1.525 @@ -6047,7 +6047,7 @@ if (classification == NAMESTRING_NONE && namestring_asciz_bytelen > 1 /* no need to classify "" */ && cpslashp(namestring_asciz[namestring_asciz_bytelen-1])) - namestring_asciz[namestring_asciz_bytelen-1] = 0; /* strip last slash */ + namestring_asciz[--namestring_asciz_bytelen] = 0; /* strip last slash */ else break; } }); ------------------------------ Message: 5 Date: Thu, 21 Oct 2010 08:07:10 +0000 From: Arseny Slobodyuk <am...@us...> Subject: clisp/src makemake.in,1.960,1.961 ChangeLog,1.7565,1.7566 To: cli...@li... Message-ID: <E1P...@sf...> Update of /cvsroot/clisp/clisp/src In directory sfp-cvsdas-2.v30.ch3.sourceforge.com:/tmp/cvs-serv15978 Modified Files: makemake.in ChangeLog Log Message: Fix mingw build - resolve symlings for cygcheck Index: makemake.in =================================================================== RCS file: /cvsroot/clisp/clisp/src/makemake.in,v retrieving revision 1.960 retrieving revision 1.961 diff -u -d -r1.960 -r1.961 --- makemake.in 12 Oct 2010 19:29:04 -0000 1.960 +++ makemake.in 21 Oct 2010 08:07:08 -0000 1.961 @@ -3251,8 +3251,9 @@ cygwin_finish() { # make sure no cygwin libraries crept into the mingw distribution if [ "$host_os" = cygwin -a "${TSYS}" = win32gcc ]; then - echotab "if cygcheck $1/lisp.exe | grep 'cyg[^/\\\\]*\$\$'; then false; else true; fi" + # cygcheck can fail with symlinks so resolve them # 'cyg[^/\\\\]*\$\$' here should look as 'cyg[^/\]*$' for grep + echotab "if cygcheck \`realpath $1/lisp.exe | cygpath --windows -f -\` | grep 'cyg[^/\\\\]*\$\$'; then false; else true; fi" fi finish_runtime $1/lisp${LEXE} } Index: ChangeLog =================================================================== RCS file: /cvsroot/clisp/clisp/src/ChangeLog,v retrieving revision 1.7565 retrieving revision 1.7566 diff -u -d -r1.7565 -r1.7566 --- ChangeLog 21 Oct 2010 02:33:10 -0000 1.7565 +++ ChangeLog 21 Oct 2010 08:07:08 -0000 1.7566 @@ -1,7 +1,12 @@ 2010-10-21 Arseny Slobodyuk <am...@us...> - Fix (PROBE-PATHNAME "/") on UNIX and support DWIM: - (PP "lisp.exe/") -> "path/lisp.exe" broken 10-18 + * makemake.in (cygwin_finish): use realpath and cygpath to + avoid cygcheck bug with symbolic links + +2010-10-21 Arseny Slobodyuk <am...@us...> + + Fix PROBE-PATHNAME: proper handle of "/" on UNIX, + DWIM on WIN32 (broken 10-18) "lisp.exe/" -> "path/lisp.exe" * pathname.d (PROBE-PATHNAME): strip last "/" in a loop (classify_namestring) [UNIX]: handle ENOTDIR like ERROR_INVALID_NAME is handled on WIN32 ------------------------------ ------------------------------------------------------------------------------ Nokia and AT&T present the 2010 Calling All Innovators-North America contest Create new apps & games for the Nokia N8 for consumers in U.S. and Canada $10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store http://p.sf.net/sfu/nokia-dev2dev ------------------------------ _______________________________________________ clisp-cvs mailing list cli...@li... https://lists.sourceforge.net/lists/listinfo/clisp-cvs End of clisp-cvs Digest, Vol 54, Issue 16 ***************************************** |