Skip to content

[SR-1363] 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) #43972

Closed
@swift-ci

Description

@swift-ci
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.)

Metadata

Metadata

Assignees

No one assigned

    Labels

    AndroidPlatform: AndroidICULinuxPlatform: Linuxstandard libraryArea: Standard library umbrella

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions