!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.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
@piegames:flausch.socialpiegamesFil-C is awesome12:42:59
@piegames:flausch.socialpiegamesExcept that memory safety is not our main problem with C++12:43:37
@k900:0upti.meK900 I do wonder if cppnix built with fil-c would be 10x slower or less somehow 13:10:06
@shalokshalom:kde.orgShalokShalom I read that compiled stuff becomes significantly slower, and that people use it to detect the issues, and not to run it it production. 13:11:03
@shalokshalom:kde.orgShalokShalom What is? 13:11:18
@raitobezarius:matrix.orgraitobezariusFil-C is not memory safe13:13:45
@raitobezarius:matrix.orgraitobezariusDon't see any interest in that thing13:14:21

Show newer messages


Back to Room ListRoom Version: 10