Find all uses of defmfun for functions that are not user-exposed
functions (those not starting with a $), and use defun instead.
Basically done automatically with
for f in `find src -name '*.lisp'`
do
sed -i .bak 's;(defmfun \([^$]\);(defun \1;' $f
done
But had to define a new macro named "defun-maclisp" to support some
non-user functions that use the maclisp nargs syntax. These functions
are mformat-translate-open, mformat, map1, mmapcar, and outermap1.
Handle maclisp narg syntax even for user functions
share/tensor/itensor.lisp uses the syntax
(defmfun $defcon n ...)
This means we want to use the old maclisp narg syntax, and the defmfun
macro was expecting functions that begin with $ weren't use that.
Adjust the macro so that this is supported again.
Ran the entire test suite (including share tests) and all tests
passed. (Only tested with cmucl since the tests take a long time.)
When possible print more information out when wna-err is called. This
requires updates to oneargcheck and twoargcheck to pass more
information to wna-err.
Also added new funtion, arg-count-check, that allows specifying the
number of required arguments.
Manually updated a few places to use arg-count-check for some
functions that have more than two required args.
The error messages mostly match what defmfun would produce, except
that we don't currently have access to the function argument names, so
we just print out the function name.
Handle maclisp narg syntax even for user functions
share/tensor/itensor.lisp uses the syntax
(defmfun $defcon n ...)
This means we want to use the old maclisp narg syntax, and the defmfun
macro was expecting functions that begin with $ weren't use that.
Adjust the macro so that this is supported again.
Ran the entire test suite (including share tests) and all tests
passed. (Only tested with cmucl since the tests take a long time.)
ddd0275...
by
Wolfgang Dautermann <email address hidden>
Documentation: more incorrect ===beg=== / ===end=== markers
(spaces ("=== beg ===") are not checked in the perl script)