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.
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.
With this we are able to generate the code. Next step is loading in a newer Pier.
to be continued.