[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [spr8404] compiling methods
Your problem report has been assigned tracking id spr8404.
Please use it in the subject line of any correspondences
regarding your problem report.
>> Hello from Berlin,
>> I need your help to solve two problems:
>> 1. even when I call in ACL4.1 excl:dumplisp with the :restart-function the
>> named function does not start after loading the dump - thats my minor
Can you send me a test case that I can reproduce here? If you send me
a simple restart function and the exact dumplisp command you used
which failed to restart properly, I can try to figure out what is wrong.
>> 2. for a certain reason I cannot :cf a lot of files of my project -
>> ancompiler for EuLisp. So we collect all functions and call compile for
>> each of them after loading our compiler. However a lot is done using
>> generic functions and methods.
Are you saying that those files in your project are EuLisp source
files, as opposed to Allegro CL source files? If so, you might want
to consider making a top-level alias like ":ecf" which would compile
the EuLisp files in the same way as :cf compiles CL files.
>> Is there an equivalent to compile for methods or what else can I do to
>> speed up my system.
I assume that you want to know how to name meethods so that you can
compile them. First, to get a list of methods for a generic function,
call clos:generic-function-methods with the generic function as an
argument. You will get a list of methods. For each of these methods,
clos::method-to-definition-spec will return a name that you can use
as arguments to most Allegro CL functions that accept a function name
(including compile, disassemble, fboundp, fdefinition, etc.)
In general, method names are of the form (method <gf-name> (<class> ...))
I will await your reply to deal with question #1.
Duane Rettig, Franz Inc. 1995 University Avenue, Suite 275
duane@Franz.COM (internet) Berkeley, CA 94704
uunet!franz!duane (uucp) Phone: (510) 548-3600; FAX: (510) 548-8253