Commit Graph

92 Commits

Author SHA1 Message Date
Doug Gregor
f04e916dff Fix issue with older compilers not handling MutableSpan code
The use of SendableCompletionHandlers here is completely incidental,
because it happened to be introduced at roughly the same time as the
bits we needed for MutableSpan. Fixes rdar://148072153.
2025-05-05 10:12:06 -07:00
Andrew Trick
c25d46320c Merge pull request #81105 from atrick/rdar146319009-borrow-constraint
Fix LifetimeDependenceDiagnostics: scoped dependence on a copy
2025-04-26 08:08:15 -07:00
Doug Gregor
050a514588 [Strict memory safety] Update standard library for unsafe treated as a call effect 2025-04-25 21:54:23 -07:00
Andrew Trick
e9d11283b9 Add _overrideLifetime to Span APIs
The implementation previously took advantage of a missing diagnostic. They
returned a borrowed Span with a dependency on a copied argument. This illegally
promotes the dependency. This is what the author intended to do (the
implementation was correct) but the compiler can't know that so the code needs
to be explicit about overriding the lifetime.
2025-04-25 17:58:24 -07:00
Guillaume Lessard
1f93566d69 Merge pull request #80517 from glessard/rdar138440979-MutableSpan-mutableBytes
[SE-0467] add mutableBytes to MutableSpan
2025-04-13 10:33:09 -07:00
Guillaume Lessard
cb390140d6 [stdlib] correct MutableRawSpan sizing 2025-04-10 10:31:18 -07:00
Guillaume Lessard
53b6b45bda [stdlib] update lifetime annotation syntax 2025-04-10 10:31:18 -07:00
Guillaume Lessard
77431f5217 [stdlib] add MutableSpan.mutableBytes 2025-04-10 10:31:05 -07:00
Slava Pestov
17868a7b50 CompatibilitySpan: Fix stdlib build on visionOS
Swift CI tests visionOS, but PR testing does not. Oops.
2025-04-09 12:37:45 -04:00
Slava Pestov
43da773685 stdlib: Update {Mutable,}{Raw,}Span availability for backward deployment 2025-04-07 21:32:48 -04:00
Slava Pestov
4c8c3aab4f CompatibilitySpan: Add MutableRawSpan.swift, MutableSpan.swift 2025-04-07 21:32:44 -04:00
Meghana Gupta
ef1e94577f Revert "Merge pull request #80540 from swiftlang/revert-80452-lifetimeinout"
This reverts commit 6eaa07a880, reversing
changes made to e75ee3f4cf.
2025-04-04 09:50:13 -07:00
Artem Chikin
39e1791b67 Revert "Add support for inout lifetime dependence" 2025-04-04 09:00:09 -07:00
Meghana Gupta
f4a980d62d Update stdlib 2025-04-03 17:32:09 -07:00
Allan Shortlidge
d2e8edfc93 stdlib: Address StrictMemorySafety warnings in Span related code. 2025-03-31 16:45:08 -07:00
Guillaume Lessard
c9b1ab8c42 Merge pull request #79650 from glessard/rdar138440979-MutableSpan
[SE-0467] MutableSpan, with mutableSpan properties to Array, ArraySlice and ContiguousArray.
2025-03-28 17:59:47 -07:00
Guillaume Lessard
abf29e7433 [stdlib] adjust MutableSpan’s element constraint 2025-03-27 17:19:15 -07:00
Guillaume Lessard
6a7dbb02f3 [stdlib] update lifetime annotations for Mutable[Raw]Span 2025-03-27 16:55:06 -07:00
Guillaume Lessard
7a160a2dfc [stdlib] de-underscore the extracting() methods 2025-03-27 16:55:05 -07:00
Guillaume Lessard
90684a87a3 [stdlib] add missing unsafe annotations 2025-03-27 13:34:34 -07:00
Guillaume Lessard
5a087d1190 [stdlib] annotate unsafe initializers 2025-03-27 13:34:34 -07:00
Guillaume Lessard
9553982253 [stdlib] use the internal unsafe-unwrap 2025-03-27 13:34:34 -07:00
Guillaume Lessard
4a78667db8 [stdlib] tweaks to MutableRawSpan 2025-03-27 13:34:33 -07:00
Guillaume Lessard
b39ee18f31 [stdlib] tweaks to MutableSpan 2025-03-27 13:34:33 -07:00
Guillaume Lessard
cbbe5df00b [stdlib] add unsafe annotations 2025-03-27 13:34:33 -07:00
Guillaume Lessard
484905b42d [stdlib] add extracting() to MutableSpan and MutableRawSpan 2025-03-27 13:34:32 -07:00
Guillaume Lessard
f214ef29d0 [stdlib] small spelling fixes 2025-03-27 13:34:32 -07:00
Guillaume Lessard
2fa2391c28 [stdlib] remove 2 symbols 2025-03-27 13:34:32 -07:00
Guillaume Lessard
30a3eaec4f [stdlib] add MutableSpan and MutableRawSpan 2025-03-27 13:30:13 -07:00
Ben Rimmington
2f9f5ffd85 [stdlib] Update element constraints of Span 2025-03-26 22:32:08 +00:00
Slava Pestov
5c1b20d2bc stdlib: Build libswiftCompatibilitySpan.dylib compatibility shim
This dynamic library contains a copy of the standard library's
exported entry points for the Span and RawSpan types. This will
allow backward deployment of code that uses those new types.
2025-03-24 17:56:44 -04:00
Guillaume Lessard
c21de062bb Merge pull request #78561 from glessard/rdar137710901-span-properties-prototype
[SE-0456] Span properties (part 1)
2025-03-24 08:47:47 -07:00
Guillaume Lessard
d5cb7ddf64 [stdlib] changes to lifetime annotations
Changes to lifetime annotations implemented in https://github.com/swiftlang/swift/pull/80064
2025-03-21 17:24:45 -07:00
Andrew Trick
c6116be7b5 Update stdlib source with explicit @lifetime(copy self) 2025-03-19 11:59:04 -07:00
Andrew Trick
411a65be2e Add @lifetime annotation to RawSpan.init() and Span.init()
These empty initializers have @lifetime(immortal).
2025-03-19 11:59:04 -07:00
Guillaume Lessard
39ca3dee4d Merge pull request #80003 from glessard/span-gardening
[stdlib] fix `Span`'s `Sendable` conformance
2025-03-13 18:54:42 -07:00
Guillaume Lessard
e81a2ee3a1 [stdlib] correctly express Span sendability 2025-03-13 13:54:18 -07:00
Doug Gregor
f668feaf64 [Standard library] Additional strict-memory-safety annotations 2025-03-10 15:42:05 -07:00
Guillaume Lessard
940628a23a [stdlib] add newly-required unsafe annotations 2025-03-10 15:20:51 -07:00
Guillaume Lessard
264747ac77 [stdlib] add span property to CollectionOfOne 2025-03-10 08:51:56 -07:00
Guillaume Lessard
85b53bb023 [stdlib] add bytes property to Span 2025-03-10 08:51:56 -07:00
Guillaume Lessard
7214717fba Merge pull request #79708 from glessard/span-gardening
[SE-0447] Span and RawSpan tests
2025-03-07 22:00:58 -08:00
Guillaume Lessard
4ec8c6e345 [stdlib] document unsafe behaviour for empty spans 2025-03-07 13:23:25 -08:00
Guillaume Lessard
3bd04acadb Apply suggestions from code review 2025-03-07 13:23:25 -08:00
Guillaume Lessard
5f24c66ea7 [stdlib] define properties also for ~Escapable elements
These should be available for any type of element `Span` can have in the future, including non-escapable elements. Making this change now avoids future churn.

Addresses rdar://146130842
2025-03-07 13:23:24 -08:00
Guillaume Lessard
dfb2e2f12e [stdlib] annotate uses of Range.init(_uncheckedBounds:) 2025-03-05 18:52:11 -08:00
Guillaume Lessard
66adb21502 [stdlib] annotate Span and RawSpan unsafe initializers 2025-03-05 17:15:03 -08:00
Guillaume Lessard
bd32aa5f6e [stdlib] remove an extracting overload
- `RangeExpression` implicitly involves bounds checking, so this was misleading.
2025-03-05 17:15:03 -08:00
Guillaume Lessard
712c79c711 [gardening] 80-column vigilance 2025-03-05 16:28:11 -08:00
Guillaume Lessard
1c1a845d67 [stdlib] fix withUnsafe[BufferPointer,Bytes] impls 2025-03-05 16:28:11 -08:00