RFC 89 forms the basis of another RFC I'm forwarding very soon. Though I realise this 
broadens the scope of the RFC, I needed the constant thing defined in the manner of a 
constraint for my next one coming.

Both of us are in agreement. It's a constraint through the use of attributes. By 
default, Perl references/variables have liberal data-types. I wish to provide 
attributes through which we could constrain the liberality of those data-types. I want 
to use the word constraint because I want to reflect the constraining action.

If it fits in tidier into the glossary I could update to call it - constraining 
attributes. Quite a mouthful.

Let me forward this next RFC first for everyone's kind perusal, after which I will be 
very enthusiastic to work with you to over-ride these RFCs.

- In plain, the sane in Maine stays mainly for the rain.





[EMAIL PROTECTED] on 08/14/2000 07:07:00 PM
To:     Syloke Soong/Americas/NSC@NSC
cc:     [EMAIL PROTECTED]@Internet 

Subject:        Re: RFC 89 (v2) Controllable Data Typing


I don't think this RFC is the place to try and cover all of the
'constraints' that might be in perl 6. Sure, this RFC may as well be the one
to formalise the notation that attributes of variables are defined in this
way, but also trying to enumerate and describe them would make this RFC very
bloated.

On the 'const' issue specifically, there's already an RFC for that (RFC 83).
Syloke--if you really want to incorporate this RFC then please let me know,
and I'll send you all of the suggested changes I've received in feedback to
RFC 83. However, I think it would be much easier if we kept discussion of
the actual 'constraints' in separate RFCs, allowing debate on each issue to
be kept separate.

Furthermore, using the term 'constraint' is misleading--I think 'attribute'
is better. Another to-be-proposed attribute is 'sparse', which gives Perl
information about how to store a list. And then of course there's character
set type attributes (eg 'utf8')... These are not constraints, but they all
use the same notation.

Finally, the attribute notation needs a way of taking parameters. For
instance, the 'sparse' attribute needs a default value, and an optional
'sparsity index'. We need syntax that allows something like:

  my int @sparse_array : sparse(0,0.99) = ((0) x 50000 , 1);






Reply via email to