From: duerst@... Date: 2021-03-21T10:16:41+00:00 Subject: [ruby-core:102973] [Ruby master Feature#17730] Ruby on macOS transitively links to ~150 dylibs Issue #17730 has been updated by duerst (Martin D�rst). rickmark (Rick Mark) wrote: > Further CoreFoundation is only used for one call in the entire codebase of `CFStringNormalize(m, kCFStringNormalizationFormC);` - if we can replace this, Ruby could work with only `libSystem` and `libgmp`. I'm not at all familiar with the details on a Mac, nor with this library or function in particular. But Unicode String Normalization is provided by String#unicode_normalize, which is implemented in pure Ruby. There may be a bit of glue code necessary, but essentially, the above call should be convertible to something close to `m.unicode_normalize(:nfc)`. ---------------------------------------- Feature #17730: Ruby on macOS transitively links to ~150 dylibs https://bugs.ruby-lang.org/issues/17730#change-91036 * Author: rickmark (Rick Mark) * Status: Closed * Priority: Normal ---------------------------------------- By using `-framework Security` and `-framework Foundation` Ruby 3 pulls in about 150 dylibs when compiled for macOS By using CoreCrypto / CoreFoundation I was able to reduce this to ~50. This greatly reduces Ruby's surface area and dependencies on macOS. Further CoreFoundation is only used for one call in the entire codebase of `CFStringNormalize(m, kCFStringNormalizationFormC);` - if we can replace this, Ruby could work with only `libSystem` and `libgmp`. ---Files-------------------------------- ruby_deps_after.txt (2.24 KB) ruby_deps_before.txt (9.81 KB) 0001-Remove-unneeded-dependencies-on-macOS.patch (2.36 KB) -- https://bugs.ruby-lang.org/ Unsubscribe: