Harking back to my prior issues I have built a bowline application
(minimal) just to see what the sizing is like. I can, as of yet, only
vouch for my experience on OSX. From what I can gather ruby is indeed
packaged (personally think this is a good idea) though oddly it would
appear that both i386-darwin & i686-linux libraries are packaged into
the OSX app which seems a touch wasteful! Additionally gems also
appear to be bundled into the app however again there appears to be
both the fully expanded versions and the cached (compressed) versions.
The sizes are as follows:
42M Test.app
26M Test_Less.app (After the surplus libraries and gems are removed)
At the moment I am playing with a tiny little implementation of 7z
decoding which just so happens to be pretty fantastic at compressing
binary data and the likes so here is how big the distributable would
be if it was compressed with 7z which would obviously be decompressed
automatically prior to first program execution.
4.8M Test_Compress.app (Contents compressed)
4.5M Test_Strip_Compress.app (Executables stripped then contents compressed)
This is significantly more reasonable for a little distributed application!
So, back to more questions:
- Although there is no doubting that some of the included gems may
well be needed for bowline to operate is the current bowline-gen app
the "minimal" configuration? If not what is the minimal configuration?
- The major weight in the application is the main executable file
(9.7M in my case) is there any way that this can be significantly
reduced?
- Is there a way to cut down the size of the distributed ruby implementation?
Roja