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