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.
[ Parent
| on HN ]
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.