Re: RFC 204 (v2) Arrays: Use list reference for multidimensional array access

2000-09-27 Thread Nathan Wiger

Bart Lateur wrote:
 
 The problem is that
 
$name = "myarray";
@$name = (1,2,3);
print @$name[0,1];  # 1,2
 
 Is very consistent currently. Change one and you have to change the
 precedence and parsing of all symbolic refs.
 
 You are suggesting to keep a weird precedence rule, just to ease
 symbolic dereferencing!?! That's... obscene.

Where did I say that?! I even said:

   I'm not necessarily against it, but it's a deep issue not just
   constrained to arrays in this one specific context.

My point was if this idea is RFC'ed, the RFC better not be titled "Fix
arrays" but better be called "Redo the precedence rules of all symbolic
references".

-Nate



Re: RFC 185 (v3) Thread Programming Model

2000-09-27 Thread James Mastros

On Wed, Sep 27, 2000 at 05:29:22AM -, Perl6 RFC Librarian wrote:
   $ok = try $scalar;
   $ok = try @array
   $ok = try %hash;
   $ok = try sub;
I'd like to see a more specific name for these.  'try' is too useful a word
for core to gobble it up for everything (IMHO).  attempt_lock?  Or simply
put these in a module and not export try by default.  (Also, try might get
used for exceptions -- or would at least confuse people who expect it to be.)

Also, it'd be nice if an implicit join was done if a Thread was used in a
stringifying or numifying context.  That way, you could treat it as a
function call that ran until it was acatualy needed, as in $factorial27 =
async{factorial(27)}, and somewhere later in your program, did a computation
involving it.  At that point, $factorial27 would be forced to take a value
(to whit, 27!), and would no longer be a Thread.  OTOH, this is broken wrt
things not returning numbers or strings (IE lists or refs), and makes
numifying/stringifying a mutator, which is probably a Bad Thing.

However, it seems amazingly useful.  Hm, I think it could be done easily
enough as a wrapper class.

Sorry I didn't get these in on v2; I don't follow the perl6-language* lists
as well as I probably should.  Too much trafic, to little time.

-=- James Mastros

-- 
-BEGIN GEEK CODE BLOCK-
Version: 3.1
GUCS d--- s-:- a20 C++ UL+++@ P L++@ E-() N o? K? w@ M-- !V
PS++ PE Y+ PGP(-) t++@ 5+ X+++ R+ tv+ b+++ DI+ D+ G e++ h! r- y?
--END GEEK CODE BLOCK--



Re: RFC 319 (v1) Transparently integrate Ctie

2000-09-27 Thread Piers Cawley

Nathan Wiger [EMAIL PROTECTED] writes:

  I'm kind of curious to know what you think would happen with the
  following. I've commented where I'm confident...
  
  interface Number;
  sub TIESCALAR;
  sub STORE;
  sub FETCH;
  
  package integer implements Number; # I really like this notation
 
 Tangentially, yes, it is nice to read, but it prevents multiple
 interface specifications. "use interface" is more consistent.

It does?

   package integer implements qw/Number Countable/;

Et viola.

 
  sub TIESCALAR {...};
  sub STORE {...};
  sub FETCH {...};
  
  my Number $i;   # Number is an interface, so just an assertion
  my integer $n;  # integer-TIESCALAR($n);
  my non_tied $object;# Just an assertion
  defined($n);# Should be false
 
 Yes. The only potential gotcha is if the user decides to do something
 Really Evil and stores a value as part of their TIESCALAR method. Then
 $n-FETCH will return that value and defined($n) will be true.
 
 However, this is not the purpose of tie, and I think an appropriate
 response is: Don't Do That. I agree with both you and Damian that TIE*
 should be called on declaration for consistency. If a person doesn't
 know how to use tie, well, that's not our problem. ;-)
 
  $n = 5;
  $i = $n;
  $n = 10;
  print $i;
  $i = $object;   # Assertion fails
 
 Assuming you've set up your Cuse optimize restrictions appropriately,
 then yes. The key is really what 'non_tied' is setup as. If this is a
 builtin type that optimizes itself to be a string object, then yes it
 will fail. However, if 'non_tied' is just a synonym for 'float' (for
 some odd reason) then the last line will be ok.

I think you're missing the point. What does 'print $i' print? What
happens if you do C$n = $i? Does $i 'remember' that the number that
got assigned to it is an integer? What is the mechanism for that? It
seems that there will need to be some pretty far reaching changes to
Perl if you want this to do the Right Thing. Assuming we know what the
Right Thing is.

 
  my int @b :64bit;   # again, just an assertion
  
  Asserting what? That's not valid syntax at the moment.
 
 But it will be. :-) See RFC 279.

Ah. I'll marshall arguments there then.

  
  @c = @b;# empty list passed still
  @b = (1,2); # int-TIEARRAY(@a, '64bit'); @b-CLEAR(...);
  
  Hmm... I think this is somewhat ugly. Assuming that you want
  Cmy int @b to imply CUNIVERSAL::isa(all(@a), 'int') then tying the
  entire array seems a bit weird.
 
 Not necessarily. The key is: *how* would you implement the assertion
 check? 
 
 If you use tie, then your int class STORE method can do something like
 this:
 
package int;
use base 'var';
# take defaults from var class
STORE {
   if ( self-isa($_[1]) ) {
  SUPER-STORE($_[0], $_[1]);   # internally store
   } else {
  die "Bad data $_[1]" if ( $under_strict_types );
   }
}

Having the programmer implement this assertion check (or not) is a
Very Bad Idea. Assuming we're expecting to get some compiler
optimization from this then things should be enforced rather more
robustly.

  Er... You seem to be implying here that *all* classes should have TIE
  methods. Which is not good.
 
 No, I wasn't trying to imply that, I'll clarify this point. TIE methods
 are still completely optional. 

Okay. It's just that your example that I quoted and you cut out seems
to imply otherwise.

  Err... Specifying which classes implement an interface in the
  interface specification is Wrong Wrong Wrong.
 
 Yes, you're right,

Phew.

  Can I just point out that nobody has yet proposed that you can attach
  attributes to a package?
 
 Didn't Damian propose Cpackage Foo : interface already? ;-)

Not in an RFC, no.

  I'm not entirely sure what you're driving at here. I thought you were
  arguing that *all* packages that created objects would use tie magic,
  in which case the new attribute becomes unnecessary. And if you're not
  proposing that then :tie is too general in the cases where the module
  can only tie to specific variable types. I think you get better
  granularity with interfaces, which are way more general than a special
  new attribute.
 
 No, let me back up a little. The idea is to make it so that tied
 interfaces - which are really different beasts from OO interfaces
 altogether because of their purpose - should be more closely integrated
 into Perl 6. This would allow you to create custom, optimized,
 strongly-typed variables that would function just like builtins:
 
my Matrix @a = ([1,2,3], [4,5,6]);
my NISMap %map :passwd = read_passwd_file();
my Apache::Session %session :transaction;
 
 However, this is not to overshadow OO interfaces, which are needed for
 functional methods, as you note.
 
 The :tie attribute is a poorly chosen name. The original name was
 :implicit, and was going to be attached to the TIE subs:
 

Re: RFC 161 (v4) Everything in Perl becomes an object.

2000-09-27 Thread Piers Cawley

Simon Cozens [EMAIL PROTECTED] writes:

 On Wed, Sep 27, 2000 at 05:25:28AM -, Perl6 RFC Librarian wrote:
  Not an awful lot was said once this RFC was condensed down to "Everything
  becomes an object". I believe some implementation and conceptual hurdles
  exist which have discouraged more serious discussion. At the suggestion of
  others I've opted to freeze rather than withdraw.
 
 How might I persuade you to reconsider?

I was kind of hoping that this one would get withdrawn as well.

-- 
Piers




Re: RFC 161 (v4) Everything in Perl becomes an object.

2000-09-27 Thread Bennett Todd

2000-09-27-05:28:01 Piers Cawley:
 Simon Cozens [EMAIL PROTECTED] writes:
  On Wed, Sep 27, 2000 at 05:25:28AM -, Perl6 RFC Librarian wrote:
   At the suggestion of others I've opted to freeze rather than
   withdraw.
  
  How might I persuade you to reconsider?
 
 I was kind of hoping that this one would get withdrawn as well.

As one of the first to jump up and encourage the freeze rather than
withdrawl, I feel obliged to speak up here.

