!lymvtcwDJ7ZA9Npq:lix.systems

Lix Development

424 Members
(Technical) development of Lix, the package manager, a Nix implementation. Please be mindful of ongoing technical conversations in this channel.140 Servers

Load older messages


SenderMessageTime
20 Mar 2026
@emilazy:matrix.orgemilymanual rooting without an API that enforces it is vastly less safe than Boehm in C++ tbh12:26:59
@emilazy:matrix.orgemilywouldn't recommend that under any circumstances. would be better to just punt on rooting by trampolining and only collecting when there are no active Rust frames than that (IIRC one of the major GC crates works this way, I forget which one)12:28:31
@piegames:flausch.socialpiegamesmostly lack of inlining, AFAICT, possibly also some ABI shenanigans w.r.t. which values have to go on the stack12:30:47
@piegames:flausch.socialpiegamesas in, linking objects written in two different languages presents an optimization boundary which prevents LTO12:31:19
@emilazy:matrix.orgemilycross-language LTO will get you inlining12:31:22
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)Can’t you compile the C++ part to llvm it with C ABI and link that with the rust shim?12:33:07
@emilazy:matrix.orgemily(and it's unlikely you can even measure ABi differences esp. since the less optimal case you is just what C++ uses for all code)12:33:18
@emilazy:matrix.orgemilycxx binds directly to the Rust12:33:32
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)
In reply to @xokdvium:matrix.org
Can’t you compile the C++ part to llvm it with C ABI and link that with the rust shim?
(That’s also compiled down to llvm-ir)
12:33:32
@emilazy:matrix.orgemilybut yes you can LTO between the two languages12:33:40
@emilazy:matrix.orgemilythe Rust toolchain has specific support for it12:34:00
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)Well fat lto is basically just linking llvm ir modules together, right?12:34:06
@emilazy:matrix.orgemilyyeah12:34:13
@emilazy:matrix.orgemilybut you can do cross language thinlto too12:34:21
@emilazy:matrix.orgemilyhttps://doc.rust-lang.org/rustc/linker-plugin-lto.html12:35:14
@emilazy:matrix.orgemily (for clarity: cxx is a Rust crate. it just layers on top of native C FFI in Rust to bind to C++) 12:37:56
@emilazy:matrix.orgemily(incl interop with C++ smart pointers etc.)12:38:14
@emilazy:matrix.orgemily(also for clarity: not just because you can get it wrong although that would be sufficient by itself, but also because even if you get recording the actual roots right it's quite likely that what you're telling the compiler with the resulting API shape will allow it to make assumptions that can lead to UB crashes)12:42:49
@piegames:flausch.socialpiegamesI mean, envision this: A special wrapper type which handles the manual root declaration, together with a special constructor and a macro that ensure the only way to get such a value is pinned on the stack. I'm daydreaming here, but doesn't sound completely implausible12:46:33
@emilazy:matrix.orgemilydid you read the blog post? :)12:49:07
@emilazy:matrix.orgemilyyou can do safe rooting APIs. it's just hard12:49:23
@emilazy:matrix.orgemily(and some of the obvious designs are broken)12:49:43
@emilazy:matrix.orgemilythat's the part that's not for the faint of heart (but ofc not impossible). in particular though you can run into tradeoffs between the structure of your GC algorithm and how easy it is to use in Rust remotely ergonomically12:50:39
@emilazy:matrix.orgemily(e.g. a moving collector is certainly a bit rough and brings its own constraints, though those aren't particularly fun to interface with in C++ either)12:51:18
@piegames:flausch.socialpiegames
In reply to @emilazy:matrix.org
did you read the blog post? :)
Years ago
12:52:17
@draupnir:lix.systems@draupnir:lix.systems left the room.13:21:43
@patrickdag:matrix.orgPatrick changed their display name from patrickdag to Patrick.14:52:31
@rosssmyth:matrix.org@rosssmyth:matrix.orgThere is memory management toolkit https://www.mmtk.io/16:25:53
@raitobezarius:matrix.orgraitobezarius(yeah lix people looked at it a couple of times)16:26:26
21 Mar 2026
@shalokshalom:kde.orgShalokShalomThere is also https://fil-c.org/12:32:23

Show newer messages


Back to Room ListRoom Version: 10