sbcl.git
13 years ago1.0.47.1: fix longstanding bug in os_get_runtime_executable_path on darwin
Cyrus Harmon [Mon, 28 Mar 2011 02:42:09 +0000 (02:42 +0000)]
1.0.47.1: fix longstanding bug in os_get_runtime_executable_path on darwin

 * in os_get_runtime_executable_path, we were wrongly assuming that
   size would be set to the actual size of the string on a successful
   call to NSGetExecutablePath. This isn't the case and we were
   setting path[1025] = '\0'; causing things to break with XCode 4's
   CLANG compiler.

 * While we're at it, we should check to make that runtime_path is not
   NULL before we free it, as there is a code path where we might end
   up trying to free runtime_path when it was NULL but
   saved_runtime_path was non-NULL.

13 years ago1.0.47: Will be tagged as 1_0.47
Juho Snellman [Sun, 27 Mar 2011 12:46:43 +0000 (12:46 +0000)]
1.0.47: Will be tagged as 1_0.47

13 years ago1.0.46.44: room: Fix map-stack-references for stack-grows-upward systems.
Alastair Bridgewater [Thu, 24 Mar 2011 19:33:04 +0000 (19:33 +0000)]
1.0.46.44: room: Fix map-stack-references for stack-grows-upward systems.

  * SAP+ is (function (system-area-pointer integer) (values
system-area-pointer)).

  * SAP- is (function (system-area-pointer system-area-pointer) (values
integer)).

  * When negating the delta in a SAP+ operation, don't use SAP-.
Instead, negate the offset.  Otherwise, you get a WARNING for passing an
integer where a system-area-pointer is expected.

13 years ago1.0.46.43: fix sb-introspect on non-threaded builds
Cyrus Harmon [Thu, 24 Mar 2011 04:45:55 +0000 (04:45 +0000)]
1.0.46.43: fix sb-introspect on non-threaded builds

 * put #+sb-thread around calls inspecting sb-thread::%thread-local-references

13 years ago1.0.46.42: more on threads in SB-INTROSPECT:MAP-ROOT
Nikodemus Siivola [Tue, 22 Mar 2011 17:00:17 +0000 (17:00 +0000)]
1.0.46.42: more on threads in SB-INTROSPECT:MAP-ROOT

 * Thread local values: filter out invalid values correctly (oops),
   also change SB-THREAD::%THREAD-LOCAL-REFERENCES to work on current
   thread only.

 * References from stack: SB-VM::MAP-STACK-REFERENCES walks the
   current thread stack looking for things that look like references
   to heap objects.

 * MAP-ROOT interrupts the thread it wants to check out, unless it is
   the current one -- a bit tacky, but seems preferable to stopping
   the world.

13 years ago1.0.46.41: double-check simple functions in looks_like_valid_lisp_pointer_p
Nikodemus Siivola [Tue, 22 Mar 2011 16:49:33 +0000 (16:49 +0000)]
1.0.46.41: double-check simple functions in looks_like_valid_lisp_pointer_p

 * A function contained in a code object is always a simple function.
   Make sure that we actually have one, instead of a random location
   in the code object.

13 years ago1.0.46.40: more comprehensive MAP-ROOT
Nikodemus Siivola [Sun, 20 Mar 2011 18:37:55 +0000 (18:37 +0000)]
1.0.46.40: more comprehensive MAP-ROOT

 * EXT defaults to T and provides:
   ** EQL specializers on the object
   ** symbol values in other threads
   ** MACRO-FUNCTION on symbols

 * Threads map to thread-local values as well, courtesy of
   SB-THREAD::%THREAD-LOCAL-VALUES.

 * Don't report multiple references to the same object.

13 years agoget rid of *EQL-SPECIALIZER-TABLE-LOCK*
Nikodemus Siivola [Sun, 20 Mar 2011 18:36:01 +0000 (18:36 +0000)]
get rid of *EQL-SPECIALIZER-TABLE-LOCK*

  Use WITH-LOCKED-HASH-TABLE instead.

13 years ago1.0.46.38: tad more information PACKAGE-LOCK-VIOLATION conditions
Nikodemus Siivola [Sat, 19 Mar 2011 14:33:16 +0000 (14:33 +0000)]
1.0.46.38: tad more information PACKAGE-LOCK-VIOLATION conditions

 * Add the current *PACKAGE* when the error is signaled to the
   condition.

 * Now that SIMPLE-CONDITION :FORMAT-CONTROL defaults to NIL,
   PACKAGE-LOCK-VIOLATION can inherit from SIMPLE-CONDITION instead of
   definining its own FORMAT-CONTROL and FORMAT-ARGUMENTS slots.

13 years ago1.0.46.37: SIMPLE-CONDITION slots are initialized with NIL if not supplied
Nikodemus Siivola [Sat, 19 Mar 2011 14:31:29 +0000 (14:31 +0000)]
1.0.46.37: SIMPLE-CONDITION slots are initialized with NIL if not supplied

  So says CLHS.

  When there is no format control and *PRINT-ESCAPE* is false,
  signal an error.

13 years ago1.0.46.36: par for course, committed the wrong version of MAP-ROOT as 1.0.46.35
Nikodemus Siivola [Tue, 15 Mar 2011 15:11:53 +0000 (15:11 +0000)]
1.0.46.36: par for course, committed the wrong version of MAP-ROOT as 1.0.46.35

 This one actually works instead of having package errors.

13 years ago1.0.46.35: first cut at MAP-ROOT
Nikodemus Siivola [Tue, 15 Mar 2011 14:54:47 +0000 (14:54 +0000)]
1.0.46.35: first cut at MAP-ROOT

 Walking references from an arbitrary lisp object.

13 years ago1.0.46.34: Fix tests for builds without sb-eval.
Stas Boukarev [Sat, 12 Mar 2011 21:29:37 +0000 (21:29 +0000)]
1.0.46.34: Fix tests for builds without sb-eval.

Add #+sb-evel to cases which bind sb-ext:*evaluator-mode* to :interpret.

13 years ago1.0.46.33: constraint: Don't substitute REFs when replacement LEAF is not visible.
Alastair Bridgewater [Fri, 11 Mar 2011 15:35:30 +0000 (15:35 +0000)]
1.0.46.33: constraint: Don't substitute REFs when replacement LEAF is not visible.

  * Bug reported by Frank Duncan, additional diagnosis by Heka Treep,
patch review and revision by Nikodemus Siivola.

  * Introduce LEAF-VISIBLE-FROM-NODE-P, which verifies that the LEAF
