[armedbear-devel] 0.18 and beyond

Alessio Stalla alessiostalla at gmail.com
Thu Nov 5 19:29:57 UTC 2009


On Thu, Nov 5, 2009 at 1:45 PM,  <logicmoo at gmail.com> wrote:
> Just a comment
>
>> most of the startup time is not spent assigning variables, but loading
>> and instantiating compiled functions through reflection, and
>> serialization would probably not help much in this case. What could
>> help is, as per Ville's idea, create a big "loader" class which
>> references compiled function classes directly by name in its bytecode
>
> Other java lisps define each Primitive  execute as a single static function
> in a trampolines file.
> The Primitive itself just calls the static function in the trampolines (
> they are named in such a way it is easy to reference the class that holds
> nothing but static functions).. In compiled code there is never any reason
> to reference the Primitive or even the Symbol that uses it. The compiled
> code is simply a series of static functions calling static functions

This is a useful technique to speed up compiled code. It could also
speed up startup times as long as you don't invoke such primitives
from interpreted code during startup (in such a case, you would need
to load and install the appropriate Primitive subclass to invoke it,
or use a generic subclass that invokes the appropriate static method
through reflection).

Alessio




More information about the armedbear-devel mailing list