Nikodemus Siivola [Mon, 1 Dec 2008 20:08:52 +0000 (20:08 +0000)]
1.0.23.10: allocate code objects using allocation CODE_PAGE_FLAG
(Code and data separation 5.)
* CODE_PAGE_FLAG == BOXED_PAGE_FLAG|UNBOXED_PAGE_FLAG, which may or
may not be better then having a separate bit for it -- but seemed
easier to implement and doesn't seem too horrible.
* Define page predicates instead of manually open coding things all
over the place. Also a convenient way to make sure we catch all the
places where == needs to be changed to & when checking for boxed
pages, etc.
* trans_code_header keeps code objects on code pages.
* Take separated code pages into account when pinning: since
code-objects live on their own pages, we get most of the accuracy
benefit of the scanning by just checking for code_page_p.
Similarly, there is no need to do a full scan unless
is_lisp_pointer is true.
Nikodemus Siivola [Mon, 1 Dec 2008 20:01:39 +0000 (20:01 +0000)]
1.0.23.9: extend pa_alloc to accept a page_type_flag
(Code and data separation 4/5.)
* Define alloc() and pa_alloc() in terms of a new function,
general_alloc(), which accepts a page_type_flag.
Guts of old alloc() are now called general_alloc_internal(), called
by general_alloc() after selecting the region to use, and locking
if using a non-thread-local region.
Nikodemus Siivola [Mon, 1 Dec 2008 19:51:22 +0000 (19:51 +0000)]
1.0.23.8: factor out similar code from gc_alloc_large and gc_alloc_update_page_tables
(Code and data separation 3/5.)
* New functions: generation_alloc_start_page and set_generation_alloc_start_page.
Nikodemus Siivola [Mon, 1 Dec 2008 19:41:06 +0000 (19:41 +0000)]
1.0.23.7: introduce page type flags
(Code and data separation 2/5.)
* Use page_type_flag instead of unboxed/boxed booleans in
gc_find_freeish_pages, gc_alloc_new_region, gc_alloc_large,
gc_alloc_with_region, and gc_alloc_update_page_tables.
* Similarly use page_type_flag instead of unboxed/boxed boolean in
gc_general_alloc. Also make it static inline on GENCGC platforms,
and move to gc-internal.h (since the page_type_flag is constant in
every call by inlining we get rid of the branch to select the
region, whoopee.)
Nikodemus Siivola [Mon, 1 Dec 2008 19:32:33 +0000 (19:32 +0000)]
1.0.23.6: move code-object allocation to C side on x86 and x86-64
(Code and data separation 1/5.)
* Replace VOPs with alloc_code in alloc.c.
Richard M Kreuter [Mon, 1 Dec 2008 17:35:36 +0000 (17:35 +0000)]
1.0.23.5: Make sb-grovel's generated files not need it at runtime.
Nikodemus Siivola [Mon, 1 Dec 2008 15:44:41 +0000 (15:44 +0000)]
1.0.23.4: fix error signalling from (SETF FILL-POINTER)
* Thanks to Stas Boukarev.
Nikodemus Siivola [Mon, 1 Dec 2008 15:32:21 +0000 (15:32 +0000)]
1.0.23.3: faster generic arithmetic dispatch on x86 and x86-64
* Single branch to check if both arguments are fixnums, rerorder fixnum branch to
be the fallthru.
Nikodemus Siivola [Mon, 1 Dec 2008 15:28:35 +0000 (15:28 +0000)]
1.0.23.2: STRING->UTF8 did not handle the start argument correctly
* Thank to Luis Oliveira.
Nikodemus Siivola [Mon, 1 Dec 2008 15:25:36 +0000 (15:25 +0000)]
1.0.23.1: declaring the type of a bound variable gives :DECLARED as LEAF-WHERE-FROM
* Makes SB-CLTL2 do the right thing with local declarations. Reported
by Larry D'Anna.
Richard M Kreuter [Mon, 1 Dec 2008 15:04:33 +0000 (15:04 +0000)]
1.0.23: release, will be tagged as sbcl_1_0_23.
Nikodemus Siivola [Mon, 1 Dec 2008 07:40:08 +0000 (07:40 +0000)]
1.0.22.22: (SETF FIND-CLASSOID) to drop DEFTYPE lambda-lists and source-locations
* Going in despite the freeze, as this is a regression of sorts as of
1.0.22.8.
* Don't store early source-locations for defined types: use
WITH-SOURCE-LOCATION to ensure we convert them to proper
source-locations.
Thanks to Tobias Ritterweiler for the heads-up.
Richard M Kreuter [Mon, 1 Dec 2008 03:26:24 +0000 (03:26 +0000)]
1.0.22.21: Fix return value from DEFTYPE, broken in 1.0.22.20.
Richard M Kreuter [Sun, 30 Nov 2008 20:37:22 +0000 (20:37 +0000)]
1.0.22.20: Make a stab at having DEFTYPE types replace structure types.
* Probably a still bit wrong around the edges, but seems to work.
Richard M Kreuter [Mon, 24 Nov 2008 15:56:11 +0000 (15:56 +0000)]
1.0.22.19: Canonicalize whitespace in .asd files.
Gabor Melis [Fri, 14 Nov 2008 14:07:46 +0000 (14:07 +0000)]
1.0.22.18: select() and EAGAIN
On at least x86 linux 2.6.26 select() can return EAGAIN under load. I
guess this is what the commit message of 1.0.21.8 refers to as "what
happens in the wild" as EAGAIN is not mentioned in the select man
page.
Brian Mastenbrook [Fri, 7 Nov 2008 15:01:36 +0000 (15:01 +0000)]
1.0.22.17: fix cross-compile from CMUCL 19e
Brian Mastenbrook [Wed, 5 Nov 2008 03:46:46 +0000 (03:46 +0000)]
1.0.22.16: mkdtemp is unimplemented on Solaris
* ... so don't fail SB-POSIX tests because it's not there.
Nikodemus Siivola [Tue, 4 Nov 2008 18:56:27 +0000 (18:56 +0000)]
1.0.22.15: 16 byte align assembly routines on x86 and x86-64
* Modern processors like it that way, and x86-64 was mostly there
already.
* Also fix a stupid typo in bug 419.
Brian Mastenbrook [Mon, 3 Nov 2008 21:44:31 +0000 (21:44 +0000)]
1.0.22.14: fix a bug in PPC alien function calls
* On SVR4 ABI systems (Linux and NetBSD), fix a bogus situation where
the proper alignment would not be set when a SAP is passed before a
long long argument.
Nikodemus Siivola [Mon, 3 Nov 2008 18:09:38 +0000 (18:09 +0000)]
1.0.22.13: fixed bug 426: nested inline expansion failure
* In RECOGNIZE-KNOWN-CALL, if an inline function has already been
converted in the component, replace the REF-LEAF with the
functional.
* Test cases.
Nikodemus Siivola [Mon, 3 Nov 2008 17:23:35 +0000 (17:23 +0000)]
1.0.22.12: fix DEFTYPE regression revealed by ansi tests
* DEFTYPE body can be empty.
Nikodemus Siivola [Mon, 3 Nov 2008 15:11:53 +0000 (15:11 +0000)]
1.0.22.11: name *pcl-lock*
* For your debugging pleasure.
Nikodemus Siivola [Mon, 3 Nov 2008 14:33:27 +0000 (14:33 +0000)]
1.0.22.10: detect infinite recursion during wrapper validation
* Patch by Attila Lendvai. ...still hoping for a test-case, so this
could be fixed properly.
Nikodemus Siivola [Mon, 3 Nov 2008 14:19:33 +0000 (14:19 +0000)]
1.0.22.9: SB-INTROSPECT regression from 1.0.22.8
* Don't signal an error if no TYPE exists when FIND-DEFINITION-SOURCES-BY-NAME
is called with :TYPE as the second argument.
Nikodemus Siivola [Mon, 3 Nov 2008 13:34:32 +0000 (13:34 +0000)]
1.0.22.8: DEFTYPE tweaking
* If the expansion is a quoted contant, T, or NIL use a closure as
the expander instead of compiling a separate expander.
* When using a closure as above, save the source location separately.
* Use the space saved to the store the DEFTYPE lmabda-list, and make
DESCRIBE report it.
Richard M Kreuter [Fri, 31 Oct 2008 20:47:40 +0000 (20:47 +0000)]
1.0.22.7: Update to ASDF 1.130
* Includes fix for circular dependency detection.
Nikodemus Siivola [Fri, 31 Oct 2008 18:12:44 +0000 (18:12 +0000)]
1.0.22.6: some ANSI-STREAM cleanups & micro-optimization
* Make WRITE-LINE dispatch on the type of the stream only once -- not
for both writing the string and the newline separately.
* ANSI-STREAM-WRITE-LINE checks the START and END parameters, so
callers of %WRITE-LINE don't need to.
* Remove some redundant type checks from WRITE-LINE and WRITE-STRING
code paths.
* SB-IMPL::INDENTING-STREAM was unused, delete it. (Note: update your
Slime!)
Nikodemus Siivola [Fri, 31 Oct 2008 16:57:36 +0000 (16:57 +0000)]
1.0.22.5: teach DISASSEMBLE about %METHOD-FUNCTIONs
* Disassemble both the %METHOD-FUNCTION object itself, and the
associated fast-function.
* Clarify the disassembler output slightly by prepending it with
; disassembly for <function name>.
Nikodemus Siivola [Fri, 31 Oct 2008 12:52:46 +0000 (12:52 +0000)]
1.0.22.4: symbol macros and type declarations in PCL
* When PCL walks the method body, doing permutation vector
optimizations, take into account type declarations for symbol
macros, to get the benefit of the declaration in
(WITH-SLOTS (X) OBJECT ... (DECLARE (FIXNUM X)) ... (FOO X) ...)
which currently happens only in DEFUN, where permuation vector
optimizations do not occur.
Nikodemus Siivola [Fri, 31 Oct 2008 12:46:10 +0000 (12:46 +0000)]
1.0.22.3: use EQ instead of EQL to check *GC-EPOCH*
Nikodemus Siivola [Fri, 31 Oct 2008 12:43:44 +0000 (12:43 +0000)]
1.0.22.2: optimize output under *PRINT-PRETTY*
* Don't construct the pretty stream when it is not needed.
Gabor Melis [Fri, 31 Oct 2008 09:56:15 +0000 (09:56 +0000)]
1.0.22.1: run-sbcl.sh improvements
- make run-sbcl.sh executable
- don't require it to be started from the top of the source dir
... so that "~/sbcl/run-sbcl.sh" is a drop in replacement for "sbcl".
Richard M Kreuter [Thu, 30 Oct 2008 21:58:46 +0000 (21:58 +0000)]
1.0.22: release, will be tagged sbcl_1_0_22.
Nikodemus Siivola [Thu, 30 Oct 2008 14:47:42 +0000 (14:47 +0000)]
1.0.21.38: lisp-side %ASIN, %ACOS, %SINH, %TANH, and %HYPOT
* For Win32 build robustness: on some toolchains asin &co were not
getting linked to the runtime as we'd like to.
Caveat: %HYPOT is stupid about under/overflows unlike hypot().
Brian Mastenbrook [Wed, 29 Oct 2008 16:09:27 +0000 (16:09 +0000)]
1.0.21.37:
Use /**/ instead of ## to concatenate symbols on PPC/Darwin
Richard M Kreuter [Tue, 28 Oct 2008 21:49:41 +0000 (21:49 +0000)]
1.0.21.36: Fix a bug in one path through RUN-PROGRAM.
* Ensure that the template buffer for sb_mkstemp is null-terminated.
Nikodemus Siivola [Mon, 27 Oct 2008 16:01:09 +0000 (16:01 +0000)]
1.0.21.35: fix build / SAVE-LISP-AND-DIE on non-GENCGC platforms
* Move back SAVE outside the WHEN in SAVE-LISP-AND-DIE. Thanks to
Bruce O'Neel.
Gabor Melis [Tue, 21 Oct 2008 14:41:59 +0000 (14:41 +0000)]
1.0.21.34: fix build on x86/x86-64 lutex platforms
Gabor Melis [Mon, 20 Oct 2008 12:05:21 +0000 (12:05 +0000)]
1.0.21.33: fix lack of null termination bug in mk{d,s}temp
Gabor Melis [Mon, 20 Oct 2008 12:00:51 +0000 (12:00 +0000)]
1.0.21.32: hack around truncated backtraces with lost frames
On :C-STACK-IS-THE-CONTROL-STACK platforms when calling an alien
function stash the current frame pointer and return address away so
that no matter how the alien stack frames are laid out the debugger
can find its way back to lisp land.
Nikodemus Siivola [Sat, 18 Oct 2008 15:26:06 +0000 (15:26 +0000)]
1.0.21.31: fix bad PROGV and RESTRICT-COMPILER-POLICY interaction
* Reported by Matthias Andreas Benkard Matthias Andreas Benkard.
* Patch by Juho Snellman.
Nikodemus Siivola [Sat, 18 Oct 2008 14:40:31 +0000 (14:40 +0000)]
1.0.21.30: more files in .gitignore
* Patch by Michael Weber.
Nikodemus Siivola [Sat, 18 Oct 2008 14:11:19 +0000 (14:11 +0000)]
1.0.21.29: handle alien record type redefinitions (bug 431)
* Make PARSE-ALIEN-RECORD-FIELD return the parsed values instead of
frobbing the type object.
* In PARSE-ALIEN-RECORD-TYPE use that to parse the new fields so that
we can compare them to the old ones -- signal a continuable error
if there is a mismatch.
Nikodemus Siivola [Sat, 18 Oct 2008 11:58:43 +0000 (11:58 +0000)]
1.0.21.28: implement UNLOAD-SHARED-OBJECT
* Mostly for CFFI.
* Add a missing call to TRANSLATE-LOGICAL-PATHNAME to
TRY-REOPEN-SHARED-OBJECT.
Nikodemus Siivola [Sat, 18 Oct 2008 10:27:58 +0000 (10:27 +0000)]
1.0.21.27: no more &OPTIONAL-DISPATCH debug names
* IR1-CONVERT-HAIRY-LAMBDA used to give optional dispatch entry points
`(&OPTIONAL-DISPATCH ,(OR <DEBUG-NAME> <SOURCE-NAME>)) as debug-name.
Don't do that -- just use the provided DEBUG-NAME directly (it's
NIL in the cases we most care about, leaving the functional with
just a source-name). This fixes two issues:
1. Functions with non-required arguments didn't get the derived
type information saved in the infodb. FINALIZE-XEP-DEFINITION
didn't set the INFO entries properly because
(eq (leaf-source-name leaf) (functional-debug-name leaf))
was false -- it's true only if there is no separate debug-name.
2. Functions with non-required arguments printed as
#<FUNCTION (SB-C::&OPTIONAL-DISPATCH READ-LINE) {
10AD8345}>
because non-NIL debug-name is preferred over the source-name.
* Test-cases.
Nikodemus Siivola [Sat, 18 Oct 2008 08:22:16 +0000 (08:22 +0000)]
1.0.21.26: bullet-proof (?) use of LOAD-SHARED-OBJECT in tests
* Previously LOAD-SHARED-OBJECT looked for the shared object first
in the current directory, and if it existed there, it passed the
absolute pathname to dlopen().
New version passes the native namestring of the designated pathname,
absolute or relative -- which leads to dlopen() on some platforms not
looking in the current directory unless "." is in LD_LIBRARY_PATH.
So add TRUENAME calls to the test-suite when the .so lives there.
* Mention the change of semantics in NEWS.
* Delete trailing whitespace.
Nikodemus Siivola [Fri, 17 Oct 2008 21:36:34 +0000 (21:36 +0000)]
1.0.21.25: LOAD-SHARED-OBJECT and logical pathnames
* Unlike UNIX-NAMESTRING, NATIVE-NAMESTRING doesn't deal with logical
pathnames,
Nikodemus Siivola [Fri, 17 Oct 2008 12:49:35 +0000 (12:49 +0000)]
1.0.21.24: saving runtime options in executables
* SAVE-LISP-AND-DIE argument :SAVE-RUNTIME-OPTIONS causes the values
of --dynamic-space-size and --control-stack-size used in the
current invocation of SBCL to be saved in the executable core, which
will then reuse them instead of doing normal runtime option processing.
* Thanks to Zach Beane.
Nikodemus Siivola [Fri, 17 Oct 2008 12:34:36 +0000 (12:34 +0000)]
1.0.21.23: fix external-format.impure.lisp
* Misnamed variable.
Nikodemus Siivola [Fri, 17 Oct 2008 11:57:32 +0000 (11:57 +0000)]
1.0.21.22: COMPILE-FILE and toplevel symbols
* The fopcompiler elided unused symbol references completely: warn
and dump the appropriate SYMBOL-VALUE form even if the value is
unused is the variable is undefined.
* This reveals a missing start of a block comment in
src/pcl/dfun.lisp -- fix it. Did you realize that ||# reads as a
symbol? I didn't. One strike against using the "emacs friendly"
#||...||# instead of #|...|#.
* Also fix on #-sb-unicode issue in the test-suite.
Nikodemus Siivola [Fri, 17 Oct 2008 10:43:25 +0000 (10:43 +0000)]
1.0.21.21: manpage "improvements"
* Describe what SBCL is in terms of its capabilities, not ancestry.
(A little hype never hurts...)
* Join the DESCRIPTION and LICENCING sections to save vertical space.
* Simplify the language in RUNNING SBCL, and stick in a pointer to
SAVE-LISP-AND-DIE with reference to standalone executables.
* Move the COMMAND LINE SYNTAX section waaay up, so that one doesn't
have to scroll several screenfulls to get to it.
* Move the DIFFERENCES FROM CMU CL waaay down, and delete the list of
deleted extensions.
* Remove the FUD about CLOS efficiency from known bugs.
Nikodemus Siivola [Fri, 17 Oct 2008 10:37:42 +0000 (10:37 +0000)]
1.0.21.20: package qualify LOAD-SHARED-OBJECT in SB-POSIX on Win32
* Patch by Pedro Kroger.
(Also bump version.lisp-expr by two...)
Richard M Kreuter [Thu, 16 Oct 2008 21:28:46 +0000 (21:28 +0000)]
1.0.21.19: Eagerly find a stream's external-format when a coding-error occurs.
* Patch and test contributed by Zach Beane.
Nikodemus Siivola [Sat, 11 Oct 2008 16:45:08 +0000 (16:45 +0000)]
1.0.21.18: delete unused argument introduced by .17
* Leftover from early life of the patch, noticed by Kevin "Hawkeye"
Reid.
Nikodemus Siivola [Sat, 11 Oct 2008 13:34:44 +0000 (13:34 +0000)]
1.0.21.17: --script commandline argument
* Works as both runtime and toplevel argument (which may imply the
separation between the two is suspect?):
* As a runtime argument it implies --noinform and the end of runtime
arguments.
* As a toplevel argument it implies --disable-debugger and the end of
toplevel arguments. It additionally inhibits sysinit and userinit
processing unless an explicit --userinit or --sysinit option is
given before it.
Then SBCL loads the specified specified file with :VERBOSE NIL and
:PRINT NIL, discarding the first line if it start with #!.
When the script file has been processed, SBCL exits without
entering the REPL.
* Documentation & a test.
* Based loosely on an earlier patch by Kevin Reid.
Nikodemus Siivola [Sat, 11 Oct 2008 12:42:20 +0000 (12:42 +0000)]
1.0.21.16: document the earlier change to --disable-debugger handling
Nikodemus Siivola [Thu, 9 Oct 2008 20:48:24 +0000 (20:48 +0000)]
1.0.21.15: LOAD-SHARED-OBJECT :DONT-SAVE and related
* Add &key :DONT-SAVE to control interaction with SAVE-LISP-AND-DIE.
* Better documentation, including mention of LD_LIBRARY_PATH.
* Refactor the OAOOM mess between win32-foreign-load.lisp and
foreign-load.lisp: add unix-foreign-load.lisp, and move the shared
code to foreign-load.lisp.
* The "try another pathname" restart in TRY-RELOAD-SHARED-OBJECT
changed the pathname but did not reload. Fix that.
Nikodemus Siivola [Thu, 9 Oct 2008 10:41:24 +0000 (10:41 +0000)]
1.0.21.14: fix CHECK-FASL-HEADER buglet
* Problems with signaling and reporting INVALID-FASL-HEADER: it's
:BYTE-NR 0, not :FIRST-BYTE t these days, and expected and actual
bytes wre reversed in error output.
Nikodemus Siivola [Thu, 9 Oct 2008 10:18:51 +0000 (10:18 +0000)]
1.0.21.13: fix NATIVE-NAMESTRING on Windows
* Support for pathnames with directory NIL was broken.
Brian Mastenbrook [Thu, 9 Oct 2008 00:36:08 +0000 (00:36 +0000)]
1.0.21.12: build OS X 10.4-compatible binaries on OS X 10.5
* Set minimum compatibility version in compiler options.
* Refactor existing 10.5 support so that when 10.4 support is
deprecated and we're building on 10.6+, everything will continue to
work.
Nikodemus Siivola [Tue, 7 Oct 2008 11:46:47 +0000 (11:46 +0000)]
1.0.21.11: record bug 431
* Random pick from my sbcl-devel backlog.
Nikodemus Siivola [Tue, 7 Oct 2008 08:28:36 +0000 (08:28 +0000)]
1.0.21.10: DEFINE-COMPILER-MACRO and destructuring lambda-lists
* Were broken -- fix by using the special FUNCALL related magic is
only for the outermost list, not sublists. Reported by Willem
Broekema.
* Adjust one of the existing tests to check for this.
* Record bug 430: nested stack allocation does not work for structures.
Nikodemus Siivola [Mon, 6 Oct 2008 11:27:06 +0000 (11:27 +0000)]
1.0.21.9: refactor toplevel option processing somewhat
* --disable-debuger takes effect before init files are processed.
* Don't resignal errors in annotated form: this loses restarts originally
established with (RESTART-CASE (ERROR ...) ...).
* Make the restarts we provide more explicit about the cause of the
error, including the exact commandline option (or initialization
file name and kind) in the restart text.
* Mark (THROW NO-SUCH-TAG) in debug.impure.lisp as expected to fail
on x86/Darwin -- though this patch is obviously unrelated,
something jiggers things just enough for the backtrace to go
astray.
* Based on patch by Ariel Badichi.
Nikodemus Siivola [Mon, 6 Oct 2008 09:34:55 +0000 (09:34 +0000)]
1.0.21.8: SERVE-EVENT error handling
* HANDLER-DESCRIPTORS-ERROR should not signal an error if there are
no bad descriptors.
* Check for EBADF and EINTR from select() explicitly, and inform the
users of any other issues via SIMPLE-PERROR + CONTINUE restart. (We
may be able to handle some others automatically as well, but let's
figure out what occurs in the wild and why first.)
Nikodemus Siivola [Mon, 6 Oct 2008 09:16:47 +0000 (09:16 +0000)]
1.0.21.7: fix argument quoting in run-sbcl.sh
* Now things like
sh run-sbcl.sh --eval '(load "foo.lisp")'
should work correctly.
Nikodemus Siivola [Mon, 6 Oct 2008 09:14:27 +0000 (09:14 +0000)]
1.0.21.6: muffle compiler notes from EVAL and function generator construction
* Just add (DECLARE (MUFFLE-CONDITIONS COMPILER-NOTE)) to the lambdas
we cons up: in case of EVAL the notes are distractive and seem
pointless, and in case of generators the user is definitely not
interested.
* Adjust SB-CLTL2 tests slightly to account for possible pre-existing
MUFFLE-CONDITIONS declarations, and fix usage of SPECIAL-BINDINGS.
Nikodemus Siivola [Sun, 5 Oct 2008 11:57:55 +0000 (11:57 +0000)]
1.0.21.5: fix WITH-PACKAGE-ITERATOR error signaling
* Patch by Tobias C. Rittweiler / Ariel Badichi.
Nikodemus Siivola [Sun, 5 Oct 2008 11:30:01 +0000 (11:30 +0000)]
1.0.21.4: PUSHNEW arglist beautifcation
* Patch by Tobias C. Rittweiler.
Nikodemus Siivola [Sun, 5 Oct 2008 09:53:31 +0000 (09:53 +0000)]
1.0.21.3: CIRCLE-SUBST did not treat raw structure slots correctly
* Reported by Cedric St-Jean on sbcl-devel.
Nikodemus Siivola [Fri, 3 Oct 2008 18:28:48 +0000 (18:28 +0000)]
1.0.21.2: ADJUST-ARRAY should not make multidimensional arrays have fill-pointers
* ADJUST-ARRAY used to give multidimensional arrays a bogus
fill-pointer unless :INITIAL-CONTENTS or :DISPLACED-TO were given.
Reported by Cedric St-Jean on sbcl-devel.
Christophe Rhodes [Fri, 3 Oct 2008 12:21:09 +0000 (12:21 +0000)]
1.0.21.1: address TYPE-WARNING in CLOS allocator for funcallable structures
... parallel %make-funcallable-structure-allocator;
... make FUNCTION-classoid-subclasses into CLOS classes in FIXUP
... also make !DEFSTRUCT-W-A-M respect *DEFSTRUCT-HOOKS* just
in case.
... test.
Richard M Kreuter [Thu, 2 Oct 2008 13:40:42 +0000 (13:40 +0000)]
1.0.21: release, will be tagged sbcl_1_0_21.
Richard M Kreuter [Thu, 2 Oct 2008 03:16:44 +0000 (03:16 +0000)]
1.0.20.34: Fix a minor bug in TIME.
* Don't try to print cycle counts when the port doesn't support it.
Nikodemus Siivola [Tue, 30 Sep 2008 07:56:57 +0000 (07:56 +0000)]
1.0.20.33: two buglets, LOG and TIME
* Unbreak (LOG DOUBLE INTEGER).
* LAMBDAS-CONVERTED / LAMBDA-CONVERSIONS confusion in PRINT-TIME.
(patch by Erik Marsden)
Richard M Kreuter [Sun, 28 Sep 2008 14:20:36 +0000 (14:20 +0000)]
1.0.20.32: Fix some bugs in GF type tracking.
Nikodemus Siivola [Fri, 26 Sep 2008 16:24:01 +0000 (16:24 +0000)]
1.0.20.31: tweaking LOG
* In case of (LOG INTEGER DOUBLE) and (LOG DOUBLE INTEGER), don't use
intermediate single precision values.
* Fix unoptimized (LOG X 0.0d0) => 0.0d0, and (LOG DOUBLE 0) => 0.0d0
(both were 0.0f0).
Nikodemus Siivola [Wed, 24 Sep 2008 22:35:01 +0000 (22:35 +0000)]
1.0.20.30: micro-optimize FILL-POINTER a bit
* Since it's inlined, move the error call to a separate function
(without keyword arguments).
* Since ARRAY-HEADER-P and %ARRAY-HAS-FILL-POINTER-P will be true
only if the object is a vector with a fill pointer, the DECLARE is
pointless.
* Similarly for %SET-FILL-POINTER.
Nikodemus Siivola [Wed, 24 Sep 2008 14:55:13 +0000 (14:55 +0000)]
1.0.20.29: small FIND fix & win32 build fix
* FIND on lists should not call the KEY function outside the
specified subsequence.
* Hopefully fix Win32 build: #+/#- -> #!+/#!- changes to pacify
SHE-READER.
* Also advice against editing version.lisp-expr in Git, and show the
branch-version.lisp-expr hack in GIT-FOR-SBCL-HACKERS.txt.
Richard M Kreuter [Tue, 23 Sep 2008 22:06:03 +0000 (22:06 +0000)]
1.0.20.28: Fewer STYLE-WARNINGs for gf calls.
* Use the union of a gf's defined methods' keys in the info db, so
that the compiler won't warn about unrecognized keywords supplied by
methods (but will catch typos and whatnot).
Gabor Melis [Tue, 23 Sep 2008 21:52:57 +0000 (21:52 +0000)]
1.0.20.27: fixed bug 415
* (MAKE-ARRAY (1- ARRAY-DIMENSION-LIMIT)) does not cause GC invariant loss.
ARRAY-DIMENSION-LIMIT was lowered by two to leave space for the
array header.
* logged FORMAT bug
Nikodemus Siivola [Tue, 23 Sep 2008 21:48:25 +0000 (21:48 +0000)]
1.0.20.26: nicer ONCE-ONLY expansion
* Name the variables actually visible in the final expansion sensibly.
Richard M Kreuter [Tue, 23 Sep 2008 20:05:44 +0000 (20:05 +0000)]
1.0.20.25: Produce a loadable FASL when compiling an incompatible DEFSTRUCT.
* Add some tests to see that redefining a STRUCTURE-CLASS works as one
might expect, and that compiling a file whose loading redefines a
STRUCTURE-CLASS works, too.
* There are some nasty intermediate states having to do with
subclasses defined in separate files (some are described in the
tests), but that's not actually new.
Gabor Melis [Tue, 23 Sep 2008 16:07:39 +0000 (16:07 +0000)]
1.0.20.24: disable another hanging timer test
Nikodemus Siivola [Mon, 22 Sep 2008 22:57:22 +0000 (22:57 +0000)]
1.0.20.23: get rid of IGNORE-ERRORS in SB-INTROSPECT
* Pass ERRORP NIL to FIND-METHOD for *BREAK-ON-SIGNALS* friendliness.
Gabor Melis [Mon, 22 Sep 2008 19:10:01 +0000 (19:10 +0000)]
1.0.20.22: record bug 429
Gabor Melis [Mon, 22 Sep 2008 18:41:43 +0000 (18:41 +0000)]
1.0.20.21: how to miss version.lisp-expr
Gabor Melis [Mon, 22 Sep 2008 18:33:07 +0000 (18:33 +0000)]
1.0.20.20: fix gencgc on 32 bit platforms with 2gb< heap
- pepper unsigned long around
- mixed signed/unsigned is ok as long as there are only + and -
bitwise logical operations on them, care must be taken for /, <, <=.
Gabor Melis [Mon, 22 Sep 2008 14:02:42 +0000 (14:02 +0000)]
1.0.20.20: fix gencgc on 32 bit platforms with 2gb< heap
- pepper unsigned long around
- mixed signed/unsigned is ok as long as there are only + and -
bitwise logical operations on them, care must be taken for /, <, <=.
Nikodemus Siivola [Mon, 22 Sep 2008 14:00:34 +0000 (14:00 +0000)]
1.0.20.18: fix sign confusion in reported memory fault addresses
* ...the mechanism sucks as much as ever, but at least the reported
address will make sense for high addresses as well.
Gabor Melis [Mon, 22 Sep 2008 13:56:29 +0000 (13:56 +0000)]
1.0.20.19: gencgc: rename first_object_offset
... to region_start_offset and flip the sign.
Gabor Melis [Mon, 22 Sep 2008 13:55:09 +0000 (13:55 +0000)]
1.0.20.18: minor gencgc cleanups
- removed unused alloc_base_string_list function
- removed superfluous declarations
- less casts
- more respect for the the 80 char limit
Nikodemus Siivola [Sat, 20 Sep 2008 03:54:54 +0000 (03:54 +0000)]
1.0.20.17: replace cut-and-paste duplication of ASSEMBLE with a macrolet
* Slightly more maintainable...
Nikodemus Siivola [Sat, 20 Sep 2008 03:09:58 +0000 (03:09 +0000)]
1.0.20.16: make LOCK and FS prefixes part of the affected instruction
* Disassembler still shows them as a separate instructions, but
in assembler the prefixes become postfixes to the instructions they
modify: (INST MOV X Y :FS), etc.
* Not only does this reduce the amount of conditionalization, but
making prefixes part of the instruction they modify seems necessary
if we ever want to turn on the instruction scheduler on x86oids,
and is probably needed for a peephole optimizer as well.
* Also fix x86-64 build: missed one ALIGN to EMIT-ALIGNMENT renaming.
Nikodemus Siivola [Fri, 19 Sep 2008 20:56:21 +0000 (20:56 +0000)]
1.0.20.15: rename SB-ASSEM:ALIGN to EMIT-ALIGNMENT
* ...and EMIT-ALIGNMENT to %EMIT-ALIGNMENT, as per FIXME.
* Also a missing SEGMENT-NAME -> SEGMENT-TYPE change from 1.0.20.13.
Nikodemus Siivola [Fri, 19 Sep 2008 20:22:17 +0000 (20:22 +0000)]
1.0.20.14: align loops on x86-64
* Intel recommends 16 byte alignment for branch target, and since
code objects are 16 byte aligned on x86-64, we can get it.
Nikodemus Siivola [Fri, 19 Sep 2008 20:06:53 +0000 (20:06 +0000)]
1.0.20.13: don't align elsewhere segments on x86 and x86-86
* There doesn't seem to be any need to do it, and the alignment NOP's are
a waste of space.
* Even though currently only elsewhere segments appear as the second
argument to APPEND-SEGMENT, make sure we omit alignment only from
elsewhere segments by changing SEGMENT-NAME to SEGMENT-TYPE (either
:REGULAR or :ELSEWHERE) and checking it in APPEND-SEGMENT.
Nikodemus Siivola [Fri, 19 Sep 2008 19:06:01 +0000 (19:06 +0000)]
1.0.20.12: :CACHED-CONSTANT TNs don't exist
* Remove FIXMEs asking about them, and other spurious references.
Nikodemus Siivola [Fri, 19 Sep 2008 19:01:19 +0000 (19:01 +0000)]
1.0.20.11: CALL-WITH-TIMING & PRINT-TIME
* Split %TIME into PRINT-TIME and CALL-WITH-TIMING, export the latter
from SB-EXT -- wanting access to the numbers collected is a
perfectly reasonable thing.
* Make TIME print the information collected even if the form unwinds.
Nikodemus Siivola [Fri, 19 Sep 2008 14:55:52 +0000 (14:55 +0000)]
1.0.20.10: semaphore and condition variable fixes
* Keep track of waiters on semaphores, so we know when a wakeup is
needed.
* Interrupt proof semaphores and condition variables.
* Check that the current thread owns the mutex in CONDITION-WAIT.