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