about to be substituted is visible from the NODE to be modified.

  * Add LEAF-VISIBLE-FROM-NODE-P as an additional precondition to
calling CHANGE-REF-LEAF, which does the actual substitution.

  * And, for good measure, added a test to the test suite.

13 years ago1.0.46.32: export sb-kernel::redefinition-with-defmacro
cracauer [Tue, 8 Mar 2011 23:21:14 +0000 (23:21 +0000)]
1.0.46.32: export sb-kernel::redefinition-with-defmacro

  Export sb-kernel::redefinition-with-defmacro the same way we already
  export sb-kernel:redefinition-with-defun and it's CLOS friends.

13 years ago1.0.46.31: clean up mach port deallocation on x86
Cyrus Harmon [Tue, 8 Mar 2011 15:33:44 +0000 (15:33 +0000)]
1.0.46.31: clean up mach port deallocation on x86

 * don't deallocate the exception_port port and check the return
   values from deallocating the thread and task ports

13 years ago1.0.46.30: don't deallocate exception_port and check return values from mach_port_dea...
Cyrus Harmon [Tue, 8 Mar 2011 02:56:27 +0000 (02:56 +0000)]
1.0.46.30: don't deallocate exception_port and check return values from mach_port_deallocate calls

 * mach_port_deallocate of the exception_port was returning
   KERN_INVALID_RIGHT; assume this call was bogus and remove it.  So
   now we can be more strict about checking the return values of the
   other deallocate calls.

13 years ago1.0.46.29: fix run-compiler.sh for darwin/x86
Cyrus Harmon [Tue, 8 Mar 2011 01:44:41 +0000 (01:44 +0000)]
1.0.46.29: fix run-compiler.sh for darwin/x86

 * default arch is now x86_64, so check for x86 and use arch i386 if
   appropriate

13 years ago1.0.46.28: fix mach port leakage on x86 too
Cyrus Harmon [Tue, 8 Mar 2011 01:41:25 +0000 (01:41 +0000)]
1.0.46.28: fix mach port leakage on x86 too

 * call mach_port_deallocate on exception_port, thread and task at the
   end of x86 version of catch_exception_raise

13 years ago1.0.46.27: fix mach port leakage
Cyrus Harmon [Tue, 8 Mar 2011 00:55:10 +0000 (00:55 +0000)]
1.0.46.27: fix mach port leakage

 * store mach_thread_self() results in current_mach_thread and
   deallocate the mach_port after thread_set_exception_ports call

 * fix error messages in lose strings in mach_thread_init

 * catch_exception_raise now calls mach_port_deallocate for the
   exception_port, the thread and the task

 * These changes seem to get rid of most of the leaking port
   rights. However, MachPortDump shows when running the
   threads.impure.lisp tests, there are still a number of ports that
   stick around with a single send right.

13 years ago1.0.46.26: mach-exception-handler improvement: current_mach_task
Cyrus Harmon [Mon, 7 Mar 2011 23:41:24 +0000 (23:41 +0000)]
1.0.46.26: mach-exception-handler improvement: current_mach_task

 * define current_mach_task variable, squirrel away the value of
   mach_task_self there and use that instead of calling mach_task_self
   so that we don't leak send rights all over the place

13 years ago1.0.46.25: consolidate common code from x86-64-darwin-os.c and x86-darwin-os.c into...
Cyrus Harmon [Mon, 7 Mar 2011 23:14:01 +0000 (23:14 +0000)]
1.0.46.25: consolidate common code from x86-64-darwin-os.c and x86-darwin-os.c into darwin-os.c

 * lots of code in x86-64-darwin-os.c and x86-darwin-os.c was
   duplicated. consolidated into darwin-os.c and wrapped with
   appropriate #ifdefs.

 * darwin-os.c now #includes "thread.h" but not "bsd-os.h"

13 years ago1.0.46.24: fix MAKE-INSTANCE regression from 1.0.45.19
Nikodemus Siivola [Fri, 4 Mar 2011 08:16:48 +0000 (08:16 +0000)]
1.0.46.24: fix MAKE-INSTANCE regression from 1.0.45.19

 lp#728650

 We cannot use an optimized CTOR if there is an :AROUND method potentially
 supplying initialization arguments via CALL-NEXT-METHOD.

 So:

 * Add SIMPLE-NEXT-METHOD-CALL slot to STANDARD-METHOD: initialize it to T iff
   the method doesn't use CALL-NEXT-METHOD at all, or only as
   (CALL-NEXT-METHOD).

 * Allow an optimized CTOR in the presence of INITIALIZE-INSTANCE :AROUND
   methods iff those methods only contain simple forms of CALL-NEXT-METHOD.

13 years ago1.0.46.23: fix an actual random bug in mkstemp test
jimwise [Thu, 3 Mar 2011 20:01:37 +0000 (20:01 +0000)]
1.0.46.23: fix an actual random bug in mkstemp test

 On some platforms (including Solaris, FWIW), the character "."  is one of
 the characters mkstemp can use when filling in an "XXXXXX" template.  When
 this (randomly) occurs during the running of this test, PATHNAME-NAME, of
 course breaks on the last such random "." character, and the test fails in
 a way which will not repeat until the next time such a character is
 randomly chosen.

 Since readdir actually returns a string, break the string on the first "."
 explicitly, instead of making a path from the string and calling
 pathname-name.

 This will need to be revisited if we add mkstemp support on win32 in the
 future.

13 years ago1.0.46.22: fix sb-posix readdir on SunOS/x86
jimwise [Thu, 3 Mar 2011 19:50:21 +0000 (19:50 +0000)]
1.0.46.22: fix sb-posix readdir on SunOS/x86

 for the time being, disable :largefile on SunOS/x86.  Unfortunately,
 sb-grovel cannot navigate the somewhat sticky way in which struct
 dirent gets setup for a 32-bit host with 64-bit ino_t on SunOS, so
 sb-posix:readdir breaks

 :largefile works fine on SunOS x86_64, and will be re-enabled on x86
 after I get some more time to fight with the alien def for struct dirent

13 years ago1.0.46.21: renaming oops in MAKE-PACKAGE
Nikodemus Siivola [Wed, 2 Mar 2011 10:59:41 +0000 (10:59 +0000)]
1.0.46.21: renaming oops in MAKE-PACKAGE

 When WITH-PACKAGES was renamed WITH-PACKAGE-GRAPH, MAKE-PACKAGE was
 not updated -- but amusingly no error was signalled, because

 * The form was that of a function call, so no program-error.

 * Before the undefined function could be called, a non-local transfer always
   took control elsewhere, so no undefined-function error.

