-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Use .so
as the default dynamic library extension on unknown OSes
#7417
Draft
kateinoigakukun
wants to merge
1
commit into
swiftlang:main
Choose a base branch
from
kateinoigakukun:pr-ef32ce7e9ba71362bd857988fe785bf076aef71b
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we emit a diagnostic message as a warning here instead?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sounds resonable to me
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
On second thought, I think emitting diagnostic here does not help users because users usually don't have any actionable fixes to suppress such warnings.
So I'd like to keep this as is, WDYT?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If it's an unknown OS, an actionable fix is to submit a feature request on SwiftPM to add support for such OS. Otherwise it seems wrong that we're silently using a file extension that can be incorrect without giving users any clues as to what could be wrong.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If you don't want to see this warning for
armv7em-none-none-eabi
, I think we should distinguish herenone
and triples that we just don't know how to handle and stick to.so
in anticipation that could work (supposedly).There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was thinking of providing ways to explicitly configure their expected file extension as an escape hatch via environment variable or configuration file.
e.g.
SWIFTPM_TRIPLE_ARMV8EM_NONE_NONE_EABI_DYLIBEXT=.so
orThere was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Full triple instead of platform because we expect it may change between the specified OS?
I'm not sure this is really the right place for the warning anyway though. If a platform is unsupported, then it seems likely we'd fail elsewhere. IMO we should either decide that we should have a warning for that case in general (outside of this particular call) with the escape hatch for known-customizable cases, or not diagnose.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Exactly. e.g. only
none
OS information does not help decide the extension.Yeah, totally agree. Having a warning and adding such escape hatch at the same time sounds like the right way to go to me because such flexibility would be quite beneficial for Embedded scenarios. (BTW Rust toolchain allows developers to have flexible target specification and we can learn from them)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fair enough, then this can go in as is unless Ben has any objections, and it needs a test.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The isDarwin check should be changed to isApple.
<arch>-apple-<os>
should be almost always be a dylib