Hi Davorin,

I have one ancient Pier 1.x kernel on which I might try that, once I
find some time. Do you think that PRKernelCodeExporter might have a
chance working on old kernels (there has been some variables
additions, removing, etc).

I've only tried it on a few Pier 2 kernels. Today I've made some revisions to the code to hopefully make it more compatible with Pier 1.x kernels, however you will at least need to modify a method #compile:into:classified: which uses grease's GRPlatform that is only available with Seaside 3.0. There are probably other issues with exporting Pier 1.x kernels - be great for someone to try and see how useful the code is.

I've made a couple of other changes:

* Renamed PRKernelCodeExporter to PRPier2CodeExporter to be explicit that it's designed for Pier 2 with Magritte 2 and will have to be modified for exporting for Pier with Magritte pragmas (though it should work with Pier 1 and Magritte 1 with the above caveats)

* added PRPier2CodeExporter>>#exportMigratedKernel: to export the kernel in a form ready for Pier with Magritte pragmas - the behaviour of PRComponent based structures is changed to use the new #prototypeInstance: rather than #write:using: semantics.

So to check how well the exporter will work with your existing kernel:

PRPier2CodeExporter exportKernel: (PRKernel instances detect: [: each | each name = 'pier']).

If the exporter works OK then prepare to upgrade with:

PRPier2CodeExporter exportMigratedKernel: (PRKernel instances detect: [: each | each name = 'pier']).


Two major caveats: 
1) the exporter currently doesn't export owner, group or other permissioning details on the structures.
2) the exporter current doesn't export the users of the kernel. 

Both are quite possible to do, I just haven't got round to it yet.

Nick