13 years ago1.0.46.20: better error messages for invalid variables
Nikodemus Siivola [Wed, 2 Mar 2011 10:21:03 +0000 (10:21 +0000)]
1.0.46.20: better error messages for invalid variables

 Based on patch by Roman Marynchak, lp#387333.

 * Same code checks for LET and LET* in addition to lambda-lists, so make sure
   the messages make sense for both contexts. Binding forms converted to
   LAMBDA -- like MULTIPLE-VALUE-BIND -- still get odd messages for duplicate
   variable names, though.

 * Make the messages for keywords, defined constants, and global lexicals
   better.

13 years ago1.0.46.19: add :NOT-NULL option to C-STRING type
Nikodemus Siivola [Wed, 2 Mar 2011 09:40:22 +0000 (09:40 +0000)]
1.0.46.19: add :NOT-NULL option to C-STRING type

 By default NIL is a valid C-STRING, translated to and from C's NULL. This is
 very convenient because many C functions that normally return strings return
 NULL to indicate "false" or "don't know" -- and less commonly also special
 case it as an argument.

 There are however many C functions that don't check for NULL, so we want a
 non-horrible way to say that NIL is not a good value to pass on...

 ...it remains to be seen if this is non-horrible enough, but at least it
 fixes a bunch of memory faults from doing things like (posix-getenv nil), and
 replaces them with type-errors.

 Not all C-STRING types have been audited yet, just a bunch of the more
 obvious ones.

13 years ago1.0.46.18: terser C-STRING unparsing
Nikodemus Siivola [Wed, 2 Mar 2011 09:30:09 +0000 (09:30 +0000)]
1.0.46.18: terser C-STRING unparsing

 Omit parts with default values from the unparsing: just

  (C-STRING :EXTERNAL-FORMAT :DEFAULT :ELEMENT-TYPE CHARACTER)

 becomes C-STRING, and

  (C-STRING :EXTERNAL-FORMAT :UTF-8 :ELEMENT-TYPE CHARACTER)

 becomes (C-STRING :EXTERNAL-FORMAT :UTF-8), etc.

13 years ago1.0.46.17: nicer STYLE-WARNINGS from IGNORE and IGNORABLE declarations
Nikodemus Siivola [Mon, 28 Feb 2011 12:12:19 +0000 (12:12 +0000)]
1.0.46.17: nicer STYLE-WARNINGS from IGNORE and IGNORABLE declarations

 Fixes lp#726331, based on patch by Robert P. Goldman.

13 years ago1.0.46.16: death to "in: LAMBDA NIL" in compiler messages
Nikodemus Siivola [Mon, 28 Feb 2011 11:45:36 +0000 (11:45 +0000)]
1.0.46.16: death to "in: LAMBDA NIL" in compiler messages

 The LAMBDA NIL was 99% of the time the lambda introduced by
 %SIMPLE-EVAL-IN-LEXENV -- in other words totally uninteresting.

 Have EVAL save original form, and use that to name the lambda
 introduced in %SIMPLE-EVAL-IN-LEXENV:

   `(NAMED-LAMBDA (EVAL ,SOURCE-CONTEXT) ...)

 Finally, DEFINE-SOURCE-CONTEXT for NAMED-LAMBDA that understands the
 source context stashed into the name by %SIMPLE-EVAL-IN-LEXENV.

 Additionally, in case there is a legitimate (LAMBDA () ...) form the
 compiler wants to complain about, make sure it is printed as LAMBDA (),
 not LAMBDA NIL.

13 years ago1.0.46.15: fix MAKE-INSTANCE regression from 1.0.45.18
Nikodemus Siivola [Mon, 28 Feb 2011 08:57:19 +0000 (08:57 +0000)]
1.0.46.15: fix MAKE-INSTANCE regression from 1.0.45.18

 If we use a fake MAKE-INSTANCE emf in the presence of (SETF
 SLOT-VALUE-USING-CLASS) or SLOT-BOUNDP-USING-CLASS methods, we need
 to initialize the instance vector using +SLOT-UNBOUND+ before any
 slots are touched, because accessing any slot can potentially cause
 another to be accessed -- which in turn requires boundp information
 to be present.

 Reported by Slobodan Milnović on sbcl-help.

13 years ago1.0.45.14: CHECK-KEY-ARGS didn't take :ALLOW-OTHER-KEYS into account
Nikodemus Siivola [Sat, 26 Feb 2011 16:37:25 +0000 (16:37 +0000)]
1.0.45.14: CHECK-KEY-ARGS didn't take :ALLOW-OTHER-KEYS into account

  Cases of interest are:

  * No :ALLOW-OTHER-KEYS present for sure.

  * :ALLOW-OTHER-KEYS with a non-constant argument, or a non-constant
    keyword argument which may turn out to be :ALLOW-OTHER-KEYS at
    runtime.

  * Constant :ALLOW-OTHER-KEYS NIL.

  * Constant :ALLOW-OTHER-KEYS T.

  Thanks to Xach for the heads-up!

13 years ago1.0.46.13: hopefully fix SB-POSIX tests on Windows 7
Nikodemus Siivola [Thu, 24 Feb 2011 08:48:31 +0000 (08:48 +0000)]
1.0.46.13: hopefully fix SB-POSIX tests on Windows 7

 Based on patch by Marko Kocić on sbcl-devel.

13 years ago1.0.46.12: faster core startup
Nikodemus Siivola [Sun, 20 Feb 2011 16:32:49 +0000 (16:32 +0000)]
1.0.46.12: faster core startup

 Patch by Lutz Euler, lp#557357.

 Remove unnecessary page_table initialization loop: it is allocated
 using calloc, which zero-initializes it -- which as it happens is
 enough for us.

13 years ago1.0.46.11: faster slot-accesses in the presence of SLOT-VALUE-USING-CLASS &co
Nikodemus Siivola [Sun, 20 Feb 2011 11:48:50 +0000 (11:48 +0000)]
1.0.46.11: faster slot-accesses in the presence of SLOT-VALUE-USING-CLASS &co

 * Introducing SLOT-INFO: a structure we save into the each
   EFFECTIVE-SLOT-DEFINITION object, which provides us with fast-accesses to
   typecheck, reader, writer, and boundp functions for that slot. (These
   functions already pre-exist, and currently live directly in the slot
   definition objects.)

   This replaces typecheckfuns in permutation vectors, and both the
   typecheckfun and slotd in slot-tables.

   Given this, when we run into SLOT-VALUE in a method body when there is an
   applicable non-standard SLOT-VALUE-USING-CLASS, we don't have to punt to
   the slow path, but can instead replace the SLOT-VALUE form with

    `(funcall (slot-info-reader (svref .pv. (1+ ,pv-offset))) ,parameter)

   which is pretty snappy as these things go. Analogously for SET-SLOT-VALUE,
   and SLOT-BOUNDP.

 * Previously slot typechecking functions were generated as part of the
   DEFCLASS expansion and made part of DIRECT-SLOT-DEFINITION objects. This
   was a bit wasteful, as (1) we don't need them for direct slot definitions,
   and (2) we used to get a separate typechecking function for each slot in
   each safe class, even if they all had the same type.

   Now there's only one typechecking function per type, and that is saved only
   in the SLOT-INFO structure of the relevant effective slot definitions.

 * In a couple of places finalize the class a bit earlier if possible to have
   a better idea of how to best implement slot
   accesses. TRY-FINALIZE-INHERITANCE tries, but refuses if there are forward
   referenced superclasses. CAN-OPTIMIZE-ACCESS will signal a compiler-note
   about such cases.

 * WRAPPER-INSTANCE-SLOTS-LAYOUT now also includes slot-types, and we consider
   the instance to be obsoleted when slot-type changes. (This was a bug that
   our previous type-check-function setup accidentally worked around.)

   Detect slot-type violations while updating instances of safe classes.

   Similarly for CHANGE-CLASS.

