guile-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: status: separation of expansion/optimization/memoization/execution


From: Dirk Herrmann
Subject: Re: status: separation of expansion/optimization/memoization/execution
Date: Wed, 14 Aug 2002 21:30:56 +0200 (CEST)

On 10 Aug 2002, Marius Vollmer wrote:

> So, cleaning up the existing lazy memoizer is a very good thing
> indeed.  But I'd say you should also make sure that you don't
> significantly lose performance by doing it.  That part of Guile will
> be performance-critical for quite some time.

At the current state I can't decide yet, whether after the changes guile's
speed will at all differ from before.  Too many optimizations of the
scheme code are not possible yet, until the separation is complete.  If
there is a performance problem then, it will be easier to optimize the
evaluator then.  There are, however, a lot of open questions:

* in principle, memoization could memoize all variable references.  That
  would mean, the execution could be freed of all checks for symbols and
  variable lookups - this would have been done by the memoizer.

  Benefits:  
  - no symbol lookups in the executor
  - quoted symbols could be made into symbols, getting rid of one level of
    quoting

  Problems:
  - how to deal with undefined symbols?
  - should 'undefine' still be possible, and if so, how?

* should the executor ever run over an undefined symbol?  This could be
  checked during expansion and memoization.  If it is known that during
  exection all symbols are defined, this eliminates one test during
  variable lookup.

Best regards,
Dirk





reply via email to

[Prev in Thread] Current Thread [Next in Thread]