Yves Jaradin <[email protected]> writes:
> And that requires that A is bigger or equal to a Ref.
which it is with "tag on data" (a ref = 1 ref tag + 1 pointer)
> It is also impossible to do with simple C++ (virtual) objects in a
> standard conforming way.
not sure what you mean here. could this have to do with the placement
argument to the new operator?
new (ptr) X(v1,...,vn)
> We therefore don't expect any increase in memory usage above the
> factor of two inherent in using two words for the tag & tagged.
and that's exactly what I said: a factor of two.
> [...]
I am elliding the quote because you are basically just arguing against
tagged pointers. that was not the point. the point concerned the
choice between (heavy) tag on pointer and (heavy) tag on data. I have
not seen one argument that explains why the former was chosen. On the
other hand there are arguments against it:
- the factor of two argument
- longer reference chains (primary ref requires 1 pointer
traversal, secondary ref requires 2)
- inflationary GC
you are of course welcome to make whatever choice you like -- he who
does the work is king ;-)
Cheers,
--Denys
_________________________________________________________________________________
mozart-hackers mailing list
[email protected]
http://www.mozart-oz.org/mailman/listinfo/mozart-hackers