Skip to content

Conversation

lynchsft
Copy link
Collaborator

@lynchsft lynchsft commented Jun 2, 2025

Addresses #358

N.B. @t089

@lynchsft lynchsft force-pushed the depend_on_foundation_essentials branch from b0fd085 to dfb2075 Compare June 2, 2025 12:15
@lynchsft lynchsft requested a review from t089 June 2, 2025 12:16
Copy link

codecov bot commented Jun 2, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 90.94%. Comparing base (9281f8c) to head (5f525b9).

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #453      +/-   ##
==========================================
- Coverage   91.31%   90.94%   -0.37%     
==========================================
  Files          21       21              
  Lines        1797     1790       -7     
==========================================
- Hits         1641     1628      -13     
- Misses        156      162       +6     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@lynchsft
Copy link
Collaborator Author

lynchsft commented Jun 2, 2025

Hmmm. Seems some cleanup is due around the use of NSNull. It strikes me as an odd choice compared to Optional.none. @t089 do you recall any conversation with jpsim about it?

@lynchsft
Copy link
Collaborator Author

lynchsft commented Jun 3, 2025

PR supplying NSNull where it is missing: #454

lynchsft added 3 commits June 9, 2025 22:45
Replace CharacterSet with Set<Character>
Replace NSRegularExpression with Regex
Provide an NSNull definition where FoundationEssentials is imported.
@lynchsft
Copy link
Collaborator Author

lynchsft commented Jun 10, 2025

@t089 This effort has lead to the necessity of replacing NumberFormatter, which I think is a really terrible decision for all the platforms that do have NumberFormatter.

I've engaged this thought process so far as an abstract exercise – the smallest footprint is the best footprint. But in the face of this challenge, I'll like to ask a more practical question. What kind of platform would actually benefit from diminishing the dependency to merely FoundationEssentials?

Microcontrollers? Kernel modules? What was on your mind when you initially opened the issue? What is on your mind now?

@t089
Copy link

t089 commented Jun 11, 2025

That is unfortunate indeed. I think the original observation is valid for any non-Darwin platform:

As an example, a simple "Hello World" Swift binary compiled with swift build -c release --static-swift-stdlib on swift:5.7.1 weighs in at 7.6M. Adding the Yams dependency increases the binary size to 50M.

For a fundamental library such as yams it feels wrong to incur this binary size cost.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants