On Wed, 23 Oct 2002, Michael Lazzaro wrote: : Where is the most definitive list of known Perl6 (not Parrot) builtin : types? : : The following have been specified/implied by the A/Es: : : scalar : bit (== bool? == boolean?)
We could always call them "umu", which is Japanese for yes/no. :-) : num : int : str Yes. : bigint : bignum I think these just manifest as Num and Int, since the object types will promote as necessary to big representations internally. : bitarray (maybe) No, that's just my bit @array; also known as my @array returns bit; also known as my @array of bit; also known as my @array is Array of bit; Note that "is" is the only way to specify the type of the variable as opposed to what the variable contains. "returns" is synonymous with "of", mostly so we can use "returns" on subroutines, because "of" sounds weird: my int sub foo () {...} my sub foo () of int { ... } my sub foo () returns int { ... } More in A6... : ref Yes. : rx (or regex,rule?) That's Rule, I expect. : code Probably Code. : classname Probablly Class, which stringifies to a class name. : Object Yes, as new UNIVERSAL. : array : hash Array and Hash. We reserve lowercase for "atomic" types. : But also stated is that perl6 will have enough type information to : easily interact with other languages, which implies to me that types : must exist which, at minimum, mirror the C types (maybe by the same : names, maybe not, maybe both)... : : int (char, long, short, whatever) : int8 : int16 : int32 : int64 : uint : uint8 : uint16 : uint32 : uint64 : float : double (long double, etc?) : cstr (null-terminated, non-Unicode-aware?) Sure, why not? Might have to be long_double though. cstr might be assumed if it's known you're passing a str to C. And num is probably double in disguise. : .... which wouldn't be used in typical programming, but would be needed : to define signatures for things pulled in from other libraries? : : And perhaps : : bin : oct : hex : : should be builtin types subclassed from uint, but with overloaded : (de)serialization such that: : : my int $i = 0x0a; print $i; # prints '10' : my int $i = '0x0a'; print $i; # prints '0' : : my hex $i = 0x0a; print $i; # prints '0a' : my hex $i = '0x0a'; print $i; # prints '0a' : my hex $i = '0a'; print $i; # prints '0a' : : .... for helping with the variety of shell tools that Perl is so good at : producing. Hmm, maybe. Seems more like an interface shift than a type shift, though. It's like "use the int type but wrap a hex interface around it." This says to me that we need a method of specifying that a given interface overrides methods from other base classes. But this interface actually has an implementation somewhere. Hmm. : What's the closest to a definitive list, so far? Yours. :-) But I'll try to remember to put a list into A6. Larry