On 26 Sep 2000, Perl6 RFC Librarian wrote:

> So, for example:
> 
>    package var;         # main variable class
> 
>    # all the main Perl internal methods are defined, such
>    # as TIESCALAR, TIEARRAY, STORE, FETCH, etc
> 
>    package int;
>    use base 'var';
> 
>    # ideas for RFC 303
>    use optimize storage => 16,   # how much space
>                 growable => 1,   # can we grow?
>                 growsize => 8,   # how much to grow by
>                 integer => 1,    # support ints
>                 string => undef, # but not strings
>                 float => undef,  # or floats
>                 promote => 'bigint';  # promote to class
>                                       # when outgrow
> 
>    # TIESCALAR, STORE, etc need not be redefined, since
>    # they could simply inherit from var's, but perhaps
>    # we could define special math ops per RFC 159.
> 
> In this example, we've used the C<int> class to define several key
> optimizations for Perl to use. Since C<var> is the grandfather class of
> all variables, its C<STORE> and C<FETCH> methods can be used, which
> actually do the internals of storing values and using the hints set by
> the C<use optimize> pragma.

The suggested C< use optimize > pragma is starting to grow many heads.
C< use less > was such a simple little pragma, a general direction for
the interpreter to take. Here it seems that the optimizations apply to
the C< package int; > only. Are we suggesting that optimizations should
be localized? Can I C< use optimize 'memory' > in one package and C< use
optimize 'CPU' > in another? Do optimizations have block scope?

I like C< use less >. I trust that perl6 will DWIM.

Alan Gutierrez

Reply via email to