[M3devel] Explicit types.

Chris Highjinks at gmx.com
Mon Jan 18 23:11:15 CET 2010


I've spent some time perusing the source tree, and particularly anything dealing with 32/64 bit portability.

I'm wondering if it might make sense to define some explicit 32bit and 64bit types, perhaps at the library level, to ease porting. Types such as ...
	
	TYPE UnsignedInt64 ...
	TYPE SignedInt64 ...
	TYPE UnsignedInt32 ...
	TYPE SignedInt32 ...

etc...

Eventually the goal, as I understand it, is to have a 64bit LongInt type, however the above might serve useful as an intermediate step. The primary advantage to this approach is that the developers would know exactly what the machine representation of the variable/value is. No guesswork involved.

Also, as a step to full 64bit compatibility, it might make sense to define some sort of Region/Arena based memory manager that could be used in lieu of, or as an alternative to, the runtime garbage collector. Not as flexible, but far more predictable.

I'm doing some hacking on the tests, and I might try this approach with my local sources just to see how well(or poorly) it would work.

I'm still wrapping my brain around Modula 3s reference types, Thier slightly different from what I'm used to.

-- 
Chris <Highjinks at gmx.com>



More information about the M3devel mailing list