Diego and I are looking at migrating the moose site to a newer pier. We use the PierCodeExporter for that. The moose site is a pretty old pier (Pier1 on Pharo 1.0rc1 10492). It doesn’t have grease loaded. The exporter doesn’t use a lot of grease functionality. We could have tried loading Grease, but decided to just copy paste the functionality needed. http://smalltalkhub.com/mc/Pier/Pier3Addons/main/Pier-Exporter1-DiegoLont.1....
Then the compilation fails because there are too many news entries, resulting in a method that is too large to compile. In PRKernelCodeExporter>>writeCodeFor: structure we changed the repeated structure addChild: (self newsABCD: aKernel). to an array of selectors with a perform: loop.
+ stream << ' #('. + structure enumerator do: [ :each | stream << ' #''' << (each asSelector) << ':''' ] separatedBy: [ stream cr ]. + stream << ' ) do: [ :each | ' << String cr << ' structure addChild: (self perform: each with: aKernel) ].' << String cr. - - structure enumerator do: [ :each | - stream << ' structure addChild: (self ' << (each asSelector) << ': aKernel).' << String cr ].
This was enough for moose, but needs method splitting for larger sites. http://smalltalkhub.com/mc/Pier/Pier3Addons/main/Pier-Exporter-Code-DiegoLon...
With this we are able to generate the code. Next step is loading in a newer Pier.
to be continued. Stephan
Great!
Please keep us posted, Doru
On Mon, Feb 3, 2014 at 11:01 AM, Stephan Eggermont stephan@stack.nl wrote:
Diego and I are looking at migrating the moose site to a newer pier. We use the PierCodeExporter for that. The moose site is a pretty old pier (Pier1 on Pharo 1.0rc1 10492). It doesn't have grease loaded. The exporter doesn't use a lot of grease functionality. We could have tried loading Grease, but decided to just copy paste the functionality needed.
http://smalltalkhub.com/mc/Pier/Pier3Addons/main/Pier-Exporter1-DiegoLont.1....
Then the compilation fails because there are too many news entries, resulting in a method that is too large to compile. In PRKernelCodeExporter>>writeCodeFor: structure we changed the repeated structure addChild: (self newsABCD: aKernel). to an array of selectors with a perform: loop.
stream << ' #('.
structure enumerator do: [ :each | stream << ' #''' <<
(each asSelector) << ':''' ] separatedBy: [ stream cr ].
stream << ' ) do: [ :each | ' << String cr << ' structure
addChild: (self perform: each with: aKernel) ].' << String cr.
structure enumerator do: [ :each |
stream << ' structure addChild: (self ' <<
(each asSelector) << ': aKernel).' << String cr ].
This was enough for moose, but needs method splitting for larger sites.
http://smalltalkhub.com/mc/Pier/Pier3Addons/main/Pier-Exporter-Code-DiegoLon...
With this we are able to generate the code. Next step is loading in a newer Pier.
to be continued. Stephan _______________________________________________ Moose-dev mailing list Moose-dev@iam.unibe.ch https://www.iam.unibe.ch/mailman/listinfo/moose-dev