Doug Gregor
0d296b5f89
[Standard library] Address remaining memory-safety warnings
2025-03-25 10:57:17 -07:00
Doug Gregor
22eecacc35
Adopt unsafe annotations throughout the standard library
2025-02-26 14:28:01 -08:00
Holly Borla
dc3893d9ca
[Concurrency] Remove redundant Sendable conformances in the standard library.
...
These conformances are all redundant because the `Sendable` conformance is
inherited from a superclass.
2024-07-25 21:51:56 -07:00
Alejandro Alonso
f9f640b141
Sendablize the standard library
...
oops dont add this flag
no more nonisolated
2024-03-05 15:02:09 -08:00
Josh Soref
644c18ca9b
Spelling stdlib ( #42444 )
...
* spelling: against
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: algorithmic
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: alignment
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: anything
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: architectural
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: architecture
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: are
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: artificial
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: aside
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: available
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: being
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: bidirectional
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: characters
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: circular
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: compatibility
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: compiled
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: correctly
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: covers
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: declaration
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: dependencies
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: descriptor
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: dictionaries
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: dynamic
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: greater
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: hierarchy
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: immortal
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: initialize
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: initializes
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: iterable
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: message
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: minimum
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: multiple
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: originally
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: simplified
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: sophisticated
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: trivia
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: wasn't
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
Co-authored-by: Josh Soref <jsoref@users.noreply.github.com >
2022-04-19 14:02:43 -07:00
David Smith
1efa946caf
Remove stdlib and runtime dependencies on Foundation and CF
2019-09-12 18:03:14 -07:00
Arnold Schwaighofer
fe69a86929
Revert "Remove stdlib and runtime dependencies on Foundation and CF"
...
It is causing bots to fail.
* Revert "The __has_include(<os/system_version.h>) branch here wasn't quite right, we'll just use the dlsym one for now"
This reverts commit f824922456 .
* Revert "Remove stdlib and runtime dependencies on Foundation and CF"
This reverts commit 3fe46e3f16 .
rdar://54709269
2019-08-26 13:00:08 -07:00
swift-ci
3256392211
Merge pull request #26630 from Catfish-Man/shim-shim-sher-ee
2019-08-23 17:08:59 -07:00
David Smith
3fe46e3f16
Remove stdlib and runtime dependencies on Foundation and CF
2019-08-23 14:10:23 -07:00
Greg Titus
dd4c6053a7
Warning fixes for core stdlib.
2019-08-15 10:14:50 -07:00
Ben Cohen
e9d4687e31
De-underscore @frozen, apply it to structs ( #24185 )
...
* De-underscore @frozen for enums
* Add @frozen for structs, deprecate @_fixed_layout for them
* Switch usage from _fixed_layout to frozen
2019-05-30 17:55:37 -07:00
Mike Ash
3ad6e46930
[Stdlib] Fix warnings about designated initializers in SwiftNativeXXX classes.
2019-05-06 17:15:53 -04:00
Mike Ash
fa5888fb3f
[Stdlib][Overlays] Rename various classes to avoid conflicting ObjC names.
...
Old Swift and new Swift runtimes and overlays need to coexist in the same process. This means there must not be any classes which have the same ObjC runtime name in old and new, because the ObjC runtime doesn't like name collisions.
When possible without breaking source compatibility, classes were renamed in Swift, which results in a different ObjC name.
Public classes were renamed only on the ObjC side using the @_objcRuntimeName attribute.
This is similar to the work done in pull request #19295 . That only renamed @objc classes. This renames all of the others, since even pure Swift classes still get an ObjC name.
rdar://problem/46646438
2019-01-15 12:21:20 -05:00
Ben Cohen
1673c12d78
[stdlib] Replace "sanityCheck" with "internalInvariant" ( #20616 )
...
* Replace "sanityCheck" with "internalInvariant"
2018-11-15 20:50:22 -08:00
Karoy Lorentey
096903732c
[stdlib] Make _NSDictionaryCore, _NSDictionary internal
...
These shadow protocols don’t add any real type safety, and exposing them in the ABI seems unnecessary.
2018-11-15 09:54:25 +00:00
Karoy Lorentey
803a43c537
[stdlib] Set, Dictionary: Change second word in Cocoa indices to an integer offset
...
_BridgeObject turned out not to be a great choice, because it doesn’t support tagged values on 32-bit platforms. Extracting the offset from index storage is a good idea anyway!
2018-10-27 01:11:59 +01:00
Karoy Lorentey
b7067801de
[stdlib] Set, Dictionary: Remove allKeys shim wrappers from ABI
2018-10-26 23:53:34 +01:00
Karoy Lorentey
a8f29a3ce5
[stdlib] Simplify _HeapBuffer; limit its scope and rename to _BridgingBuffer
...
- HeapBuffer was at the wrong abstraction level, for no good reason. We have ManagedBuffer for the general case; we don’t need a slightly less general variant of it.
- Current usages of HeapBuffer are hyper specific: they all are flat buffers of AnyObjects, facilitating bridging. It makes sense to dedicate _HeapBuffer for this single usecase.
- Introduce a dedicate ManagedBuffer subclass for bridging buffers. This will make it slightly easier to recognize these in heap dumps.
- Inlinability audit.
2018-10-26 23:53:06 +01:00
Karoy Lorentey
697ad69d24
[stdlib] Set, Dictionary: Reorganize equality checks to fix Linux builds
2018-10-05 12:33:25 +01:00
Karoy Lorentey
e24f2ba6e5
[stdlib] Set, Dictionary: Flatten switch statements
...
The optimizer dislikes nested switch statements; flatten them out to simplify optimization and to hopefully speed things up a little.
2018-10-05 12:33:25 +01:00
Karoy Lorentey
6e671b6631
[stdlib] Allow native dictionaries to advance Cocoa indices
2018-10-03 21:05:46 +01:00
Karoy Lorentey
df73981f31
[stdlib] Set, Dictionary: Remove bad @_effects attribute
2018-09-29 02:30:48 +01:00
Karoy Lorentey
526162f706
[stdlib] Set, Dictionary: Fix uniqueness checking for Cocoa indices
2018-09-29 02:29:32 +01:00
Karoy Lorentey
15f4b91762
[stdlib] Set, Dictionary: Hide Cocoa index storage classes
...
Replace the single typed storage reference with two _BridgeObjects; this should give us plenty of space to play around with alternative representations.
2018-09-28 20:59:14 +01:00
Karoy Lorentey
900c930b4b
[stdlib] Turn _CocoaDictionary.Index into a COW value type with opaque storage
2018-09-28 18:25:16 +01:00
Karoy Lorentey
cceb389718
[stdlib] Set, Dictionary: Make more Cocoa indexy things non-inlinable
2018-09-28 15:18:15 +01:00
Karoy Lorentey
d477420ee4
[stdlib] Set, Dictionary: Make Cocoa indices resilient for now
2018-09-28 15:18:15 +01:00
Karoy Lorentey
e080bab5e5
Merge pull request #19602 from lorentey/dict-iterators
...
[stdlib] Dictionary.Keys, .Values: Implement custom iterators
2018-09-28 04:18:15 +01:00
Karoy Lorentey
a05a66cdce
[stdlib] Dictionary.Keys, .Values: Implement custom iterators
2018-09-28 02:10:17 +01:00
Karoy Lorentey
d3178a0394
[stdlib] Tighten up Cocoa index validation for native sets/dictionaries
...
Like before, allow the use of Cocoa indices to access native sets/dictionaries, but approximate the same mutation count-based check as we do for native indices.
- Ensure that native collections that were converted from Cocoa have an age generated from the address of the original Cocoa object.
- To get the age of a Cocoa index, regenerate one from the object embedded in it.
- Compare self.age to index.age and trap if it doesn’t match.
# Conflicts:
# stdlib/public/core/HashTable.swift
2018-09-27 19:11:19 +01:00
Karoy Lorentey
f73dca8050
[stdlib] _CocoaSet.element, _CocoaDictionary.key: New properties
2018-09-27 19:08:38 +01:00
Karoy Lorentey
863e8b6373
[stdlib] Set, Dictionary: Add a message to fast enumeration state checks
2018-09-27 01:49:51 +01:00
Karoy Lorentey
efe6f38d40
[stdlib] _NativeDictionary.Index: Rename to “Bucket”
...
Update code to reflect the new name, including in method and variable names.
2018-09-27 00:12:20 +01:00
swift-ci
aca00505d9
Merge pull request #19496 from lorentey/hashing-consuming-audit
2018-09-25 11:27:59 -07:00
Mike Ash
1fb165a0ea
Merge branch 'master' into rename-conflicting-classes-and-methods
2018-09-24 10:17:22 -04:00
Karoy Lorentey
c3bc84e680
[stdlib] Set, Dictionary: __consuming/__owned audit
...
Add __consuming and __owned to Set and Dictionary members where applicable.
Ignore compiler intrinsics for casting for now — their ARC behavior is covered by unit tests that need to be updated.
2018-09-24 13:46:40 +01:00
Karoy Lorentey
e9186000d0
[stdlib][NFC] Break Set/Dictionary implementation into smaller files
...
This has long been overdue; splitting the Dictionary.swift/Set.swift monoliths makes for a far less confusing editing experience.
2018-09-23 01:38:37 +01:00