News for hackers. Stuff that matters.
Re:For Better Computing, Liberate CPUs from Garbage Collection by p_l on Thursday May 09, 2019 @04:46AM (#19866479)
Lisp Machines didn't use tags for tracking liveness/evacuation of objects, though. They used them for safety, which automatically gave them precise, as opposed to conservative, GC which always knew whether it was dealing with a pointer. They also had special, CPU-handled type of forwarding pointers, which when accessed "normally" would transparently redirect you to forwarded location.
Re:For Better Computing, Liberate CPUs from Garbage Collection by _old_dude_ on Thursday May 09, 2019 @09:44AM (#19868194)
The forwarding pointer you are describing is equivalent to a ZGC colored pointer with the evacuation bit set that a GC barrier (a load barrier) will rewrite to the evacuation address.

and yes ZGC doesn't use colored pointer to track if a value is an integer or a pointer because Java unlike Lisp is typed so the VM derives those information from the bytecode.

Re:For Better Computing, Liberate CPUs from Garbage Collection by lispm on Thursday May 09, 2019 @11:33AM (#19869169)
Most Lisp implementations use typed memory via tags. Lisp doesn't have pointers, but references and usually knows if something is an integer or a reference - because it's encoded in the tags.
Re:For Better Computing, Liberate CPUs from Garbage Collection by p_l on Thursday May 09, 2019 @10:19AM (#19868493)
Lisp is also typed - the tagging made for easier native code compilation vs. bytecoded approaches.