From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: Dirk Herrmann Newsgroups: gmane.lisp.guile.devel Subject: Re: status: separation of expansion/optimization/memoization/execution Date: Wed, 14 Aug 2002 21:30:56 +0200 (CEST) Sender: guile-devel-admin@gnu.org Message-ID: References: <87lm7e7tqc.fsf@zagadka.ping.de> NNTP-Posting-Host: localhost.gmane.org Mime-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Trace: main.gmane.org 1029353842 27686 127.0.0.1 (14 Aug 2002 19:37:22 GMT) X-Complaints-To: usenet@main.gmane.org NNTP-Posting-Date: Wed, 14 Aug 2002 19:37:22 +0000 (UTC) Cc: guile-devel@gnu.org, guile-user@gnu.org Return-path: Original-Received: from monty-python.gnu.org ([199.232.76.173]) by main.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 17f3xI-0007CH-00 for ; Wed, 14 Aug 2002 21:37:20 +0200 Original-Received: from localhost ([127.0.0.1] helo=monty-python.gnu.org) by monty-python.gnu.org with esmtp (Exim 4.10) id 17f3yF-0007TN-00; Wed, 14 Aug 2002 15:38:19 -0400 Original-Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.10) id 17f3xk-0007Ol-00 for guile-devel@gnu.org; Wed, 14 Aug 2002 15:37:48 -0400 Original-Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.10) id 17f3xi-0007OU-00 for guile-devel@gnu.org; Wed, 14 Aug 2002 15:37:47 -0400 Original-Received: from sallust.ida.ing.tu-bs.de ([134.169.132.52]) by monty-python.gnu.org with esmtp (Exim 4.10) id 17f3xg-0007O4-00; Wed, 14 Aug 2002 15:37:44 -0400 Original-Received: from localhost (dirk@localhost) by sallust.ida.ing.tu-bs.de (8.9.3+Sun/8.9.1) with ESMTP id VAA06839; Wed, 14 Aug 2002 21:30:56 +0200 (CEST) Original-To: Marius Vollmer In-Reply-To: <87lm7e7tqc.fsf@zagadka.ping.de> Errors-To: guile-devel-admin@gnu.org X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.0.11 Precedence: bulk List-Help: List-Post: List-Subscribe: , List-Id: Developers list for Guile, the GNU extensibility library List-Unsubscribe: , List-Archive: Xref: main.gmane.org gmane.lisp.guile.devel:1079 X-Report-Spam: http://spam.gmane.org/gmane.lisp.guile.devel:1079 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 _______________________________________________ Guile-devel mailing list Guile-devel@gnu.org http://mail.gnu.org/mailman/listinfo/guile-devel