[Ecls-list] SLIME, WITH-OPEN-FILE: error in process filter: Wrong number of arguments: nil, 127

Matthew Mondor mm_lists at pulsar-zone.net
Tue Oct 23 15:54:24 UTC 2012


On Sun, 21 Oct 2012 12:20:33 -0400
Matthew Mondor <mm_lists at pulsar-zone.net> wrote:

> On Sat, 20 Oct 2012 22:19:46 +0400
> Stas Boukarev <stassats at gmail.com> wrote:
> 
> > > The problem is that sys:function-lambda-list doesn't like macros or
> > > special operators anymore. Clearly, the name suggests that it takes
> > > functions, but it used to work on non-functions before this change:
> > > http://sourceforge.net/p/ecls/ecl/ci/b1ec23bce8a385251f14b278c080e22e459cc70f/tree/src/lsp/top.lsp?diff=8b1c6a203919bdfd6da989565e53bd149dad7e1b
> > It's possible to use (ext:get-annotation operator :lambda-list nil), but
> > it returns a string for LET
> > (ext:get-annotation 'let :lambda-list nil)
> > =>
> > "(let ({var | (var [init])}*) {decl}* {form}*)"
> 
> Thanks for the details.  Although I don't get errors for other common
> macros, I noticed that documentation is not shown for macros such as
> PUSH or PUSHNEW as well, which this also explains.

So I today had some time to do a small test and the following function
indeed seems to work better in general.

(defimplementation arglist (name)
  (let ((arglist (ext:get-annotation name :lambda-list nil)))
    (if (or (null arglist) (stringp arglist))
        :not-available
        arglist)))

Thanks again,
-- 
Matt




More information about the ecl-devel mailing list