Skip to content

[SE-0370] pointer family initialization improvements & better buffer slices #41608

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

Merged
merged 45 commits into from
Sep 14, 2022

Conversation

glessard
Copy link
Contributor

@glessard glessard commented Mar 1, 2022

Implementation of SE-0370 with improvements to pointer family initialization API, and to buffer slicing.

Resolves rdar://99461160

@glessard
Copy link
Contributor Author

glessard commented Mar 1, 2022

@swift-ci please smoke test

@glessard
Copy link
Contributor Author

glessard commented Mar 2, 2022

The draft needs a good number of @_alwaysEmitIntoClient attributes added.

@glessard
Copy link
Contributor Author

glessard commented Mar 8, 2022

@swift-ci please smoke test macOS platform

@glessard
Copy link
Contributor Author

@swift-ci please smoke test

@glessard glessard force-pushed the se-pointer-family-initialization branch from b1a5caa to 345756e Compare March 14, 2022 22:04
@glessard
Copy link
Contributor Author

@swift-ci please smoke test

@glessard
Copy link
Contributor Author

@swift-ci please smoke test macOS platform

@glessard glessard force-pushed the se-pointer-family-initialization branch from 345756e to cf1fc47 Compare March 19, 2022 00:12
@glessard
Copy link
Contributor Author

@swift-ci please smoke test

@glessard
Copy link
Contributor Author

@swift-ci please smoke test Linux platform

@glessard
Copy link
Contributor Author

@swift-ci please test

@glessard glessard force-pushed the se-pointer-family-initialization branch from 04888f3 to 9e5b246 Compare June 24, 2022 21:49
@glessard
Copy link
Contributor Author

@swift-ci please test

@glessard glessard force-pushed the se-pointer-family-initialization branch from 9e5b246 to 54941cc Compare June 27, 2022 16:10
@glessard
Copy link
Contributor Author

@swift-ci please test

1 similar comment
@glessard
Copy link
Contributor Author

@swift-ci please test

@glessard glessard changed the title [DNM] SE pitch: pointer family initialization improvements & better buffer slices [DNM][SE-0370] pointer family initialization improvements & better buffer slices Aug 17, 2022
@theblixguy theblixguy added the swift evolution pending discussion Flag → feature: A feature that has a Swift evolution proposal currently in review label Aug 17, 2022
@glessard
Copy link
Contributor Author

@swift-ci Please Test Source Compatibility

@glessard
Copy link
Contributor Author

@swift-ci please test

@glessard glessard force-pushed the se-pointer-family-initialization branch from c57f285 to c914cc7 Compare August 24, 2022 22:01
@glessard
Copy link
Contributor Author

@swift-ci please test macOS platform

@glessard
Copy link
Contributor Author

@swift-ci please test

@glessard
Copy link
Contributor Author

@swift-ci please test linux platform

@glessard glessard force-pushed the se-pointer-family-initialization branch from 4f8dd21 to efa9323 Compare September 7, 2022 21:30
@glessard glessard force-pushed the se-pointer-family-initialization branch from efa9323 to fb9bff3 Compare September 8, 2022 17:04
@glessard glessard force-pushed the se-pointer-family-initialization branch from fb9bff3 to ffa7b0e Compare September 9, 2022 10:28
@benrimmington
Copy link
Contributor

For the "may overlap" vs "must not overlap" notes, could different types of asides be used?
(If those DocC features are supported in the standard library.)

@glessard
Copy link
Contributor Author

@benrimmington I believe we support all of docc; I was unaware of the "Warning" aside. I will improve this in a followup PR.

@glessard
Copy link
Contributor Author

@swift-ci please test and merge

@benrimmington

This comment was marked as outdated.

@glessard
Copy link
Contributor Author

glessard commented Sep 10, 2022

Should these all be @available(SwiftStdlib 5.0, *) or earlier?

I will try a different way to define these. Earlier they had "passed" the ABI checker test because I had wrongly marked them as @_alwaysEmitIntoClient.

@glessard
Copy link
Contributor Author

FAIL: Swift-validation(linux-x86_64) :: SIL/parse_stdlib.sil

I will need help for this one.

@glessard
Copy link
Contributor Author

The ABI checker doesn't understand primary associated types?

I'll revert the copyBytes change and deal with it elsewhere.

return startIndex.advanced(by: count)
}

var (iterator, copied) = source._copySequenceContents(initializing: self)
Copy link
Member

@lorentey lorentey Sep 11, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Huh, is there a reason we aren't calling _copyContents here? Now that we require the source to fit in the target, its precondition doesn't seem problematic.

Copy link
Contributor Author

@glessard glessard Sep 12, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seemed redundant to have the full _copyContents only to double-check its work after it returns. Every stdlib type that implements a _copyContents fast path also has wCSIA.

@glessard
Copy link
Contributor Author

@swift-ci please test macOS platform

@glessard
Copy link
Contributor Author

@swift-ci please test linux platform

@glessard
Copy link
Contributor Author

@swift-ci please test linux platform

@glessard
Copy link
Contributor Author

@swift-ci please test macOS platform

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
swift evolution approved Flag → feature: A feature that was approved through the Swift evolution process
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants