Commit Graph

16 Commits

Author SHA1 Message Date
Philippe Hausler
d37b6bc074 [Observation] Reduce observation scope to only apply to tracking cases and re-work the macro to utilize more robust emissions (#65528) 2023-05-09 09:28:25 -07:00
Philippe Hausler
7fd2f52af8 [Observation] Refactor for state machine (and behavior robustness) and adjust protocol requirement names (#64414)
* [Observation] Change visibility of observation runtime functions to be hidden

* [Observation] Update API requirements for Observable AsyncSequence names and alter the behavior of value emissions to be based upon transactionality

* [Observation] Slight naming alteration of isolation -> isolatedTo

Note: This re-enables the previously disabled tests since the implementation should be considerably more robust to hangs.
2023-03-16 22:11:23 -07:00
Philippe Hausler
1e4e7f7655 [Observation] Update the SPI entries for SwiftUI for direct tracking access (#64198) 2023-03-08 09:04:54 -08:00
Philippe Hausler
81aa9b51ff [Observation] Add some behaviroal tests for changes, transactions, and tracking (#64179)
* [Observation] Add some behaviroal tests for changes, transactions, and tracking

* Correct transactions to properly suspend when awaiting for changes
2023-03-08 09:04:08 -08:00
Doug Gregor
72357c7aea Disable the _StringProcessing import in the Observation module
Fixes rdar://106374161
2023-03-07 12:39:55 -08:00
Philippe Hausler
bbe45fceb1 [Observation] Correct potential alignment of locks to ensure that os_unfair_lock is properly at an aligned address (#64153) 2023-03-07 09:19:10 -08:00
Doug Gregor
2ac6aba256 Use proper feature check style for this 2023-03-06 12:29:20 -08:00
Doug Gregor
56249ccd47 Enable "Macros" feature in stdlib/Observation for older compilers 2023-03-06 08:50:30 -08:00
Doug Gregor
3321100c23 [Macros] Add #ifs around macro declarations in standard library
Older toolchain compilers don't have macros enabled by default, so we
need to keep these around longer.
2023-03-06 08:15:30 -08:00
Philippe Hausler
d8f552fee8 [Observation] Add names for attached member names for Observable macro (#64069) 2023-03-05 14:11:59 -08:00
Doug Gregor
342184e37d [CMake] Pass C flags through to swiftObservation build. 2023-03-03 16:50:52 -08:00
Doug Gregor
d6962f3db8 We don't need to check SWIFT_OBSERVATION_MACROS 2023-03-03 16:49:09 -08:00
Doug Gregor
72434ac830 The Observation library doesn't depend on swift-syntax any more 2023-03-03 14:59:27 -08:00
Doug Gregor
5786cbd602 [Macros] Make the compiler frontend depend on the macro plugin libraries
The dependency of the Observation library on the observation macro
plugin introduces a direct dependency of a target library on a host
library, (lib -> stdlib) that we'd like to avoid. Instead, make the
Swift frontend binary depend on the macro plugin libraries that we
build, so that it's the complete host-side stack.
2023-03-03 14:58:42 -08:00
Philippe Hausler
40c277b245 Observation and associated macros 2023-03-02 15:30:59 -08:00
Philippe Hausler
8a7f6009b9 Initial draft of observation 2023-02-27 17:09:00 -08:00