Hi Bryce, great job on your perseverence, sounds like you're getting close! My interest is seething, as I'm sure many in our community, don't quit now, ok? :)
I have been thinking in terms of Magma's materialization process, whether Exupery could deal with it. When an object graph is materialized from a ByteArray, the object structure is built in two steps. The first step establishes identity <-> oids by instantiating all of the objects with pointers to Integer oids, potentially Large or Small. For example,
aPerson (110) name = 115 address = 130
aName (115) first = 116 last = 117
'Chris' (116) 'Muller' (117)
anAddress (130) street = 141
'101 W. Meyer' (141)
The second step then replaces those integers with the actual objects (or a proxy).
aPerson name = aName address = anAddress
anAddress street = '101 W. Meyer'
If a particular variable can have an Integer, Proxy or the RealObject at various times, will that disrupt Exupery's ability to optimize the domain code, or am I confusing with Strongtalk?
X-VM-v5-Data: ([nil nil nil nil nil nil nil nil nil] ["1344" "Tuesday" "24" "October" "2006" "19:16:16" "-0700" "Chris Muller" "afunkyobject@yahoo.com" "20061025021616.63172.qmail@web31809.mail.mud.yahoo.com" "20" "question" "^From:" "exupery@lists.squeakfoundation.org" "exupery@lists.squeakfoundation.org" "10" "2006102503:16:16" "question" (number " " mark " Chris Muller Oct 24 20/1344 " thread-indent ""question"\n") nil nil nil nil nil] nil) Received: from localhost ([127.0.0.1]) by kampjes.demon.co.uk with esmtp (Exim 4.60) (envelope-from exupery-bounces@lists.squeakfoundation.org) id 1GcnR2-0001Lr-B0 for bryce@localhost; Wed, 25 Oct 2006 19:25:04 +0100 Received: from pop3.mail.demon.net [194.217.242.253] by localhost with POP3 (fetchmail-6.3.4) for bryce@localhost (single-drop); Wed, 25 Oct 2006 19:25:04 +0100 (BST) Received: from punt3.mail.demon.net by mailstore for bryce@kampjes.demon.co.uk id 1GcYJc-15L000-01-CBj; Wed, 25 Oct 2006 02:16:24 +0000 Received: from [194.217.242.95] (lhlo=anchor-hub.mail.demon.net) by punt3.mail.demon.net with lmtp id 1GcYJc-15L000-01 for bryce@kampjes.demon.co.uk; Wed, 25 Oct 2006 02:16:24 +0000 Received: from [85.10.195.197] (helo=box2.squeakfoundation.org) by anchor-hub.mail.demon.net with smtp id 1GcYJb-0002Dp-V7 for bryce@kampjes.demon.co.uk; Wed, 25 Oct 2006 02:16:24 +0000 Received: (qmail 28069 invoked from network); 25 Oct 2006 02:16:23 +0000 Received: from unknown (HELO box2.squeakfoundation.org) (127.0.0.1) by localhost with SMTP; 25 Oct 2006 02:16:23 +0000 Delivered-To: list-exupery@lists.squeakfoundation.org Received: (qmail 28029 invoked from network); 25 Oct 2006 02:16:21 +0000 Received: from unknown (HELO web31809.mail.mud.yahoo.com) (68.142.207.72) by box2.squeakfoundation.org with SMTP; 25 Oct 2006 02:16:21 +0000 Received: (qmail 63174 invoked by uid 60001); 25 Oct 2006 02:16:16 -0000 DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.com; h=Message-ID:Received:Date:From:Reply-To:Subject:To:MIME-Version:Content-Type:Content-Transfer-Encoding; b=AABWw71Q8CBC+syn4ef9ulg4kmC7LLlR0+l+mUcn2+4Vwz+ncdR0JTLM+BFeKkDeRnHLh4tlLbJbs226whEdc8y0jHyPL8fIgzxp+I3TcdxBx9NvuHaYMZEfxj/ne6fqG0LCYcdYA0kwxq9F5CqpPe4HrAnGRJFRqfzXmRHuKPA= ; Message-ID: 20061025021616.63172.qmail@web31809.mail.mud.yahoo.com Received: from [24.51.227.93] by web31809.mail.mud.yahoo.com via HTTP; Tue, 24 Oct 2006 19:16:16 PDT MIME-Version: 1.0 Content-Type: text/plain; charset=ascii Content-Transfer-Encoding: quoted-printable X-BeenThere: exupery@lists.squeakfoundation.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Chris Muller chris@funkyobjects.org, "Discussion about Exupery a native code compiler." exupery@lists.squeakfoundation.org List-Id: "Discussion about Exupery a native code compiler." <exupery.lists.squeakfoundation.org> List-Unsubscribe: http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/exupery, mailto:exupery-request@lists.squeakfoundation.org?subject=unsubscribe List-Archive: http://lists.squeakfoundation.org/pipermail/exupery List-Post: mailto:exupery@lists.squeakfoundation.org List-Help: mailto:exupery-request@lists.squeakfoundation.org?subject=help List-Subscribe: http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/exupery, mailto:exupery-request@lists.squeakfoundation.org?subject=subscribe Errors-To: exupery-bounces@lists.squeakfoundation.org From: Chris Muller afunkyobject@yahoo.com To: exupery@lists.squeakfoundation.org Subject: question Date: Tue, 24 Oct 2006 19:16:16 -0700 (PDT)
Hi Chris,
Exupery should be able to handle Magma's materialization process. It doesn't really deal with the types of instance variables, just types in methods. A send to an instance variable is inlined and type guessed, not the instance variable itself. The same is probably true for Strongtalk.
That said, there is a small risk that any inlining heuristics may inline a proxy instead of the real domain object. This should be unlikely. Exupery only inlines primitives for now. Full method inlining is waiting for version 2.0. As everything is written in Smalltalk and planning inlining is separate from the compiler if it does inline proxys or the OIDs it should be easy to patch it to understand a little more about Magma.
Bryce
exupery@lists.squeakfoundation.org