[m-dev.] deleting tags_high
Zoltan Somogyi
zoltan.somogyi at runbox.com
Thu Jun 14 23:35:31 AEST 2018
Currently we support three tag_methods:
- storing primary tags in the least significant 2 or 3 bits of a word,
(tags_low)
- storing primary tags in the most significant N bits of a word, where
N may be more than 3 (tags_high)
- not storing primary tags bits at all, distinguishing functors using
tags stored in memory (tags_none).
I propose that we delete support for tags_high. We started with that
because we knew it worked, since it is the method that Prolog systems
have traditionally used. However, once we got tags_low working,
I don't think we ever used tags_high in anger more than once,
and that one occasion was for benchmarks to show that tags_low
was faster :-(
The motivation for raising this issue now this is that I don't want to
write code that adds mktag and unmktag unary operations to the
LLDS and MLDS code being generated, when I know that both are no-ops
unless someone selects tags_high. With my proposal, we should be able
to delete the mktag and unmktag unops; they should *never* be needed.
Any objections?
Zoltan.
More information about the developers
mailing list