Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2006-08-25

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:14 markstos_ joined perl6
00:17 diakopter joined perl6
00:18 weinig is now known as weinig|food
00:22 svnbot6 r12675 | audreyt++ | * Pugs.Eval: "for" loops now handles lvalue scalars
00:22 svnbot6 r12675 | audreyt++ |   correctly as noted by markjreed++ on p6c:
00:22 svnbot6 r12675 | audreyt++ |     for $x { $_++ }         # shouldn't break
00:22 svnbot6 r12675 | audreyt++ |     for ($x, $y) { $_++ }   # shouldn't break
00:29 cmarcelo audreyt: ping
00:30 nekokak joined perl6
00:39 audreyt pong
00:43 markstos_ odd question: which of the synopsis have the spec for "say" ? I know it's simple, but I'm trying to reference it and can't find it.
00:44 markstos_ Although, from the 20+ line implentation in Perl5's Perl6::Say,  "say" appears more complex than one might imagine.
00:44 mako132_ joined perl6
00:44 clkao it should be builtins
00:45 cooljoke joined perl6
00:45 clkao so the draft one. s29 or something
00:45 cmarcelo audreyt: re soc: did google contacted you (or mentors in general)? i've got nothing about mentor survey or whatever (neither SoCers i now)...
00:45 markstos_ clkao: I agree. It's oddly missing from there, though: http://feather.perl6.nl/syn/S29.html
00:46 lambdabot Title: S29
00:46 markstos_ clkao: maybe it's just an oversight because it's "so easy"? Perhaps I should mention it on p6l.
00:47 clkao markstos_: are you implement say as builin for v6 prelude?
00:48 markstos_ No. I'm hacking on Differences.pod, and trying to link to the spec where the differences are fully defined.
00:48 markstos_ I can't find the proper mention of "say".
00:48 cmarcelo audreyt: push (and unshift) doesn't seem to getting advantage of judyness, looks like array_push isn't even called (like array_pop).. looks like it locks up even before op2 "push" get called. any tips where should I look for a misconversion to VArray or something like ?
00:48 markstos_ clkao: for v6, couldn't Perl6::Say just be used ?
00:48 clkao sure it could.
00:50 cmarcelo audreyt: also, s/StrMap/Hash/ in Pugs/Internals.hs looks ok here (generating prelude and smoking).. there were other segfault situations with Judy.Hash?
00:50 clkao [particle]: ping
00:52 clkao [particle]: you mentioned about svk not able to sync two mirrors at the same time. it works for me. however, you can't create a new mirror while syncing.
00:52 audreyt markstos_: pleaes add it to S29
00:52 audreyt by committing to docs/Perl6/Spec/functions
00:53 markstos_ audreyt: I thought the Synopsis where really elsewhere, and copied in the pugs tree.
00:53 audreyt cmarcelo: no, LH said google needs a couple days more
00:53 audreyt markstos_: no, some of them are maintained in the pugs tree
00:53 audreyt "svk ls" or "svn ls" should show you those
00:53 markstos_ Ok. Committing.
00:53 audreyt anything you can commit to, is in the pugs tree
00:54 markstos_ Easy rule of thumb. :)
00:55 audreyt cmarcelo: there might be a misconversion... is there a oneliner I can test? also does "elems" still work?
00:55 audreyt (I'll bbl, laptop fix + $job)
00:59 cmarcelo audreyt: my @a[999999999] = 1; push @a, 2; say "hi"
01:07 markstos_ This page of Obsolete builtins lists several options for new ways to test what kind of reference you have. However, in my current tests, none of them work in the current pugs. Is there is recommend reference testing syntax that currently works in pugs? I'm looking to replace: if  ref $foo eq 'ARRAY'.
01:07 markstos_ http://feather.perl6.nl/syn/S29.html#Obsolete
01:07 lambdabot Title: S29
01:13 markstos_ agentz: S29 currently cuts off after the "ref" entry in the HTML version. I'm not sure why. http://feather.perl6.nl/syn/S29.html
01:13 lambdabot Title: S29
01:15 cmarcelo audreyt: and @a.elems still works..
01:20 svnbot6 r12676 | markstos++ | Initial add of say() to S29, at audreyt's prompting. Could use peer review and
01:20 svnbot6 r12676 | markstos++ | appropriate placement in the file.
01:21 diakopter A07 link is broken
01:25 audreyt cmarcelo: wrong syntax
01:25 audreyt my @a[999999999] = 1; push @a: 2; say "hi"
01:26 audreyt or
01:26 audreyt my @a[999999999] = 1; @a.push(2); say "hi"
01:26 audreyt while "push @a, 2" will be made to work (I think) via macro rewriting and "method push is export",
01:26 audreyt TimToady havn't specified that part and the behaviour is currently undefined.
01:27 audreyt ?eval my @a[999999999] = 1; @a.push(2); @a.elems
01:27 evalbot_12668 is now known as evalbot_12676
01:27 evalbot_12676 1000000001
01:27 audreyt that works
01:28 cmarcelo audreyt: i see.. (/me reading lots of p5, so got confused =o) ).. but why its blocking with wrong syntax, it is trying to evaluate @a or something like?
01:28 merlyn joined perl6
01:29 audreyt yes
01:31 audreyt it tries to flatten @a in rvalue context to see its length I think
01:31 svnbot6 r12677 | markstos++ | Re-organize Differences.pod to follow the same pattern that the Synopsis,
01:31 svnbot6 r12677 | markstos++ | Apocalypse and Exegesis do.  Also, some more content and links were added.
01:31 markstos_ left perl6
01:31 audreyt that can be trivially fixed...
01:32 audreyt fixed
01:32 svnbot6 r12678 | audreyt++ | * Eval.Var: Simple array/hash variables as function arguments
01:32 svnbot6 r12678 | audreyt++ |   should gets their size in lvalue, not rvalue, context, such
01:32 svnbot6 r12678 | audreyt++ |   that huge array/hash sizes won't cause heap overflow.
01:32 svnbot6 r12678 | audreyt++ |   Reported by: cmarcelo++
01:32 svnbot6 r12677 | markstos++ | Re-organize Differences.pod to follow the same pattern that the Synopsis,
01:32 svnbot6 r12677 | markstos++ | Apocalypse and Exegesis do.  Also, some more content and links were added.
01:33 cmarcelo did pugs-commits ML stopped working?
01:33 audreyt I wasn't even aware there's such a ML
01:33 audreyt CIA tracks pugs, no? htere's also openfoundry's rss feed
01:37 mako132_ joined perl6
01:37 cmarcelo it was: http://lists.utsl.gen.nz/pipermail/pugs-commits/
01:37 lambdabot Title: The Pugs-commits Archives
01:37 mako132_ joined perl6
01:43 xinming joined perl6
01:51 chromo joined perl6
01:52 chromo left perl6
02:00 neoesque joined perl6
02:02 dolmans joined perl6
02:10 justatheory joined perl6
02:12 Teratogen joined perl6
02:12 Teratogen why doesn't Perl 6 have a Ref type?
02:13 Teratogen it has Int and Str types, I've read.
02:13 Teratogen flattening is so very Perlish though
02:13 Teratogen oops wrong chan
02:20 revdiablo This is #perl6, I don't think it's the wrong channel to ask about Perl 6 =)
02:21 mjk joined perl6
02:22 PerlJam Teratogen: perl6 doesn't need a Ref type.  And as I said on #perl, Captures take their place.
02:24 Teratogen hi Perljam
02:25 clkao joined perl6
02:28 Teratogen to me it seems that if there is an Int type and a Str type and maybe a Flt type that there should be a Ref type is all
02:29 Teratogen after all references still do get assigned to scalars, right?
02:29 clkao joined perl6
02:30 TreyHarris Teratogen: Perl 6 does not have references
02:31 TreyHarris it's an autoboxing object-oriented language, like Eiffel or Smalltalk
02:32 TreyHarris there is something called a "Capture" that lets you point at arbitrary other data in a referency way, but it's based on subroutine signatures.  TimToady calls them "'fat references', or maybe a Perl 5 reference was a 'skinny capture'"
02:33 Teratogen $foo = @bar;
02:33 Teratogen what is in $foo?
02:33 TreyHarris an Array
02:33 revdiablo What I'm beginning to wonder, is what are the purpose of sigils in Perl 6?
02:33 Teratogen revdiable, me too
02:33 Teratogen with sigil invariance
02:33 Teratogen =/
02:34 TreyHarris ?eval my @a = 1..3; say "\@a: {@a.ref}"; my $foo = @bar; say "\$foo: {$foo.ref}"
02:34 evalbot_12676 is now known as evalbot_12678
02:34 evalbot_12678 OUTPUT[@a: Array ] Error: Undeclared variable: "@bar"
02:34 TreyHarris oops
02:34 TreyHarris ?eval my @a = 1..3; say "\@a: {@a.ref}"; my $foo = @a; say "\$foo: {$foo.ref}"
02:34 evalbot_12678 OUTPUT[@a: Array $foo: Array ] Bool::True
02:34 revdiablo I mean, what are the purpose of *different* sigils. Seems like we are going down the road where everything could be $ all the time
02:34 Teratogen yeah kinda like PHP
02:35 TreyHarris revdiablo: well, that was true in Perl5.  take away % and @ except in their %{} and @{} forms, and you could get along just fine.
02:35 TreyHarris you don't have to use a constructor to make an @a into an array, or a %b into a hash
02:35 TreyHarris and they autoconstruct a nice context for listy and hashy things when they're on the LHS
02:35 revdiablo TreyHarris: Yes, indeed, but %{} and @{} are used fairly frequently
02:36 Teratogen heh, I had an interesting convo going on #perl a while ago about [] and {} being "outfix" operators, that is [] operates on expr in [ expr ] to create an array
02:36 TreyHarris and %() and @() are used somewhat frequently (granted, not as) in the *.t's, you'll notice
02:36 Teratogen =)
02:36 TreyHarris Teratogen: they're circumfix operators
02:36 Teratogen merlyn came up with the term "outfix"
02:36 Teratogen ah.
02:37 TreyHarris you can make one
02:37 revdiablo TreyHarris: But are they necessary? I mean %() and @()? Maybe I'm just extrapolating too much out of a few small examples.
02:37 Teratogen hence they should be listed in any precedence table of perl operators
02:37 Teratogen but they aren't
02:37 Teratogen not in Perl 56
02:37 Teratogen err
02:37 Teratogen Perl 5
02:37 TreyHarris ?eval sub circumfix:{'BB','EE'} { say "@_" }
02:37 evalbot_12678 undef
02:37 TreyHarris ?eval sub circumfix:{'BB','EE'} { say "@_" }; BB "hello" EE;
02:37 evalbot_12678 Error:  unexpected "E" expecting comment, operator, ":", ",", postfix conditional, postfix loop, postfix iteration, ";" or end of input
02:38 TreyHarris yeah, the parser can't be changed in stream yet i think
02:38 Teratogen so unfortunately some people don't realize that you can do [ expr ] where expr is an arbitrary expression
02:38 Teratogen they just think you can do things like [ 1,2,3 ]
02:38 Teratogen that's sad
02:38 TreyHarris revdiablo: mmmm... let's see
02:39 TreyHarris ?eval my @a = 'a'..'d'; my @b = 1..4; my %h = %(zip(@a;@b))
02:39 evalbot_12678 {("a" => 1), ("b" => 2), ("c" => 3), ("d" => 4)}
02:39 TreyHarris can you do that without any @'s or %'s?
02:39 revdiablo TreyHarris: Your earlier points about creating arrays and hashes without a constructor are well taken, btw. I'm just wondering further.
02:40 Teratogen well I hope that Perl 6 operator precedence tables DO inclue [] and {}
02:40 Teratogen that would be nice
02:40 revdiablo ?eval my @a = 'a'..'d'; my @b = 1..4; my %h = zip(@a;@b)
02:40 TreyHarris ?eval my $a = 'a'..'d'; my $b = 1..4; my $h = {zip($a;$b).pairs}
02:40 evalbot_12678 {("a" => 1), ("b" => 2), ("c" => 3), ("d" => 4)}
02:40 Teratogen s/inclue/include/
02:40 evalbot_12678 \{Syn "block" {App &pairs (App &zip (: Var "$a", Var "$b"): )}}
02:40 TreyHarris oh... that didn't used to work.  nice.
02:40 TreyHarris ?eval my $a = 'a'..'d'; my $b = 1..4; my $h = zip($a;$b)
02:40 evalbot_12678 [("a", 1), ("b", 2), ("c", 3), ("d", 4)]
02:41 TreyHarris ?eval my $a = 'a'..'d'; my $b = 1..4; my $h = {zip($a;$b)}
02:41 evalbot_12678 \{Syn "block" {App &zip (: Var "$a", Var "$b")}}
02:41 TreyHarris ?eval my $a = 'a'..'d'; my $b = 1..4; my $h = {(zip($a;$b)).pairs}
02:41 evalbot_12678 \{Syn "block" {App &pairs (App &zip (: Var "$a", Var "$b"): )}}
02:41 TreyHarris weird.
02:41 revdiablo ?eval my $a = 'a'..'d'; my $b = 1..4; my $h = %(zip($a;$b))
02:41 evalbot_12678 {("a" => 1), ("b" => 2), ("c" => 3), ("d" => 4)}
02:41 Teratogen what does "zip" do?
02:41 revdiablo Neat.
02:42 Teratogen is it a builtin?
02:42 TreyHarris yes
02:43 TreyHarris right... how to do it without any % at all though
02:43 revdiablo Teratogen: It's kind of like the equivalent of perl5 code: map { [ $array1[$_], $array2[$_] ] } 0 .. $#array1;
02:43 revdiablo Kind of... roughly... that's the idea anyway =)
02:44 Teratogen oh
02:44 Teratogen I really want to like Perl 6 but I don't like the idea of sigil invariance
02:44 Teratogen more's the pity
02:44 revdiablo It's not really that hard to get used to
02:45 Teratogen it's gonna come as a bit of a shock to Perl 5 programmers
02:45 TreyHarris i find myself trying to do invariance in perl 5 much more often than i try to shift sigils in 6
02:45 revdiablo I like to think Perl 5 programmers are generally fairly flexible and open minded about syntax
02:45 TreyHarris and i probably write 100 lines of Perl 5 code for every 1 of Perl 6
02:46 revdiablo Writing code in perl 6 does feel nice, even with the small amount I've done
02:47 Teratogen is there a Perl 6 written in Perl 6 that is generating Parrot code yet?
02:47 revdiablo Are you joking? =)
02:47 Teratogen nope =)
02:47 Teratogen serious question
02:48 revdiablo No
02:48 Teratogen that is the goal though?
02:48 TreyHarris Teratogen: one of the goals
02:48 revdiablo I don't know. The goal is having a nice language. The strategies for reaching that goal keep changing as different things become evident
02:48 TreyHarris right
02:49 revdiablo I really like the 6-on-5 stack
02:49 clkao_ joined perl6
02:49 revdiablo Seems like a nice approach
02:49 TreyHarris the pugs track, i think, is to produce a self-hosting Perl 6 compiler where a tiny little bit will be miniperl6 and the miniperl6 will be written in whatever
02:50 TreyHarris otherwise you'll have to have perl 6 to compile perl 6.  which will make porting somewhat gnarly :-)
02:50 Teratogen probably the miniperl6 will be written in C then
02:50 Teratogen C is fairly portable
02:50 TreyHarris haskell most likely, at least at first
02:51 Teratogen oh
02:51 Teratogen is haskell available for most platforms?
02:51 Teratogen C is pretty much universal
02:51 TreyHarris sure.  but well, everything's converging
02:52 TreyHarris if we get to that point, you could just get a miniperl6 into parrot bytecode however you can
02:52 Teratogen ok, I've asked enough questions now I will idle. =)
02:52 TreyHarris and then since parrot's written in C....
02:52 Teratogen right that would be neat
02:52 Teratogen ah
02:53 TreyHarris to answer your earlier question, i can't find [] in any of the current pugs precedence tables.  but that doesn't mean it shouldn't be
02:53 TreyHarris or that i just didn't look in the right place :-)
02:53 Teratogen I think it should be in perl 5 reference tables too
02:53 Teratogen but merlyn disagreed
02:53 Teratogen precedence, I mean
02:53 TreyHarris well, i'm having trouble thinking of anything with looser precedence
02:54 Teratogen they are definitely operators
02:54 TreyHarris [] is a term
02:54 TreyHarris isn't it?
02:54 Teratogen but having them as operators would help people to realize that you can do [ expr ] where expr is an arbitrary expression, not just something like 1,2,3.
02:54 Teratogen I didn't even realize that until I saw someone do it on #perl
02:54 TreyHarris if you can't have syntactic ambiguity, you don't care about relative precedence
02:54 revdiablo Do people really not realize that?
02:54 Teratogen I've never seen it in any Perl book
02:55 Teratogen revdiable, I always thought you could only do things like [ 1,2,3 ] =)
02:55 Teratogen similarly for hashes
02:55 revdiablo Well, how strange
02:56 Teratogen well, I've never seen an example in Perl book that was NOT like that
02:56 Teratogen so how would I know?
02:56 Teratogen not adventurous enough I guess
02:56 revdiablo Are you talking about array ref constructor or array indexing?
02:56 clkao joined perl6
02:56 Teratogen the array ref constructor I think... [ expr ]
02:57 Teratogen and the hash ref constructio { }
02:57 Teratogen although I think it even works for ( expr )
02:57 TreyHarris hold on, they're different things
02:57 Teratogen bah my typing sucks tonight, sorry.
02:58 TreyHarris [ expr ] will create an anonymous array containing the results of expr
02:58 revdiablo That's weird. I never thought anybody wouldn't realize that. Did you also not realize you can put arbitrary code in %{} , @{}, or ${} blocks?
02:58 TreyHarris ( expr ) simply groups expr for precedence reasons
02:58 revdiablo Getting a bit OT for #perl6, but: perl -le 'print "@{ print 2+2; [ 0 .. 9 ]} ${ print 1+1; \4 }"'
02:58 Teratogen well the act of grouping could be considered an "operation" of sorts
02:59 Teratogen I guess it comes down to semantics
02:59 TreyHarris Teratogen: in any point, your point is moot:
02:59 TreyHarris http://feather.perl6.nl/~age​ntzh/syn/S03.html#Precedence
02:59 lambdabot Title: S03
02:59 TreyHarris it's right there on the first line of the table ;-)
03:00 TreyHarris though i suppose you'd prefer it to say [ ... ] rather than [ 1,2,3 ] as it now does
03:01 TreyHarris but-- { } *is* an example of what you're talking about, so i don't suppose it's that farfetched.  if it contains pairs, it's a hash constructor, if it contains code, it's a closure, but how it makes that determination can be frighteningly occult :-)
03:03 TreyHarris ok, must decommute &
03:04 Bit-Man joined perl6
03:08 frederico joined perl6
03:09 Teratogen haha maybe this should become the symbol for Perl 6!
03:09 Teratogen http://gadgets.engadget.com/2006/08/24/​giant-swiss-army-knife-offers-85-tools/
03:09 lambdabot Title: Giant Swiss Army Knife offers 85 tools - Engadget
03:10 Patterner not even triple digits
03:11 Teratogen that is one helluva knife
03:19 weinig|food is now known as weinig
03:22 Khisanth xinming: you around? :)
03:22 justatheory joined perl6
03:23 cmarcelo left perl6
03:36 xinming_ joined perl6
03:38 weinig is now known as weinig|sleep
03:43 zgh joined perl6
03:46 hikozaemon joined perl6
03:49 xinming_ is now known as xinming
03:52 xinming audreyt: ping
03:52 zgh joined perl6
03:52 xinming Khisanth: sorry,
03:54 xinming Khisanth: I was sleeping
03:54 Teratogen I like the new Perl 6 /\/\/\/\/\ operator
03:55 Khisanth xinming: well since you offered to help the other day, any idea what to do with "svnadmin: File already exists: filesystem ..." while trying to load a bootstrap with svnadmin? :)
04:01 Khisanth xinming: nevermind, I think I have figured it out :)
04:03 lambdabot joined perl6
04:03 xinming Khisanth: Do you mean, a file in repository already exists and when you try to load it with svnadmin, you get error?
04:04 xinming Khisanth: :-) svndumpfilter might help.
04:04 Khisanth I mean I already have .svk/foo from svk depotmap and svk mirror and then I try to load with svnadmin load :)
04:05 xinming Khisanth: then, the best answer would delete the .svk/foo I was you. :-P
04:07 Khisanth tried that too but then I can't mirror :P
04:07 Khisanth although I just found http://svk.elixus.org/?SVKBootStrap and it seems I didn't do step1 :)
04:07 lambdabot Title: SVKBootStrap - Kwiki
04:08 xinming Khisanth: I deleted that, then, load the dump file first, and mirror at last... that was what I do to seperated the repository for people use.
04:08 kanru joined perl6
04:10 zgh joined perl6
04:10 xinming and BTW, if we mirror it, the dump file contains the information for the mirror.
04:12 Khisanth xinming: deleted what?
04:13 xinming the foo repository, and load the file again with repository,
04:15 Khisanth already tried that path already :)
04:29 zgh joined perl6
04:32 xinming_ joined perl6
04:38 zgh joined perl6
04:51 zgh joined perl6
05:02 onsen joined perl6
05:02 zgh joined perl6
05:03 bcorn_ joined perl6
05:06 Aankhen`` joined perl6
05:07 zgh joined perl6
05:15 zgh joined perl6
05:16 spoopithy joined perl6
05:24 kanru joined perl6
05:27 zgh joined perl6
05:34 zgh joined perl6
05:47 zgh joined perl6
05:50 kane-xs joined perl6
05:52 shachaf_ joined perl6
05:55 zgh joined perl6
06:07 kanru joined perl6
06:12 dolmans in S06/Operator overloading, sub infix:<(c)> ($text, $owner) { return $text but Copyright($owner) }
06:12 dolmans is `return "$text but Copyright($owner)"'?
06:13 onsen_ joined perl6
06:19 TimToady no, it's using a "but" infix to mix in the Copyright role.
06:21 dolmans ah, ok. i kinda need study role.
06:22 dolmans macro circumfix:?<!-- -->? ($text) is parsed / .*? / { "" }
06:23 dolmans is `is parsed / .*? /' mandatory? i think the lexer would always find the begine/end of that circumfix.
06:23 audreyt greetings lambdacamels.
06:24 audreyt dolmans: it concerns things like
06:24 audreyt <!-- do use Foo; BEGIN { rm -rf ... } -->
06:24 audreyt without is parsed, the middle is parsed as normal expr, and so lots of things may happen
06:25 audreyt and <!-- ))) --> would fail with unbalanced parens
06:26 dolmans oh i know again, without a `is parsed', the macro parameters would be parsed before macro is called, yes?
06:26 audreyt it's easier to think perl6 as a scannerless language :)
06:26 audreyt yes.
06:26 dolmans oh, i thought the macro would always delay parse it's parameters.
06:27 audreyt it is not so; without "is parsed", it parses using normal <expr> rule
06:27 dolmans ok.
06:29 dolmans every time i read the Synopsis, a new point will find me. kinda like this.
06:29 onsen__ joined perl6
06:31 audreyt it's widely agreed that it's fractal.
06:32 TimToady sorry about the isSpace debacle.  when I googled everything I looked at said that isSpace only does Latin-1 in Haskell 98
06:33 TimToady and I forgot they demoted \xfeff from being officially whitespace
06:34 TimToady any idea why the infix:<> ops aren't parsing right?
06:34 TimToady (user defined ones, that is)
06:34 audreyt GHC has been ignoring Haskell 98 isSpace for some time now :)
06:34 TimToady :)
06:35 TimToady I would too, if I were them...
06:35 audreyt but TimToady++ for prompting full UTF* support that I've been neglecting to do
06:35 audreyt ?eval sub infix:<MOOSE> ($x, $y) { 4 }; 1 MOOSE 2
06:35 evalbot_12678 Error:  unexpected "M" expecting comment, operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input
06:35 audreyt looking
06:43 audreyt I see. userdefined infix currently has no associativity info
06:43 audreyt that's good as it means we should allow "is assoc"
06:45 TimToady also, just as a human factor, is there any way to cajole parsec into saying unexpected "MOOSE" instead of unexpected "M"?
06:46 audreyt scan for continuous \w+ / \W+ ?
06:47 TimToady something like that.  better too much info there than too little, I think...
06:47 dolmans hi audreyt, in t/operators/operator_overloading.t, `macro circumfix:<!--...-->   ($text) { "" }', dose the ... makes it different?
06:47 audreyt I havn't seen the ... form
06:48 TimToady I think that was a holdover from long ago.
06:48 TimToady when we did autosplit of the string into fore/aft
06:48 TimToady and used ... to say where the gap was.
06:48 dolmans ok, guess i can mend it?
06:48 TimToady sure.
06:50 TimToady wants to be something like circumfix:{'<!--', '-->'}
06:50 TimToady can also use french quotes
06:51 dolmans yes, i bet i would write these two kinds. :-P
06:51 TimToady circumfix:«<!-- -->»
06:52 TimToady I think the ordinary slice subscript is clearer for delims containing < or > though...
06:54 nothingmuch_ joined perl6
06:54 dolmans better when the french quotes are not easy typed.
06:56 TimToady I guess one could go all old-fashioned and say circumfix:{qw/<!-- -->/} as well
06:57 TimToady audreyt: the problem is, I have no idea where parsec generates that message.  grepping for "unexpected" seems to be unhelpful.
06:57 dolmans hey that is tricky but not that clear.
06:59 TimToady circumfix:{ qw[ <!-- --> ] } is vaguely better, maybe
06:59 TimToady but I still prefer circumfix:{'<!--', '-->'}
07:00 dolmans perl and english always has accent, that's the way.
07:01 TimToady ?eval sub infix:<MOOSE> ($x, $y) is equiv(&infix:<+>) { 4 }; 1 MOOSE 2
07:02 evalbot_12678 Error:  unexpected "M" expecting comment, operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input
07:02 onsen joined perl6
07:03 TimToady ?eval sub infix:<MOOSE> ($x, $y) is equiv(&infix:<+>) is assoc('left') { 4 }; 1 MOOSE 2
07:03 evalbot_12678 Error:  unexpected "M" expecting comment, operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input
07:09 agentzh joined perl6
07:10 svnbot6 r12679 | agentz++ | [util/smartlinks.pl]
07:10 svnbot6 r12679 | agentz++ | - s/"/\&quot;/g
07:10 svnbot6 r12679 | agentz++ | - reversed the reversed smartlinks in HTML
07:11 agentzh ?eval say 1+3;
07:11 evalbot_12678 OUTPUT[4 ] Bool::True
07:16 svnbot6 r12680 | dolmans++ | amend to the circumfix delim.
07:18 drrho joined perl6
07:24 audreyt implemented.
07:29 svnbot6 r12681 | audreyt++ | * Support for user-defined infix operator associativity:
07:29 svnbot6 r12681 | audreyt++ |     sub infix:<Z> is assoc('right') ($x, $y) { $x ** $y };
07:29 svnbot6 r12681 | audreyt++ |     2 Z 2 Z 3;  # 256, not 4
07:29 svnbot6 r12681 | audreyt++ |   Chain, list, non, left and right are all supported.
07:32 audreyt TimToady: unless otherwise specified, ifnix ops default to leftassoc right?
07:32 TimToady correct
07:35 TimToady is looking good
07:38 svnbot6 r12682 | agentz++ | [docs/feather/syn_index.html]
07:38 svnbot6 r12682 | agentz++ | - english fixes.
07:38 agentzh particle: i'm adding svn rev info to the outputs of smartlinks.pl. :)
07:41 dolmans i will add some test case for `is assoc'.
07:44 audreyt dolmans++
07:49 xinming joined perl6
07:50 audreyt ... oy. ~/.svk has bad sectors as well.
07:50 audreyt ...I guess that's a sign.
07:50 * audreyt goes to the repair shop for real
07:53 TimToady good luck...
07:59 svnbot6 r12683 | agentz++ | [util/smartlinks.pl]
07:59 svnbot6 r12683 | agentz++ | - added syn rev number to the HTML pages. per
07:59 svnbot6 r12683 | agentz++ |   particle++'s suggestion.
07:59 svnbot6 r12683 | agentz++ | - changed the date time to ISO format.
07:59 svnbot6 r12683 | agentz++ | - removed the redundant text "Sxx.html -" from the
07:59 svnbot6 r12683 | agentz++ |   header, per markstos++'s comment.
08:01 clkao audreyt: what's the name of the iconset you used for svk-overview?
08:01 nothingmuch joined perl6
08:02 audreyt nuvola
08:02 xinming audreyt: hmm, q:x { echo "你好" } won't do right thing. :-P
08:03 agentzh ni hao! :)
08:03 TimToady 你好, 世界
08:03 agentzh hello, world!
08:03 xinming TimToady: :-)
08:03 TimToady latest smoke is up.
08:04 TimToady now attempting more than 12000 tests.
08:04 TimToady fail 88 more, but that's actually progress
08:04 * agentzh wonders which input method TimToady was using.
08:04 TimToady well, on that particular item, cut-n-paste.
08:04 agentzh ah
08:06 TimToady but I can at least write 世界 with my Japanese input method (scim at the moment)
08:07 TimToady ä½  doesn't occur in Japanese, however...
08:08 agentzh hehe
08:11 xinming pugs: UniChar.decodeUTF8: bad data
08:11 xinming pugs t/builtins/quote_basic.t
08:12 xinming decodeUTF8 on the wrong part maybe..
08:12 * agentzh has no idea how pugs generates src/Pugs/pugs_version.h
08:13 TimToady well, it's getting late.
08:13 TimToady 安歇 &
08:13 xinming agentzh: util/version_h.pl maybe...
08:13 agentzh xinming: looking, thanks.
08:14 xinming 休息... ;-)
08:15 TimToady :)
08:15 agentzh TimToady was using ancient chinese, i think. :)
08:17 * agentzh ponders extracting the code from version_h.pl to a separate module since smartlinks.pl also require that functionality.
08:22 agentzh or just invoking version_h.pl and reading its stdout.
08:23 bsb joined perl6
08:31 ruoso joined perl6
08:31 larsen joined perl6
08:32 svnbot6 r12684 | agentz++ | [util/smartlinks.pl]
08:32 svnbot6 r12684 | agentz++ | - also added pugs rev number to the HTML outputs
08:32 svnbot6 r12684 | agentz++ | [util/version_h.pl]
08:32 svnbot6 r12684 | agentz++ | - added a comment to warn the reader don't change the
08:32 svnbot6 r12684 | agentz++ |   stdout format since smartlinks.pl relies on it.
08:32 agentzh oh, forgot to say "particle++" in the svn log. ;-)
08:34 buetow joined perl6
08:40 agentzh ah, my script don't have the right to invoke audreyt's svk...
08:40 agentzh fixing now...
08:40 agentzh *doesn't
08:44 agentzh audreyt: i can't call ~audreyt/pugs/util/version_h.pl on my side. so on feather, i'll have to read src/Pugs/pugs_version.h then. :/
08:46 agentzh the pugs rev number which version_h.pl prints on feather is always 0 since the svk setting is unavailable for my account. :(
09:02 agentzh yay, fixed.
09:04 agentzh suppertime &
09:04 agentzh left perl6
09:05 svnbot6 r12685 | agentz++ | [util/smartlinks.pl]
09:05 svnbot6 r12685 | agentz++ | - fixed the util/version_h.pl issue on feather (by
09:05 svnbot6 r12685 | agentz++ |   parsing src/Pugs/pugs_version.h if we fail to get
09:05 svnbot6 r12685 | agentz++ |   rev number through version_h.pl.
09:10 agentzh joined perl6
09:11 agentzh Juerd, particle, markstos: please look at the new header here: http://feather.perl6.nl/syn/S02.html
09:11 lambdabot Title: S02
09:11 agentzh suggestions welcome :)
09:16 agentzh the syn rev does not meet the number on http://svn.perl.org/perl6/doc/trunk/design/syn/,
09:16 lambdabot Title: Revision 11408: /doc/trunk/design/syn
09:16 agentzh because design/syn/ is just a subdirectory of the repos.
09:18 agentzh i've checked my p6l mails and confirmed that the synopeses on feather are already up-to-date. :)
09:20 Juerd agentzh: I like it. The ISO date is what I wanted to request, so this is perfect :)
09:20 agentzh yay!
09:21 dolmans I just cannot compile t\operators\operator_overloading.t, even use a prior version.
09:21 agentzh dolmans: that's normal when you're working with the test suite. :)
09:24 dolmans agentzh: i think so, but i remember i compile it successfully last time. hm, not sure.
09:24 agentzh ahh
09:27 agentzh supper for real &
09:27 agentzh left perl6
09:40 chris2 joined perl6
09:49 elmex joined perl6
09:50 kanru2 joined perl6
10:42 chris2_ joined perl6
10:45 chris2_ is now known as chris2
10:51 svnbot6 r12686 | dolmans++ | add 'is assoc' traits for user-defined infix
11:02 mako132_ joined perl6
11:28 cmarcelo joined perl6
11:30 kanru2 is now known as kanru
12:02 bcorn joined perl6
12:12 bpphillips joined perl6
12:21 Limbic_Region joined perl6
12:23 Limbic_Region If you think Pugs is sluggish and you haven't upgraded to GHC 6.5 - it r0x0rs
12:24 kanru joined perl6
12:24 * Limbic_Region doubts his attempt at 733t speak was correct but hopes his point was made
12:32 kanru joined perl6
12:34 dolmans joined perl6
12:37 audreyt Limbic_Region: so the opendir() problem persistswith ghc 6.5?
12:38 audreyt you are in luck, as my macbook won't be back for another (at least) 4 days (maybe forever)
12:38 audreyt and win32is now my primary workspace :)
12:38 * audreyt is downloading ghc 6.5 snapshot
12:39 audreyt but yeah, GHC 6.5 shows 2x-3x speedup
12:39 audreyt across all platforms, that we get for free :)
12:42 svnbot6 r12687 | audreyt++ | * eval 'UnicodeHere' now works again.  Thanks to agentzh++ for noticing.
12:46 plisk joined perl6
12:50 Limbic_Region audreyt - checking now
12:51 Limbic_Region audreyt - I will not say that the "opendir()" problem persists but the File::Find won't work without debug = 1 ;-)
12:51 Limbic_Region also - did you see my nopaste concerning a half dozen example scripts that bomb due to a Pugs STM issue?
12:52 Limbic_Region "Limbic_Region" pasted "The following examples on Win32/MinGW/GHC 6.5 bomb with: "pugs: Control.Concurrent.STM.atomically was nested"" (6 lines, 204B) at http://sial.org/pbot/19259
12:53 Limbic_Region there was a verification that it caused problems on other OSes and other versions of GHC though the error messages weren't always the same
12:55 Limbic_Region there is another one that is bombing because of require 'file.pl'; # but I don't know what the correct syntax should be
12:56 audreyt it's not syntax
12:57 audreyt it's an implementation bug. willfix
12:57 Limbic_Region oh yeah - I forget that not all the examples were working at one time
12:57 Limbic_Region there is another example that has lots of hyperoperator stuff that isn't working too
12:58 Limbic_Region and several infix bugs that TimToady claims - should work
12:59 Limbic_Region will bug you you one at a time (pun not intended but found to be funny after the fact)
12:59 audreyt infix is already resolved
13:01 Limbic_Region um - I don't think so - the examples are still not passing
13:01 * Limbic_Region tries to remember which examples so he can point you to them
13:01 audreyt which example(s) are those?
13:01 Limbic_Region brb
13:02 Limbic_Region oh, I remember one of them was the wizard.pl
13:02 * Limbic_Region gets the full path
13:03 Limbic_Region oh wait - it is still failing but for a different reason now
13:03 Limbic_Region ;-)
13:03 * Limbic_Region will investigate further
13:04 audreyt k... I'll bbiab too
13:06 wolverian I hear liskov crying ...
13:06 weinig joined perl6
13:08 neoesque joined perl6
13:09 Limbic_Region audreyt - let me know when you are back and what prob you are working on (or not)
13:09 svnbot6 r12688 | Limbic_Region++ | Added FindBin::Dir to @*INC in case not run from .
13:11 Limbic_Region 2 things to work on if you get a chance
13:12 Limbic_Region examples/hop6/expr-parser.pl is currently failing because require 'file.pl'; no workie
13:13 Limbic_Region examples/hq9 .pl is currently failing because my subset HQ9PlusProgram where ... no workie
13:13 Limbic_Region err - there is a plus symbol after that 9 that CGI:IRC is eating
13:14 Limbic_Region and then the 6 examples (previously nopasted) that are failing due to STM
13:14 * Limbic_Region shuts up for a while
13:17 weinig is now known as weinig|work
13:23 audreyt Limbic_Region: ok.
13:23 audreyt ghc still havn't finished downloading
13:23 audreyt and I probably need to fade in a bit
13:23 Limbic_Region no worries
13:23 audreyt but tomorrow I'll be back and hack all day :)
13:23 audreyt (as long as this win32 laptop does not break *cough*)
13:23 Limbic_Region that's good
13:24 Limbic_Region so there are the 4 things that I currently know are b0rk and have isolated enough to let you hack on
13:24 Limbic_Region well, 3 are listed above and of course the opendir() issue
13:24 Limbic_Region oh, and I fixed 1 of the 25 remaining failing examples so we are down to 24 ;-)
13:24 Limbic_Region at least on this platform
13:25 vel joined perl6
13:31 audreyt well, at least I fixed one... r12689. g'nite :)
13:31 svnbot6 r12689 | audreyt++ | * require EXPR now works again.
13:37 hcchien joined perl6
13:42 Limbic_Region sleep well
13:42 svnbot6 r12690 | audreyt++ | * allow third-party/installed be nuked and remade with 'make'
13:45 svnbot6 r12691 | audreyt++ | * Prefer 6.5 to 6.4 if both GHCs are probed under C:\.
13:53 svnbot6 r12692 | audreyt++ | * clean before each third-party build so that GHC 6.4->GHC 6.5 upgrade won't trigger HsJudy buildfail
13:55 cjeris joined perl6
14:16 kanru2 joined perl6
14:16 marmic joined perl6
14:18 kanru2 is now known as kanru
14:20 svnbot6 r12693 | fglock++ | v6 - more p6 code in the compiler - P6P6Rule.pm, P6Perl6.pm
14:20 svnbot6 r12692 | audreyt++ | * clean before each third-party build so that GHC 6.4->GHC 6.5 upgrade won't trigger HsJudy buildfail
14:23 Juerd Can someone please quickly describe the current status of non-haskell perl 6 implementations?
14:23 clkao oooo
14:24 fitzzz joined perl6
14:24 clkao fglock: how do you do the bootstrap compiling for those pmc ?
14:24 fitzzz left perl6
14:25 [particle] perl6/parrot is still working towards running the perl 6 Test.pm. currently refactoring parrot compiler tools to ease development.
14:26 clkao [particle]: saw my svk mirror comment yesterday?
14:26 [particle] no
14:26 clkao [particle]: you were saying not being able to have two svk sync at the same time. it works for me.
14:26 clkao [particle]: was it while syncin,g you can't create a new mirror?
14:27 [particle] i'll have to check
14:27 [particle] i haven't fully made the svn-svk migration yet
14:29 DaGo joined perl6
14:33 chaoslawful joined perl6
14:34 chaoslawful joined perl6
14:35 chaoslawful left perl6
14:37 kanru2 joined perl6
14:38 ruoso joined perl6
14:39 onsen joined perl6
14:42 spoopithy is now known as spoop
14:45 Khisanth strict and warnings will be on by default right?
14:49 audreyt somewarnings, yes. strict refs, subs and vars, yes.
14:49 audreyt Limbic_Region: I solved the GHC heap overflow bug!
14:49 [particle] audreyt: oot!
14:49 buetow joined perl6
14:49 audreyt Limbic_Region: you can now build pugs in one sitting :)
14:50 * Khisanth probably still can't
14:51 Aankhen`` joined perl6
14:52 audreyt Khisanth: not on win32?
14:52 svnbot6 r12694 | audreyt++ | * GHC RTS options, such as heap settings crucial on Win32 systems, were not passed to GHC (probably ignored by Cabal). So build_pugs.pl now sets them in the GHCRTS env variable instead.  As a consequence, Win32 can now build Pugs with a single 'nmake'.
14:52 Khisanth on win32 and linux
14:52 audreyt win32 should be fine now with r12694
14:53 audreyt if heap overflows on linux... that'd be weird.
14:53 Khisanth I do all code writing on this linux machine with very little mem :)
14:54 audreyt ah. physical memory exhaustion :)
14:55 Khisanth machine is lot less powerful than the windows one but I enjoy working on it a lot more
14:56 kanru joined perl6
15:21 explorer joined perl6
15:24 Limbic_Region audreyt - you are supposed to be sleeping but I will try it out
15:24 weinig joined perl6
15:24 weinig is now known as weinig_
15:25 weinig_ is now known as weinig
15:29 soisoisoi joined perl6
15:32 gaal joined perl6
15:38 siossois joined perl6
15:46 justatheory joined perl6
15:53 DaGo joined perl6
15:55 svnbot6 r12695 | audreyt++ | * do not let 'is assoc' interfere with 'is export' in parsing
15:59 prefiks joined perl6
15:59 integral hello all,  I'm having a problem building at the moment.  It's failing when it's trying to build third-party/filepath;  anyone any ideas what I'm missing?
15:59 pasteling "integral" at 212.20.244.147 pasted "make output" (57 lines, 3.2K) at http://sial.org/pbot/19266
16:01 audreyt fixed
16:01 audreyt r12696
16:02 soisoisoi joined perl6
16:02 audreyt try again?
16:02 integral audreyt++ # thanks
16:02 TimToady audreyt: so backtracking "is" is really kind of a hack
16:02 svnbot6 r12696 | audreyt++ | * only unregister/clean third-party when we have a reason to.
16:03 audreyt TimToady: it is, but mostly because "is assoc('foo')"
16:03 audreyt does not quite parse with existing ruleTrait*
16:03 TimToady hmm.
16:03 audreyt actually, I don't quite know how it works, macro-scopically
16:03 integral audreyt: yep, all working lovely now
16:03 audreyt trait_auxillary gets... an function application?
16:04 audreyt I can see maybe is :assoc<left>
16:04 audreyt which would be a literal it's getting
16:04 TimToady or something more like :assoc('foo') ?
16:04 audreyt yeah :)
16:04 Limbic_Region audreyt - fwiw, make in 1 pass works for me
16:04 audreyt Limbic_Region: oooh
16:04 TimToady darn, I should learn to read while I'm typing. :)
16:05 audreyt that would take out some of the fun :)
16:05 Limbic_Region audreyt - out of curiosity though, does specifying the heap size explicity cause GHC to reserve that much or does it still just take what it needs as it needs it
16:05 Limbic_Region I ask, because this last build seemed to bring my machine to its knees
16:05 audreyt it just takes what it needs
16:05 audreyt since it's the heap cap
16:06 audreyt not initial heap alloc
16:06 Limbic_Region ok, must be the weekly scan or something that just happened to coincide with my build
16:06 audreyt I think the wise people at GHC devteam capped win32 heeap at 256mb for good reason...
16:06 audreyt as indeed once it's past the usual heap exhaustion point (Pugs.Parser for me)
16:06 audreyt it slows down significantly.
16:06 Limbic_Region your fix to require brought the number of examples that need TLC down to 23
16:07 audreyt but onepass with slightly uncomfortable ~5mins
16:07 [particle] damn, Test::Simple 0.64 'make test' fails on win32 :(
16:07 audreyt I think beats in explicable error messsage and another nmake
16:07 Limbic_Region I added the following to several examples scripts use FindBin; use lib $FindBin::RealDir; as they assumed they were running from the same directory - is that the right way to do that?
16:08 audreyt sure
16:08 audreyt as long as you used findbin first
16:09 audreyt TimToady: another way to look at it:
16:09 audreyt assoc is actually trait auxillary
16:09 orafu joined perl6
16:09 audreyt "is sometraitaux(foo)" gets translated simply to "sometrantaux foo"
16:09 audreyt that is consistent with returns/of handling
16:09 audreyt and would allow
16:10 audreyt sub infix:<foo> assoc 'left' parsed /.../ equiv &bar { ... }
16:10 audreyt I don't know. "is :assoc<left>" looks a bit nicer.
16:11 audreyt and also fits with the metaphor of the Sub object has a hash of traits
16:11 audreyt keyed by name, so "is" is just hanging stuff to it.
16:12 TimToady so basically they're named params
16:12 audreyt to traitaux:<is>, yes.
16:12 audreyt and traitaux:<is> can munge them however they want
16:12 TimToady but logically they're named parameters to the declaration
16:12 TimToady abstractly, to be more precise
16:13 bernhard joined perl6
16:14 TimToady makes me wonder if general named args should allow auxilliaries...
16:14 audreyt yeah. then I guess the "is Foo(...capture syntax here...)" is fine
16:15 audreyt as we expect it to be put in a side ast table somewhere (as is currently the case)
16:15 audreyt and it's the declarator that consults them
16:15 TimToady My sleepy-buffer is not yet large enough to hold all of this and see whether unification makes sense.
16:16 TimToady more coffee may or may not help that.
16:16 TimToady since I have a hard heap limit...  :)_
16:16 audreyt S06 has "is Persistent(...)"
16:16 audreyt which wouldn't work the same as "is Persistent"
16:17 TimToady or "is Persisten[...]"
16:17 audreyt yeah
16:17 audreyt almost makes one want to say "isa Persistent" to be consistent with .isa
16:17 audreyt but it wouldn't be englishy enough :)
16:17 TimToady was thinking that about 5 min ago...
16:18 TimToady which is why I didn't say it.  :)
16:18 * audreyt hits the "punt" button, uploads new smoke, and goes to sleep :)
16:19 TimToady "is" does type lookup and falls back to :Persistent maybe.  Can do is :foo or ::foo to disamb.
16:19 * TimToady hopes to wake up soon...
16:19 TimToady night...
16:19 Limbic_Region sleep well TimToady
16:20 audreyt so "is rw" becomes "is :rw(1)"?
16:20 Limbic_Region sleep well audreyt
16:20 audreyt that would work :)
16:20 Limbic_Region that's what happens when you read the channel from bottom to top instead of top down
16:20 TimToady 休息
16:26 Psyche^ joined perl6
16:37 Psyche^ is now known as Patterner
16:39 DaGo joined perl6
16:40 mdiep_ joined perl6
16:43 ilogger2 joined perl6
16:46 justatheory joined perl6
16:50 _bernhard joined perl6
17:01 onsen joined perl6
17:02 eden_c joined perl6
17:10 zgh joined perl6
17:14 iblechbot joined perl6
17:24 svnbot6 r12697 | fglock++ | * v6 - moved the bootstrapped modules to v6/v6.pm
17:38 ilogger2 joined perl6
17:47 xinming joined perl6
18:03 PolettiX joined perl6
18:17 Eimi joined perl6
18:29 radian joined perl6
18:53 rnorwood joined perl6
19:15 mauke_ joined perl6
19:15 avarab joined perl6
19:20 avarab joined perl6
19:30 mauke_ is now known as mauke
19:43 svnbot6 r12698 | mjreed++ | Add tests for looping through and modifying scalars via is rw (explicit or
19:43 svnbot6 r12698 | mjreed++ | via default $_ lcv).
19:46 justatheory joined perl6
19:49 avar joined perl6
19:53 lightstep joined perl6
19:53 xerox joined perl6
19:53 lightstep ?seen lumi
19:53 lambdabot lumi is in #perl6. I don't know when lumi last spoke.
19:54 Limbic_Region ?seen lambdabot
19:54 lambdabot Yes, I'm here. I'm in #ypn, #scannedinavian, #perl6, #oasis, #darcs, #gentoo-haskell, #haskell_ru, #haskell.es, #haskell.se, #haskell.it, #haskell-overflow, #haskell-blah and #haskell
19:55 gantrixx joined perl6
19:58 qmole joined perl6
20:06 avarab joined perl6
20:11 rashakil joined perl6
20:22 avar joined perl6
20:24 rashakil_ joined perl6
20:24 TimToady audreyt: on the "is eval" hack, we could go a couple of ways.
20:25 TimToady we could say that "is" works as a sub only if predeclared as such, and is() is just autodeclared differently inside a class.
20:26 TimToady or we could go with "the invocant of the class block is the class itself", and make people write ".is: Dog" or some such in term position.
20:27 TimToady though that is perhaps too late to serve as a modifier to the class declaration if "is" isn't evaluated at BEGIN time.
20:29 TimToady so maybe "is" and "has" are declarators only within a class or role block.
20:30 TimToady though the other day someone asked why you can't write "class Foo has $.bar {...}"
20:30 TimToady that might fall into the category of legal but discouraged...
20:31 TimToady depending on which foolish consistency we aim for.
20:32 TimToady so, um, don't wake up just to read this, k?  :)
20:37 PerlJam TimToady: so ... why can't you write that?  in the general case subs have pretty syntax so that you don't have to write our sub foo is signature() will do { ...}  (or whatever, I don't remember the exact syntax), so why not say classes are the same way?
20:37 PerlJam (you can probably figure out which foolish consistency I'd like :)
20:41 avarab joined perl6
20:53 avarab_ joined perl6
21:05 S801112 joined perl6
21:05 S801112 left perl6
21:06 TimToady PerlJam: I think the main reason is that "has $.foo" desugars to (among other things) a "my $!foo", and one of our hard-and-fast rules is that "my" also scopes to the surrounding curlies or compilation unit.
21:06 justatheory joined perl6
21:07 TimToady s/also/always/
21:08 TreyHarris TimToady: along those lines, will "if productiveSub() -> $x { $x.doSomething() }" work?
21:08 TimToady supposed to.
21:08 TreyHarris ok, so unimpl, not disallowed.
21:08 TimToady assuming the sub returns something that can both be evaluated as boolean and bound to $x
21:10 TreyHarris *nod* right.  just the new scoping as compared to Perl 5 only currently has a replacement in the for case.  "if (my ($num) = (/(\d+)/) { ... }" is common and can't currently be written in Perl 6
21:10 TreyHarris well, it can be written... but the equivalent can't be written
21:11 TimToady which is why it's specced to work with "if", so we can keep our "my" rules simple.
21:12 TimToady at least I hope it's specced...
21:13 TimToady S04 at least has an example:
21:13 TimToady if rand -> $x { say "exists" } { extra() }
21:13 TreyHarris didn't see it, but there's an example ...
21:13 TreyHarris yes :-)
21:14 TreyHarris so once again, syn is the informal formal spec, and so i can write a test to make the formal informal spec :-)
21:14 TimToady soit'nly
21:14 TimToady it's symbiotic.
21:15 TimToady and fractal
21:15 TimToady and strangely attractive.
21:15 TreyHarris lol
21:15 TimToady well, right now a nap is being strangely attractive to me...
21:15 TimToady so I'll sign off &
21:15 TreyHarris just don't have a fractal nap, we want to see you again :-)
21:18 avar joined perl6
21:28 jferrero joined perl6
21:36 buubot joined perl6
21:45 elmex joined perl6
21:47 avarab joined perl6
22:05 markstos_ joined perl6
22:05 markstos_ I'm interested in refactoring CGI.pm for Perl6 to be OO.
22:06 markstos_ grepping through the ext dir, only WTemplate uses CGI, so at least in the pugs tree, I can't see that causing much breakage.
22:06 Juerd Please, please, please, PLEASE do not base anything on CGI.pm :)
22:06 markstos_ Should I bother to preserve the current procedural interface?
22:06 markstos_ Juerd: Which CGI.pm? p5 or p6 ?
22:07 Juerd Perl 5
22:07 Juerd Is there a Perl 6 one?
22:07 markstos_ ext/CGI
22:07 merlyn what's wrong with CGI.pm?
22:07 markstos_ merlyn: Which CGI.pm? p5 or p6?
22:07 merlyn p5
22:08 markstos_ merlyn: Perhaps that it should really be named CGI+HTML.pm
22:08 markstos_ merlyn: Or that is extra complex by offering both procedural and OO interfaces.
22:09 merlyn well, as long as you know all that, what's wrong with it?
22:09 merlyn besides the "lincoln loader"
22:09 markstos_ merlyn: How about this: It's not wrong, just unfortunately different than ideal.
22:10 markstos_ I think Juerd's sentiment is that writing modules for Perl6 is a chance to make a clean break, and correct any perceived or actual design flaws without concern for backwards compatibility for the sake of it.
22:10 Juerd merlyn: Oh, too much. Have you never read any of my rants on perlmonks? :)
22:11 markstos_ My inclination is to convert CGI.pm-p6 into an OO-only module.
22:11 markstos_ I'll only be focusing on the basics for now, becaus that's all I need.
22:11 markstos_ No HTML generation code. :)
22:12 markstos_ from writing some of the comments in it and around it, it seems that might have been the original intent, but the pugs object systemj wasn't done at the time.
22:12 markstos_ Anyway, it's all under source control if someone wants to rollback my work or whatever.
22:20 Juerd TimToady++  # handwaved it harder :)
22:22 Juerd merlyn: I think the *main* issue with CGI.pm is that it's a web programming module, not strictly a CGI module. The name should be different, and a CGI-specific module defining an interface shouldn't exist.
22:24 merlyn yeah, that's a bit organic yes
22:29 Juerd Right - so for Perl 6, I was hoping nobody'd get the idea to do the same thing again.
22:29 Juerd But it's unstoppable. CGI.pm lives in too many people's heads.
22:29 Juerd I personally think we should have Web::
22:31 Juerd Web::Request (is HTTP::Request), Web::Response (is HTTP::Response), Web::CGI, Web::ModPerl, Web::Auto (CGI|ModPerl), ...
22:31 Juerd But I'm probably wrong too. The lack of discussion bothers me :)
22:32 autark to me, the word "web" represents much more than just HTTP.
22:32 glasser Juerd: I like that
22:33 Juerd autark: That's the point.
22:34 Juerd autark: Web can very well be other protocols too, but for now we can just resolve things by inheriting from HTTP::samething
22:34 markstos_ I just had a Perl6 joy. I needed to find all the mentions of a hash, I could search for just %hash, and not %hash /and/ $hash. :)
22:36 Juerd I'd search for /hash/
22:36 discordja joined perl6
22:37 markstos_ Juerd: don't ruin my joy. :)
22:37 mako132_ joined perl6
22:47 dolmans joined perl6
23:02 markstos_ Is this supposed to work? (yet?)
23:02 markstos_ class Foo; has $.foo is rw = 1;
23:02 markstos_ ?eval class Foo; has $.foo is rw = 1;
23:02 evalbot_12698 Error:  unexpected "=" expecting trait, "handles", comment, ";" or end of input
23:02 Juerd ?eval class Foo { has $.foo is rw = 1 }
23:02 evalbot_12698 Error:  unexpected "=" expecting trait, "handles", comment, ";" or "}"
23:02 Juerd Apparently not. I thought maybe the {}less syntax wasn't supported yet
23:03 markstos_ It seems to be only lightly spec'ed, and I suspect not tested for.
23:05 TreyHarris what's broken there is attribute initialization
23:05 TreyHarris you can't do it yet
23:05 markstos_ You can, it's just a little ugly. :)
23:05 markstos_ has $!QS_DELIMITER     is rw; $!QS_DELIMITER = ';';
23:06 TreyHarris right, but that's taking advantage of side effects which aren't guaranteed to work
23:06 scw joined perl6
23:06 markstos_ What side effects?
23:07 TreyHarris you have a bare executable statement inside your class declaration.  so a side effect of compiling the class is setting the value
23:08 markstos_ Even when my class declaration isn't inside a block ?
23:10 markstos_ TreyHarris: It seems it's a syntax error anyway.
23:10 TreyHarris oh, you're right. :-)  i took your word for it working and was trying to show you an example of where you'd run into problems, but i couldn't.  that's why :-)
23:11 TreyHarris but anyway, imagine this compiled: class Foo { has $!bar is rw; $!bar = 3; }; my Foo $a .= new; say $a.bar; $a.bar = 17; my Foo $b = .= new; say $b.bar
23:11 markstos_ I think it passed "pugs -c", but failed at runtime. Same difference.
23:12 markstos_ I see what you are saying. I was looking at the code with Perl5 eyes, where that's not a problem.
23:12 TreyHarris if it worked, it would print undef, undef, or 3, 17, but it couldn't print 3, 3
23:12 markstos_ I stuck that stuff in a method BUILD {}, and that seemed to Best.
23:12 TreyHarris it's the same issue as
23:12 TreyHarris ?eval my $foo = INIT { 42 }; say $foo
23:12 evalbot_12698 OUTPUT[42 ] Bool::True
23:13 TreyHarris you need to hook onto object instantiation time
23:13 TreyHarris but you can't yet.
23:13 markstos_ I see.
23:13 TreyHarris that will be done for you automatically on the RHS of a "has $.foo = 42" declaration
23:13 TreyHarris but it will be sugar for whatever the equivalent of INIT is for instatiation time.
23:14 TreyHarris I think... it might evaluate the RHS at compile time and autocreate an initializer that's run at instantiation time.  S12 doesn't make it explicit, i don't think
23:14 markstos_ I got something to work for the moment, so I'm happy. :)
23:18 TreyHarris TimToady: should class Thing { has $!ctime = time(); } give each object its own $!ctime?  or would every object have the ctime of the first object created?  or would every object have a ctime somewhere shortly after compile time?  or something else?
23:20 markstos_ TreyHarris: This sounds like CURRENT_TIMESTAMP showing up in a "CREATE TABLE" syntax.
23:20 markstos_ I like what happens there: When you create a new row, the timestamp you get is at the moment the row is created.
23:21 capmostarda joined perl6
23:21 capmostarda left perl6
23:21 markstos_ On a old version of PostgreSQL there was some variation of that syntax that always returned the table creation time instead. I never expected that it was a  big PITA.
23:22 markstos_ s/it was/and it was/
23:24 TreyHarris yes, but it's generalizable.  again reading a lot from an example in a synopsis (S12, "role Pet { has $.collar = { Collar.new(Tag.new) }"), one assumes that every pet has its own collar, so it is run at instantiation time.  which is what I'd expect.
23:25 markstos_ TreyHarris: then it sounds like we are in agreement ?
23:27 TreyHarris agreement that "has $.attr = something()" will do the thing of least surprise, yes.  I still have idea what random statements inside of a Class will do.  Maybe the can be considered to run at instantiation-time each time, or at compile-time once, or at first instantiation-time once, or error out
23:27 svnbot6 r12699 | markstos++ | Refactor CGI.pm (p6) to be an OO module. All tests passing.
23:27 svnbot6 r12699 | markstos++ | I'll update WTemplate next (which uses the old CGI syntax).
23:30 aufrank joined perl6
23:33 svnbot6 r12700 | markstos++ | Update WTemplate/exapmles/template.cgi to use OO CGI
23:56 frederico joined perl6
23:59 markstos_ Why is this variable undeclared?
23:59 markstos_ ?eval class Foo; has %!PARAM is rw; submethod BUILD (%param) { %!PARAM = %param; }; Foo.new( a => 'b' );
23:59 evalbot_12700 Error: Undeclared variable: "%param"

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo