You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+20-1Lines changed: 20 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,9 +1,25 @@
1
1
# CHANGELOG
2
2
3
-
> **Note**\
3
+
> [!NOTE]
4
4
> This is in reverse chronological order, so newer entries are added to the top.
5
5
6
6
## Swift 6.0
7
+
*[SE-0352][]:
8
+
The Swift 6 language mode will open existential values with
9
+
"self-conforming" types (such as `any Error` or `@objc` protocols)
10
+
passed to generic functions. For example:
11
+
12
+
```swift
13
+
functakeError<E: Error>(_error: E) { }
14
+
15
+
funcpassError(error: anyError) {
16
+
takeError(error) // Swift 5 does not open `any Error`, Swift 6 does
17
+
}
18
+
```
19
+
20
+
This behavior can be enabled prior to the Swift 6 language mode
21
+
using the upcoming language feature `ImplicitOpenExistentials`.
22
+
7
23
*[SE-0422][]:
8
24
Non-built-in expression macros can now be used as default arguments that
9
25
expand at each call site. For example, a custom `#CurrentFile` macro used as
@@ -285,6 +301,8 @@ concurrency checking.
285
301
286
302
## Swift 5.9.2
287
303
304
+
### 2023-12-11 (Xcode 15.1)
305
+
288
306
* [SE-0407][]:
289
307
290
308
Member macros can specify a list of protocols via the `conformances` argument to the macro role. The macro implementation will be provided with those protocols that are listed but have not already been implemented by the type to which the member macro is attached, in the same manner asextension macros.
@@ -10133,6 +10151,7 @@ using the `.dynamicType` member to retrieve the type of an expression should mig
3.`docker run -it —cpus <CPUs> —memory <Memory> -v ~/<path to your local sources>:/src-on-host:cached —name lsan-reproducer —cap-add=SYS_PTRACE —security-opt seccomp=unconfined <hash that docker build outputs> bash`
7
+
3.`docker run -it --cpus <CPUs> --memory <Memory> -v ~/<path to your local sources>:/src-on-host:cached --name lsan-reproducer --cap-add=SYS_PTRACE --security-opt seccomp=unconfined <hash that docker build outputs> bash`
8
8
- The `-cap-add` and `-security-opt` arguments are needed to run LLDB inside the Docker container
9
-
4. Copy the sources to inside the Docker container: `cp /src-on-host/* ~`
9
+
4. Copy the sources to inside the Docker container: `cp -r /src-on-host/* ~`
10
10
- We need to to this because the build needs a case-sensitive file system and your host machine probably has a case-insensitive file system
11
11
12
12
Build inside the Container
@@ -36,36 +36,25 @@ Direct leak of 120 byte(s) in 3 object(s) allocated from:
36
36
SUMMARY: LeakSanitizer: 120 byte(s) leaked in 3 allocation(s).
37
37
```
38
38
2.`lldb -- <your swiftc invocation above>`
39
-
3. Set a breakpoint somewhere in swiftc, eg. at the start of main: `br s -f driver.cpp -l 19`. This should output something like
40
-
41
-
```
42
-
Breakpoint 1: where = swiftc`main + 4 at driver.cpp:20:10, address = 0x00000000014d25d4
43
-
```
44
-
45
-
4. Run swiftc to the breakpoint
46
-
5. This should stop you with something like
47
-
39
+
3. Start running swiftc inside lldb by executing `r`
40
+
4. Find the loaded offset of swift-frontend by running `image list`
6. Find the loaded offset of swift-frontend by subtracting the breakpoint address from the frame address. With the example above, that’s `0x0000555556a265d4 - 0x00000000014d25d4 = 0x555555554000`.
59
-
7. For the frame that you want to symbolicate,, add the offset you computed above to the stack frame in the LSAN report, eg. to symbolicate frame 1 `0x555555554000 + 0x292d81c = 0x555557E8181C`
60
-
8. Look up the address using `image lookup -a <address you computed>`. This should output something like
47
+
The loaded offset is `0x0000555555554000`
48
+
5. For the frame that you want to symbolicate,, add the offset you computed above to the stack frame in the LSAN report, eg. to symbolicate frame 1 `0x555555554000 + 0x292d81c = 0x555557E8181C`
49
+
6. Look up the address using `image lookup -a <address you computed>`. This should output something like
0 commit comments