1.0.21.27: no more &OPTIONAL-DISPATCH debug names
authorNikodemus Siivola <nikodemus@random-state.net>
Sat, 18 Oct 2008 10:27:58 +0000 (10:27 +0000)
committerNikodemus Siivola <nikodemus@random-state.net>
Sat, 18 Oct 2008 10:27:58 +0000 (10:27 +0000)
commit99f12b8ef75252c8d2d52705b53f2a8f9227443a
tree2fc84d2d4f23b5195cdadd96dd39031403d5d8c5
parent801730762f17302c33b70398b632aa1393c6722a
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.
NEWS
src/compiler/ir1tran-lambda.lisp
tests/compiler.impure.lisp
tests/compiler.pure.lisp
version.lisp-expr