[M3devel] some more "crazy" proposals

Tony Hosking hosking at cs.purdue.edu
Mon Jan 11 19:39:21 CET 2010


Jay, as you'll note from the commit messages, I've made ORD/VAL consistent with Rodney's proposal.
I think this is much more consistent, in treating VAL as the only *conversion* operator for ordinals.
ORD is really just there to allow conversion of enumerations to INTEGER, but for consistency it makes sense to have ORD return the underlying value without any conversion.  This makes the equality:

ORD(n) = VAL(ORD(n), T) = n

where T is the type of n.

Unfortunately, it also means that your uses of ORD in the Rd/Wr code must now turn into VAL(n, INTEGER).

On 11 Jan 2010, at 07:17, Jay K wrote:

> 1) change file/rd/wr sizes to be BigInteger.T
> 
> and/or
> 
> 2) Introduce SeekL, IndexL, StatusL, etc.
> default implementation calls Seek/Index/Status and does checked truncation.
> Clients gradually port to LONGINT or BigInteger.T.
> Completely source compatible.
> 
> 
> 3) BigInteger.T is The multiple-INTEGER precision type??
> No compiler/language change??
> 
> 
> I might try these out, and then go the extra step and port the file dialog to avoid the exception..
> see what it all looks like...
> 
>  - Jay




More information about the M3devel mailing list