Some answers to my own questions...
Lucas Dixon wrote:
So now I seem to have 20MB of code left - still much more than I would expect, but perhaps avoiding inlining functors will improve on this...
saves only 1MB, despite the fact that I have many deeply nested functors in my code. Changing the max inline depth also seems to have pretty much no change on the size of generated code.... so now I still wonder how I got 20MB of compiled code, but at least its not 200 :)
I'm surprised that shareCommonData was so effective as I had almost only functions... does shareCommonData share functions that are the same? (David: I think I remember you telling me it did not - but I can't remember why...?)
I was thinking about calling PolyML.shareCommonData on every defined value - would this do more than on PolyML.rootFunction ? or does polyml already ignore unused functions?
I still don't know about this... I was wondering if its easy to shareCommonData for all values... I guess I can write a function, that generates a file that when run then does this... will try that some other time... or does PolyML.rootFunction include all data?
What happens to exceptions which are raise after PolyML.Compiler.forgetXXX where the exception would normally contain type-names ? are they also forgotten?
it appears that the data associated with exceptions is simply not printed.
best, lucas