News for hackers. Stuff that matters.
Re:Mugo, a toy compiler for a subset of Go that can compile ... by Hello71 on Monday April 12, 2021 @08:47AM (#26778769)
musl automatically uses a bump allocator if free is not referenced in the program.
Re:Mugo, a toy compiler for a subset of Go that can compile ... by benhoyt on Monday April 12, 2021 @06:12PM (#26785824)
Interesting. I couldn't find any documentation for how this happens (does it need compiler/linker support to know whether free is used?), but I did find the source code for this __simple_malloc: https://git.musl-libc.org/cgit/musl/tree/src/malloc/lite_mal...
Re:Mugo, a toy compiler for a subset of Go that can compile ... by KMag on Monday April 12, 2021 @01:22PM (#26782239)
That's really cool!

Though, I'm curious... don't a lot of malloc implementations use a bump allocator if a simple fragmentation heuristic is below some limit? Presumably musl down inside malloc() has a static bool (or a static function pointer) it uses to keep track if dlsym() has ever returned the address of free(). How much faster is the musl implementation than an implementation using a simple fragmentation heuristic? Presumably, they're both well-predicted conditional branches (and/or indirect branch targets well predicted by the BTB).

Re:Mugo, a toy compiler for a subset of Go that can compile ... by saagarjha on Thursday April 15, 2021 @05:31AM (#26818192)
Musl's implementation only works for statically linked programs.