It was being withdrawn for lack of interest and feedback, not for
any criticism. If (and that's a big if) this could be done --- make
everything an object --- with no damage to either performance (ruby
doesn't seem to be slower than perl, overall) nor to the language
(and that I really don't know about), then this would buy us some
wonderful power: we could trivially bring to bear the whole operator
overloading machinery from the O-O support for redefining the basic
operation of the language to customize it to application domains.

Could you please do us the service of being more specific about why
you want this RFC withdrawn, for the benefit of those of us who
don't automatically understand? We see potential for some really
exciting good here, and haven't heard where the harm is yet.

Thanks!

-Bennett

 PGP signature


Re: RFC 161 (v4) Everything in Perl becomes an object.

2000-09-27 Thread Matt Youell

  On Wed, Sep 27, 2000 at 05:25:28AM -, Perl6 RFC Librarian wrote:
   Not an awful lot was said once this RFC was condensed down to
"Everything
   becomes an object". I believe some implementation and conceptual
hurdles
   exist which have discouraged more serious discussion. At the
suggestion of
   others I've opted to freeze rather than withdraw.
 
  How might I persuade you to reconsider?

 I was kind of hoping that this one would get withdrawn as well.


Ok, no fair sniping after a freeze. You were warned. It's called email,
people! Use it. Jeez...

Matt





Re: RFC 161 (v4) Everything in Perl becomes an object.

2000-09-27 Thread Simon Cozens

On Wed, Sep 27, 2000 at 09:53:03AM -0700, Matt Youell wrote:
 Ok, no fair sniping after a freeze. You were warned. It's called email,
 people! Use it. Jeez...

Never too late to withdraw, sir. [1] The less crap we make Larry wade through,
the better.

[1] Well, up until the pregnancy, I guess.

-- 
BEWARE!  People acting under the influence of human nature.



Re: RFC 161 (v4) Everything in Perl becomes an object.

2000-09-27 Thread Bennett Todd

2000-09-27-15:08:10 Simon Cozens:
 Never too late to withdraw, sir. [1] The less crap we make Larry
 wade through, the better.

Regarding the specific issue at hand, could you please offer
something more specific than "you'd like it withdrawn"? Is there a
reason why it's impossible to implement without performance penalty,
or why it must have a detrimental effect on the language? I'd cite
ruby as an indication that it shouldn't have to inflict any
performance hit, and ruby, as well as the obvious utility of
bringing to bear O-O overloading techniques, as benefits it could
offer the language. And I don't see why it has to be an obtrusive
change at all.

-Bennett

 PGP signature


Re: RFC 161 (v4) Everything in Perl becomes an object.

2000-09-27 Thread Simon Cozens

On Wed, Sep 27, 2000 at 12:43:45PM -0700, Nathan Wiger wrote:
 As list chair, I ask either:
1. The people discussing this clarify themselves
2. The people discussing this please drop it

Ho hum. You've heard, I believe, my arguments now. I'm happy to drop the
matter, since it seems a ridiculous waste of time anyway.

-- 
As the saying goes, if you give a man a fish, he eats for a day. If you
teach him to grep for fish, he'll leave you alone all weekend. If you
encourage him to beg for fish, pretty soon c.l.p.misc will smell like a
three-week-dead trout.-- Tom Phoenix, c.l.p.misc.



Re: RFC 161 (v4) Everything in Perl becomes an object.

2000-09-27 Thread Matt Youell

 On Wed, Sep 27, 2000 at 12:16:36PM -0700, Matt Youell wrote:
  I open to hearing your reasons. The biggest reason it wasn't withdrawn
is
  because someone said "hey don't do that, here's why". So give me a "why"
  already...

 It doesn't feel right to me. It doesn't feel Perlish.


That's it?


Matt




Re: RFC 198 (v2) Boolean Regexes

2000-09-27 Thread Richard Proctor



HI Tom,

Welcome to England (I presume)

 This seems very complicated.  Did you look at the Ram:6 recipe on
 expressing AND, OR, and NOT  in a regex?  For example, to do
 /FOO/  /BAR/ you need not write /FOO.*BAR|BAR.*FOO/ -- and in
 fact, should not, as it doesn't work properly on some pairs!
 For example, /CAN/  /ANAL/ can't be written /CAN.*ANAL|ANAL.*CAN/
 of you expect to match "CANAL".   Overlaps bite you.  You really
 need /(?=.*CAN)(?=.*ANAL)/ instead, which permits multiple assertions.
 Please check out the recipe I'm talking about.

 --tom, from a strange place

I will start by admiting I dont have the RAM.   I was brainstorming ideas (my
day job involves a lot of brainstorming) and trying to think of new/better ways
to do things.  I am more interested in concepts than syntax.

Richard





is \1 vs $1 a necessary distinction?

2000-09-27 Thread Dave Storrs

Both \1 and $1 refer to what is matched by the first set of parens in a
regex.  AFAIK, the only difference between these two notation is that \1
is used within the regex itself and $1 is used outside of the regex.  Is
there any reason not to standardize these down to one notation (i.e.,
eliminate one or the other)?

Dave




Re: is \1 vs $1 a necessary distinction?

2000-09-27 Thread Jonathan Scott Duff

On Wed, Sep 27, 2000 at 08:15:53AM -0700, Dave Storrs wrote:
 Both \1 and $1 refer to what is matched by the first set of parens in a
 regex.  AFAIK, the only difference between these two notation is that \1
 is used within the regex itself and $1 is used outside of the regex.  Is
 there any reason not to standardize these down to one notation (i.e.,
 eliminate one or the other)?

\1 can be used on the LHS of a s/// whereas $1 there probably won't do
what you expect.  Also, \1, \2, \3 only takes you as far as \9 ;-)

If $1 could be made to work properly on the LHS of s///, I'd vote for
that being The Way.

-Scott
-- 
Jonathan Scott Duff
[EMAIL PROTECTED]



Re: is \1 vs $1 a necessary distinction?

2000-09-27 Thread Dave Storrs



On Wed, 27 Sep 2000, Jonathan Scott Duff wrote:

 If $1 could be made to work properly on the LHS of s///, I'd vote for
 that being The Way.

That was pretty much my thought?




Re: is \1 vs $1 a necessary distinction?

2000-09-27 Thread Uri Guttman

 "DS" == Dave Storrs [EMAIL PROTECTED] writes:

  DS Both \1 and $1 refer to what is matched by the first set of parens
  DS in a regex.  AFAIK, the only difference between these two notation
  DS is that \1 is used within the regex itself and $1 is used outside
  DS of the regex.  Is there any reason not to standardize these down
  DS to one notation (i.e., eliminate one or the other)?


because $1 having be set previously will be interpolated INTO the new
regex. so you have to have another notation to refer to grabbed stuff
from the current regex.

uri

-- 
Uri Guttman  -  [EMAIL PROTECTED]  --  http://www.sysarch.com
SYStems ARCHitecture, Software Engineering, Perl, Internet, UNIX Consulting
The Perl Books Page  ---  http://www.sysarch.com/cgi-bin/perl_books
The Best Search Engine on the Net  --  http://www.northernlight.com



Re: is \1 vs $1 a necessary distinction?

2000-09-27 Thread Randal L. Schwartz

 "Jonathan" == Jonathan Scott Duff [EMAIL PROTECTED] writes:

Jonathan On Wed, Sep 27, 2000 at 08:15:53AM -0700, Dave Storrs wrote:
 Both \1 and $1 refer to what is matched by the first set of parens in a
 regex.  AFAIK, the only difference between these two notation is that \1
 is used within the regex itself and $1 is used outside of the regex.  Is
 there any reason not to standardize these down to one notation (i.e.,
 eliminate one or the other)?

Jonathan \1 can be used on the LHS of a s/// whereas $1 there probably won't do
Jonathan what you expect.  Also, \1, \2, \3 only takes you as far as \9 ;-)

Wrong.  If you have more than 10 parens visible so far, \10 works just fine.

Jonathan If $1 could be made to work properly on the LHS of s///, I'd vote for
Jonathan that being The Way.

It can't ever.  It means $1 from the previous match.

-- 
Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095
[EMAIL PROTECTED] URL:http://www.stonehenge.com/merlyn/
Perl/Unix/security consulting, Technical writing, Comedy, etc. etc.
See PerlTraining.Stonehenge.com for onsite and open-enrollment Perl training!



Re: is \1 vs $1 a necessary distinction?

2000-09-27 Thread Dave Storrs



On 27 Sep 2000, Piers Cawley wrote:

  Do we *want* to maintain \1?  Why have two notations to do the
 
 I'm kind of curious about what happens when you want to do, say:
 
   if (m/(\S+)/) {
  $reg = qr{(em|i|b)($1)/\1};
   }
 
 where the $1 in the regex quote is refering to $1 from the previous
 regex match.

Well, how about this:

  $reg = qr{(em|i|b)(${P1})/\1};
NOTE:  ^

If you assume that $1 and ${1} are equivalent (which makes it
possible to have as many backrefs as you want), then you could say that,
if the first character after the { is a P, it means "in the previous regex
match."

Dave





Re: is \1 vs $1 a necessary distinction?

2000-09-27 Thread Richard Proctor

On Wed 27 Sep, Dave Storrs wrote:
 
 
 On Wed, 27 Sep 2000, Richard Proctor wrote:
   Both \1 and $1 refer to what is matched by the first set of parens in a
   regex.  AFAIK, the only difference between these two notation is that
   \1 is used within the regex itself and $1 is used outside of the
   regex.  Is there any reason not to standardize these down to one
   notation (i.e., eliminate one or the other)?
  
  I think this is fixable.  
 
   The way you phrase that makes it sound that other people perceive
 this as a problem as well, which gives me all sorts of warm fuzzies. :
 
  The only real need for this at the moment is to overcome limitations in
  the order of expansion of regexes.  RFCs 112, 166, 276... all depend on
  fixing this.  
 
   Ok, here's another question.  How the _HELL_ does everyone else on
 this bloody list keep track of every detail in every frigging RFC?  Some
 random comment comes up, and someone will go, "Oh, the third paragraph of
 the second section in RFC 0x97A already mentioned this as a parenthetical
 aside, despite the fact that its title and primary topic had no relation
 to the issue."  I still have (mumble-mumble) RFCs that I haven't even had
 time to *read*, let alone memorize every detail of!

In this context I was the author of guess what 112, 166 and 276 (though 
I admit to having to look up the number of the last one)

 
   Grr*grumble, grumble, moan, winge*
 
   Ok, back to rationality now.
 
  If the regex compiler gets in before the expansion of the variables to
  make these work, it could handle $1 in all cases \1 can be retained for
  compatibility.
 
   Do we *want* to maintain \1?  Why have two notations to do the
 same thing when one is clearly superior?  (\1 can only go up to \9 while
 the other could theoretically go to ${...}.)  Perl6 is breaking
 backwards compatibility and eliminating all deprecated features...let's
 get rid of \n as backreference notation.
 

The principle issue would be what to do about use of $1 on the LHS having
its current meaning.  Which is rather good for obfuscated code, but not
terribly kind on normal programming.

Note RFC 112 covers assignment within a regex naming rather than numbering
the brackets one wishes to capture, it also covers named back references.

Currently $1 is expanded by the quoting currently before the regex compiler
gets to play, the regex compiler sees the \1 and knows what to do.  \ meaning
refer back I am reasonably happy with, the numbers I am not.

Richard

-- 

[EMAIL PROTECTED]




Re: Perlstorm #0040

2000-09-27 Thread Ilya Zakharevich

==
 I lie: the other reason qr{} currently doesn't behave like that is
  that
 when we interpolate a compiled regexp into a context that requires
  it be
 recompiled,

Interpolated qr() items shouldn't be recompiled anyway.  They should
be treated as subroutine calls.  Unfortunately, this requires a
reentrant regex engine, which Perl doesn't have.  But I think it's the
right way to go, and it would solve the backreference problem, as well
as many other related problems.
==

The REx engine is reenterant enough right now.  All you need to do is
to add the //p switch (or, meanwhile, rewrite each $qrn into (?p{ $qrn })).

Ilya



Re: RFC 106 (v2) Yet another lexical variable proposal: lexical variables made default

2000-09-27 Thread Daniel Chetlin

I know it's unfair to comment on a frozen RFC, but I think it's
important to note a few things:

On Wed, Sep 27, 2000 at 05:22:30AM -, Perl6 RFC Librarian wrote:
   Maintainer: J. David Blackstone [EMAIL PROTECTED]
   Status: Frozen
[snip]
 Dubbed the "conservative" approach by Mark-Jason Dominus, this option
 requires that the programmer disambiguate the situation by declaring
 the variable with Cmy.  Perl would produce a warning in this case to
 the effect that, "A variable used within a block was used after that
 block, but never declared or used before it.  The enclosing scope
 cannot see the same variable that exists within the enclosed block."
 
 Alternatively, if this RFC is adopted, but nothing is done to alert
 new Perl6 programmers about these possibly ambiguous cases, the
 programmer would receive a "Use of undefined value" warning which
 might suffice.

This approach to the problem is problematic to me. I, as most, Cuse
strict in any code of reasonable length. But I'm also very used to
doing something like:

  [~] $ perl -wle'while() { ++$foo  last if /bar/ } if ($foo) {
  print "used last" }'

With the "conservative" approach, this will not DWIM. I'll get some kind
of warning about it, but having to predeclare $foo will not make me
happy.

 In the "liberal" approach, perl can do what amounts to "inferring
 declarations."  To actually refer to it this way would be a
 contradiction in terms, since a declaration is explicit, not inferred.
 
 To implement the liberal approach, perl would detect all of the
 undeclared variables used within a scope when it compiles that scope.
 These variables would become available for use from the minute that
 scope is entered.  Thus, in the example above, $color is detected as
 being a part of the enclosing scope before the interpreter ever enters
 the if statement, and $color therefore refers to the same scalar in
 both places.
 
 It was observed that this approach could also be implemented by
 inferring a variable to be declared at the top-level, the largest
 enclosing scope.  It does not appear that there would be any
 language-visible differences in this implementation, although it would
 certainly be different to the implementors.

Erm, but this approach _really_ worries me. Doing things this way is
taking away the whole point of lexically scoped variables!

  {
  $foo = 0;
  sub should_be_closure { $foo++ }
  }

  ...

  print "The value of foo is ", ++$foo, "\n";

Eh? We can modify the value of that variable way down here at the bottom
of the file? That's basically useless.

Obviously if you want that closure, you declare Cmy $foo in the scope
that's wanted, but I'm not seeing what this approach is buying us from
the current state of affairs.

It's possible that I'm missing something, though, and I do apologize for
not saying this earlier. After initial discussion died down on -strict,
I neglected to ever go back and say anything.

-dlc



Re: RFC 324 (v1) Extend AUTOLOAD functionality to AUTOGLOB

2000-09-27 Thread Nathan Wiger

 The AUTOGLOB subroutine should expect to take two parameters, the invocant,
 and a second parameter specifying what type of item is being AUTOGLOBbed,
 followed by - in the case of a sub - the sub's arguments.  We suggest that
 the second parameter should be a scalar value - 'scalar' for an AUTOGLOBbed
 scalar, 'array' for an AUTOGLOBbed array, and so on.  

This is an interesting idea, but I don't think that a single AUTOGLOB,
that has to internally decide what to do based on a string match of one
of its arguments, is the best way to go for this. I think TIE has it
right:

   AUTOSCALAR
   AUTOARRAY
   AUTOHASH
   AUTOLOAD

This actually has an advantage - in inheritance, you can polymorphically
inherit some or all of the AUTO* routines without having to rewrite the
whole sub.

 The $AUTOLOAD variable should be renamed to $AUTOGLOB
 (with $AUTOLOAD as a deprecated synonym as above).

As RFC 8 hints at, $AUTOLOAD should die completely. Make the name of the
variable or sub an argument. This has another benefit in that the name
of the variable is going to be passed into TIE* as well in Perl 6. Very
nice symmetry.

-Nate



Re: RFC 290 (v1) Remove -X

2000-09-27 Thread Ariel Scolnicov

Uri Guttman [EMAIL PROTECTED] writes:

  "JSD" == Jonathan Scott Duff [EMAIL PROTECTED] writes:
 
I'll revise the RFC to add 'readable()', 'writable()', and such
synonyms for -r and -w that are more like 'use english' and less like
'use English'.
 
 
 i have a minor problem with the names readable and writeable. i am
 currently using them as method names in a major project i have
 created. they are callbacks (see my recent callback rfc) which mean the
 socket is readable/writeable. maybe put some sort of prefix on them to
 designate them as file test operators so we don't clutter up the
 namespace so much. also the common prefix will make it clear tha tthey
 are part of the family of file test ops.
 
 here are some ideas which you can shoot down:
 
 a minus prefix like the current -r
 
   -readable
   -tty
 
 or has_ as the file has read permission:
 
   has_readable
   has_executable
 
 or is_ if the file is a text file:
 
   is_text
   is_sticky
   is_writable

I refer you to my previous message (archived in
http://tmtowtdi.perl.org/archive?35:mss:4575).  Basically, not have a
prefix predicates should have!

Another option is to stuff the long names into some namespace, and
export them upon request (or maybe not export them, upon request).

[...]

-- 
Ariel Scolnicov|"GCAAGAATTGAACTGTAG"| [EMAIL PROTECTED]
Compugen Ltd.  |Tel: +972-2-5713025 (Jerusalem) \ We recycle all our Hz
72 Pinhas Rosen St.|Tel: +972-3-7658514 (Main office)`-
Tel-Aviv 69512, ISRAEL |Fax: +972-3-7658555http://3w.compugen.co.il/~ariels



Re: RFC 290 (v1) Remove -X

2000-09-27 Thread Bart Lateur

On 27 Sep 2000 09:16:10 +0300, Ariel Scolnicov wrote:

Another option is to stuff the long names into some namespace, and
export them upon request (or maybe not export them, upon request).

Can you say "method"?

-- 
Bart.



Re: RFC 290 (v1) Remove -X

2000-09-27 Thread Adam Turoff

On Wed, Sep 27, 2000 at 08:50:28AM +0200, Bart Lateur wrote:
 On 27 Sep 2000 09:16:10 +0300, Ariel Scolnicov wrote:
 
 Another option is to stuff the long names into some namespace, and
 export them upon request (or maybe not export them, upon request).
 
 Can you say "method"?

Doesn't work on scalars.  Unless every scalar should have a 
'readable()' method *just in case* it could contain a filename.

Not sure I like that.

I just drafted a set of methods.  The basic problem is -e = exists(),
and -S = socket(), which are already taken.  I didn't like the
idea of -e = present(), and I couldn't think of a synonym for 
exists that begins with 'e', nor a synonym for socket that begins with 's'.

:-)

If that isn't enough, I think we all forgot about thie difference between
-r and -R, which *really confuses things.  Is one of them more readable
than the other?

It's late, and I'm just going through another revision of 4 of my last 5,
and I went with f*() and F*() for the -RWX.  Not as bad as 

filetest::readable()
filetest::really_readable()

filetest::exists()
filetest::socket()
...

Update to be posted as soon as the left hand finds out what the right hand
was doing...

Z.




Re: RFC 290 (v2) Better english names for -X

2000-09-27 Thread Uri Guttman

 "PRL" == Perl6 RFC Librarian [EMAIL PROTECTED] writes:

  PRL -r  freadable()
  PRL -w  fwriteable()
  PRL -x  fexecable()
  PRL -o  fowned()

  PRL -R  Freadable()
  PRL -W  Fwriteable()
  PRL -X  Fexecable()
  PRL -O  Fowned()

  PRL -e  fexists()
  PRL -z  fzero()
  PRL -s  fsize()

  PRL -f  ffile()
  PRL -d  fdir()
  PRL -l  flink()
  PRL -p  fpipe()
  PRL -S  fsocket()
  PRL -b  fblock()
  PRL -c  fchar()
  PRL -t  ftty()

  PRL -u  fsetuid()
  PRL -g  fsetgid()
  PRL -k  fsticky()

  PRL -T  ftext()
  PRL -B  fbinary()

  PRL -M  fage()
  PRL -A  faccessed()
  PRL -C  fchanged()

this looks decent to me. maybe make the prefix f_ to make it a little
more readable (overriding that word again! :)?

also f/Fexecable() looks very odd. is that your choice or were your right
and left hands fighting again? executable is probably the better term
and who cares about 2 chars more if you are using this.

uri

-- 
Uri Guttman  -  [EMAIL PROTECTED]  --  http://www.sysarch.com
SYStems ARCHitecture, Software Engineering, Perl, Internet, UNIX Consulting
The Perl Books Page  ---  http://www.sysarch.com/cgi-bin/perl_books
The Best Search Engine on the Net  --  http://www.northernlight.com



Re: RFC 290 (v2) Better english names for -X

2000-09-27 Thread Adam Turoff

On Wed, Sep 27, 2000 at 03:48:33AM -0400, Uri Guttman wrote:
  "PRL" == Perl6 RFC Librarian [EMAIL PROTECTED] writes:
 
   PRL -r  freadable()
   PRL -w  fwriteable()
   PRL -x  fexecable()
   PRL -o  fowned()
 
   PRL -R  Freadable()
   PRL -W  Fwriteable()
   PRL -X  Fexecable()
   PRL -O  Fowned()

 this looks decent to me. 

Well, it leaves readable for AIO callbacks, so of course you're going
to say that.  :-)

I reserve the right to switch to readable/writeable iff the socket/exists
issue has a resolution.  Thoughts anyone?

 maybe make the prefix f_ to make it a little
 more readable (overriding that word again! :)?

I can't think of any builtins that use _, but it's going to be 
exposed by use english, so perhaps that qualifies it.  I'm 
on the fence though. If it's going to be *_writeable, is_writable()
looks better.  It is tom's original proposal, after all.

 also f/Fexecable() looks very odd. 

Patches welcome for f/F.

 is that your choice or were your right
 and left hands fighting again? executable is probably the better term
 and who cares about 2 chars more if you are using this.

No, I chose execable intentionally.  Probably change it to executable
in v3 anyway.

Z.




Re: RFC 290 (v2) Better english names for -X

2000-09-27 Thread Uri Guttman

 "AT" == Adam Turoff [EMAIL PROTECTED] writes:


  AT I can't think of any builtins that use _, but it's going to be 
  AT exposed by use english, so perhaps that qualifies it.  I'm 
  AT on the fence though. If it's going to be *_writeable, is_writable()
  AT looks better.  It is tom's original proposal, after all.

fine with me. but i like f_ (or plain f) better as is_ doesn't work well
with access/modified etc. using f/F is more consistant and marks them as
file tests.

  AT Patches welcome for f/F.

that was about the execable part, not the f/F

  AT No, I chose execable intentionally.  Probably change it to executable
  AT in v3 anyway.

who gave you permission to invent new words? :)

uri

-- 
Uri Guttman  -  [EMAIL PROTECTED]  --  http://www.sysarch.com
SYStems ARCHitecture, Software Engineering, Perl, Internet, UNIX Consulting
The Perl Books Page  ---  http://www.sysarch.com/cgi-bin/perl_books
The Best Search Engine on the Net  --  http://www.northernlight.com



Re: RFC 288 (v2) First-Class CGI Support

2000-09-27 Thread iain truskett

* Perl6 RFC Librarian ([EMAIL PROTECTED]) [27 Sep 2000 18:36]: []

[...]
 When this pragma is loaded, it should replace the print coderef with a
 function that will print out all headers in the @HEADERS queue, print
 out the desired output, and restore the print coderef.

It should also ensure that the filehandle it is printing to is STDOUT,
not something else. Otherwise if we fork to print stuff to, say,
SENDMAIL, then things will go screwy.

Was something to go happen about that headers() function or Headers
module, or did you decide we'll go for the latter and just write and
distribute it on CPAN?

What format does @HEADERS entries take? Are they straight "xxx: yyy" or
would it be better to have a function neatly join things so people don't
felch up their syntax quite so easily?

Is order important for @HEADERS? Would it be better to have %HEADERS
instead that does such auto-formatting?



cheers,
-- 
iain truskett, aka Koschei.http://eh.org/~koschei/
You know you are addicted to coffee if...
 6  You've worn out your third pair of tennis shoes this week.



Re: perl6storm #0050

2000-09-27 Thread Philip Newton

On 26 Sep 2000, Johan Vromans wrote:

 Philip Newton [EMAIL PROTECTED] writes:
 
  so fewer "cluttering"
  parentheses are needed to make things readable while still being correct.
 
 By the same reasoning, you can reduce the use of curlies by using
 indentation to define block structure.

What an idea! I wonder why no language has tried this before.

Cheers,
Philip
-- 
Philip Newton [EMAIL PROTECTED]




Re: perl6storm #0050

2000-09-27 Thread Philip Newton

On 26 Sep 2000, Johan Vromans wrote:

 Philip Newton [EMAIL PROTECTED] writes:
 
  so fewer "cluttering"
  parentheses are needed to make things readable while still being correct.
 
 Since when do parentheses make things less readable?

Each parenthesis is one "token". The more tokens you need to process, to
more you need to think. (Especially if there is little whitespace, but to
some extent also if not.)

 What is your definition of readable?

"I know it when I see it". I don't have a definition that I can put in
words. But it probably involves whitespace between tokens and the number
of tokens.

Cheers,
Philip
-- 
Philip Newton [EMAIL PROTECTED]




Re: perl6storm #0050

2000-09-27 Thread Piers Cawley

Robert Mathews [EMAIL PROTECTED] writes:

 Simon Cozens wrote:
  (defun Schwartzian (func list)
(mapcar
 (lambda (x) (car x))
 (sort
  (mapcar
   (lambda (x) (cons x (funcall func x)))
   list
   )
  (lambda (x y) ( (cdr x) (cdr y)))
  )
 )
)
  
  Maybe you'd prefer this:
  
  defun Schwartzian func list mapcar lambda x car x sort mapcar
  lambda x cons x funcall func x list lambda x y  cdr x cdr y
  
  I know which I'd rather read.
 
 Ok, you've proved that lisp doesn't make sense without all those
 annoying parentheses.  

You know, I'm trying to see what's annoying about all those
parentheses in the lisp function and what do you know, I can't see
anything wrong. Okay, so it's not Perl syntax, but it's still clear
what's going on.




Re: perl6storm #0050

2000-09-27 Thread iain truskett

* Philip Newton ([EMAIL PROTECTED]) [27 Sep 2000 19:54]:
 On 26 Sep 2000, Johan Vromans wrote:
[...]
  By the same reasoning, you can reduce the use of curlies by using
  indentation to define block structure.

 What an idea! I wonder why no language has tried this before.

I realise you're being sarcastic here, but my serious reply is "because
it reduces readability".

It forces the concept that all statements are equal.

Do you really want to see:

@sorted = sort
$b cmp $a
@lines;

Hmm. Not entirely sure how that indenting went. Let's try again:

@sorted = sort
$b cmp $a
@lines;

Maybe:

@sorted = sort
$b cmp $a
@lines;

I know!

@sorted = sort { $b cmp $a } @lines;

Works brilliantly!

People are probably thinking "no: just for for() while() and so on."

I'm thinking "consistency is the key to everything, including my tomato
soup". Do it one place, it should be eligible everywhere.

And maybe I want to write simple accesors like:

sub title { $_[0]-{'title'} }

Not as clear as

sub title
{
my $self = shift;
return $self-{'title'};
}

But clearer than

sub title
my $self = shift;
return $self-{'title'};


Which really needs something to end it with (such as 'endsub') otherwise
for more complicated routines it is hard to see where your function is
ending. Those { } do have more than just a syntactic use. They provide a
visual aid to the delineation of blocks.


Anyway. That was my irrelevant rant for the day. Erm. I'll go away now.


cheers,
-- 
iain truskett, aka Koschei.http://eh.org/~koschei/
You know you are addicted to coffee if...
 7  Your eyes stay open when you sneeze.



Re: RFC 263 (v1) Add null() keyword and fundamental data type

2000-09-27 Thread Tom Christiansen

This is screaming mad.  I will become perl6's greatest detractor and
anti-campaigner if this nullcrap happens.  And I will never shut up
about it,
either.  Mark my words.

Visit our website at http://www.ubswarburg.com

This message contains confidential information and is intended only 
for the individual named.  If you are not the named addressee you 
should not disseminate, distribute or copy this e-mail.  Please 
notify the sender immediately by e-mail if you have received this 
e-mail by mistake and delete this e-mail from your system.

E-mail transmission cannot be guaranteed to be secure or error-free 
as information could be intercepted, corrupted, lost, destroyed, 
arrive late or incomplete, or contain viruses.  The sender therefore 
does not accept liability for any errors or omissions in the contents 
of this message which arise as a result of e-mail transmission.  If 
verification is required please request a hard-copy version.  This 
message is provided for informational purposes and should not be 
construed as a solicitation or offer to buy or sell any securities or 
related financial instruments.




Re: Perl6Storm: Intent to RFC #0101

2000-09-27 Thread Tom Christiansen

./sun4-solaris/POSIX.pm:sub isatty {
./sun4-solaris/B/Deparse.pm:sub is_scope {
./sun4-solaris/B/Deparse.pm:sub is_state {
./sun4-solaris/B/Deparse.pm:sub is_miniwhile { # check for one-line loop
(`foo() while $y--')
./sun4-solaris/B/Deparse.pm:sub is_scalar {
./sun4-solaris/B/Deparse.pm:sub is_subscriptable {
./CGI.pm:sub isindex {
./CPAN.pm:sub is_reachable {
./CPAN.pm:sub isa_perl {
./Pod/Select.pm:sub is_selected {
./ExtUtils/Embed.pm:sub is_cmd { $0 eq '-e' }
./ExtUtils/Embed.pm:sub is_perl_object {

Visit our website at http://www.ubswarburg.com

This message contains confidential information and is intended only 
for the individual named.  If you are not the named addressee you 
should not disseminate, distribute or copy this e-mail.  Please 
notify the sender immediately by e-mail if you have received this 
e-mail by mistake and delete this e-mail from your system.

E-mail transmission cannot be guaranteed to be secure or error-free 
as information could be intercepted, corrupted, lost, destroyed, 
arrive late or incomplete, or contain viruses.  The sender therefore 
does not accept liability for any errors or omissions in the contents 
of this message which arise as a result of e-mail transmission.  If 
verification is required please request a hard-copy version.  This 
message is provided for informational purposes and should not be 
construed as a solicitation or offer to buy or sell any securities or 
related financial instruments.




Re: perl6storm #0050

2000-09-27 Thread Simon Cozens

On Wed, Sep 27, 2000 at 09:52:57AM +0100, Piers Cawley wrote:
 You know, I'm trying to see what's annoying about all those
 parentheses in the lisp function and what do you know, I can't see
 anything wrong. Okay, so it's not Perl syntax, but it's still clear
 what's going on.

I'd go further than that.

It's clear what's going on for a number of reasons. Firstly, you know the
language. Secondly, you know what it's trying to do because the function and
the variables are well named. Thirdly, I used whitespace and indentation to
make the various levels apparent - that's why I removed the whitespace on the
second example. 

There are many other tricks for making code readable, and whether or not the
language supports bracketing or, indeed, any other feature is more or less
irrelevant to all of them. You can write clear code in any language, if you
take the time; you can write Python in any language, if you want.

Readability is a programmer feature, not a language feature.

-- 
"There is no statute of limitations on stupidity."
-- Randomly produced by a computer program called Markov3.



Re: RFC 263 (v1) Add null() keyword and fundamental data type

2000-09-27 Thread Simon Cozens

On Wed, Sep 20, 2000 at 04:12:09AM -, Perl6 RFC Librarian wrote:
 The concept of Cnull as opposed to Cundef is sometimes difficult for
 people to understand.

"People" in this context being the people who are reading perl6-language and
purporting to be able to know what Perl 6 needs. People who ought to really
understand Perl and how it works. If this concept is too difficult for them, 
then it really shouldn't exist. KISS.

-- 
If the code and the comments disagree, then both are probably wrong.
-- Norm Schryer



Re: perl6storm #0050

2000-09-27 Thread Piers Cawley

Simon Cozens [EMAIL PROTECTED] writes:
 Readability is a programmer feature, not a language feature.

The most important optimization a programmer can make is to optimize
for understanding.

-- 
Piers




RE: RFC 263 (v1) Add null() keyword and fundamental data type

2000-09-27 Thread David Grove

On Wednesday, September 27, 2000 4:17 AM, Tom Christiansen 
[SMTP:[EMAIL PROTECTED]] wrote:
 This is screaming mad.  I will become perl6's greatest detractor and
 anti-campaigner if this nullcrap happens.  And I will never shut up
 about it,
 either.  Mark my words.

Quote from Larry: "I have a particular distaste for the sort of argument that 
goes, 'If I can't have it my way, I'm going to take all my marbles and go 
home.' That's not an argument--that's nuclear blackmail. I'm the only one who's 
allowed to make that sort argument, and you'll never hear me making it."

On the other hand, I have to agree with the core sentiments. All this talk 
about nulls and strong types and everything-is-an-object is frankly scaring the 
willies out of me. Maybe perl does need a revamp, but it should still stay 
perl. I'm a perl programmer, not a Visual PerlBOLthonajaffellispQL++ robot.

Perl has always stood on these:

There is more than one way to do it. (Public/private OOP?)

No arbitrary limits. (Everything is an object? Exceptions getting in the way of 
open(FILE,"file") or die "$!\n"? Hard typing?)

We're very proud of our language that doesn't force us to put an if before or 
after a statement, and doesn't care whether we indent one tab per block level, 
and doesn't belch out exceptions at us if we forget the ungodly mess of 
exception classes, and allows sheep to sleep and die if I feel poetic. Perl is 
Perl. It isn't Java. It isn't C++. It isn't Python (thank goodness). Maybe 
there are a few nifties we can borrow from those creations, but twisting the 
language inside out to make it closely resemble something second or third or 
fourth best is quite distasteful. We're improving a language here, not creating 
a new one.

Again from Larry: "At the moment, I'm not only trying to follow along here; I'm 
also reading all the books on computer languaes I can get my hands on--not just 
to look for ideas to steal, but also to remind myself of the mindset Perl was 
designed to escape."

and nate: "If you want Ada, you know where to find it"

There are a lot of good ideas in these RFC's. Lot of wishing it was language X 
too, which I can't see as a good thing. Map to null, work around the problem. 
It takes, what, one line of code to do so? This isn't C where it would take 20 
or C++ where it would take 200.
But having a real switch statement... that's been on the table for years now...
and having parseable regex syntax, fine.




Re: RFC 292 (v1) Extensions to the perl debugger

2000-09-27 Thread Johan Vromans

[Quoting Dave Storrs, on September 26 2000, 11:47, in "Re: RFC 292 (v1) Ext"]
   I'm confused...are you suggesting that the debugger should no
 longer be integrated into perl?

Absolutely not!

What I wanted to indicate is that the input and output handling of the
debugger, currently line input and line output, should not be turned
into a sophisticated user interface with command line recall/editing
and fancy output paging (e.g. two independently scrollable windows,
one for input and one for output). External tools should manage that.
I mentioned the way the perl debugger runs under Emacs, ptkdb is
another good example.

BTW: the debugger already has command line recall/editing using
Term::ReadLine. 

-- Johan




Re: RFC 320 (v1) Allow grouping of -X file tests and add Cfiletest builtin

2000-09-27 Thread Philip Newton

On Tue, 26 Sep 2000, Nathan Wiger wrote:

 John Porter wrote:
  
  Yeah, not to mention the fact that many modules, notably CGI.pm,
  are arranged to allow to use unquoted strings of the form -name:
  
  print textfield( -name = 'description' );
 
 Well, this one's not an issue, because = auto-quotes the LHS. It's the
 same as this:
 
   print textfield( "-name", 'description' );

Actually, more like this:

print textfield( -'name', 'description' );

Try putting it through -MO=Deparse. I guess the quoting behaviour of =
"binds" more strongly than the hyphen, so that "-name =" is interpreted
as unary minus + bareword 'name' + big arrow, leading to unary minus +
quoted bareword 'name' + big arrow, which is equivalent to - "name" and a
comma. Fortunately, - "string" doesn't convert "string" to a number (0)
and then apply negation but results in "-string" (`perldoc perlop` says:
"If the operand is an identifier, a string consisting of a minus sign
concatenated with the identifier is returned. [...] One effect of these
rules is that `-bareword' is equivalent to `"-bareword"'."

Cheers,
Philip
-- 
Philip Newton [EMAIL PROTECTED]




Re: RFC 288 (v2) First-Class CGI Support

2000-09-27 Thread iain truskett

* Philip Newton ([EMAIL PROTECTED]) [27 Sep 2000 22:51]:
 On Wed, 27 Sep 2000, iain truskett wrote:

  Is order important for @HEADERS? Would it be better to have %HEADERS
  instead that does such auto-formatting?

 In my opinion, no, for the reasons given before. Hashes are unordered,
 and if you want to order the keys, you need to know the possibly keys
 and in which order they come. Then, if HTTP/4.2 comes out with the
[...]
 Better to have something that's either (a) pluggable without having to
 replace all of Perl, or (b) header-agnostic, so you have to specify
 your own ordering -- which also means you *can* specify your own
 ordering.

So surely you'd want %HTTP (the input headers) to also be an array
rather than a hash, since they'd be required in order as well?


cheers,
-- 
iain truskett, aka Koschei.http://eh.org/~koschei/
  The best effect of any book is that it excites the reader to self
  activity. Thomas Carlyle



Re: Perl6Storm: Intent to RFC #0101

2000-09-27 Thread Tom Christiansen

You suggested:

 file($file, 'w');  # is it writeable?

That's really insane.  The goal was to produce code that's legible. 
That is hardly better.  It's much worse than is_writable or writable
or whatnot.  Just use -w if that's what you want.

--tom

Visit our website at http://www.ubswarburg.com

This message contains confidential information and is intended only 
for the individual named.  If you are not the named addressee you 
should not disseminate, distribute or copy this e-mail.  Please 
notify the sender immediately by e-mail if you have received this 
e-mail by mistake and delete this e-mail from your system.

E-mail transmission cannot be guaranteed to be secure or error-free 
as information could be intercepted, corrupted, lost, destroyed, 
arrive late or incomplete, or contain viruses.  The sender therefore 
does not accept liability for any errors or omissions in the contents 
of this message which arise as a result of e-mail transmission.  If 
verification is required please request a hard-copy version.  This 
message is provided for informational purposes and should not be 
construed as a solicitation or offer to buy or sell any securities or 
related financial instruments.




Re: RFC 259 (v2) Builtins : Make use of hashref context for garrulous builtins

2000-09-27 Thread Tom Christiansen

 grep -l Class::Struct */*.pm
Class/Struct.pm
File/stat.pm
Net/hostent.pm
Net/netent.pm
Net/protoent.pm
Net/servent.pm
Time/gmtime.pm
Time/localtime.pm
Time/tm.pm
User/grent.pm
User/pwent.pm

Please check those out for precedent and practice.

Visit our website at http://www.ubswarburg.com

This message contains confidential information and is intended only 
for the individual named.  If you are not the named addressee you 
should not disseminate, distribute or copy this e-mail.  Please 
notify the sender immediately by e-mail if you have received this 
e-mail by mistake and delete this e-mail from your system.

E-mail transmission cannot be guaranteed to be secure or error-free 
as information could be intercepted, corrupted, lost, destroyed, 
arrive late or incomplete, or contain viruses.  The sender therefore 
does not accept liability for any errors or omissions in the contents 
of this message which arise as a result of e-mail transmission.  If 
verification is required please request a hard-copy version.  This 
message is provided for informational purposes and should not be 
construed as a solicitation or offer to buy or sell any securities or 
related financial instruments.




Re: Perl6Storm: Intent to RFC #0101

2000-09-27 Thread Jerrad Pierce

You suggested:
 file($file, 'w');  # is it writeable?

Not that I'm advocating it but you do something like:

test($file, WRITEABLE);
test($file, WRITEABLE  READABLE);
...

where constants are defined for various "attributes" to be tested for...
Currently 23, or 3 bytes... (not that it matters ;-)

This seems rather readable and less (name-space) cluttery,
and if it suits you it could be named ftest or somesuch...

Hell you could even make it magical and allow the -X switched enlieu of
constants... Where use English would be required to get the constants.
--
#!/usr/bin/perl -nl
BEGIN{($,,$0)=("\040",21);@F=(sub{tr[a-zA-Z][n-za-mN-ZA-M];print;});
$_="Gnxr 1-3 ng n gvzr, gur ynfg bar vf cbvfba.";{$F[0]};sub t{*t=sub{};
return if rand().5;$_="Vg'f abg lbhe ghea lrg, abj tb.";{$F[0]};$_=0;}
sub v{print map sprintf('%c', 2**7-2**2),(1 .. $0);}v;}{$_++;$_--;$_||=4;
if($_2||($_212)){$_="Vainyvq ragel";{$F[0]};last;}t;$0-=$_;$_="Lbh jva";
die({$F[0]}) if !($0-1);$0-=$0%2?$02?2:1:$0=5?$02?3:1:rand.5?1:3;
$_="V jva";die({$F[0]}) if !($0-11);}v __END__ http://pthbb.org/
MOTD on Setting Orange, the 51st of Bureaucracy, in the YOLD 3166:

No, just the nipple-cones, officer, just the nipple-cones.



Re: RFC 290 Remove -X

2000-09-27 Thread Tom Christiansen

One doesn't remove useful and intuitive syntax
just because Mr Bill never put it into MS-BASIC!

I merely passingly suggested that there be a 
use English style alias for these.  They are, however,
wholly natural to millions of people, and should not
be harrassed.  (NB: 10 million Linux weenies alone)
Still, twould be nice to have -rw and -rx and stuff, too. :-)
BTW, -s(FH)/2 is still wickedly broken.

Visit our website at http://www.ubswarburg.com

This message contains confidential information and is intended only 
for the individual named.  If you are not the named addressee you 
should not disseminate, distribute or copy this e-mail.  Please 
notify the sender immediately by e-mail if you have received this 
e-mail by mistake and delete this e-mail from your system.

E-mail transmission cannot be guaranteed to be secure or error-free 
as information could be intercepted, corrupted, lost, destroyed, 
arrive late or incomplete, or contain viruses.  The sender therefore 
does not accept liability for any errors or omissions in the contents 
of this message which arise as a result of e-mail transmission.  If 
verification is required please request a hard-copy version.  This 
message is provided for informational purposes and should not be 
construed as a solicitation or offer to buy or sell any securities or 
related financial instruments.




Better Security support (was: RFC 290 (v1) Remove -X)

2000-09-27 Thread Tom Christiansen

The -wd syntax (writeable directory) is nicer than file($file, "wd").
But anyway, there's hardly anything wrong with -w  -d.  Don't
understand
the complaint.

One thing I would really like to see is better security support.  Look
at the Camel-III's security chapter, File::Temp, and the is_safe
stuff I've done lately.

Visit our website at http://www.ubswarburg.com

This message contains confidential information and is intended only 
for the individual named.  If you are not the named addressee you 
should not disseminate, distribute or copy this e-mail.  Please 
notify the sender immediately by e-mail if you have received this 
e-mail by mistake and delete this e-mail from your system.

E-mail transmission cannot be guaranteed to be secure or error-free 
as information could be intercepted, corrupted, lost, destroyed, 
arrive late or incomplete, or contain viruses.  The sender therefore 
does not accept liability for any errors or omissions in the contents 
of this message which arise as a result of e-mail transmission.  If 
verification is required please request a hard-copy version.  This 
message is provided for informational purposes and should not be 
construed as a solicitation or offer to buy or sell any securities or 
related financial instruments.




Re: RFC 303 (v1) Keep Cuse less, but make it work.

2000-09-27 Thread Tom Christiansen

Don't change "use less" to "use optimize".  We don't
need to ruin the cuteness.

Visit our website at http://www.ubswarburg.com

This message contains confidential information and is intended only 
for the individual named.  If you are not the named addressee you 
should not disseminate, distribute or copy this e-mail.  Please 
notify the sender immediately by e-mail if you have received this 
e-mail by mistake and delete this e-mail from your system.

E-mail transmission cannot be guaranteed to be secure or error-free 
as information could be intercepted, corrupted, lost, destroyed, 
arrive late or incomplete, or contain viruses.  The sender therefore 
does not accept liability for any errors or omissions in the contents 
of this message which arise as a result of e-mail transmission.  If 
verification is required please request a hard-copy version.  This 
message is provided for informational purposes and should not be 
construed as a solicitation or offer to buy or sell any securities or 
related financial instruments.




RFC 307 (v1) PRAYER - what gets said when you Cbless something

2000-09-27 Thread Tom Christiansen

Goodness, no, don't call it "PRAYER".   The blessing
is one of corporate approval, not ecclesiastical deprecationem.
Please don't piss people off.

Visit our website at http://www.ubswarburg.com

This message contains confidential information and is intended only 
for the individual named.  If you are not the named addressee you 
should not disseminate, distribute or copy this e-mail.  Please 
notify the sender immediately by e-mail if you have received this 
e-mail by mistake and delete this e-mail from your system.

E-mail transmission cannot be guaranteed to be secure or error-free 
as information could be intercepted, corrupted, lost, destroyed, 
arrive late or incomplete, or contain viruses.  The sender therefore 
does not accept liability for any errors or omissions in the contents 
of this message which arise as a result of e-mail transmission.  If 
verification is required please request a hard-copy version.  This 
message is provided for informational purposes and should not be 
construed as a solicitation or offer to buy or sell any securities or 
related financial instruments.




Re: RFC 263 (v1) Add null() keyword and fundamental data type

2000-09-27 Thread Nathan Wiger

David Grove wrote:
 
 On Wednesday, September 27, 2000 4:17 AM, Tom Christiansen wrote:

  This is screaming mad.  I will become perl6's greatest detractor and
  anti-campaigner if this nullcrap happens.  And I will never shut up
  about it,
  either.  Mark my words.
 
 Quote from Larry: "I have a particular distaste for the sort of argument that
 goes, 'If I can't have it my way, I'm going to take all my marbles and go
 home.' That's not an argument--that's nuclear blackmail. I'm the only one who's
 allowed to make that sort argument, and you'll never hear me making it."

Yes, and this RFC was already retracted, so flames are particularly
silly. So could we all please let it die and comment on the 'use
tristate' alternative proposed in RFC 275?

-Nate



RE: perl6storm #0050

2000-09-27 Thread David Grove

On Wednesday, September 27, 2000 10:21 AM, John Porter [SMTP:[EMAIL PROTECTED]] 
wrote:
 Philip Newton wrote:
  On 26 Sep 2000, Johan Vromans wrote:
  
   By the same reasoning, you can reduce the use of curlies by using
   indentation to define block structure.
 
  What an idea! I wonder why no language has tried this before.

 It's a question of what the language allows vs. what it requires.
 Perl is nice because it allows you to write in (nearly) any style you
 want -- lots of parens, no whitespace...  Requiring the use of parens
 is about as un-perl-like as requiring indentation to denote blocks.


Although I have no interest in saying anything supportive of this idea, I think 
it would be dreadfully funny if Python suddenly lost its primary point of 
advocacy against the Perl language just because we allowed (not required) 
blocks by indentation. Maybe then they'd stop invading perl5-advocacy. ;-))

But no thanks: pass. (Is that sys.pass() or language.pass()?)




Re: RFC 303 (v1) Keep Cuse less, but make it work.

2000-09-27 Thread Simon Cozens

On Wed, Sep 27, 2000 at 03:49:10PM +0100, Tom Christiansen wrote:
 Don't change "use less" to "use optimize".  We don't
 need to ruin the cuteness.

"use less 'rolled_loops';" sounds really weird.

-- 
UNIX was not designed to stop you from doing stupid things, because that
would also stop you from doing clever things.
-- Doug Gwyn



Re: RFC 290 (v2) Better english names for -X

2000-09-27 Thread Nathan Wiger

Adam Turoff wrote:
 
PRL -r  freadable()
PRL -w  fwriteable()
PRL -x  fexecable()
PRL -o  fowned()
 
PRL -R  Freadable()
PRL -W  Fwriteable()
PRL -X  Fexecable()
PRL -O  Fowned()
 
  this looks decent to me.
 
 I reserve the right to switch to readable/writeable iff the socket/exists
 issue has a resolution.  Thoughts anyone?

I actually like the above because of the common prefix. It makes it
quite clear these are file tests.
 
  maybe make the prefix f_ to make it a little
  more readable (overriding that word again! :)?
 
 I can't think of any builtins that use _

Indeed, no builtins include _. In fact, the warning

   Unquoted string "stuff" may clash with future reserved word

is only raised if:

  You used a bareword that might someday be claimed as a
  reserved word. It's best to put such a word in quotes,
  or capitalize it somehow, or insert an underbar into it.
 
  also f/Fexecable() looks very odd.
 
 Patches welcome for f/F.

Yeah, mixed case gives me the willies! Bigtime. Plus, see above. Here's
some:

   frealreadable()
   frealwriteable()
   frealexecable()
   frealowned

I was going to list other alternatives, but I think those work just
fine, personally. Long is not necessarily bad; this is "use english"
after all.

-Nate



Re: RFC 288 (v2) First-Class CGI Support

2000-09-27 Thread James Mastros

On Wed, Sep 27, 2000 at 07:36:42AM -, Perl6 RFC Librarian wrote:
 Tainting should be able to be turned off, as Tom recommends,
 but only if the user turns on the "absolutely, positively,
 do NOT turn on taint mode" switch.
I can see it now -- Cno taint 'really';.  Really, I don't see why we can't
just have a 'use taint' and 'no taint' pargma.  You have to turn on tainting
at the commandline, but other then that, you can turn it on and off (even
Cuse taint 'warning', possibly) at runtime.  Doing so is probably not a
good idea in the vast majority of cases, but should still be supported.

Perl should have a safety on its guns, but shouldn't prevent you from
shooting yourself in the foot if you really want to.  Otherwise, perl would
be another BD language.

In specific, I can see a suid script dropping permissions, and then doing a
'no taint' so it can run freely in the end-user's account.  Think
cgi_wrapper without spawning a new interpreter.

-=- James Mastros
-- 
-BEGIN GEEK CODE BLOCK-
Version: 3.1
GUCS d--- s-:- a20 C++ UL+++@ P L++@ E-() N o? K? w@ M-- !V
PS++ PE Y+ PGP(-) t++@ 5+ X+++ R+ tv+ b+++ DI+ D+ G e++ h! r- y?
--END GEEK CODE BLOCK--



Re: RFC 292 (v1) Extensions to the perl debugger

2000-09-27 Thread Dave Storrs



On Wed, 27 Sep 2000, Johan Vromans wrote:

 What I wanted to indicate is that the input and output handling of the
 debugger, currently line input and line output, should not be turned
 into a sophisticated user interface with command line recall/editing
 and fancy output paging (e.g. two independently scrollable windows,
 one for input and one for output). External tools should manage that.
 I mentioned the way the perl debugger runs under Emacs, ptkdb is
 another good example.
 
 BTW: the debugger already has command line recall/editing using
 Term::ReadLine. 


I disagree.  I want to have perl provide reasonable default
behavior for these extremely useful and commonly-desired functions, and I 
don't want it to be dependent on modules from outside the core or on
requiring the user to configure something (after all, if the user must
configure it, it's not default).  I want perl to provide me with a
standard interface which satsifies my basic requirements.  I want this
interface to be the same on all platforms so I don't need to get used to
"oh yeah, today I'm on the Windows box, so it's Shift-UpArrow for the
command history."

I'm not saying that outside tools shouldn't be built to provide
_better_ versions of the standard behavior, or nicer UIs.  I'm just saying
that the basic versions are not acceptable, and should be improved and
standardized.

Dave




Re: RFC 303 (v1) Keep Cuse less, but make it work.

2000-09-27 Thread Piers Cawley

Simon Cozens [EMAIL PROTECTED] writes:

 On Wed, Sep 27, 2000 at 03:49:10PM +0100, Tom Christiansen wrote:
  Don't change "use less" to "use optimize".  We don't
  need to ruin the cuteness.
 
 "use less 'rolled_loops';" sounds really weird.

We obviously need to introduce a synonymous
Cuse fewer 'rolled_loops' for when we want to be grammatically
correct. Or am I just being silly now?

-- 
piers




Re: RFC 19 (v2) Rename the Clocal operator

2000-09-27 Thread Nathan Wiger

 Rename the Clocal operator

 A list of other proposed replacement names includes (but is not
 limited to, since I certainly have forgotten some):

 Cnow

Unfortunately, I wish this RFC would have taken a stand on at least a
first choice. :-( I always thought that "now" was by far the most
descriptive, because these changes really are scoped in time, and not
location (since they reach throughout code). Plus, it's short. Short
good.

I also thought there was considerable consensus on this one, at least
more than any of the others:

http://www.mail-archive.com/perl6-language@perl.org/msg01174.html
http://www.mail-archive.com/perl6-language@perl.org/msg01245.html
http://www.mail-archive.com/perl6-language@perl.org/msg01266.html
http://www.mail-archive.com/perl6-language@perl.org/msg01294.html

Plus you didn't even mention my "here" suggestion (which is fine,
actually, because I like "now" better anyways). :-)

-Nate



Re: RFC 288 (v2) First-Class CGI Support

2000-09-27 Thread Adam Turoff

On Wed, Sep 27, 2000 at 12:09:20PM -0400, James Mastros wrote:
 Really, I don't see why we can't
 just have a 'use taint' and 'no taint' pargma.  

Because taint mode needs to be turned on REEELY early, like before
pragmas are compiled.

Z.




Re: RFC 288 (v2) First-Class CGI Support

2000-09-27 Thread Nathan Wiger

Philip Newton wrote:
 
  Is order important for @HEADERS? Would it be better to have %HEADERS
  instead that does such auto-formatting?
 
 In my opinion, no, for the reasons given before. Hashes are unordered, and
 if you want to order the keys, you need to know the possibly keys and in
 which order they come. Then, if HTTP/4.2 comes out with the Toast:
 light|medium|dark header, which has to come after the new Breakfast:
 header 

Wait, you're both right! ;-)

Personally, I'd like to see a simple version of CGI::header be embedded
in core. HTTP-type headers are widely used in many applications. So you
could have:

   @HEADERS = header(content-type = 'text/html',
 toast = 'medium',   # not too crispy
 breakfast = 'yes');

Under normal life, @HEADERS would just be some variable. But the "use
cgi" pragma could simply flush @HEADERS out ahead of time before your
output stream. If @HEADERS is empty, the "use cgi" pragma just prints
out "Content-type: text/html\n\n";

Note that HTTP-style headers are used lots of other places:

   @mail_header = header(from = '[EMAIL PROTECTED]',
 to = '[EMAIL PROTECTED]');
   print $MAILPIPE @mail_header, @mail_message;

So, the formatting of and the auto-printing of cgi headers are really
two separate things. 

Ziggy, are you interested in this idea enough (at all?) to stick a note
about the 'header' function into the RFC? Or should I RFC it separately?

-Nate



Re: RFC 303 (v1) Keep Cuse less, but make it work.

2000-09-27 Thread John Porter

Piers Cawley wrote:
 Simon Cozens [EMAIL PROTECTED] writes:
  "use less 'rolled_loops';" sounds really weird.
 
 We obviously need to introduce a synonymous
 Cuse fewer 'rolled_loops' for when we want to be grammatically
 correct. Or am I just being silly now?

Or have perl enforce the correct grammar.

% perl -w
use less 'calories';
syntax error at - line 1, near "use less"
Execution of - aborted due to compilation errors.


But on a tangential note: has anyone proposed letting
functions, perhaps by prototype, allow the autoquoting
of arguments?  Why should we not be able to write

use fewer sewers;

and have it dwim?

-- 
John Porter

Aus des Weltalls ferne  funken Radiosterne.




Re: RFC 303 (v1) Keep Cuse less, but make it work.

2000-09-27 Thread Simon Cozens

On Wed, Sep 27, 2000 at 02:45:24PM -0400, John Porter wrote:
 But on a tangential note: has anyone proposed letting
 functions, perhaps by prototype, allow the autoquoting
 of arguments? 

I thought about it, but it's hard to know when to stop.

use fewer sewers;

would be fine, and I'd like to see it work, but what I *really* wanted was

l((apply foo (mapcar bar (@wibble

-- 
In related wibbling, I can see an opening for the four lusers of the
Apocalypse... "I didn't change anything", "My e-mail doesn't work",
"I can't print" and "Is the network broken?".
- Paul Mc Auley



Re: RFC 303 (v1) Keep Cuse less, but make it work.

2000-09-27 Thread John Porter

Simon Cozens wrote:
 
 I thought about it, but it's hard to know when to stop.

Yep.  If you don't stop, pretty soon you have sh.  :-P


 l((apply foo (mapcar bar (@wibble

pragma time:

use literal qw( apply mapcar http://www.perl.org/ );

use LWP::Simple;

getprint http://www.perl.org/;

Oh No!  Rebol!  -P 

-- 
John Porter

Aus des Weltalls ferne  funken Radiosterne.




Re: perl6storm #0050

2000-09-27 Thread John Porter

Piers Cawley wrote:
 
 You know, I'm trying to see what's annoying about all those
 parentheses in the lisp function and what do you know, I can't see
 anything wrong. Okay, so it's not Perl syntax, but it's still clear
 what's going on.

Yes, but it's hard to read.  Lisp requires parens, because it
has no precedence rules. (Well, hardly any).  It has (almost)
no other syntax.  This is the situation we would like to avoid
in perl.  By letting every operator have well-defined precedence,
and every be function well prototyped, there should never be any
ambiguity (to the compiler, at least) as to what is meant, even
with no parens.  Ideally, anyway.

-- 
John Porter

Aus des Weltalls ferne  funken Radiosterne.




Re: perl6storm #0050

2000-09-27 Thread John Porter

Simon Cozens wrote:
 Readability is a programmer feature, not a language feature.

Right.  Parens, and other devices for "readability", are there
for the user to use, if she chooses.  Perl is not about forcing
a certain style.

-- 
John Porter

Aus des Weltalls ferne  funken Radiosterne.




Re: perl6storm #0050

2000-09-27 Thread Simon Cozens

On Wed, Sep 27, 2000 at 03:35:39PM -0400, John Porter wrote:
 Yes, but it's hard to read.  Lisp requires parens, because it
 has no precedence rules. (Well, hardly any).  It has (almost)
 no other syntax.  This is the situation we would like to avoid
 in perl.  By letting every operator have well-defined precedence,
 and every be function well prototyped, there should never be any
 ambiguity (to the compiler, at least) as to what is meant, even
 with no parens.  Ideally, anyway.

Perl is English-like. And sometimes in English parentheses *are* necessary to
increase both meaning and readability, as your own message proves.

-- 
The PROPER way to handle HTML postings is to cancel the article, then hire a
hitman to kill the poster, his wife and kids, and fuck his dog and smash his
computer into little bits.  Anything more is just extremism.
- Paul Tomblin, in the monastery.



Re: RFC 263 (v1) Add null() keyword and fundamental data type

2000-09-27 Thread Dan Sugalski

At 10:26 AM 9/27/00 +0100, Simon Cozens wrote:
On Wed, Sep 20, 2000 at 04:12:09AM -, Perl6 RFC Librarian wrote:
  The concept of Cnull as opposed to Cundef is sometimes difficult for
  people to understand.

"People" in this context being the people who are reading perl6-language and
purporting to be able to know what Perl 6 needs. People who ought to really
understand Perl and how it works. If this concept is too difficult for them,
then it really shouldn't exist. KISS.

SQL's NULL is an interesting and rather useful concept, though it's fairly 
mind-bending if you've not had much reason to use it. (The same can be said 
for OO programming, undef, and regular expressions) Whether (and how) it 
should be in perl is another matter entirely, of course.

Dan

--"it's like this"---
Dan Sugalski  even samurai
[EMAIL PROTECTED] have teddy bears and even
  teddy bears get drunk




Re: RFC 288 (v2) First-Class CGI Support

2000-09-27 Thread Dan Sugalski

At 02:20 PM 9/27/00 -0400, Adam Turoff wrote:
On Wed, Sep 27, 2000 at 12:09:20PM -0400, James Mastros wrote:
  Really, I don't see why we can't
  just have a 'use taint' and 'no taint' pargma.

Because taint mode needs to be turned on REEELY early, like before
pragmas are compiled.

'no taint' does make sense, though 'use taint' might not except to locally 
undo 'no taint'. Whether it's feasable in a program that's not invoked with 
taint checking depends on how much the parser depends on the potentially 
icky before parsing's complete. Of course, we can always maintain tainting 
status and just ignore it unless we're in a taint-checking block.

Dan

--"it's like this"---
Dan Sugalski  even samurai
[EMAIL PROTECTED] have teddy bears and even
  teddy bears get drunk




Re: RFC 288 (v2) First-Class CGI Support

2000-09-27 Thread Nathan Wiger

Sounds good. I'll start on my 39th :-{ RFC right now... ;-)

-Nate

Adam Turoff wrote:
 
 On Wed, Sep 27, 2000 at 11:33:13AM -0700, Nathan Wiger wrote:
  Ziggy, are you interested in this idea enough (at all?) to stick a note
  about the 'header' function into the RFC? Or should I RFC it separately?
 
 Adding headers() to the core language (or a similar pragma that is
 automagically invoked by cgi) would make more sense to me.  I'd be in
 favor of a new RFC.  Adding it into cgi sounds like we're on the
 road to spontaneously reinventing CGI.pm...
 
 It has uses in HTTP, CGI and SMTP contexts, probably others.  Would
 be nice if there were some sort of interaction with 'open http $url' as
 well.   Perhaps that would be what supplies %HTTP (or %HEADERS) for
 incoming headers and does trickery with print and @HEADERS...
 
 Z.



Re: perl6storm #0050

2000-09-27 Thread John Porter

Simon Cozens wrote:
 
 Perl is English-like. And sometimes in English parentheses *are* necessary to
 increase both meaning and readability, as your own message proves.

That's rather disingenuous, since perl does not use parens for 
the same purpose English does.  Parens are necessary in a programming
language to override the default precedence.  (Wouldn't it be nice
if we used them in English for that.  Alas.)

"Meaning" is not "increased".  Whether readability is enhanced
is debatable.  I tend to think not.

-- 
John Porter

Aus des Weltalls ferne  funken Radiosterne.




Re: RFC 288 (v2) First-Class CGI Support

2000-09-27 Thread Nathan Wiger

Dan Sugalski wrote:
 
 Because taint mode needs to be turned on REEELY early, like before
 pragmas are compiled.
 
 'no taint' does make sense, though 'use taint' might not except to locally
 undo 'no taint'. 

Actually, from my talks with Larry both on and off-list about this, he
convinced me pretty strongly that the only thing that really makes sense
is untainting data sources. And this should be done via $fh-untaint,
which already exists.

The original email was here:

http://www.mail-archive.com/perl6-language@perl.org/msg00394.html

Follow the thread a little for details. A "no taint 'checking'" seems
like an interesting idea, but I'm not sure providing lots of ways around
tainting is what we want...

-Nate



Re: perl6storm #0050

2000-09-27 Thread Buddha Buck

At 03:35 PM 9/27/00 -0400, John Porter wrote:
Piers Cawley wrote:
 
  You know, I'm trying to see what's annoying about all those
  parentheses in the lisp function and what do you know, I can't see
  anything wrong. Okay, so it's not Perl syntax, but it's still clear
  what's going on.

Yes, but it's hard to read.  Lisp requires parens, because it
has no precedence rules. (Well, hardly any).  It has (almost)
no other syntax.  This is the situation we would like to avoid
in perl.  By letting every operator have well-defined precedence,
and every be function well prototyped, there should never be any
ambiguity (to the compiler, at least) as to what is meant, even
with no parens.  Ideally, anyway.

While Perl -lets- every function be well prototyped, it doesn't -require- 
every function to be well prototyped.  Because of this, it might be well 
nigh impossible to eliminate all ambiguity to the compiler.


--
John Porter

 Aus des Weltalls ferne  funken Radiosterne.




Re: RFC 288 (v2) First-Class CGI Support

2000-09-27 Thread Dan Sugalski

At 12:52 PM 9/27/00 -0700, Nathan Wiger wrote:
Dan Sugalski wrote:
 
  Because taint mode needs to be turned on REEELY early, like before
  pragmas are compiled.
 
  'no taint' does make sense, though 'use taint' might not except to locally
  undo 'no taint'.

Actually, from my talks with Larry both on and off-list about this, he
convinced me pretty strongly that the only thing that really makes sense
is untainting data sources. And this should be done via $fh-untaint,
which already exists.

'no taint' and 'use taint' shouldn't affect whether data is tainted--the 
rules for that should stay in effect. What they should alter instead is 
perl's response to tainted data while they're in effect. In a 'use taint' 
block perl should check, while in a 'no taint' block it shouldn't.

That does make rather a lot of sense, though it's arguable whether it's a 
good idea if you don't know what you're doing. That's never been perl's 
problem, though... :)

Dan

--"it's like this"---
Dan Sugalski  even samurai
[EMAIL PROTECTED] have teddy bears and even
  teddy bears get drunk




Re: RFC 262 (v1) Index Attribute

2000-09-27 Thread David L. Nicol

Webmaster wrote:

 What would really be nice here is an Cindex function, similar to the
 scalar version, that returns the index of the matching entry in a list. For
 instance:
 
 my $n=0;
 foreach (@items){
  print "Found It at position $n!\n" if /$seek/;
  $n++;
 }
 Could be replaced by:
 if (my $n = arrindex( @items, $seek )) {
  print "Found It at position $n!\n" ;
 }
 Grant M.
 [EMAIL PROTECTED]


Yes, that is exactly what is being suggested, but the "indexof" function
is implicit in the attribute.  Your code becomes

print "Found It at position ${_:n}!\n" if /$seek/ foreach @items


-- 
  David Nicol 816.235.1187 [EMAIL PROTECTED]
  "A taste so good that we stand behind every bottle and can."



Re: RFC 288 (v2) First-Class CGI Support

2000-09-27 Thread Robert Mathews

 Parse the CGI GET/POST request, returning CGI variables into %CGI
 (regardless of the source) in an un-HTTP escaped fashion

How are you going to handle multiple values for the same parameter? 
With CGI.pm, you can say
  @values = $q-param("foo");

Are you going to make the values of %CGI listrefs?  That should have
been spelled out before you froze the RFC.  Also, it seems a bit
inconvenient if you always have to say C$CGI{bar}[0] when you just
want one value.

Or would you rather have %CGI magically notice what context it's in? 
*Shudder*

-- 
Robert Mathews
Software Engineer
Excite@Home



Re: Perl6Storm: Intent to RFC #0101

2000-09-27 Thread Russ Allbery

Robert Mathews [EMAIL PROTECTED] writes:
 Nathan Wiger wrote:

 How many people really "use English" other than beginners?

 I would use it, but I heard a nasty rumor that it incurs the same
 penalty as using $' and such.  I try to avoid too much line noise in
 code that has to be maintained.

I have a very serious problem with use English, namely that it makes Perl
code much more difficult to read and maintain for people who know Perl.
Writing something that's marginally easier to understand for a beginner
and harder to understand for an expert doesn't strike me as a good idea.

I know what $/ does; I double-take at $INPUT_RECORD_SEPARATOR and am never
sure whether it's a user's personal global variable or $/ or some other
thing.  And $ARG and $MATCH both really look like global variables to me
and I'd hunt through the program trying to find where they're defined
for a while before realizing they're weird use English things.

-- 
Russ Allbery ([EMAIL PROTECTED]) http://www.eyrie.org/~eagle/



Re: Perl6Storm: Intent to RFC #0101

2000-09-27 Thread Robert Mathews

Russ Allbery wrote:
 I have a very serious problem with use English, namely that it makes Perl
 code much more difficult to read and maintain for people who know Perl

... and don't know use English.  Why can't they learn to use it?  Are
you saying that nothing is worth knowing unless the oldsters know it
already?

It's not that I want to jam English down everyone's throats.  But Nate
asked, "does anyone want this," and I said, "yes."  Or at least, I would
want it if it worked.

 I know what $/ does; I double-take at $INPUT_RECORD_SEPARATOR and am never
 sure whether it's a user's personal global variable or $/ or some other
 thing.  And $ARG and $MATCH both really look like global variables to me
 and I'd hunt through the program trying to find where they're defined
 for a while before realizing they're weird use English things.

You'd learn to recognize the long variable names if you used English
regularly.  It's a chicken-and-egg problem, but not a very difficult
one.

-- 
Robert Mathews
Software Engineer
Excite@Home



Re: Perl6Storm: Intent to RFC #0101

2000-09-27 Thread Mike Pastore

Russ Allbery wrote:
 
 I have a very serious problem with use English, namely that it makes Perl
 code much more difficult to read and maintain for people who know Perl.
 Writing something that's marginally easier to understand for a beginner
 and harder to understand for an expert doesn't strike me as a good idea.
 
 I know what $/ does; I double-take at $INPUT_RECORD_SEPARATOR and am never
 sure whether it's a user's personal global variable or $/ or some other
 thing.  And $ARG and $MATCH both really look like global variables to me
 and I'd hunt through the program trying to find where they're defined
 for a while before realizing they're weird use English things.

Fear not, for soon we will be able to do:

use less English;

Per RFC 303. This pragma will enable lovely mnemonics, like:

prn "Line break after this string". $OLS;
/^[A-Z]{3,6}/  { $v = sca rev $MTC };

And they thought Perl was unreadable before... just wait 'til they get a
load of this!

-- 
Mike Pastore   #!Perl Monk Web Coder
[EMAIL PROTECTED]   bilogic.org Sys Admin



Re: Perl6Storm: Intent to RFC #0101

2000-09-27 Thread Russ Allbery

Robert Mathews [EMAIL PROTECTED] writes:

 ... and don't know use English.  Why can't they learn to use it?

Why can't the new users of Perl learn the real variable names?

I guess I don't buy the argument that the real names are harder to learn.
Most of them have fairly useful mnemonics, you see them and use them
constantly so they become familiar quickly, and most Perl code out there
uses them.

 Are you saying that nothing is worth knowing unless the oldsters know it
 already?

\begin{rant}

No, I was not saying that.  I was saying exactly what I said.  I meant
what I said.  If I'd meant something else, I would have said that instead.

\end{rant}

 It's not that I want to jam English down everyone's throats.  But Nate
 asked, "does anyone want this," and I said, "yes."  Or at least, I would
 want it if it worked.

Hey, I'm not claiming you're trying to jam anything anywhere.  We were
discussing use English, and I'm expressing my opinion just like you are.
I've found the use of use English in code I had to maintain to be annoying
and unhelpful, and to actually degrade the maintainability of the code, so
I threw in my two cents.

 You'd learn to recognize the long variable names if you used English
 regularly.  It's a chicken-and-egg problem, but not a very difficult
 one.

I've yet to understand why I'd *want* to use English regularly; so far as
I can tell, it has essentially no benefit in the long term.  Perl is not
now, nor is it likely to ever be, a language that's particularly readable
by people who don't know Perl, and use English in order to learn the
strange names used by use English strikes me as rather circular.  Either
the person maintaining the code learns Perl, in which case the use English
names won't be necessary, or they don't, in which case they're unlikely to
be able to maintain the code anyway.

I know it's not the only stance to take, but I prefer to try to make my
Perl code very readable by people who know Perl, and encourage people who
don't know Perl who are trying to read my code to learn Perl first, or at
the same time.  There are certainly languages out there that are more
readable for people who don't know the language at all than Perl is, but I
don't find this a particularly important feature in a language.  In those
cases where it is, I'd use a language other than Perl.

use English doesn't really address the syntactical points of Perl that
make it hard to read for someone who doesn't know Perl; it strikes me, and
always has struck me, as a bad partial solution to a problem that may not
need to be solved and that only makes things more complicated in the long
run.

-- 
Russ Allbery ([EMAIL PROTECTED]) http://www.eyrie.org/~eagle/



Re: RFC 288 (v2) First-Class CGI Support

2000-09-27 Thread James Mastros

From: "Dan Sugalski" [EMAIL PROTECTED]
To: "Nathan Wiger" [EMAIL PROTECTED]
Sent: Wednesday, September 27, 2000 4:08 PM
 'no taint' and 'use taint' shouldn't affect whether data is tainted--the
 rules for that should stay in effect. What they should alter instead is
 perl's response to tainted data while they're in effect. In a 'use taint'
 block perl should check, while in a 'no taint' block it shouldn't.
Couldn't have said it better myself.  And god knows I've tried.  G

It might be nice if the result of a calculation was never tainted when the
calculation was in a 'no taint' block.

 That does make rather a lot of sense, though it's arguable whether it's a
 good idea if you don't know what you're doing. That's never been perl's
 problem, though... :)
I think that 'no taint' should solicit a warning.  (default warning set)
It should warn sepperately if uid=0 or gid=0 when you 'no taint'.  (default
warning set)
It should fail if you 'no taint' when uid=0 or gid=0 with 'use strict
"taint"'.  (in default strict set?)

Hm, this behavor would be equivlent to making "unsafe" errors normal:
'no strict "taint"' == 'no taint'
'use strict "taint"' == 'use taint'
'use warnings "taint"' == 'use taint warnings'

(You'd have to put the warnings/errors about 'no taint' in the 'notaint'
set.)

-=- James Mastros




Re: RFC 288 (v2) First-Class CGI Support

2000-09-27 Thread iain truskett

* Nathan Wiger ([EMAIL PROTECTED]) [28 Sep 2000 05:33]:
 Philip Newton wrote:
   Is order important for @HEADERS? Would it be better to have
   %HEADERS instead that does such auto-formatting?
  
  In my opinion, no, for the reasons given before. Hashes are
  unordered, and if you want to order the keys, you need to know the
  possibly keys and in which order they come. Then, if HTTP/4.2 comes
  out with the Toast: light|medium|dark header, which has to come
  after the new Breakfast: header 

 Wait, you're both right! ;-)

More or less, yeah =)

 Personally, I'd like to see a simple version of CGI::header be
 embedded in core. HTTP-type headers are widely used in many
 applications. So you could have:

@HEADERS = header(content-type = 'text/html',
  toast = 'medium',   # not too crispy
  breakfast = 'yes');

 Under normal life, @HEADERS would just be some variable. But the "use
 cgi" pragma could simply flush @HEADERS out ahead of time before your
[insert "STDOUT"]
 output stream. If @HEADERS is empty, the "use cgi" pragma just prints
 out "Content-type: text/html\n\n";

Personally speaking, I'd prefer a headers object. Just so that things
could be extended more easily in the future (in case headers ever need
to get slightly more complicated than a simple order array). (Plus it
means things could be slightly more easily kept track of in the
implementation: it's quite probable that you won't want duplicate keys
in the array and this is best served by having a hash behind the scenes
(possibly with an ordered array of keys) but you can probably see where
I'm aiming at now? Extensibility.)


[...]
 Ziggy, are you interested in this idea enough (at all?) to stick a
 note about the 'header' function into the RFC? Or should I RFC it
 separately?

I'd say RFC it separately.


cheers,
-- 
iain truskett, aka Koschei.http://eh.org/~koschei/
  The book to read is not the one which thinks for you, but the one
  which makes you think. James McCosh



Expunge use English from Perl? (was Re: Perl6Storm: Intent to RFC #0101)

2000-09-27 Thread Nathan Wiger

Russ Allbery wrote:

 I've found the use of use English in code I had to maintain to be annoying
 and unhelpful, and to actually degrade the maintainability of the code
[snip]
 I've yet to understand why I'd *want* to use English regularly; so far as
 I can tell, it has essentially no benefit in the long term. 
[snip]
 I know it's not the only stance to take, but I prefer to try to make my
 Perl code very readable by people who know Perl, and encourage people who
 don't know Perl who are trying to read my code to learn Perl first, or at
 the same time. 
[snip]
 use English doesn't really address the syntactical points of Perl that
 make it hard to read for someone who doesn't know Perl; it strikes me, and
 always has struck me, as a bad partial solution to a problem that may not
 need to be solved and that only makes things more complicated in the long
 run.

Y'know, I couldn't have said this better myself. :-) I've always felt
that "use English" was a waste of time and effort, a bandaid trying to
act as a tourniquet. Using Randal's code:

   /foo/  print while ;

Note that "use English" here does nothing to improve the horribly
unreadable - yet beautifully succinct and flexible - syntax that is
Perl.

My personal feeling is that I'd love "use English" to be expunged from
the language altogether - it's unnecessary bloat that only increases the
number of mistakes that people can make. But I'm not sure if I have the
guts to write that RFC just yet. ;-)

-Nate



Re: Expunge use English from Perl? (was Re: Perl6Storm: Intent to RFC #0101)

2000-09-27 Thread Adam Turoff

On Wed, Sep 27, 2000 at 04:39:32PM -0700, Nathan Wiger wrote:
 
 My personal feeling is that I'd love "use English" to be expunged from
 the language altogether - it's unnecessary bloat that only increases the
 number of mistakes that people can make. But I'm not sure if I have the
 guts to write that RFC just yet. ;-)

Are you talking about the overlong variable names?

Aliasing -X is being proposed through a 'use english;' mechanism.

Z.




Re: Expunge use English from Perl? (was Re: Perl6Storm: Intent to RFC #0101)

2000-09-27 Thread Robert Mathews

Adam Turoff wrote:
 
 On Wed, Sep 27, 2000 at 04:39:32PM -0700, Nathan Wiger wrote:
 
  My personal feeling is that I'd love "use English" to be expunged from
  the language altogether - it's unnecessary bloat that only increases the
  number of mistakes that people can make. But I'm not sure if I have the
  guts to write that RFC just yet. ;-)
 
 Are you talking about the overlong variable names?
 
 Aliasing -X is being proposed through a 'use english;' mechanism.

It's a good thing we've got Larry Wall to untie the Gordian knot of
perl6.  One rfc to add more english, one to take it away.

-- 
Robert Mathews
Software Engineer
Excite@Home



Re: Expunge use English from Perl?

2000-09-27 Thread Nathan Wiger

  My personal feeling is that I'd love "use English" to be expunged from
  the language altogether - it's unnecessary bloat that only increases the
  number of mistakes that people can make. But I'm not sure if I have the
  guts to write that RFC just yet. ;-)
 
 Are you talking about the overlong variable names?
 
 Aliasing -X is being proposed through a 'use english;' mechanism.

Yes, but perhaps a little bit of both. Truthfully, I've always seen long
alternatives as useless bloat, not used widely over the long term. Once
people learn the shortcuts, they use them.

Expunging "use English" may will improve Perl syntax, since it's one
less way to do things with already dubious value. Yes, the overlong
variable names are a waste of time, IMO, because I've never seen them
used in "real code". It's almost a rite of passage to take off the
training wheels and use the "real names" of the variables. Who wants to
write $INPUT_RECORD_SEPARATOR when you can write $/ ? 

I'm not vehemently opposed to "use English", or even the long
alternatives to -r and -w that RFC 290 proposes. But I do think,
truthfully:

   1. They don't solve the real syntactic problems

   2. Very few people will ever use them long-term

So if they bloat the language, we should consider expunging them. They
certainly bloat Camel with duplicate definitions. And I consider the
mneumonic of $! much stronger than $ERRNO (or was that $OS_ERROR or
$SYS_ERROR or ??)

Personally, my stance is that we should all come to accept that we use
and love a language with a syntax that drives many people mad. Not
everyone's gonna like Perl, so I think we should just accept it and move
on.

-Nate



Re: Expunge use English from Perl?

2000-09-27 Thread Adam Turoff

On Wed, Sep 27, 2000 at 05:11:30PM -0700, Nathan Wiger wrote:
 Yes, but perhaps a little bit of both. Truthfully, I've always seen long
 alternatives as useless bloat, not used widely over the long term. Once
 people learn the shortcuts, they use them.
 
 Expunging "use English" may will improve Perl syntax, since it's one
 less way to do things with already dubious value. 

A lot of use English has to do with aliasing global variable linenoise,
which is already going away.  For instance, $/ is becoming per-handle,
and $: (?) is probably going away because it has nasty 
action-at-a-distance properties, and FORTRAN programmers never use it
to offset the zero-index to one.  (Abigail uses it to make japhs that
bizarrely store the number 17.)

It has nothing to do with improving the syntax though, because everything
in use English is a variable that serves as a reference to some other
variable.
 
 I'm not vehemently opposed to "use English", or even the long
 alternatives to -r and -w that RFC 290 proposes. But I do think,
 truthfully:
 
1. They don't solve the real syntactic problems

No, because the syntactic problems are -s(FH)/2, and that is
solved by fsize(FH)/2 iff -s is replaced with fsize (or a better
spelling thereof).

2. Very few people will ever use them long-term

I dunno.  I remember looking at some code that used '-x _' that
had half a department befuddled.  -rwx FH is better, and gets rid
of the special case bare _ syntax.

Z.




Re: RFC 226 (v2) Selective interpolation in single quotish context.

2000-09-27 Thread Brad Hughes

The story so far:

On September 13 Jarkko professed a desire for

"a quotish context that would be otherwise like q() but with some minimal extra 
typing
I could mark a scalar or an array to be expanded as in qq()." [1]

Seeing this as being especially useful for those of us creating command files on VMS 
using
here-docs, I volunteered to write the RFC, and proposed that variables be tagged to be 
interpolated
in any single-quotish context.

A couple of forms of tagging were proposed.  The initial RFC proposed doubling C$ 
and C@
(i.e. C$$scalar and C@@array).  Damian Conway suggested C\I..\E [2] which has a 
very Perlish
feel to it, but Greg Linderman pointed out that C\I..\E could easily occur in text 
containing Win32
filespecs, and added

"There just really isn't a character that works inside ' for adding additional
interpolation semantics." [3]

All in all, the general sentiment is that single quotish context should not change.  
As Nat so
succinctly put it:

I personally do not want to see q() screwed with. [4]

As another approach, Greg also suggested that perhaps C\D..\E in double quote 
context could
*disable* interpolation, effectively turning C\D..\E delimited blocks of text into 
single
quote context. [3]  While passing Jarkko's "minimal extra typing" requirement, this 
still
requires one to be aware of and modify naturally occurring C\Es in the tagged text, 
as Greg
points out.  In addition, to me this seems to be a little bassackwards, no disrespect 
intended. [5]

Nat Torkington and M-J Dominus suggested overloading strings operations [6] and the 
use of a block
scoped pragma to change single quotish semantics [7], respectively.  Jarkko also 
suggested a pragma

"...to *really* tag variables lexically to be expanded within singlequotes.  Or 
for that matter,
*not* to be expanded within doublequotes." [8]

My own preference (and the one I should have suggested at the onset instead of trying 
to wedge this
thing into q() context) is for another quote context, one which would be otherwise 
like q() but with
some minimal extra typing...  This has been suggested by more than one, although 
sometimes with some
reluctance.  But I believe it fits the bill and doesn't step on any current quote 
context toes.

Let's call it qt(), for quote tagged.  That and the means of tagging is open for 
discussion, but at
least now we know some pitfalls.  Working from previous suggestions:

$scalar   # [6] Nat
$$scalar  # [1] Jarkko
\I$scalar\E   # [2] Damian

TeXies may prefer \I{$scalar}, and the hybrid \I$scalar doesn't seem bad.  I don't 
particularly care
and it may be that there's this perfectly obvious solution that only Larry can see and 
we really shouldn't
dicker around too much on this point.

However, this doesn't address here-docs.  q(..) and qq(..) are not the same as '..' 
and ".." when it
comes to here-docs.  

print 'END'; print q(END);
abcabc
ENDEND

The second results in CCan't find string terminator "q" anywhere before EOF at - line 
1..  I'm not
overly surprised given the special nature of here-docs, but I see nothing wrong with 
allowing

print q(END)  to mean print 'END' , and
print qq(END) to mean print "END"

.  And once the foot's in the door,

print qt(END)

follows.

Time is getting short so I don't really expect any resolution before Oct. 1, although 
if this seems at least
reasonably acceptable I can get another RFC out on the q(END) == 'END' proposal 
pretty quickly. 

Brad

[1] http://www.mail-archive.com/perl6-language@perl.org/msg03888.html
[2] http://www.mail-archive.com/perl6-language@perl.org/msg03970.html
[3] http://www.mail-archive.com/perl6-language@perl.org/msg03983.html
[4] http://www.mail-archive.com/perl6-language@perl.org/msg04018.html
[5] The perl6 lists had started to become as annoyingly uncivil as p5p
has been.  I only just decided to come back and see this through.
[6] http://www.mail-archive.com/perl6-language@perl.org/msg03982.html
[7] http://www.mail-archive.com/perl6-language@perl.org/msg03965.html
[8] http://www.mail-archive.com/perl6-language@perl.org/msg03962.html



Re: RFC 288 (v2) First-Class CGI Support

2000-09-27 Thread Dan Sugalski

At 07:09 PM 9/27/00 -0400, James Mastros wrote:
From: "Dan Sugalski" [EMAIL PROTECTED]
To: "Nathan Wiger" [EMAIL PROTECTED]
Sent: Wednesday, September 27, 2000 4:08 PM
  'no taint' and 'use taint' shouldn't affect whether data is tainted--the
  rules for that should stay in effect. What they should alter instead is
  perl's response to tainted data while they're in effect. In a 'use taint'
  block perl should check, while in a 'no taint' block it shouldn't.
Couldn't have said it better myself.  And god knows I've tried.  G

It might be nice if the result of a calculation was never tainted when the
calculation was in a 'no taint' block.

Yerk. No, that's bad. The data is still tainted--the fact that it flowed 
through a "no taint" block doesn't make it any more trustworthy. Tainting 
really can't be dealt with like that.


Dan

--"it's like this"---
Dan Sugalski  even samurai
[EMAIL PROTECTED] have teddy bears and even
  teddy bears get drunk




Re: Expunge use English from Perl?

2000-09-27 Thread Nathan Wiger

Adam Turoff wrote:
 
 It has nothing to do with improving the syntax though, because everything
 in use English is a variable that serves as a reference to some other
 variable.

Yes, and that's why I really think it's a waste of time. ;-)
 
  I'm not vehemently opposed to "use English"... But I do think,
 
 1. They don't solve the real syntactic problems
 
 No, because the syntactic problems are -s(FH)/2, and that is
 solved by fsize(FH)/2 iff -s is replaced with fsize (or a better
 spelling thereof).

This is one thing that I'm scared most of, and that is having two
alternatives which work only in certain contexts. I'm sure p5p has
already extensively looked at -s(FH)/2 being "wickedly broken" (as I
believe Tom put it), but the solution should theoretically be to make
-s(FH)/2 work.

The consensus has already pretty much said that they want -s et all to
stick around. So if RFC 290's idea is still to replace -X, then I'm very
much against it. But I was under the impression that they're just "use
english" alternatives.

If, however, these alternatives fix bugs that -X can't handle, then
that's not good.

I'll dig through the p5p archives and toke.c to see if any wisdom is
magically imparted on me. ;-)
 
 2. Very few people will ever use them long-term
 
 I dunno.  I remember looking at some code that used '-x _' that
 had half a department befuddled.  -rwx FH is better, and gets rid
 of the special case bare _ syntax.

Yeah, I've never liked the _ syntax, I've always thought it was weird
(to say the least). I think grouping file tests would be much cleaner. 

-Nate



Re: RFC 288 (v2) First-Class CGI Support

2000-09-27 Thread Nathan Wiger

Dan Sugalski wrote:
 
 It might be nice if the result of a calculation was never tainted when the
 calculation was in a 'no taint' block.
 
 Yerk. No, that's bad. The data is still tainted--the fact that it flowed
 through a "no taint" block doesn't make it any more trustworthy. Tainting
 really can't be dealt with like that.

Phew! I was hoping you'd say that, Dan! ;-)

If we're just turning on and off taint *checking*, it might be worth
noting that in whatever pragma name we choose:

   #!perl -T

   {
   no taintchecks;


   }

Just want to plant the seed early. I can see "no taint" or "no tainting"
being *really* confusing (unless it was "no taint 'checks'" or
something).

-Nate



Re: RFC 288 (v2) First-Class CGI Support

2000-09-27 Thread Dan Sugalski

At 07:53 PM 9/27/00 -0700, Nathan Wiger wrote:
Dan Sugalski wrote:
 
  It might be nice if the result of a calculation was never tainted when the
  calculation was in a 'no taint' block.
 
  Yerk. No, that's bad. The data is still tainted--the fact that it flowed
  through a "no taint" block doesn't make it any more trustworthy. Tainting
  really can't be dealt with like that.

Phew! I was hoping you'd say that, Dan! ;-)

If we're just turning on and off taint *checking*, it might be worth
noting that in whatever pragma name we choose:

#!perl -T
{
no taintchecks;
}

Just want to plant the seed early.

This is a good idea. It's sufficiently important a distinction that the 
longer pragma name's worth it--the fact that someone needs to type the 
whole thing out to turn it off would make people less likely to do so...


Dan

--"it's like this"---
Dan Sugalski  even samurai
[EMAIL PROTECTED] have teddy bears and even
  teddy bears get drunk




Re: RFC 288 (v2) First-Class CGI Support

2000-09-27 Thread Nathan Wiger

Robert Mathews wrote:
 
  Parse the CGI GET/POST request, returning CGI variables into %CGI
  (regardless of the source) in an un-HTTP escaped fashion
 
 How are you going to handle multiple values for the same parameter?
 With CGI.pm, you can say
   @values = $q-param("foo");
 
 Are you going to make the values of %CGI listrefs?  That should have
 been spelled out before you froze the RFC.  Also, it seems a bit
 inconvenient if you always have to say C$CGI{bar}[0] when you just
 want one value.

Two choices as I see it:

1. make a listref only for multiple values:

   @name = @{$CGI{name}} if ( ref $CGI{name} eq 'ARRAY' );

2. make it a comma-delimited string:

   $name = $CGI{name};
   @name = split ',', $name;

The problem arises if your data has commas in it. Then you're hosed. So
door #1 might be the only solution.

But I don't think listrefs are needed in all contexts, since you should
know which elements will likely have multiple values (checkboxes, etc).
But having a direct data access method like %CGI does create this
problem. Shit.

Maybe %CGI is tied. Fast embedded tie, like in Perl 6. :-)

-Nate



Re: RFC 288 (v2) First-Class CGI Support

2000-09-27 Thread H . Merijn Brand

On 27 Sep 2000 07:36:42 -, Perl6 RFC Librarian [EMAIL PROTECTED] wrote:
 This and other RFCs are available on the web at
   http://dev.perl.org/rfc/
 
 =head1 TITLE
 
 First-Class CGI Support

Freezing within two days doesn't leave much space for comments and or
objections does it?

I'm not against making things easier in general, but I don't want perl to be
Just Another Web Service. I've started an RFC on that when perl6 just started,
but I saw discussions take a good direction, so I didn't post it.

I think this one belongs in perl6-stdlib, certainly not in the perl6-core!

I've lost my RFC draft, but it's title was:

No JAWS

-- 
H.Merijn Brand   Amsterdam Perl Mongers (http://www.amsterdam.pm.org/)
using perl-5.005.03, 5.6.0, 5.7.1  516 on HP-UX 10.20  11.00, AIX 4.2  4.3,
 DEC OSF/1 4.0 and WinNT 4.0 SP-6a,  often with Tk800.022 and/or DBD-Unify
ftp://ftp.funet.fi/pub/languages/perl/CPAN/authors/id/H/HM/HMBRAND/