On Apr 5, 2013, at 7:52 AM, Yanni Chiu <yanni@rogers.com> wrote:
I deploy without a .changes file, but the image still compiles code at runtime. The methods are just accessor methods, and no image save is ever done.
Using Pharo-2.0 (instead of Pharo-1.4), I now get a walkback:
VM: unix - i686 - linux-gnu - NBCoInterpreter NativeBoost-CogPlugin-EstebanLorenzano.18 uuid: a53445f9-c0c0-4015-97a3-be7db8d9ed6b Mar 13 2013 NBCogit NativeBoost-CogPlugin-EstebanLorenzano.18 uuid: a53445f9-c0c0-4015-97a3-be7db8d9ed6b Mar 13 2013 git://gitorious.org/cogvm/blessed.git Commit: 412abef33cbed05cf1d75329e451d71c0c6aa5a7 Date: 2013-03-13 17:48:50 +0100 By: Esteban Lorenzano <estebanlm@gmail.com> Jenkins build #14535
Image: Pharo2.0 [Latest update: #20593]
CompiledMethod(Object)>>doesNotUnderstand: #copyWithTempsFromMethodNode: CompiledMethod>>putSource:fromParseNode:inFile:withPreamble: ...
It seems that #putSource:fromParseNode:inFile:withPreamble: calls #copyWithTempsFromMethodNode:, when there is no .changes file, but that method is not in the image.
Is it safe to just patch the code to do nothing? The method comment says that the method temp names are saved for decompilation.
Am a bugâ¦. in 2.0 I started to simplify the whole source code mess⦠it turns out that the whole (quite tricky) concept of encoding temp names in the trailer is not needed. So it got replaced by just putting all source in the trailer if needed (e.g. dots or when not having the changes file). It seems that the method putSource:fromParseNode:inFile:withPreamble: got somehow a revert (or I forgot to change the sender when I did the change?). Instead of #copyWithTempsFromMethodNode: it should just call #copyWithSource: (I will out a bug report and fix for both 2.0 on the tracker later) In general, there is still quite some opportunity for radical simplification in the whole changes/sources story⦠Marcus