13 years ago1.0.46.10: define STRING-WITH-FILL-POINTER type properly
Nikodemus Siivola [Sun, 20 Feb 2011 10:51:39 +0000 (10:51 +0000)]
1.0.46.10: define STRING-WITH-FILL-POINTER type properly

 ...can't rely on the evaluation order of type clauses: types aren't
 expressions but set specifications.

13 years ago1.0.46.9: detect invalid use of :PREDICATE with DEFSTRUCT :TYPE
Nikodemus Siivola [Sun, 20 Feb 2011 10:48:32 +0000 (10:48 +0000)]
1.0.46.9: detect invalid use of :PREDICATE with DEFSTRUCT :TYPE

 Based on patch by Roman Marynchak, lp#520607.

 In case there are :TYPE and :PREDICATE options specified, :NAMED DEFSTRUCT
 option should be specified too. To check this, add the flag for :PREDICATE
 option in the function SB-KERNEL::PARSE-DEFSTRUCT-NAME-AND-OPTIONS, and
 verify that the flag is set, :TYPEP is set but :NAMED option is not provided.

 Also includes the regression test.

13 years ago1.0.46.8: warn about (FORMAT "~A" ...)
Nikodemus Siivola [Sun, 20 Feb 2011 10:43:24 +0000 (10:43 +0000)]
1.0.46.8: warn about (FORMAT "~A" ...)

 Add a compiler-macro that only checks if the destination argument is a
 literal string.

 Fixes lp#327223.

13 years ago1.0.46.7: better error message for an invalid lambda in COMPILE, etc
Nikodemus Siivola [Sun, 20 Feb 2011 10:38:12 +0000 (10:38 +0000)]
1.0.46.7: better error message for an invalid lambda in COMPILE, etc

  Patch by Roman Marynchak, lp#718905.

  Make the error from NAME-LAMBDALIKE clearer.

13 years ago1.0.46.6: better MACHINE-VERSION on Darwin
Nikodemus Siivola [Sun, 20 Feb 2011 10:33:43 +0000 (10:33 +0000)]
1.0.46.6: better MACHINE-VERSION on Darwin

 Patch by Josh Elsasser.

 Use machdep.cpu.brand_string instead of hw.model.

 lp#668332

13 years ago1.0.46.5: split (:BACKTRACE :MISC) test into smaller pieces
Nikodemus Siivola [Sun, 20 Feb 2011 10:30:22 +0000 (10:30 +0000)]
1.0.46.5: split (:BACKTRACE :MISC) test into smaller pieces

  Nuff said.

13 years ago1.0.46.4: redefinition warnings for macros
Nikodemus Siivola [Sun, 20 Feb 2011 10:27:38 +0000 (10:27 +0000)]
1.0.46.4: redefinition warnings for macros

  Similar logic as when not to warn as DEFUN has.

  Also refactor the existing redefinition conditions and
  uninterestingness-tests a bit.

13 years ago1.0.46.3: muffle STYLE-WARNINGs and COMPILER-NOTEs from --script loading
Nikodemus Siivola [Sun, 20 Feb 2011 10:23:16 +0000 (10:23 +0000)]
1.0.46.3: muffle STYLE-WARNINGs and COMPILER-NOTEs from --script loading

 I have a hard time coming up with a case where either is
 desirable in a script, and they can be hard to avoid in
 some cases.

 Fixes lp#677779, and then some.

13 years ago1.0.46.2: SB-SPROF: fix threaded wallclock profiling on x86-64
Nikodemus Siivola [Sun, 20 Feb 2011 10:19:47 +0000 (10:19 +0000)]
1.0.46.2: SB-SPROF: fix threaded wallclock profiling on x86-64

  Type error due to reversed argument types in pthread_kill definition.

13 years ago1.0.46.1: be careful about stack-allocation in BACKTRACE-AS-LIST
Nikodemus Siivola [Sun, 20 Feb 2011 10:12:03 +0000 (10:12 +0000)]
1.0.46.1: be careful about stack-allocation in BACKTRACE-AS-LIST

  Replace DX objects with heap-allocated ones to avoid leaking invalid
  references.

  Note: doesn't deal with objects allocated on stacks of other threads
  yet, as current %SYMBOL-VALUE-IN-THREAD isn't really something I
  want to call during backtracing: iterating over all_threads is a
  crock.

  Fixes lp#310175.

13 years ago1.0.46: will be tagged as sbcl_1_0_46
Juho Snellman [Sun, 20 Feb 2011 04:48:34 +0000 (04:48 +0000)]
1.0.46: will be tagged as sbcl_1_0_46

13 years ago1.0.45.36: Fix solaris x86-64 page size issue
Juho Snellman [Fri, 18 Feb 2011 01:12:02 +0000 (01:12 +0000)]
1.0.45.36: Fix solaris x86-64 page size issue

     * Patch lp#720800 from Jim Wise

