Hacker News new | ask | show | jobs
by aidenn0 1119 days ago
It's also generational and moving, but other than that you're right.

For anyone wondering how it can be conservative and moving, for values that may or may not be pointers, it treats the data as pinned.

Originally CMUCL targeted RISC processors that had a lot of registers, so it maintained two stacks. X86 is extremely register starved, so the conservative GC was written.

In practice, the conservative nature doesn't cause problems on 64 bit architectures.

1 comments

Why would a lisp gc need to be conservative, anyways? Unless we're talking about ffi or something.
Untagged memory addresses or integers may be produced as intermediate results.