Taking this to p6i, in order to get Parroty for a few....

On Thu, 2004-09-02 at 19:47, Larry Wall wrote:
> =head1 Overview
> 
> This synopsis summarizes the non-existent Apocalypse 9, which
> discussed in detail the design of Perl 6 data structures.
[...]

> =head1 Sized types
> 
> Sized low-level types are named most generally by appending the number
> of bits to a generic low-level type name:
> 
>     int1
>     int2
>     int4
>     int8
>     int16
>     int32     (aka int on 32-bit machines)
>     int64     (aka int on 64-bit machines)

Ok, so Parrot doesn't have those. Parrot has "int". Presumably this
means that when the high-level language programmer (Perl 6 here, but
that's just an example) tries to get "lower level" by explicitly using a
sized type, they're going to have to be working in a PMC of some type
like PerlInt16, which (for reasons of overflow behavior and a few other
things) can almost never be optimized down into an integer register.

It seems to me that this causes a dilema for high-level languages where
providing to the user what appears to be finer grained control over
implementation actually makes them work at a higher level of
abstraction.

How would Parrot expect languages to implement such features? Should
there be a set of (highly JIT-optimizable) PMCs that present sized type
features, should the core register types be sizable somehow or should
languages just be left to roll their own PMCs that do whatever they
want?

-- 
Aaron Sherman <[EMAIL PROTECTED]>
Senior Systems Engineer and Toolsmith
"It's the sound of a satellite saying, 'get me down!'" -Shriekback


Reply via email to