Re: Numeric Types
[email protected] (Michael Lazzaro) Fri, 15 Nov 2002 09:45:24 -0800
| Newsgroups | perl.perl6.documentation |
|---|---|
| Message-ID | <[email protected]> |
On Friday, November 15, 2002, at 01:10 AM, Dave Whipp wrote:
> I still don't understand why we want to go to all this hassle of
> completing a vast list primitives to support mappings onto languages
> and architectures that have yet to be invented. I still prefer to keep
> things simple:
>
> my Number $a is ctype("unsigned long int") = 42;
> my Number $b is ctype("my_int32") = 42;
It depends on how much we want to encourage use of the "C-level"
primitive types. The primary reason for having those types would
obviously be to be able to map easily to and from C libraries, but a
secondary reason would be to allow Perl to act as a lower-level
language than it currently does (when you're trying for efficiency or
specific low-level behaviors). So if you *knew* you were dealing with
16-bit unsigned integers, you could say
my uint16 @numarray;
and it would generate the optimal code for such an array. You could
instead say:
my Int @numarray is ctype("unsigned short int");
.... but that's obviously more work, and we still have to support all
possible combinations of unsigned/long/short/int/etc.
So the decision, I think, is whether or not using such types should be
encouraged, or discouraged. I'd actually like to encourage them, for
expert users: using primitive types when you want fast, primitive
behaviors.
(One of my own "broad goals" is to see Perl be a valid choice for
things like gif/jpeg manipulation -- not as fast as C, but not crippled
either -- and other binary data. I think having enough builtin types
to mirror the C types would make that goal more explicit.)
?
MikeL