[M3devel] (no subject)
Jay K
jay.krell at cornell.edu
Thu Dec 13 09:25:48 CET 2012
I strongly suggest that Target.Int be extended from 8 bytes to 9.
The reason is thus:
I was trying to mix TWord and TInt in M3C.m3.
It become tedious and error prone.
If Target.Int were extended to 9 bytes internally,
then it would have a range exceeding a signed 64bit integer
and a full range unsigned 64bit integer, and the need
for TWord would, I believe, go away.
The result would be *slightly* *slightly* *slightly*
less efficient, but more convenient.
I have already applied this change locally and built with it.
It was very simple.
I did have to visit the initializations of this mostly-opaque type, i.e. in Target.m3 and TInt.i3.
Furthermore, I weakly suggest that Target.Int
internally be changed to separately store the sign
and the magnitude. This would be a hidden implementation detail
and I believe it would simplify the implementation.
It would *slightly* deoptimize the representation size,
but the code, I think, would be smaller and simpler.
This would not affect the public interface.
I came to this suggestion when someone recently asked me how
to implement this sort of thing. I realize it is slightly easier
to store the sign and magnitude separately.
- Jay
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://m3lists.elegosoft.com/pipermail/m3devel/attachments/20121213/4d2bdd6a/attachment-0001.html>
More information about the M3devel
mailing list