From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: Mikael Djurfeldt Newsgroups: gmane.lisp.guile.devel Subject: Re: goops and memoization Date: Wed, 04 Dec 2002 03:25:51 +0100 Sender: guile-devel-admin@gnu.org Message-ID: References: <02120219132603.12810@locke.free-expression.org> <200212030838.AAA19360@morrowfield.regexps.com> Reply-To: djurfeldt@nada.kth.se NNTP-Posting-Host: main.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: main.gmane.org 1038968886 7649 80.91.224.249 (4 Dec 2002 02:28:06 GMT) X-Complaints-To: usenet@main.gmane.org NNTP-Posting-Date: Wed, 4 Dec 2002 02:28:06 +0000 (UTC) Cc: djurfeldt@nada.kth.se, owinebar@free-expression.org, dirk@sallust.ida.ing.tu-bs.de, neil@ossau.uklinux.net, guile-devel@gnu.org, djurfeldt@nada.kth.se 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 18JPGc-0001ym-00 for ; Wed, 04 Dec 2002 03:28:02 +0100 Original-Received: from localhost ([127.0.0.1] helo=monty-python.gnu.org) by monty-python.gnu.org with esmtp (Exim 4.10.13) id 18JPFp-0007rh-00; Tue, 03 Dec 2002 21:27:13 -0500 Original-Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.10.13) id 18JPEq-0004p4-00 for guile-devel@gnu.org; Tue, 03 Dec 2002 21:26:12 -0500 Original-Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.10.13) id 18JPEk-0004Xf-00 for guile-devel@gnu.org; Tue, 03 Dec 2002 21:26:09 -0500 Original-Received: from kvast.blakulla.net ([213.212.20.77]) by monty-python.gnu.org with esmtp (Exim 4.10.13) id 18JPEk-0004WG-00 for guile-devel@gnu.org; Tue, 03 Dec 2002 21:26:06 -0500 Original-Received: from barbara.blakulla.net ([213.212.21.238] helo=linnaeus) by kvast.blakulla.net with esmtp (Exim 3.36 #1 (Debian)) id 18JPEd-00039w-00; Wed, 04 Dec 2002 03:25:59 +0100 Original-Received: from mdj by linnaeus with local (Exim 3.36 #1 (Debian)) id 18JPEa-0002YS-00; Wed, 04 Dec 2002 03:25:56 +0100 Original-To: Tom Lord Original-Cc: djurfeldt@nada.kth.se In-Reply-To: <200212030838.AAA19360@morrowfield.regexps.com> (Tom Lord's message of "Tue, 3 Dec 2002 00:38:53 -0800 (PST)") User-Agent: Gnus/5.090008 (Oort Gnus v0.08) Emacs/21.2 (i386-pc-linux-gnu) 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:1784 X-Report-Spam: http://spam.gmane.org/gmane.lisp.guile.devel:1784 Tom Lord writes: > > But, as said earlier, being a efficiency freak, I'd like a > > solution which works on the memoized code. In order to > > maintain a reasonably clean separation of goops code and the > > details of memoizing, it might then be a good idea to provide > > some kind of code traverser which goops can plug into and > > operate with minimal knowledge of memoized representation and > > environment. > > Abstractly, you're computing something like: > > (M (O (U (M )))) > > where M is the memoizer, O the optimizer, and U the unmemoizer. > > Your ideal is to have O be a clean, perhaps even portable, > source->source transform that knows nothing about memoization, yet for > the whole composition to be fast. Yes. > Have you considered the approach of writing a custom optimizer (not O, > but another optimizer) that can do a good job of "compiling" (scheme > to scheme): > > > (lambda (ms) (M (O (U ms)))) > > ? > > If O is very clean/high-level, you can do all kinds of tricks by > transforming it (e.g. automatic conversion to demand-driven > execution). Writing O is just writing (with nothing extraneous) the > transforms that describe the possible optimizations, and then tools > that compile O and compositions of O with M and U can work out when to > apply those transformations and short-cut the compositions. Hmm... could you please clarify this suggestion. What is the core idea? To specify O in a custom language and compile it? To optimize the composition of M O and U? Something else that I have missed? Best regards, Mikael Djurfeldt _______________________________________________ Guile-devel mailing list Guile-devel@gnu.org http://mail.gnu.org/mailman/listinfo/guile-devel