* altstack_pointer_p() derives the location of the altstack from the value of arch_os_get_current_thread(), which returns a struct thread *. This caused the subsequent offset calculation to be off by a factor of sizeof(struct thread), thus completely overshooting the altstack area.
* In genesis, output a define with the descriptions of internal errors. * In interr.c, create an array with said descriptions and use it when describing an internal error.
I'll let FreeBSD folks make the judgement if threads should be default there as well. Also: update INSTALL documentation regarding *FEATURES* a bit, and make the documentation clear about availability of threads on different builds.
Bug with case-insensitive filesystems cause other implementations .FASL files to be loaded as source reported by Willem Broekema.
Thanks to Stas Boukarev.
Reported by Fare Rideau: POSIX putenv() puts the actual string it is passed into environ, which is definitely wrong for any lisp string. Since we don't want to leak memory either, implement our own putenv() on top of setenv() -- and the other way around on Windows which doesn't have setenv(). Messed up is what this is -- to keep a semblance of sanity add test-cases.
On input, there are potentially two non-constant sizes of data that need to be read; for variable-width formats, there are both the number of bytes for a particular character, and the number of bytes that need to be read in order to know how many bytes need to be read for a character (previously hardwired to 1). Separate out these two sizes in preparation for UTF-16 and UTF-32 external formats.
Fix a simple bug in the CHAR->UCS-2BE error case. Fix error-handling UCS-2 cases, by actually being careful about using the return values of the encoding-error/decoding-error octet functions, and by using adjustable vectors. Include tests for this. Implement UCS-4, as a straight-through 32-bit encoding of the char-code. Move external-formats/ucs-2.lisp to external-formats/enc-ucs.lisp, and include a comment header explaining the distinction in our terms between UCS and UTF external formats.
* Errors signaled within an (EVAL-WHEN (:COMPILE-TOPLEVEL) ...), i.e. during ``compile-time-too' processing, are now caught and reported just like errors at macroexpansion time. Previously, we landed in the debugger from within the compiler and thus provided pretty much no information about the actual source context to the user. Now, we won't land in the debugger, and the appropriate source context is reported along the error. * Some slight generalization in the test suite. * So we can add tests for errors in EVAL-WHEN and during macroexpansion.
* Have slam.lisp re-load build-order.lisp-expr in order to obtain new flags as needed. * Also check for outdated/non-extant trace file for stems flagged as requiring one.
* Half of the register names were missing, causing random failures from using words past the end of the register name array as string pointers.
If *PRINT-PRETTY*, the default method of PRINT-OBJECT now establishes a logical block around PRINT-UNREADABLE-OBJECT that, in turn, adds a few PPRINT-NEWLINES to allow for the stuff between #< and > be broken into multiple lines as the pretty printer sees fit. This allows #<...> to be wrapped properly. https://bugs.launchpad.net/sbcl/+bug/488979
Instead of printing the object type and address in an around method on DESCRIBE-OBJECT, make it a normal method that all other methods are supposed to call via CALL-NEXT-METHOD if they wish. This makes it possible to completely change the output of DESCRIBE for one class while leaving other classes alone. Also, kill the unused *IN-DESCRIBE* var in the process.
- Add extra keyword in the ftype declaration for %DEFKNOWN (oh, the irony); - move the THREAD structure into the cross-compiler, so that MUTEX slots can be declared to have type (OR NULL THREAD); - IGNORE on non-binding in saptran (build failure reported by firstname.lastname@example.org)
* Actual bug was a missed range check prior to calling POSITION in EXTRACT-DEVICE in src;code;win32-pathname. Fixed. * Added test case.
Other Xref functions (WHO-CALLS etc.) are very liberal at what they accept as input. Adjust the two new Xref functions WHO-SPECIALIZES-DIRECTLY and WHO-SEPCIALIZES-GENERALLY accordingly.
A stray backquote caused compilation warnings and run-time errors if, within a method, a symbol macro with a type declaration was given a new value with SETQ. Fixes bug #485019, reported by Iban Hatchondo