13 years ago1.0.45.35: revert 1.0.45.30 due to regression (lp#677779)
Nikodemus Siivola [Wed, 16 Feb 2011 10:35:57 +0000 (10:35 +0000)]
1.0.45.35: revert 1.0.45.30 due to regression (lp#677779)

 Reported by Ariel Badichi on sbcl-devel.

 Using WITH-COMPILATION-UNIT to silence UNDEFINED-FUNCTION style-warnings for
 forward-referenced functions was a bad idea after all: it caused cores dumped
 using it to be started with **WORLD-LOCK** held by a dead thread.

 ...and it's not like WITH-COMPILATION-UNIT would ever get to summarize the
 unit anyways the way it was used there.

 Proper fix for this is to use UNDEFINED-REFERENCE-STYLE-WARNING as separate
 condition class and just muffle those -- but this is too much to put in
 during the freeze and will wait till after 1.0.46.

13 years ago1.0.45.34: #+sb-thread the new waitqueue printing test
Nikodemus Siivola [Tue, 15 Feb 2011 12:01:55 +0000 (12:01 +0000)]
1.0.45.34: #+sb-thread the new waitqueue printing test

  In despite the freeze as this is test-fix and a regression.

  Thanks to Harald Hanche-Olsen for the heads-up.

13 years ago1.0.45.33: optimize CHARPOS on string-streams
Nikodemus Siivola [Mon, 14 Feb 2011 15:08:06 +0000 (15:08 +0000)]
1.0.45.33: optimize CHARPOS on string-streams

 The POSITION in STRING-OUT-MISC wasn't getting optimized at all due
 to insufficient type-information.

 This speeds up pretty-printing on string-streams somewhat.

13 years ago1.0.45.32: export SB-PCL:+SLOT-UNBOUND+
Nikodemus Siivola [Sun, 13 Feb 2011 20:34:14 +0000 (20:34 +0000)]
1.0.45.32: export SB-PCL:+SLOT-UNBOUND+

  Using STANDARD-INSTANCE-ACCESS with this provided is much nicer --
  no need to muck around with SLOT-BOUNDP-USING-CLASS and such.

  Also add quick SIA tests and some dependant update abuse
  to tests.

  lp#718039

13 years ago1.0.45.31: make COPY-PPRINT-DISPATCH have access to a pristine table
Nikodemus Siivola [Sun, 13 Feb 2011 20:29:21 +0000 (20:29 +0000)]
1.0.45.31: make COPY-PPRINT-DISPATCH have access to a pristine table

  ...so that it can always be used to restore the original.

  Fixes lp#678409.

  Also add missing NEWS entry for last commit.

13 years ago1.0.45.30: wrap --script loading in a WITH-COMPILATION-UNIT
Nikodemus Siivola [Sun, 13 Feb 2011 20:22:08 +0000 (20:22 +0000)]
1.0.45.30: wrap --script loading in a WITH-COMPILATION-UNIT

  Avoid UNDEFINED-FUNCTION warnings for code like

    (defun foo () (bar))
    (defun bar () 42)

  by wrapping the LOAD done by --script in a WITH-COMPILATION-UNIT.

  Fixes lp#677779.

13 years ago1.0.45.29: fix a copy and paste comment error
Nikodemus Siivola [Sat, 12 Feb 2011 15:54:21 +0000 (15:54 +0000)]
1.0.45.29: fix a copy and paste comment error

  Patch by William Halliburton, lp#710024.

  Plus missing NEWS entry for last commit.

13 years ago1.0.45.28: add LIMIT and PRINT-NO-CALL-LIST arguments to SB-PROFILE:REPORT
Nikodemus Siivola [Sat, 12 Feb 2011 15:51:47 +0000 (15:51 +0000)]
1.0.45.28: add LIMIT and PRINT-NO-CALL-LIST arguments to SB-PROFILE:REPORT

  Patch by William Halliburton, lp#710017.

  These arguments are used to control the amount of information printed
  by REPORT as many times you are only looking for the top contenders
  and the other information is unnecessary and, at times, inundating.

13 years ago1.0.45.27: fix a typo in the manual
Nikodemus Siivola [Sat, 12 Feb 2011 15:49:21 +0000 (15:49 +0000)]
1.0.45.27: fix a typo in the manual

 Patch by "adicarlo", lp#706139.

 Correct name of special var that turns off beginner's help in
 the debugger.

13 years ago1.0.45.26: fix a long-standing UNINTERN bug
Nikodemus Siivola [Sat, 12 Feb 2011 15:45:38 +0000 (15:45 +0000)]
1.0.45.26: fix a long-standing UNINTERN bug

  Patch by Stas Boukarev, lp#693796.

  UNINTERN is specified to take a symbol, not a symbol
  designator: if P1 has the symbol P1:S, which is not EQ
  to P2:S, then (UNINTERN 'P2:S :P1) should not remove
  P1:S from P1.

13 years ago1.0.45.25: better constant folding in arithmetic functions
Nikodemus Siivola [Sat, 12 Feb 2011 15:42:48 +0000 (15:42 +0000)]
1.0.45.25: better constant folding in arithmetic functions

 Patch by Heka Deep, lp#676414, edited to retain identities
 and added a random-tester.

 * Folds constants in expressions such as (+ 3 a 5 b 7 c).

 * Constants are collected by calling the `reduce-constants' function
   from the `source-transform-transitive' and
   `source-transform-intransitive' functions. Constants adding up to
   identities are retained so that SNaNs don't sneak past.

13 years ago1.0.45.24: minor MAKE-TIMER cleanups
Nikodemus Siivola [Sat, 12 Feb 2011 15:38:32 +0000 (15:38 +0000)]
1.0.45.24: minor MAKE-TIMER cleanups

  Patch by Brit Butler, lp#672252.

  * Improve the docstring for SB-EXT:MAKE-TIMER.

  * Add a minor comment to unschedule-timer.

  ...with minor edits by yours truly, including dropping
  the bogus SCHEDULE-TIMER change from the original patch.

13 years agomore pedantic clean.sh
Nikodemus Siivola [Sat, 12 Feb 2011 15:22:25 +0000 (15:22 +0000)]
more pedantic clean.sh

  Patch by Jim Wise, lp#666884.

  Takes care of the few cases of temporary files which are currently
  left behind after running clean.sh.

  While there, it normalizes the name used for scratch files used in
  contrib testing, and updates .cvsignore to match.

  This is obviously pedantry, but it's nice to have a clean tree at
  the end of clean.sh.

13 years ago1.0.45.22: non-racy RUN-PROGRAM :PTY on OpenBSD
Nikodemus Siivola [Sat, 12 Feb 2011 15:18:59 +0000 (15:18 +0000)]
1.0.45.22: non-racy RUN-PROGRAM :PTY on OpenBSD

  Patch by Josh Elsasser, lp#669485.

  Lifts out the pty-setting logic into its own function
  for clarity.

13 years ago1.0.45.21: whitespace damage from ctor patches
Nikodemus Siivola [Sat, 12 Feb 2011 15:12:01 +0000 (15:12 +0000)]
1.0.45.21: whitespace damage from ctor patches

  Die tabs, die!

13 years ago1.0.45.20: optimize ERROR and CERROR
Nikodemus Siivola [Fri, 11 Feb 2011 17:41:46 +0000 (17:41 +0000)]
1.0.45.20: optimize ERROR and CERROR

 They were both surprisingly slow as we looked for a *STACK-TOP-HINT*
 before calling SIGNAL.

 The hint is needed (and was used) only for the INVOKE-DEBUGGER case,
 however, so there is no need to pay that price if SIGNAL is enough
 -- eg. when there's a handler.

 Fixes lp#715191.

 Also missing NEWS items for the CTOR hackery.

13 years ago1.0.45.19: more comprehensive CTOR optimization, part 2
Nikodemus Siivola [Fri, 11 Feb 2011 17:34:46 +0000 (17:34 +0000)]
1.0.45.19: more comprehensive CTOR optimization, part 2

  Extend CTOR optimizations to cover classes with :AROUND
  methods on INITIALIZE-INSTANCE.

  Happily SBCL's CALL-NEXT-METHOD is implemented so that we can just
  stick a function in the list of next-methods instead of mucking
  about with MAKE-METHOD &co...

13 years ago1.0.45.18: more comprehensive CTOR optimization
Nikodemus Siivola [Fri, 11 Feb 2011 17:30:50 +0000 (17:30 +0000)]
1.0.45.18: more comprehensive CTOR optimization

  Allows using optimized constructors in the presence of (SETF
  SLOT-VALUE-USING-CLASS) and SLOT-BOUNDP-USING-CLASS methods.

  Simply generate calls to appropriate generic functions
  instead of using CLOS-SLOTS-REF directly.

13 years ago1.0.45.17: give CONSTANTLY some love
Nikodemus Siivola [Fri, 11 Feb 2011 17:25:55 +0000 (17:25 +0000)]
1.0.45.17: give CONSTANTLY some love

 Replace the source-transform with a DERIVE-TYPE optimizer: there are
 essentially no cases where the source transform improves performance.

 Make sure the out-of-line version has the right lambda-list.

 Fixes lp#713626.

13 years ago1.0.45.16: *features* tweaks for Solaris targets
Nikodemus Siivola [Fri, 11 Feb 2011 17:20:10 +0000 (17:20 +0000)]
1.0.45.16: *features* tweaks for Solaris targets

 A mistake in make-config.sh ("amd64" for "x86-64") was preventing
 :sb-lutex from being enabled on Solaris x86-64.

 While here, enable :largefile for Solaris (all platforms)

 Patch by Jim Wise, lp#667297.

13 years ago1.0.45.15: make waitqueue printing prettier
Nikodemus Siivola [Fri, 11 Feb 2011 17:15:26 +0000 (17:15 +0000)]
1.0.45.15: make waitqueue printing prettier

 Fixes lp#673630: just print the name, if any. The token is an
 implementation detail, and can blow the stack if *print-circle* is
 not set.

13 years ago1.0.45.14: fix handling of multibyte character encoding errors
Nikodemus Siivola [Fri, 11 Feb 2011 16:59:56 +0000 (16:59 +0000)]
1.0.45.14: fix handling of multibyte character encoding errors

 In encodings defined using DEFINE-MULTIBYTE-ENCODING, if there is no
 translation for the character, report the size as 0 -- replacements
 get their size accounted for elsewhere.

 Fixes lp#713063.

13 years ago1.0.45.13: physenvanal: Treat all functions without XEPs as being D-X.
Alastair Bridgewater [Fri, 21 Jan 2011 16:40:53 +0000 (16:40 +0000)]
1.0.45.13: physenvanal: Treat all functions without XEPs as being D-X.

  * In order for a function to be returned or passed as a parameter,
it must have an XEP.

  * Functions without XEPs, therefore, can only be called directly
from within their lexical scope.  They are, therefore,
dynamic-extent.

  * But wait, you say, they could be called from a closure that is
not dynamic-extent, which clearly shows such an analysis to be false.

  * It turns out that this doesn't matter, because the non-dynamic-
extent closure also has to close over the variables passed to the
supposedly-dynamic-extent closure, and that will cause explicit
value-cells to be allocated anyway.

  * So, it's a bit of an abuse to say that the functions have dynamic
extent, but it does no harm (and quite a bit of good) to treat them
as if they do.

13 years ago1.0.45.12: remove spurious reference to ${make_flags} in grovel-features.sh
Cyrus Harmon [Fri, 21 Jan 2011 15:49:47 +0000 (15:49 +0000)]
1.0.45.12: remove spurious reference to ${make_flags} in grovel-features.sh

13 years ago1.0.45.11: remove inadvertant comment change from last commit
Cyrus Harmon [Fri, 21 Jan 2011 15:42:00 +0000 (15:42 +0000)]
1.0.45.11: remove inadvertant comment change from last commit

13 years ago1.0.45.10: tools-for-build/Makefile path fixes
Cyrus Harmon [Fri, 21 Jan 2011 05:53:41 +0000 (05:53 +0000)]
1.0.45.10: tools-for-build/Makefile path fixes

 * make include rules non-breaking and use path relative to the path
   setup via -I (src/runtime). This should fix things such that both
   clean.sh and make.sh should now work.

13 years ago1.0.45.9: fix building on recent linux
Cyrus Harmon [Thu, 20 Jan 2011 18:21:37 +0000 (18:21 +0000)]
1.0.45.9: fix building on recent linux

 * Recent linux changes caused waitpid foreign symbol to go away so add it to
   undefineds and ldso-stubs
 * Recent linux linker default flags changes (--as-needed?) caused dlopen and
   friends to not be found at link time. Fix the tools-for-build/Makefile
   to pick up the build options from Config and fix grovel-features.sh to
   put the libs in LDLIBS instead of LDFLAGS

13 years ago1.0.45.8: fix os_vm_page_size on freebsd, openbsd and osf1
Cyrus Harmon [Thu, 20 Jan 2011 18:12:20 +0000 (18:12 +0000)]
1.0.45.8: fix os_vm_page_size on freebsd, openbsd and osf1

 * use BACKEND_PAGE_BYTES instead of getpagesize() to match change to
   backend-parms in 1.0.45.7

13 years ago1.0.45.7: set *backend-page-bytes* to 32KB
cracauer [Wed, 19 Jan 2011 22:33:27 +0000 (22:33 +0000)]
1.0.45.7: set *backend-page-bytes* to 32KB

* Setting *backend-page-bytes* to 32KB.  I did test runs with
different *backend-page-bytes* values and 32KB clearly came out on top
performance-wise.  It also delays (not avoids) the problem of running
out of maximum mappings allowed by current kernel settings.

13 years ago1.0.45.5: life: fix slow compile.
cracauer [Wed, 19 Jan 2011 22:14:52 +0000 (22:14 +0000)]
1.0.45.5: life: fix slow compile.

* Committing a patch I once got from Nikodemus.  Without it my toy
takes more than a week to compile.  I've been using this since
November in production, seems to work well.  Should probably have made
it into 1.0.44.28.

;;; FASTP is a KLUDGE: SBCL used to update the current-conflict only
;;; for the read-only case, but switched at one point to always
;;; updating it. This generally speeds up the compiler nicely, but
;;; sometimes it causes an infinite loop in the updating machinery,
;;; We cheat by switching of the fast path if it seems we're looping
;;; longer then expected.

13 years ago1.0.45.5: life: Propagate implicit value cells through tail-calls.
Alastair Bridgewater [Wed, 19 Jan 2011 21:59:23 +0000 (21:59 +0000)]
1.0.45.5: life: Propagate implicit value cells through tail-calls.

  * When setting up "environment tn conflicts", recurse through
callee environments when processing a block that ends in a tail
local combination and a TN that represents an "implicit" value
cell.

  * This closes the hole where a tail-local-call would replace
the stack frame which allocated a closed-over lambda-var, but
the inbound stack frame didn't know about the storage for the
variable, leading to badness.  Hopefully the last bug with the
dynamic-extent closure representation changes.

  * This patch fixes what 1.0.44.34 was supposed to KLUDGE
around, and finishes fixing lp#681092 (the first half of the
fix being 1.0.44.33).

13 years ago1.0.45.4: Revert 1.0.44.34
Juho Snellman [Sun, 19 Dec 2010 01:29:05 +0000 (01:29 +0000)]
1.0.45.4: Revert 1.0.44.34

     * Caused CLX compilation to fail, added reduced test case by
       Larry Valkama.

13 years ago1.0.45.3: Whitespace cleanup
Juho Snellman [Mon, 6 Dec 2010 02:33:28 +0000 (02:33 +0000)]
1.0.45.3: Whitespace cleanup

13 years ago1.0.45.2: A slightly better error message for malformed reader conditional
Juho Snellman [Mon, 6 Dec 2010 02:28:02 +0000 (02:28 +0000)]
1.0.45.2: A slightly better error message for malformed reader conditional

     * Modified from lp#680173 by Roman Marynchak

13 years ago1.0.45: Disables the TRACE :ENCAPSULATE NIL test on Solaris
Juho Snellman [Mon, 6 Dec 2010 01:59:10 +0000 (01:59 +0000)]
1.0.45: Disables the TRACE :ENCAPSULATE NIL test on Solaris

     * Patch by Jim Wise (lp#666885)

13 years ago1.0.45: will be tagged as sbcl_1_0_45
Juho Snellman [Mon, 6 Dec 2010 01:25:53 +0000 (01:25 +0000)]
1.0.45: will be tagged as sbcl_1_0_45

13 years ago1.0.44.36: test case for bug #681092
Christophe Rhodes [Sat, 27 Nov 2010 21:08:53 +0000 (21:08 +0000)]
1.0.44.36: test case for bug #681092

From the bug report.  Also remove needless quotes in some test names.

13 years ago1.0.44.35: Use DX-FLET instead of FLET in WITHOUT-{INTERRUPTS,GCING}.
Alastair Bridgewater [Sat, 27 Nov 2010 03:02:03 +0000 (03:02 +0000)]
1.0.44.35: Use DX-FLET instead of FLET in WITHOUT-{INTERRUPTS,GCING}.

  * With the local functions declared to be DYNAMIC-EXTENT, the
new d-x closure analysis can elide the value cells involved
entirely.

  * This fixes lp#674458 (introduced in 1.0.44.16).

13 years ago1.0.44.34: gtn: KLUDGE the lambda-var assignment to not break tail-calls.
Alastair Bridgewater [Sat, 27 Nov 2010 03:01:50 +0000 (03:01 +0000)]
1.0.44.34: gtn: KLUDGE the lambda-var assignment to not break tail-calls.

  * As an utter KLUDGE, when assigning TNs for closed-over lambda
variables with implicit value-cells, make the TNs component-live
instead of physenv-live.  This prevents any possible problems with
the new physenv introduced by a tail-call overwriting the storage
for the variable.

13 years ago1.0.44.33: ir2tran: Correctly set up d-x closure values for tail-local-calls.
Alastair Bridgewater [Sat, 27 Nov 2010 03:01:34 +0000 (03:01 +0000)]
1.0.44.33: ir2tran: Correctly set up d-x closure values for tail-local-calls.

  * Tail-local-call re-uses the current frame.  It therefore needs to
use the old-fp value from the current frame in EMIT-PSETQ-MOVES.

  * "implicit" value cells need to use the /current/ frame pointer in
EMIT-PSETQ-MOVES to correctly initialize the closure.

  * Therefore: Add a new &optional argument to EMIT-PSETQ-MOVES for
the frame-pointer to be used in closure initialization.

  * This fixes the obvious part of lp#681092, but unless there is a
guarantee that the stack slots used for the "implicit" value cells
remain unused in the tail-called function then all this does is drive
the bug to become more subtle.

13 years ago1.0.44.32: better error reporting for malformed RESTART-CASE clauses
Nikodemus Siivola [Fri, 19 Nov 2010 10:57:30 +0000 (10:57 +0000)]
1.0.44.32: better error reporting for malformed RESTART-CASE clauses

  Detect missing lambda-lists.

  ...and missing -o to canonicalize-whitespace.

13 years ago1.0.44.31: fix canonicalize-whitespace
Nikodemus Siivola [Fri, 19 Nov 2010 10:54:44 +0000 (10:54 +0000)]
1.0.44.31: fix canonicalize-whitespace

 ...missing -o from last commit.

13 years ago1.0.44.30: don't canonicalize whitespace in ASDF
Nikodemus Siivola [Fri, 19 Nov 2010 10:13:40 +0000 (10:13 +0000)]
1.0.44.30: don't canonicalize whitespace in ASDF

  ASDF isn't that tightly coupled to SBCL anymore -- and munging
  the whitespace there just makes comparing SBCL and upstream ASDFs
  more difficult.

13 years ago1.0.44.29: full warnings for duplicate CASE keys during SBCL build
Nikodemus Siivola [Thu, 18 Nov 2010 13:52:06 +0000 (13:52 +0000)]
1.0.44.29: full warnings for duplicate CASE keys during SBCL build

  ...and fix the issue revealed.

  Thanks to Cyrus Harmon for the heads-up.

13 years ago1.0.44.28: allow approximating unions of numeric types
Nikodemus Siivola [Thu, 18 Nov 2010 12:02:45 +0000 (12:02 +0000)]
1.0.44.28: allow approximating unions of numeric types

 (dummy commit: change described here happened in the last commit really,
  but the commit message was subtly wrong and missed the version number)

 * Binding *APPROXIMATE-NUMERIC-UNIONS* does that. It must be bound
   only by callers of TYPE-UNION that know what they want -- in general

     (OR (INTEGER 1 2) (INTEGER 4 4)) => (INTEGER 1 4)

   is wrong, as (NOT (INTEGER 1 4)) doesn't include 3. But in special cases
   like deriving the return type of a function it can be done.

 * Rename MAKE-CANONICAL-UNION-TYPE MAKE-DERIVED-UNION-TYPE, and bind *A-N-U*
   there if we start accumulating an overly large union of numeric types.
   Definition of "overly large" can be adjusted via
   *DERIVED-NUMERIC-UNION-COMPLEXITY-LIMIT*.

 * Fixes lp#309448 and the recent compiler performance regression due
   to new CONCATENATE deftransform as reported on sbcl-devel.

13 years agoallow approximating unions of numeric types
Nikodemus Siivola [Thu, 18 Nov 2010 11:28:46 +0000 (11:28 +0000)]
allow approximating unions of numeric types

 * Binding *APPROXIMATE-NUMERIC-UNIONS* does that. It must be bound
   only by callers of TYPE-UNION that know what they want -- in general

     (OR (INTEGER 1 2) (INTEGER 3 4)) => (INTEGER 1 4)

   is wrong, as (NOT (INTEGER 1 4)) doesn't include 3. But in special cases
   like deriving the return type of a function it can be done.

 * Rename MAKE-CANONICAL-UNION-TYPE MAKE-DERIVED-UNION-TYPE, and bind *A-N-U*
   there if we start accumulating an overly large union of numeric types.
   Definition of "overly large" can be adjusted via
   *DERIVED-NUMERIC-UNION-COMPLEXITY-LIMIT*.

 * Fixes lp#309448 and the recent compiler performance regression due
   to new CONCATENATE deftransform as reported on sbcl-devel.

13 years ago1.0.44.27: update ASDF to 2.010
Nikodemus Siivola [Thu, 18 Nov 2010 10:06:30 +0000 (10:06 +0000)]
1.0.44.27: update ASDF to 2.010

13 years ago1.0.44.26: more nuanced deprecation framework
Nikodemus Siivola [Tue, 16 Nov 2010 18:18:03 +0000 (18:18 +0000)]
1.0.44.26: more nuanced deprecation framework

 DEFINE-DEPRECATED-FUNCTION is the new one-stop shop for the "common"
 case of deprecating a function in favor of another one.

 ...in cases where it is not sufficient, call DEPRECATION-WARNING or
 DEPRECATION-ERROR directly from the compiler or other place.

 Three stages: :EARLY signals a compile-time style-warning, :LATE
 signals a compile-time full warning, :FINAL a compile-time full
 warning and a run-time error.

 (This is based on the assumption that this is both a sufficient and
 desirably nuanced taxonomy -- if more or less is wanted, changing
 this later is easy enough.)

 SB-EXT:DEPRECATION-CONDITION is the base class of all deprecation
 warnings and errors, but it isn't yet documented: once we have a
 concensus of sorts on a deprecation protocol/schedule, I will write
 the appropriate bits in the manual.

 Everything that previously had a deprecation warning is now in :LATE
 stage, except for INSTANCE-LAMBDA which is now in :FINAL stage.

13 years ago1.0.44.25: don't put function leaves into the source-path when a name is available
Nikodemus Siivola [Tue, 16 Nov 2010 17:57:45 +0000 (17:57 +0000)]
1.0.44.25: don't put function leaves into the source-path when a name is available

 #<SB-C::DEFINED-FUN ...> in compiler notes is a bit hard to read, not
 to mention obscure.

13 years ago1.0.44.24: tweak CAREFUL-EXPAND-MACRO
Nikodemus Siivola [Tue, 16 Nov 2010 15:17:10 +0000 (15:17 +0000)]
1.0.44.24: tweak CAREFUL-EXPAND-MACRO

  Don't resignal warnings and style-warnings -- aside from the CMUCL
  cross-compiler KLUDGEry. They tend to be intentionally signalled by macro
  and compiler-macro authors, and the additional wrapper-text provided by the
  resignaling mostly just obfuscates the actual message.

  That leaves errors (and the aforementioned KLUDGE.)

  For these, less parentheses, more whitespace -- specifically, leave space
  around the actual warning/error message, instead of crowding in with the
  parenthetical remarks.

13 years ago1.0.44.23: replace %METHOD-NAME and %METHOD-LAMBDA-LIST decls with special variables
Nikodemus Siivola [Mon, 15 Nov 2010 17:43:37 +0000 (17:43 +0000)]
1.0.44.23: replace %METHOD-NAME and %METHOD-LAMBDA-LIST decls with special variables

  This not only simplifies PCL code, but fixes a long-standing MOP-bug
  and actually gives us SB-PCL:SLOW-METHOD frames in the backtraces.

  Previously a fairly trivial MAKE-METHOD-LAMBDA method was enough
  to cause

    (defmethod foo (x) (return-from foo t))

  to break, as MAKE-METHOD-LAMBDA-INTERNAL no longer found the %METHOD-NAME
  declaration in the expected place, and hence was unable to add the block
  name.

13 years ago1.0.44.22: NEWS entry left out from 1.0.44.21.
Nikodemus Siivola [Wed, 10 Nov 2010 17:52:05 +0000 (17:52 +0000)]
1.0.44.22: NEWS entry left out from 1.0.44.21.

 EOM.