Hacker News new | ask | show | jobs
by reallyreason 20 days ago
Clicked through to the custom language it's implemented in ("Freedomlang") and was met with a bunch of really confusing AI-authored stuff.

> macOS emits x86-64 AT&T assembly

Seems like an obvious issue given that Apple makes no x86 machines, hasn't for three years, and plans to sunset Rosetta 2 in one year. The whole conceit of this "Freelang" project is that it has no "magic", and then incredibly just a bit further down the README states it has a stop-the-world mark/sweep garbage collector. That is quite magical, no? After reading the GitHub I confess I don't even understand what "magic" the authors are even complaining about. Honestly it seems like it's basically the same concept as Go, vibe-coded, with more pretense, worse syntax, and without the benefit of Google engineering.

You could implement the same functionality in Rust, using a custom target JSON without any libstd/libc. I've done so. It just requires that you accept some limitations and build your own abstractions around unsafe syscalls.

1 comments

x86-64 works on aarch64, which is also planned.

It's a blocking collection but not 'stop the world' (no world, all separate processes). The pause scales about linearly with heap size, as a full mark-and-sweep should:

  ┌──────────────────┬─────────────┐
  │       heap       │ worst pause │
  ├──────────────────┼─────────────┤
  │ 2MB              │ 0.10 ms     │
  ├──────────────────┼─────────────┤
  │ 8MB (production) │ 0.66 ms     │
  ├──────────────────┼─────────────┤
  │ 32MB             │ 2.47 ms     │
  └──────────────────┴─────────────┘