The new Text class and the ICU dependencies are where all of the excess size is coming from. It’s pity there isn’t a flag that says “Ignore multi-language support” or “Use only deprecated String class” for the build settings because you get all of that ICU stuff even if you’re not using it.
[quote=150473:@Tim Jones]The new Text class and the ICU dependencies are where all of the excess size is coming from. It’s pity there isn’t a flag that says “Ignore multi-language support” or “Use only deprecated String class” for the build settings because you get all of that ICU stuff even if you’re not using it.
[/quote]
You’d need to be able to strip the framework itself which isn’t likely to happen
Thanks for the ideas : I did try the obvious test : make an app which doesn’t use the Text class, and then delete the icut53 DLL file, but the app won’t launch then.
It is possible that we can shrink the size of the DLL in a future release, but like Norman mentioned, the requirement is unlikely to completely disappear.
The application size is also important to us. We had planned on using a Linux Console application with Amazon AWS Lambda but it currently only allows a 20MB compressed package size. Not sure how big our app is compressed but this might not be possible anymore.
This is where static linking + dead code stripping would help in a big way.
Would there be any way to have the entire new framework stripped out? Many of us are bothered by this file size increase especially since it appears to be mandatory, even if we aren’t using Xojo.Core features at all. Using an older version of Xojo is an option of course but there are so many bug fixes in the new version (including IDE fixes) that this is problematic for other reasons.
Quite literally this would require removing the TEXT data type, the new DATE type & all formatting and anything associated with locales from the CORE language and AUTO etc. And I’m sure other components that I’ve overlooked.
This has to do with how DLL’s work, the compiler works etc
I see this is “extremely unlikely”
Not intentionally. Travis reviewed it and corrected it. It did not live to see the light of day … But it looks like there are some improvements which will make the Linux folks happy, and “may” reduce the ICU DLL hit on Windows to around 6.5MB. Better than what it was, right?
I’ve noticed in the Feedback case that the solution to this under Linux will be to use the ICU library provided with the operating system.
I see two problems with this:
If you are running on a 64 bit system with 32 bit compatibility installed there probably won’t be a 32 bit ICU library available.
I imagine Xojo apps will rely on a certain version of the ICU library. I can see situations where the Xojo app is running on a system which has an incompatible version of ICU and cannot be changed due to the system being locked down.
Here’s a link to the case: <https://xojo.com/issue/37644>
(note to everyone: in Feedback app, click the gear icon and choose “copy link” to get a nice URL)
There is a note saying that they “will reduce the on-disk size” but I don’t think the 6.5MB is the new target.
From the case, it sounds like the 6.5MB is the existing size of the ICU DLLs when zipped (e.g. they start around 22MB and can be zipped to 6.5).
So we don’t as yet know what the new smaller size would be, should they implement this.