~/talk

Memory-safe interoperation between safe and unsafe languages

Talkat PLDI 2025 · 2025-06-16..06-20· [security]
name:Yeoul Na
links:none on file
slides:none on file

Describes a practical system that imports C/C++ pointers into Swift as a span safe pointer using counted_by and noescape annotations to encode bounds and lifetime, plus a C extension that enforces bounds with dependent types and wide pointers carrying bound metadata. The compiler inserts bounds checks and uses a constraint elimination pass to remove redundant checks. The extension is open source, in use across millions of lines adopted at Apple with negligible OS-wide performance impact, and is being proposed to the C committee.

AI-written summary · about

  1. 0:00Introduction
  2. 1:07Safe interoperability essentials
  3. 4:39Safe language boundaries challenges
  4. 8:17Swift’s safe pointer interoperation
  5. 10:49Annotations for safety guarantees
  6. 14:27C extension for bound safety
  7. 17:20Open research problems
  8. 19:29Q&A: Compiler optimizations
  9. 20:55Q&A: C++ memory-safe types
  10. 22:43Q&A: Swift and Rust interoperability
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.