Description
Previous ID | SR-1363 |
Radar | None |
Original Reporter | ewmailing (JIRA User) |
Type | Task |
Status | Resolved |
Resolution | Done |
Additional Detail from JIRA
Votes | 0 |
Component/s | Standard Library |
Labels | Task, Android, ICU, Linux |
Assignee | None |
Priority | Medium |
md5: cec3a6463bc79497c00bcd8610b07292
Issue Description:
Is there a way to cut down the size of ICU and document what is actually used (to support future efforts to cut down ICU)?
The size of ICU is a horrible problem for systems that don’t provide this dependency. SteamOS (Linux) and Android are the first two systems I’ve encountered that suffer from this. Particularly on Android, where Google imposes a 50MB apk size limit, and adb/USB transfers to device can be slow slow that Android Studio sometime times-out the install transfer because the .apk is too big. Also due to dll-hell and version conflicts due to system libraries internally using their own private copies of libICU in which I’m proposing libICU be statically linked for Swift on these platforms, this makes each Swift library duplicate the ICU bloat.
I know there are people are interested of using Swift on embedded platforms where resources are even tighter. This is going to be a major deterrent for Swift adoption for these platforms.
Incidentally, I noticed from WebKit, that Apple has a special cut down build of ICU called libICUCore. (My prior attempt to build it for other platforms was a dismal failure as the Makefile seemed to be complicated and very Apple specific.)