Hacker News new | ask | show | jobs
by glomek 4266 days ago
As I understand the code, an "Atom" is like a tagged pointer. It gets passed around by value, sometimes it contains the value itself (numbers), and sometimes it contains a pointer to something malloc'd. So an AtomType_Pair is an atom in the sense that it gets passed around by value like an atom, but it is a pointer to a malloc'd pair.

What strikes me is that Atom's are being copied by value all over the place, even when a good chunk of them don't matter. I don't know whether the optimizer can help with that or not, but it seems like there could be a lot of unnecessary copying during procedure calls and returns.