From: <cli...@li...> - 2004-10-11 11:33:10
|
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.2750.2.50,1.2750.2.51 stream.d,1.415.2.3,1.415.2.4 (Bruno Haible) 2. clisp/src ChangeLog,1.2750.2.51,1.2750.2.52 io.d,1.196.2.1,1.196.2.2 (Bruno Haible) 3. clisp/src debug.d,1.65,1.65.2.1 ChangeLog,1.2750.2.52,1.2750.2.53 (Bruno Haible) 4. clisp/src ChangeLog,1.2750.2.53,1.2750.2.54 hashtabl.d,1.66.2.1,1.66.2.2 (Bruno Haible) 5. clisp/src stream.d,1.415.2.4,1.415.2.5 ChangeLog,1.2750.2.54,1.2750.2.55 (Bruno Haible) 6. clisp/src ChangeLog,1.2750.2.55,1.2750.2.56 (Bruno Haible) 7. clisp/src control.d,1.89.2.1,1.89.2.2 ChangeLog,1.2750.2.57,1.2750.2.58 (Bruno Haible) 8. clisp/src time.d,1.37,1.37.2.1 ChangeLog,1.2750.2.58,1.2750.2.59 (Bruno Haible) 9. clisp/src sequence.d,1.70,1.70.2.1 ChangeLog,1.2750.2.56,1.2750.2.57 (Bruno Haible) 10. clisp/src debug.d,1.65.2.1,1.65.2.2 ChangeLog,1.2750.2.59,1.2750.2.60 (Bruno Haible) 11. clisp/src clos.lisp,1.68,1.68.2.1 ChangeLog,1.2750.2.60,1.2750.2.61 (Bruno Haible) 12. clisp/src clos-class3.lisp,1.49,1.50 ChangeLog,1.3641,1.3642 (Bruno Haible) 13. clisp/src spvw_garcol.d,1.86,1.87 debug.d,1.75,1.76 lispbibl.d,1.557,1.558 ChangeLog,1.3642,1.3643 (Bruno Haible) --__--__-- Message: 1 From: Bruno Haible <ha...@us...> To: cli...@li... Subject: clisp/src ChangeLog,1.2750.2.50,1.2750.2.51 stream.d,1.415.2.3,1.415.2.4 Date: Mon, 11 Oct 2004 10:24:38 +0000 Reply-To: cli...@li... Update of /cvsroot/clisp/clisp/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13389 Modified Files: Tag: clisp_2_33-patched ChangeLog stream.d Log Message: Small fix. Index: stream.d =================================================================== RCS file: /cvsroot/clisp/clisp/src/stream.d,v retrieving revision 1.415.2.3 retrieving revision 1.415.2.4 diff -u -d -r1.415.2.3 -r1.415.2.4 --- stream.d 22 May 2004 10:33:42 -0000 1.415.2.3 +++ stream.d 11 Oct 2004 10:24:35 -0000 1.415.2.4 @@ -4365,8 +4365,7 @@ # obj is an integer # transfer obj into the bitbuffer: { - var uintB* bitbufferptr = - TheSbvector(TheStream(stream)->strm_bitbuffer)->data; + var uintB* bitbufferptr = TheSbvector(bitbuffer)->data; var uintL count = bytesize; var uintL sign = (sintL)R_sign(obj); if (fixnump(obj)) { Index: ChangeLog =================================================================== RCS file: /cvsroot/clisp/clisp/src/ChangeLog,v retrieving revision 1.2750.2.50 retrieving revision 1.2750.2.51 diff -u -d -r1.2750.2.50 -r1.2750.2.51 --- ChangeLog 14 Jun 2004 22:13:33 -0000 1.2750.2.50 +++ ChangeLog 11 Oct 2004 10:24:31 -0000 1.2750.2.51 @@ -1,3 +1,8 @@ +2004-07-22 Sam Steingold <sd...@gn...> + + * stream.d (bitbuff_ixs_sub): fixed bitbufferptr initialization + Reported by Randolph Udodenko <udo...@us...> + 2004-05-26 Sam Steingold <sd...@gn...> * pathname.d (MAKE-LOGICAL-PATHNAME): accept :DEVICE :UNSPECIFIC --__--__-- Message: 2 From: Bruno Haible <ha...@us...> To: cli...@li... Subject: clisp/src ChangeLog,1.2750.2.51,1.2750.2.52 io.d,1.196.2.1,1.196.2.2 Date: Mon, 11 Oct 2004 10:27:11 +0000 Reply-To: cli...@li... Update of /cvsroot/clisp/clisp/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13741 Modified Files: Tag: clisp_2_33-patched ChangeLog io.d Log Message: Fix crash of (COPY-READTABLE NIL some-readtable). Index: io.d =================================================================== RCS file: /cvsroot/clisp/clisp/src/io.d,v retrieving revision 1.196.2.1 retrieving revision 1.196.2.2 diff -u -d -r1.196.2.1 -r1.196.2.2 --- io.d 26 May 2004 15:06:57 -0000 1.196.2.1 +++ io.d 11 Oct 2004 10:27:08 -0000 1.196.2.2 @@ -615,7 +615,7 @@ } else { if (nullp(from_readtable)) /* instead of NIL take the standard-readtable */ - from_readtable = O(standard_readtable); + from_readtable = STACK_1 = O(standard_readtable); else /* check from-readtable: */ from_readtable = STACK_1 = check_readtable(from_readtable); /* from-readtable is OK */ Index: ChangeLog =================================================================== RCS file: /cvsroot/clisp/clisp/src/ChangeLog,v retrieving revision 1.2750.2.51 retrieving revision 1.2750.2.52 diff -u -d -r1.2750.2.51 -r1.2750.2.52 --- ChangeLog 11 Oct 2004 10:24:31 -0000 1.2750.2.51 +++ ChangeLog 11 Oct 2004 10:27:06 -0000 1.2750.2.52 @@ -1,3 +1,9 @@ +2004-08-07 Bruno Haible <br...@cl...> + + Fix crash of (COPY-READTABLE NIL some-readtable). + * io.d (COPY-READTABLE): Store from_readtable in the STACK. Fixes bug + introduced on 2003-06-08. + 2004-07-22 Sam Steingold <sd...@gn...> * stream.d (bitbuff_ixs_sub): fixed bitbufferptr initialization --__--__-- Message: 3 From: Bruno Haible <ha...@us...> To: cli...@li... Subject: clisp/src debug.d,1.65,1.65.2.1 ChangeLog,1.2750.2.52,1.2750.2.53 Date: Mon, 11 Oct 2004 10:29:01 +0000 Reply-To: cli...@li... Update of /cvsroot/clisp/clisp/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14203 Modified Files: Tag: clisp_2_33-patched debug.d ChangeLog Log Message: Fix a crash reproducible on Linux builds, with standard typecodes and generational GC: (setq z (make-list 10000000) a nil) (time (progn (mapcar #'null z) a)) (gc) => this leaves an invalid object in the heap (setq z nil) (gc) Index: debug.d =================================================================== RCS file: /cvsroot/clisp/clisp/src/debug.d,v retrieving revision 1.65 retrieving revision 1.65.2.1 diff -u -d -r1.65 -r1.65.2.1 --- debug.d 16 Jan 2004 11:16:23 -0000 1.65 +++ debug.d 11 Oct 2004 10:28:58 -0000 1.65.2.1 @@ -1432,7 +1432,7 @@ # und liefert den für LISP-Objekte freien Platz (in Bytes) { gar_col(); # GC ausführen - VALUES1(fixnum(free_space())); + VALUES1(UL_to_I(free_space())); } # read-form neu schreiben, in Zusammenarbeit mit dem Terminal-Stream?? Index: ChangeLog =================================================================== RCS file: /cvsroot/clisp/clisp/src/ChangeLog,v retrieving revision 1.2750.2.52 retrieving revision 1.2750.2.53 diff -u -d -r1.2750.2.52 -r1.2750.2.53 --- ChangeLog 11 Oct 2004 10:27:06 -0000 1.2750.2.52 +++ ChangeLog 11 Oct 2004 10:28:58 -0000 1.2750.2.53 @@ -1,5 +1,9 @@ 2004-08-07 Bruno Haible <br...@cl...> + * debug.d (GC): Use UL_to_I for representing the result. + +2004-08-07 Bruno Haible <br...@cl...> + Fix crash of (COPY-READTABLE NIL some-readtable). * io.d (COPY-READTABLE): Store from_readtable in the STACK. Fixes bug introduced on 2003-06-08. --__--__-- Message: 4 From: Bruno Haible <ha...@us...> To: cli...@li... Subject: clisp/src ChangeLog,1.2750.2.53,1.2750.2.54 hashtabl.d,1.66.2.1,1.66.2.2 Date: Mon, 11 Oct 2004 10:38:24 +0000 Reply-To: cli...@li... Update of /cvsroot/clisp/clisp/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16236 Modified Files: Tag: clisp_2_33-patched ChangeLog hashtabl.d Log Message: Avoid a crash when using a hash-table as hash-table key. Index: hashtabl.d =================================================================== RCS file: /cvsroot/clisp/clisp/src/hashtabl.d,v retrieving revision 1.66.2.1 retrieving revision 1.66.2.2 diff -u -d -r1.66.2.1 -r1.66.2.2 --- hashtabl.d 26 May 2004 15:06:55 -0000 1.66.2.1 +++ hashtabl.d 11 Oct 2004 10:38:22 -0000 1.66.2.2 @@ -773,7 +773,11 @@ } case_char: /* character */ return hashcode4_char(char_code(obj)); - #ifndef TYPECODES + #ifdef TYPECODES + case_machine: /* machine */ + case_subr: /* subr */ + case_system: /* frame-pointer, read-label, system */ + #else case_symbol: /* symbol */ #endif case_closure: /* closure */ Index: ChangeLog =================================================================== RCS file: /cvsroot/clisp/clisp/src/ChangeLog,v retrieving revision 1.2750.2.53 retrieving revision 1.2750.2.54 diff -u -d -r1.2750.2.53 -r1.2750.2.54 --- ChangeLog 11 Oct 2004 10:28:58 -0000 1.2750.2.53 +++ ChangeLog 11 Oct 2004 10:38:09 -0000 1.2750.2.54 @@ -1,3 +1,11 @@ +2004-08-26 Bruno Haible <br...@cl...> + + Avoid a crash when using a hash-table as hash-table key in TYPECODES + mode. + * hashtabl.d (hashcode4_atom): Handle case_machine, case_subr, + case_system. + Found by the sacla-tests on MacOS X. + 2004-08-07 Bruno Haible <br...@cl...> * debug.d (GC): Use UL_to_I for representing the result. --__--__-- Message: 5 From: Bruno Haible <ha...@us...> To: cli...@li... Subject: clisp/src stream.d,1.415.2.4,1.415.2.5 ChangeLog,1.2750.2.54,1.2750.2.55 Date: Mon, 11 Oct 2004 10:40:12 +0000 Reply-To: cli...@li... Update of /cvsroot/clisp/clisp/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16546 Modified Files: Tag: clisp_2_33-patched stream.d ChangeLog Log Message: Handle FINISH-OUTPUT and CLEAR-OUTPUT on pipes on Darwin. Index: stream.d =================================================================== RCS file: /cvsroot/clisp/clisp/src/stream.d,v retrieving revision 1.415.2.4 retrieving revision 1.415.2.5 diff -u -d -r1.415.2.4 -r1.415.2.5 --- stream.d 11 Oct 2004 10:24:35 -0000 1.415.2.4 +++ stream.d 11 Oct 2004 10:40:05 -0000 1.415.2.5 @@ -3222,6 +3222,9 @@ #ifdef UNIX_TERM_TERMIOS if (!( TCDRAIN(handle) ==0)) { if (!((errno==ENOTTY)||(errno==EINVAL))) + #ifdef UNIX_DARWIN + if (!(errno==EOPNOTSUPP)) + #endif { OS_error(); } # no TTY: OK, report other Error } #endif @@ -3290,6 +3293,9 @@ if (!(errno==ENOSYS)) #endif if (!((errno==ENOTTY)||(errno==EINVAL))) + #ifdef UNIX_DARWIN + if (!(errno==EOPNOTSUPP)) + #endif { OS_error(); } # no TTY: OK, report other Error } #endif Index: ChangeLog =================================================================== RCS file: /cvsroot/clisp/clisp/src/ChangeLog,v retrieving revision 1.2750.2.54 retrieving revision 1.2750.2.55 diff -u -d -r1.2750.2.54 -r1.2750.2.55 --- ChangeLog 11 Oct 2004 10:38:09 -0000 1.2750.2.54 +++ ChangeLog 11 Oct 2004 10:40:07 -0000 1.2750.2.55 @@ -1,3 +1,8 @@ +2004-08-24 Bruno Haible <br...@cl...> + + * stream.d (finish_tty_output, clear_tty_output) [UNIX_DARWIN]: Treat + EOPNOTSUPP like EINVAL. Needed on Darwin 7.5.0 (MacOS X 10.3.5). + 2004-08-26 Bruno Haible <br...@cl...> Avoid a crash when using a hash-table as hash-table key in TYPECODES --__--__-- Message: 6 From: Bruno Haible <ha...@us...> To: cli...@li... Subject: clisp/src ChangeLog,1.2750.2.55,1.2750.2.56 Date: Mon, 11 Oct 2004 10:41:25 +0000 Reply-To: cli...@li... Update of /cvsroot/clisp/clisp/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16789 Modified Files: Tag: clisp_2_33-patched ChangeLog Log Message: Fix buffer overrun in rd_by_aux_icx_buffered. Index: ChangeLog =================================================================== RCS file: /cvsroot/clisp/clisp/src/ChangeLog,v retrieving revision 1.2750.2.55 retrieving revision 1.2750.2.56 diff -u -d -r1.2750.2.55 -r1.2750.2.56 --- ChangeLog 11 Oct 2004 10:40:07 -0000 1.2750.2.55 +++ ChangeLog 11 Oct 2004 10:41:21 -0000 1.2750.2.56 @@ -1,3 +1,11 @@ +2004-08-28 Bruno Haible <br...@cl...> + + * stream.d (rd_by_aux_icx_buffered): Fill exactly the required number + of bytes in the bitbuffer; don't clobber the header word of the next + object in memory. Fixes a bug introduced on 2001-06-27. Also introduce + a more efficient loop for the case that doesn't require shifting. + Found by the ansi-tests on MacOS X. + 2004-08-24 Bruno Haible <br...@cl...> * stream.d (finish_tty_output, clear_tty_output) [UNIX_DARWIN]: Treat --__--__-- Message: 7 From: Bruno Haible <ha...@us...> To: cli...@li... Subject: clisp/src control.d,1.89.2.1,1.89.2.2 ChangeLog,1.2750.2.57,1.2750.2.58 Date: Mon, 11 Oct 2004 10:49:38 +0000 Reply-To: cli...@li... Update of /cvsroot/clisp/clisp/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18720 Modified Files: Tag: clisp_2_33-patched control.d ChangeLog Log Message: Fix three bugs in MULTIPLE-VALUE-SETQ. Index: control.d =================================================================== RCS file: /cvsroot/clisp/clisp/src/control.d,v retrieving revision 1.89.2.1 retrieving revision 1.89.2.2 diff -u -d -r1.89.2.1 -r1.89.2.2 --- control.d 22 May 2004 11:07:39 -0000 1.89.2.1 +++ control.d 11 Oct 2004 10:49:33 -0000 1.89.2.2 @@ -1824,39 +1824,56 @@ LISPSPECFORM(multiple_value_setq, 2,0,nobody) { /* (MULTIPLE-VALUE-SETQ ({var}) form), CLTL p. 136 */ /* check variable list: */ - pushSTACK(STACK_1); /* variable list */ - while (consp(STACK_0)) { - Car(STACK_0) = /* next variable */ - check_symbol_non_constant(Car(STACK_0),S(multiple_value_setq)); - if (sym_macrop(Car(STACK_0))) { /* symbol-macro */ - /* turn MULTIPLE-VALUE-SETQ into MULTIPLE-VALUE-SETF */ - STACK_0 = STACK_1; STACK_1 = STACK_2; STACK_2 = S(multiple_value_setf); + var gcv_object_t* firstvarptr = args_end_pointer; + var uintL varcount = 0; + { + var gcv_object_t* varlistr_ = &STACK_1; + while (consp(*varlistr_)) { + var object symbol = /* next variable */ + check_symbol_non_constant(Car(*varlistr_),S(multiple_value_setq)); + *varlistr_ = Cdr(*varlistr_); + varcount++; + pushSTACK(symbol); + check_STACK(); + if (sym_macrop(symbol)) /* and not a symbol-macro */ + goto expand; + } + if (false) { + expand: /* turn MULTIPLE-VALUE-SETQ into MULTIPLE-VALUE-SETF */ + dotimespL(varcount,varcount, { + var object new_cons = allocate_cons(); + Car(new_cons) = popSTACK(); Cdr(new_cons) = *varlistr_; + *varlistr_ = new_cons; + }); + /* stack layout: varlist, form. */ + pushSTACK(STACK_0); STACK_1 = STACK_2; STACK_2 = S(multiple_value_setf); var object newform = listof(3); eval(newform); return; } - STACK_0 = Cdr(STACK_0); } - skipSTACK(1); /* drop variable list tail */ - eval(popSTACK()); /* evaluate form */ - var object varlist = popSTACK(); - var gcv_object_t* args_end = args_end_pointer; - mv_to_STACK(); /* write values into the stack (eases access) */ - /* peruse variable-list: */ - var gcv_object_t* mvptr = args_end; - var uintC count = mv_count; /* number of values that are still available */ - while (consp(varlist)) { - var object value; - if (count>0) { - value = NEXT(mvptr); count--; /* next value */ - } else { - value = NIL; /* NIL, if all values are consumed */ - } - setq(Car(varlist),value); /* assign to the next variable */ - varlist = Cdr(varlist); + eval(Before(firstvarptr)); /* evaluate form */ + /* Write values into the stack (needed because setq() can trigger GC): */ + var gcv_object_t* mvptr = args_end_pointer; + mv_to_STACK(); + /* Perform the assignments: */ + var uintL valcount = mv_count; /* number of values */ + { + var uintL remaining = valcount; /* number of values that are still available */ + var gcv_object_t* varptr = firstvarptr; + dotimesL(varcount,varcount, { + var object value; + if (remaining>0) { + value = NEXT(mvptr); remaining--; /* next value */ + } else { + value = NIL; /* NIL, if all values are consumed */ + } + setq(NEXT(varptr),value); /* assign to the next variable */ + }); } - set_args_end_pointer(args_end); /* clean up STACK */ - mv_count=1; /* last value1 as the only value */ + /* Return the first among the multiple values as the only value: */ + value1 = (valcount > 0 ? STACK_(valcount-1) : NIL); mv_count=1; + set_args_end_pointer(firstvarptr STACKop 2); /* clean up STACK */ } LISPSPECFORM(catch, 1,0,body) Index: ChangeLog =================================================================== RCS file: /cvsroot/clisp/clisp/src/ChangeLog,v retrieving revision 1.2750.2.57 retrieving revision 1.2750.2.58 diff -u -d -r1.2750.2.57 -r1.2750.2.58 --- ChangeLog 11 Oct 2004 10:46:13 -0000 1.2750.2.57 +++ ChangeLog 11 Oct 2004 10:49:33 -0000 1.2750.2.58 @@ -1,3 +1,10 @@ +2004-10-06 Bruno Haible <br...@cl...> + + * control.d (MULTIPLE-VALUE-SETQ): Rewritten, to fix three bugs + introduced since 2003-05-20: GC-safety bug when assigning Car(STACK_0), + side effect on variable list given in the original form, GC-safety bug + on return value. + 2004-09-23 Bruno Haible <br...@cl...> * sequence.d (REVERSE): Fix wrong index check when the argument is a --__--__-- Message: 8 From: Bruno Haible <ha...@us...> To: cli...@li... Subject: clisp/src time.d,1.37,1.37.2.1 ChangeLog,1.2750.2.58,1.2750.2.59 Date: Mon, 11 Oct 2004 10:52:43 +0000 Reply-To: cli...@li... Update of /cvsroot/clisp/clisp/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19331 Modified Files: Tag: clisp_2_33-patched time.d ChangeLog Log Message: Fix three bugs in the DELTA4 function. Index: time.d =================================================================== RCS file: /cvsroot/clisp/clisp/src/time.d,v retrieving revision 1.37 retrieving revision 1.37.2.1 diff -u -d -r1.37 -r1.37.2.1 --- time.d 27 Feb 2004 11:58:07 -0000 1.37 +++ time.d 11 Oct 2004 10:52:38 -0000 1.37.2.1 @@ -843,20 +843,27 @@ var uintL n2 = posfixnum_to_L(STACK_3); if (!posfixnump(STACK_4)) fehler_posfixnum(STACK_4); var uintL n1 = posfixnum_to_L(STACK_4); - if ((o1 > n1) /* use the arguments on the stack for error reporting */ - || ((o1 == n1) && (o2 > n2))) { - skipSTACK(1); pushSTACK(S(delta4)); + if ((o1 > n1) || ((o1 == n1) && (o2 > n2))) { + pushSTACK(STACK_3); /* n2 */ + pushSTACK(STACK_(4+1)); /* n1 */ + pushSTACK(STACK_(1+2)); /* o2 */ + pushSTACK(STACK_(2+3)); /* o1 */ + pushSTACK(S(delta4)); fehler(arithmetic_error,"~: negative difference: [~ ~] > [~ ~]"); } var uintL del = n1 - o1; - if (shift + I_integer_length(fixnum(del)) > 64) { + if (shift >= 32 || shift + I_integer_length(fixnum(del)) > 64) { pushSTACK(STACK_0); pushSTACK(S(ash)); fehler(arithmetic_error,GETTEXT("~: too large shift amount ~")); } #ifdef intQsize - VALUES1(UQ_to_I((del << shift) + n2 - o2)); + VALUES1(UQ_to_I(((uintQ)del << shift) + n2 - o2)); #else - VALUES1(UL2_to_I(del >> (32-shift), (del << shift) + n2 - o2)); + var uint32 hi = del >> (32-shift); + var uint32 lo = del << shift; + if ((lo += n2) < n2) hi++; + if (lo < o2) hi--; lo -= o2; + VALUES1(UL2_to_I(hi, lo)); #endif skipSTACK(5); } Index: ChangeLog =================================================================== RCS file: /cvsroot/clisp/clisp/src/ChangeLog,v retrieving revision 1.2750.2.58 retrieving revision 1.2750.2.59 diff -u -d -r1.2750.2.58 -r1.2750.2.59 --- ChangeLog 11 Oct 2004 10:49:33 -0000 1.2750.2.58 +++ ChangeLog 11 Oct 2004 10:52:38 -0000 1.2750.2.59 @@ -1,5 +1,10 @@ 2004-10-06 Bruno Haible <br...@cl...> + * time.d (SYS::DELTA4): Fix error message's argument. Signal an error + if the shift is >= 32. Fix 64-bit computations. + +2004-10-06 Bruno Haible <br...@cl...> + * control.d (MULTIPLE-VALUE-SETQ): Rewritten, to fix three bugs introduced since 2003-05-20: GC-safety bug when assigning Car(STACK_0), side effect on variable list given in the original form, GC-safety bug --__--__-- Message: 9 From: Bruno Haible <ha...@us...> To: cli...@li... Subject: clisp/src sequence.d,1.70,1.70.2.1 ChangeLog,1.2750.2.56,1.2750.2.57 Date: Mon, 11 Oct 2004 10:46:16 +0000 Reply-To: cli...@li... Update of /cvsroot/clisp/clisp/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17951 Modified Files: Tag: clisp_2_33-patched sequence.d ChangeLog Log Message: Fix long-standing bug of REVERSE on displaced vectors. Index: sequence.d =================================================================== RCS file: /cvsroot/clisp/clisp/src/sequence.d,v retrieving revision 1.70 retrieving revision 1.70.2.1 diff -u -d -r1.70 -r1.70.2.1 --- sequence.d 23 Feb 2004 17:08:39 -0000 1.70 +++ sequence.d 11 Oct 2004 10:46:13 -0000 1.70.2.1 @@ -730,7 +730,7 @@ var uintL index1 = 0; var object dv1 = array_displace_check(STACK_3,count,&index1); var uintL index2 = 0; - var object dv2 = array_displace_check(STACK_0,count,&index1); # = STACK_0 + var object dv2 = array_displace_check(STACK_0,count,&index2); # = STACK_0 elt_reverse(dv1,index1,dv2,index2,count); } } else { Index: ChangeLog =================================================================== RCS file: /cvsroot/clisp/clisp/src/ChangeLog,v retrieving revision 1.2750.2.56 retrieving revision 1.2750.2.57 diff -u -d -r1.2750.2.56 -r1.2750.2.57 --- ChangeLog 11 Oct 2004 10:41:21 -0000 1.2750.2.56 +++ ChangeLog 11 Oct 2004 10:46:13 -0000 1.2750.2.57 @@ -1,3 +1,8 @@ +2004-09-23 Bruno Haible <br...@cl...> + + * sequence.d (REVERSE): Fix wrong index check when the argument is a + displaced vector. Fixes bug introduced on 1999-11-08. + 2004-08-28 Bruno Haible <br...@cl...> * stream.d (rd_by_aux_icx_buffered): Fill exactly the required number --__--__-- Message: 10 From: Bruno Haible <ha...@us...> To: cli...@li... Subject: clisp/src debug.d,1.65.2.1,1.65.2.2 ChangeLog,1.2750.2.59,1.2750.2.60 Date: Mon, 11 Oct 2004 10:56:34 +0000 Reply-To: cli...@li... Update of /cvsroot/clisp/clisp/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20171 Modified Files: Tag: clisp_2_33-patched debug.d ChangeLog Log Message: Fix detection whether to recognize commands or not. Index: debug.d =================================================================== RCS file: /cvsroot/clisp/clisp/src/debug.d,v retrieving revision 1.65.2.1 retrieving revision 1.65.2.2 diff -u -d -r1.65.2.1 -r1.65.2.2 --- debug.d 11 Oct 2004 10:28:58 -0000 1.65.2.1 +++ debug.d 11 Oct 2004 10:56:29 -0000 1.65.2.2 @@ -121,7 +121,7 @@ #endif #if !defined(TERMINAL_USES_KEYBOARD) /* Atari - function keys */ var bool terminal_read_stream_bound = false; - if (!ls_avail_p(status) /* only for interactive input streams */ + if (interactive_stream_p(*(inputstream_ STACKop 3)) /* only for interactive input streams */ && !boundp(Symbol_value(S(terminal_read_stream)))) { /* look for commands, not forms: (multiple-value-bind (line flag) (read-line istream) Index: ChangeLog =================================================================== RCS file: /cvsroot/clisp/clisp/src/ChangeLog,v retrieving revision 1.2750.2.59 retrieving revision 1.2750.2.60 diff -u -d -r1.2750.2.59 -r1.2750.2.60 --- ChangeLog 11 Oct 2004 10:52:38 -0000 1.2750.2.59 +++ ChangeLog 11 Oct 2004 10:56:29 -0000 1.2750.2.60 @@ -1,3 +1,9 @@ +2004-10-07 Bruno Haible <br...@cl...> + + * debug.d (read_form): Don't use ls_avail_p to test whether the + input stream is interactive, since the clear_input call has been + removed on 2003-01-21. + 2004-10-06 Bruno Haible <br...@cl...> * time.d (SYS::DELTA4): Fix error message's argument. Signal an error --__--__-- Message: 11 From: Bruno Haible <ha...@us...> To: cli...@li... Subject: clisp/src clos.lisp,1.68,1.68.2.1 ChangeLog,1.2750.2.60,1.2750.2.61 Date: Mon, 11 Oct 2004 11:04:15 +0000 Reply-To: cli...@li... Update of /cvsroot/clisp/clisp/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21779 Modified Files: Tag: clisp_2_33-patched clos.lisp ChangeLog Log Message: Restore an error message. Index: clos.lisp =================================================================== RCS file: /cvsroot/clisp/clisp/src/clos.lisp,v retrieving revision 1.68 retrieving revision 1.68.2.1 diff -u -d -r1.68 -r1.68.2.1 --- clos.lisp 8 Mar 2004 12:30:30 -0000 1.68 +++ clos.lisp 11 Oct 2004 11:04:09 -0000 1.68.2.1 @@ -3304,8 +3304,11 @@ (declare (ignore class)) (multiple-value-bind (new-value store-p) (sys::check-value `(slot-value ,instance ,slot-name) - (make-condition 'unbound-slot :name slot-name - :instance instance)) + (make-condition 'sys::simple-unbound-slot + :name slot-name + :instance instance + :format-control (TEXT "~S: The slot ~S of ~S has no value") + :format-arguments (list 'slot-value slot-name instance))) (when store-p (setf (slot-value instance slot-name) new-value)) new-value))) Index: ChangeLog =================================================================== RCS file: /cvsroot/clisp/clisp/src/ChangeLog,v retrieving revision 1.2750.2.60 retrieving revision 1.2750.2.61 diff -u -d -r1.2750.2.60 -r1.2750.2.61 --- ChangeLog 11 Oct 2004 10:56:29 -0000 1.2750.2.60 +++ ChangeLog 11 Oct 2004 11:04:09 -0000 1.2750.2.61 @@ -1,3 +1,8 @@ +2004-10-09 Bruno Haible <br...@cl...> + + * clos.lisp (slot-unbound): Restore the error message that was thrown + away on 2003-05-01. + 2004-10-07 Bruno Haible <br...@cl...> * debug.d (read_form): Don't use ls_avail_p to test whether the --__--__-- Message: 12 From: Bruno Haible <ha...@us...> To: cli...@li... Subject: clisp/src clos-class3.lisp,1.49,1.50 ChangeLog,1.3641,1.3642 Date: Mon, 11 Oct 2004 11:05:57 +0000 Reply-To: cli...@li... Update of /cvsroot/clisp/clisp/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22130/src Modified Files: clos-class3.lisp ChangeLog Log Message: Don't make a class unfinalized if finalization already succeeded. Index: clos-class3.lisp =================================================================== RCS file: /cvsroot/clisp/clisp/src/clos-class3.lisp,v retrieving revision 1.49 retrieving revision 1.50 diff -u -d -r1.49 -r1.50 --- clos-class3.lisp 28 Sep 2004 13:13:57 -0000 1.49 +++ clos-class3.lisp 11 Oct 2004 11:05:53 -0000 1.50 @@ -646,6 +646,10 @@ nil `(,@(if direct-slots-p (list 'direct-slots direct-slots) '()) ,@all-keys)) + ;; If the class could be finalized (although not a "must"), + ;; keep it finalized and don't unfinalize it. + (when (>= (class-initialized class) 6) + (setq must-be-finalized t)) (update-subclasses-for-redefined-class class was-finalized must-be-finalized old-direct-superclasses))) (install-class-direct-accessors class)) Index: ChangeLog =================================================================== RCS file: /cvsroot/clisp/clisp/src/ChangeLog,v retrieving revision 1.3641 retrieving revision 1.3642 diff -u -d -r1.3641 -r1.3642 --- ChangeLog 11 Oct 2004 11:01:59 -0000 1.3641 +++ ChangeLog 11 Oct 2004 11:05:53 -0000 1.3642 @@ -1,5 +1,10 @@ 2004-10-09 Bruno Haible <br...@cl...> + * clos-class3.lisp (reinitialize-instance-<class>): Don't force a + class to be unfinalized if finalization already succeeded. + +2004-10-09 Bruno Haible <br...@cl...> + * clos-slots2.lisp (slot-unbound): Restore the error message that was thrown away on 2003-05-01. --__--__-- Message: 13 From: Bruno Haible <ha...@us...> To: cli...@li... Subject: clisp/src spvw_garcol.d,1.86,1.87 debug.d,1.75,1.76 lispbibl.d,1.557,1.558 ChangeLog,1.3642,1.3643 Date: Mon, 11 Oct 2004 11:08:32 +0000 Reply-To: cli...@li... Update of /cvsroot/clisp/clisp/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22807/src Modified Files: spvw_garcol.d debug.d lispbibl.d ChangeLog Log Message: Fix GC crash after a GC was triggered while a break loop was active. Index: debug.d =================================================================== RCS file: /cvsroot/clisp/clisp/src/debug.d,v retrieving revision 1.75 retrieving revision 1.76 diff -u -d -r1.75 -r1.76 --- debug.d 8 Oct 2004 10:44:09 -0000 1.75 +++ debug.d 11 Oct 2004 11:08:29 -0000 1.76 @@ -449,7 +449,7 @@ { var p_backtrace_t bt_save = back_trace; var struct backtrace_t bt_here; - bt_here.bt_next = NULL; + bt_here.bt_next = back_trace; bt_here.bt_caller = L(driver); bt_here.bt_stack = STACK; bt_here.bt_num_arg = -1; @@ -493,7 +493,7 @@ } else { var p_backtrace_t bt_save = back_trace; var struct backtrace_t bt_here; - bt_here.bt_next = NULL; + bt_here.bt_next = back_trace; bt_here.bt_caller = S(break_driver); bt_here.bt_stack = STACK; bt_here.bt_num_arg = -1; Index: spvw_garcol.d =================================================================== RCS file: /cvsroot/clisp/clisp/src/spvw_garcol.d,v retrieving revision 1.86 retrieving revision 1.87 diff -u -d -r1.86 -r1.87 --- spvw_garcol.d 25 Aug 2004 10:31:21 -0000 1.86 +++ spvw_garcol.d 11 Oct 2004 11:08:28 -0000 1.87 @@ -141,10 +141,10 @@ #endif for_all_constobjs( gc_mark(*objptr); ); /* object_tab */ for_all_threadobjs( gc_mark(*objptr); ); /* threads */ - /* The callers in back_trace must all be already marked: - they refer to subrs and closures that are curently being + /* The callers in back_trace are mostly already marked: + they refer to subrs and closures that are currently being called and therefore cannot possibly be garbage-collected. - But better safe than sorry, so we mark them here again: */ + But a few remain unmarked, so make sure all are really marked: */ for_all_back_traces({ for (; bt; bt = bt->bt_next) gc_mark(bt->bt_caller); Index: lispbibl.d =================================================================== RCS file: /cvsroot/clisp/clisp/src/lispbibl.d,v retrieving revision 1.557 retrieving revision 1.558 diff -u -d -r1.557 -r1.558 --- lispbibl.d 8 Oct 2004 10:40:53 -0000 1.557 +++ lispbibl.d 11 Oct 2004 11:08:29 -0000 1.558 @@ -8017,7 +8017,7 @@ #endif #define bt_beyond_stack_p(bt,st) \ - (bt && !((aint)st cmpSTACKop (aint)(bt->bt_stack))) + ((bt) != NULL && !((aint)(st) cmpSTACKop (aint)((bt)->bt_stack))) /* unwind backtrace to the stack location */ #ifdef DEBUG_BACKTRACE #define unwind_back_trace(bt,st) \ @@ -8034,12 +8034,13 @@ p_backtrace_t bt_save = back_trace; \ struct backtrace_t bt_here; \ bt_here.bt_next = back_trace; \ - bt_here.bt_caller = fun; \ + bt_here.bt_caller = (fun); \ bt_here.bt_stack = STACK; \ - bt_here.bt_num_arg = num_arg; \ + bt_here.bt_num_arg = (num_arg); \ BT_CHECK1("w/s/b/t: before"); \ back_trace = &bt_here; \ statement; \ + if (back_trace != &bt_here) abort(); \ if (back_trace->bt_next != bt_save) abort(); \ BT_CHECK1("w/s/b/t: after"); \ back_trace = back_trace->bt_next; \ @@ -8048,9 +8049,9 @@ #define with_saved_back_trace(fun,num_arg,statement) do { \ struct backtrace_t bt_here; \ bt_here.bt_next = back_trace; \ - bt_here.bt_caller = fun; \ + bt_here.bt_caller = (fun); \ bt_here.bt_stack = STACK; \ - bt_here.bt_num_arg = num_arg; \ + bt_here.bt_num_arg = (num_arg); \ back_trace = &bt_here; \ statement; \ back_trace = back_trace->bt_next; \ Index: ChangeLog =================================================================== RCS file: /cvsroot/clisp/clisp/src/ChangeLog,v retrieving revision 1.3642 retrieving revision 1.3643 diff -u -d -r1.3642 -r1.3643 --- ChangeLog 11 Oct 2004 11:05:53 -0000 1.3642 +++ ChangeLog 11 Oct 2004 11:08:29 -0000 1.3643 @@ -1,3 +1,13 @@ +2004-10-10 Bruno Haible <br...@cl...> + + Fix GC crash after a GC was triggered while a break loop was active. + * lispbibl.d (bt_beyond_stack_p, with_saved_back_trace): Correctly + parenthesize argument expressions. + * debug.d (driver, break_driver): Initialize bt_next to back_trace, + not NULL. Otherwise the bt_caller fields are not updated during GCs, + and after the function is left the next GC crashes. Fixes bug + introduced on 2002-11-15. + 2004-10-09 Bruno Haible <br...@cl...> * clos-class3.lisp (reinitialize-instance-<class>): Don't force a --__--__-- _______________________________________________ clisp-cvs mailing list cli...@li... https://lists.sourceforge.net/lists/listinfo/clisp-cvs End of clisp-cvs Digest |