Skip to content

add lowtagref

Yi Lin requested to merge issue2-lowtagref into master

This materialised the proposal of low tagged reference (as lowtagref) in Issue #2. It is a more lightweight tagged reference than tagref64. GHC-Mu is a potential user of this type.

I am not sure about two things, please leave comments or make edits if necessary:

  1. Is lowtagref optional? (tagref64 is)
  2. Should we have a fixed tag length (I assume a fixed int<3> tag when I draft the part)? An alternative is that we leave this as implementation dependent, which may be 3/4/5. I guess 3 bits tagging is reasonable as it is the default alignment for a reference type.

As for implementation, it requires GC to distinguish non-ref, ref, tagref64 and lowtagref for each struct field. But as we already need to distinguish the former 3, this doesn't add space overhead for object metadata.

Merge request reports