After an (EQL X Y) test both X and Y shall inherit the constraints of the other. Thanks to jsnell for spotting this.
* ... for the case where a forward reference is made during compilation, and the referenced function is loaded from a pre-existing fasl while still inside the same compilation unit. (Reported by Jeremy Brown). * Tests.
…sor abuse * socket, dirent (patch from Richard Kreuter)
* Get rid of the extra wrapper lambda around fopcompiled functions * This requires making sure that functions with xeps are never let- or assignment-converted. * Fix some whitespace damage, and a few tests that were making invalid assumptions * Compilation speedup seems to be about 5% for most cases, up to 20% on high debug levels.
Broken by the recent bivalent stream fix. * Arbitrarily decide that READ-SEQUENCE into a simple-vector from a bivalent stream should read character data * More tests
When generating CLOS accessors, use the :documentation of the slot for the docstring of the method (Patch by Troels Henriksen)
It turns out that getpagesize() can return different values on different Linux kernel versions, for example on PPC where the ABI specifies the page size as 4k-65k. If getpagesize() and SB!C:*BACKEND-PAGE-SIZE* disagree, the result will be a segfault at startup. Fix this. (Thanks to David Woodhouse). * SB!SYS:GET-PAGE-SIZE and os_vm_page_size use the hardcoded SB!C:*BACKEND-PAGE-SIZE* on Linux, since getpagesize() is unreliable. * Remove the obsolete LISPOBJ() kludge in genesis for forcing values to unsigned. * Fix buffer overflow in coreparse for sufficiently small page tables. * Allow using 65k or gencgc pages (with a slightly less efficient page table structure layout).
non-local exit. Revert src/assembly/x86/assem-rtns.lisp changes of version 126.96.36.199. Add Win32 SEH frame to catch-block and unwind-block object definitions. Changed VOPs in src/compiler/x86/nlx.lisp to set up SEH frames for unwind-protect and unwind targets. Added Win32-specific assembly-routines to handle unwinding and unwind-protect frames. Added an SEH frame to call_into_lisp. Added a wrapper around the runtime exception handler to provide a set of continuous stack frames over the system unwind logic (which doesn't maintain EBP properly, thus breaking backtraces). Added test cases for unwinding lisp stack frames from alien code.
Remove context-restore trap. Remove sigtrap_trampoline and exception_trampoline, sigtrap_emulator, sigtrap_wrapper, and handle_win32_exception_wrapper. Change handle_exception to call HANDLE-WIN32-EXCEPTION and sigtrap_wrapper directly. Remove the saved context and exception from the SEH frame structure.
Add RESTART-FRAME command to the debugger, reduce the runtime cost of the debug catch tags. * Change the debugger catch tag to funcall the thrown value, rather than just returning it. * Make RETURN throw a thunk that returns an appropriate value, and RESTART-FRAME throw a thunk that calls the same function again with the same arguments. * Always emit the debug catch with a static tag, rather than consing up a new tag every time the catch is entered. * To ensure that the tags are unique, the RETURN and RESTART-FRAME commands will first cons up a new tag, find the right catch-block structure on the stack, assign the new tag to the tag slot, and then throw the new tag. * Don't add the catch tags to some uninteresting (usually compiler-generated) functions, to reduce the compilation speed hit.
mkstemp(3) takes a template string as an "out" parameter. The sb-posix README states that this should be returned as a second value, so we do that. (From a user report that the template string would not get properly clobbered in post-1.0 sbcls. Ow.)
Display closed over variables in the debugger for code compiled with high debug settings. * Use :ENVIRONMENT TNs for all closure variables. * Allow the debug-info dumper to store debug information for variables that were not defined in the function whose debug information is being dumped.