1.0.30.26: fix failing AVER in CONVERT-MV-CALL
commita76ae2de6f6d81d3a774da2060844af08e705c95
authorNikodemus Siivola <nikodemus@random-state.net>
Fri, 31 Jul 2009 13:00:17 +0000 (31 13:00 +0000)
committerNikodemus Siivola <nikodemus@random-state.net>
Fri, 31 Jul 2009 13:00:17 +0000 (31 13:00 +0000)
tree80171231fc0e2c28399b108438ed2a8c52e9cc3b
parent2e33f2df9a6eb5a84d71726b88f06d92241e44da
1.0.30.26: fix failing AVER in CONVERT-MV-CALL

 See https://bugs.launchpad.net/sbcl/+bug/392203

 Patch by Larry D'Anna.

 His comments:

   Ever since Spice Lisp, convert-mv-call had returned without doing
   anything if (functional-entry-fun fun) is not null, ie if fun
   possesses a XEP. 0.8.5.5 replaces this criterion with "if the last
   optional entry has references", and signals an error if the last
   optional entry has no references and the XEP exists.

   I can't know exactly what Alexy was thinking when he put the aver
   in, but I can guess: If the XEP exists it should contain a
   reference to the last entry point, so if the last entry point has
   no refs and a XEP exists something went wrong. However, if the
   number of required + optional arguments is 0, then XEP doesn't need
   the "last" entry point, it can always use the "more" entry point
   instead, which is exactly what seems to have happened in this case.

   This patch combines the two conditions. convert-mv-call will return
   without action if *either* a XEP exists, *or* the last optional
   entry has references."
NEWS
src/compiler/locall.lisp
tests/compiler.pure.lisp
version.lisp-expr