crashes SBCL. In general tracing anything which is used in the
implementation of TRACE is likely to have the same problem.
-75:
- As reported by Martin Atzmueller on sbcl-devel 26 Dec 2000,
- ANSI says that WITH-OUTPUT-TO-STRING should have a keyword
- :ELEMENT-TYPE, but in sbcl-0.6.9 this is not defined for
- WITH-OUTPUT-TO-STRING.
-
78:
ANSI says in one place that type declarations can be abbreviated even
when the type name is not a symbol, e.g.
Cross-compiler cannot perform constant folding of some internal
functions, such as %NEGATE.
+272:
+ All forms of GC hooks (including notifiers and finalisers) are currently
+ (since 0.8.0) broken for gencgc (i.e. x86) users
+
+
DEFUNCT CATEGORIES OF BUGS
IR1-#:
These labels were used for bugs related to the old IR1 interpreter.
to add FDEFN objects.
The CMU CL condition system (code/error.lisp) was based on
-some prototyping code written by Ken Pitman at Symbolics.
+some prototyping code written by Kent Pitman at Symbolics.
The CMU CL HASH-TABLE system was originally written by Skef Wholey
for Spice Lisp, then rewritten by William Lott, then rewritten
Douglas Crosher wrote code to support Gray streams, added X86 support
for the debugger and relocatable code, wrote a conservative
-generational GC for the X86 port, and added X86-specific extensions to
-support stack groups and multiprocessing.
+generational GC for the X86 port. He also added X86-specific
+extensions to support stack groups and multiprocessing, but these are
+not present in SBCL
The CMU CL user manual credits Robert MacLachlan as editor. A chapter
on the CMU CL interprocess communication extensions (not supported in
I've lost count. See the CVS logs.)
Daniel Barlow:
- He made SBCL play nicely with ILISP. He figured out how to get the
- CMU CL dynamic object file loading code to work under SBCL. He
- ported CMU CL's support for Alpha and PPC CPUs to SBCL, and then
- continued to improve the ports. He wrote code (e.g. grovel_headers.c
- and stat_wrapper stuff) to handle machine-dependence and
- OS-dependence automatically, reducing the amount of hand-tweaking
- required to keep ports synchronized. He's also provided support
- for SBCL (as well as for free Common Lisp in general) through
- his CLiki website.
+ His contributions have included support for shared object loading
+ (from CMUCL), the Cheney GC for non-x86 ports (from CMUCL), Alpha
+ and PPC ports (from CMUCL), control stack exhaustion checking (new)
+ and native threads support for x86 Linux (new). He also refactored
+ the garbage collectors for understandability, wrote code
+ (e.g. grovel_headers.c and stat_wrapper stuff) to find
+ machine-dependent and OS-dependent constants automatically, and was
+ original author of the asdf, asdf-install, sb-bsd-sockets,
+ sb-executable, sb-grovel and sb-posix contrib packages.
Robert E. Brown:
He has reported various bugs and submitted several patches,
halfway stage, it has caught many tens of bugs in SBCL, and provided
simple test cases for them.
+Miles Egan
+ He creates binary packages of SBCL releases for Red Hat and other
+ (which?) platforms
+
Nathan Froyd:
He has fixed various bugs, and also done a lot of internal
cleanup, not visible at the user level but important for
Eric Marsden:
Some of his fixes to CMU CL since the SBCL fork have been ported
- to SBCL.
+ to SBCL. He also maintains the cl-benchmark package, which gives
+ us some idea of how our performance changes compared to earlier
+ releases and to other implementations.
Antonio Martinez-Shotton:
He has contributed a number of bug fixes and bug reports to SBCL.
ABI and assembly syntax differences between Darwin and Linux.
Kevin M. Rosenberg:
- He provided the ACL-style toplevel, and a number of MOP-related bug
- reports.
+ He provided the ACL-style toplevel (sb-aclrepl contrib module), and
+ a number of MOP-related bug reports. He also creates the official
+ Debian packages of SBCL.
Christophe Rhodes:
He ported SBCL to SPARC, made various port-related and SPARC-related
INITIALS GLOSSARY (helpful when reading comments, CVS commit logs, etc.)
MNA Martin Atzmueller
-DB Daniel Barlow
+DB Daniel Barlow (also "dan")
DTC Douglas Crosher
APD Alexey Dejneka
NJF Nathan Froyd
* The compiler now performs limited argument count validation of
constant format strings in FORMAT, and where appropriate in ERROR,
CERROR and WARN. (thanks to Gerd Moellmann)
- * bug fix: WITH-OUTPUT-TO-STRING (and MAKE-STRING-OUTPUT-STREAM) now
+ * New ASDF-INSTALL contrib can be used for automatic download and
+ installation of third-party Lisp code from CCLAN or other sites
+ via CLiki
+ * Threaded builds (:SB-THREAD) now support SB-THREAD:INTERRUPT-THREAD,
+ which forces another thread to execute a function supplied by the
+ caller
+ * bug 75 fix: WITH-OUTPUT-TO-STRING (and MAKE-STRING-OUTPUT-STREAM) now
accept and act upon their :ELEMENT-TYPE keyword argument.
- (reported by Edi Weitz)
+ (reported by Martin Atzmueller, Edi Weitz)
* bug fix: FILE-POSITION now accepts position designators up to
ARRAY-DIMENSION-LIMIT or the extreme of the off_t range, whichever
is the greater. (thanks to Patrik Nordebo)
printable. (reported by Eric Marsden)
* bug fix in sb-posix: mmap() now works on systems with a 64-bit
off_t, including Darwin and FreeBSD. (thanks to Andreas Fuchs)
+ * x86 bug fix in control stack exhaustion checking: now shows backtrace
* bug fix in WITH-TIMEOUT: now the body can have more than one form.
(thanks to Stig Sandoe)
* fixed some bugs revealed by Paul Dietz' test suite:
*
* In the case of most signals, when Lisp asks us to handle the
* signal, the outermost handler (the one actually passed to UNIX) is
- * either interrupt_handle_now(..) or interrupt_handle_later(..).
+ * either interrupt_handle_now(..) or maybe_now_maybe_later(..).
* In that case, the Lisp-level handler is stored in interrupt_handlers[..]
* and interrupt_low_level_handlers[..] is cleared.
*
extern lispobj call_into_lisp(lispobj fun, lispobj *args, int nargs);
extern void post_signal_tramp(void);
-void return_to_lisp_function(os_context_t *context, lispobj function)
+void arrange_return_to_lisp_function(os_context_t *context, lispobj function)
{
void * fun=native_pointer(function);
char *code = &(((struct simple_fun *) fun)->code);
* would see, then arrange to have it called directly. post_signal_tramp
* is the second half of this function
*/
-
u32 *sp=(u32 *)*os_context_register_addr(context,reg_ESP);
*(sp-14) = post_signal_tramp; /* return address for call_into_lisp */
*os_context_register_addr(context,reg_CODE) =
fun + FUN_POINTER_LOWTAG;
#endif
-#ifdef LISP_FEATURE_LINUX
- /* Under Linux on some architectures it seems we have to restore
- the FPU control word from the context, as after the signal is
- delivered we have a null FPU control word. */
- os_restore_fp_control(context);
-#endif
}
+#ifdef LISP_FEATURE_SB_THREAD
boolean handle_rt_signal(int num, siginfo_t *info, void *v_context)
{
struct
os_context_t *context = (os_context_t*)arch_os_get_context(&v_context);
- return_to_lisp_function(context,info->si_value.sival_int);
+ arrange_return_to_lisp_function(context,info->si_value.sival_int);
}
+#endif
boolean handle_control_stack_guard_triggered(os_context_t *context,void *addr)
{
* temporarily so the error handler has some headroom */
protect_control_stack_guard_page(th->pid,0L);
- return_to_lisp_function
+ arrange_return_to_lisp_function
(context, SymbolFunction(CONTROL_STACK_EXHAUSTED_ERROR));
return 1;
}
sigaddset_blockable(&sa.sa_mask);
sa.sa_flags = SA_SIGINFO | SA_RESTART;
#ifdef LISP_FEATURE_C_STACK_IS_CONTROL_STACK
- if((signal==SIG_MEMORY_FAULT) ||
- (signal==SIG_INTERRUPT_THREAD))
+ if((signal==SIG_MEMORY_FAULT)
+#ifdef SIG_INTERRUPT_THREAD
+ || (signal==SIG_INTERRUPT_THREAD)
+#endif
+ )
sa.sa_flags|= SA_ONSTACK;
#endif
--- /dev/null
+threads-foreign-code.c
;;; 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.2.36"
+"0.8.2.37"