SVK users: search.cpan.org/dist/SVN-Mirror/ | paste: sial.org/pbot/perl6 | pugs.blogs.com | pugscode.org | pugs.kwiki.org | www.treehugger.com/files/th_images/paradigm.jpg
Set by audreyt on 17 August 2006.
00:14 markstos_ joined 00:17 diakopter joined 00:18 weinig is now known as weinig|food
svnbot6 r12675 | audreyt++ | * Pugs.Eval: "for" loops now handles lvalue scalars 00:22
r12675 | audreyt++ | correctly as noted by markjreed++ on p6c:
r12675 | audreyt++ | for $x { $_++ } # shouldn't break
r12675 | audreyt++ | for ($x, $y) { $_++ } # shouldn't break
cmarcelo audreyt: ping 00:29
00:30 nekokak joined
audreyt pong 00:39
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:43
Although, from the 20+ line implentation in Perl5's Perl6::Say, "say" appears more complex than one might imagine. 00:44
00:44 mako132_ joined
clkao it should be builtins 00:44
00:45 cooljoke joined
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)...
markstos_ clkao: I agree. It's oddly missing from there, though: feather.perl6.nl/syn/S29.html
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.
clkao markstos_: are you implement say as builin for v6 prelude? 00:47
markstos_ No. I'm hacking on Differences.pod, and trying to link to the spec where the differences are fully defined. 00:48
I can't find the proper mention of "say".
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 ?
markstos_ clkao: for v6, couldn't Perl6::Say just be used ?
clkao sure it could.
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
[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
by committing to docs/Perl6/Spec/functions
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
markstos_: no, some of them are maintained in the pugs tree
"svk ls" or "svn ls" should show you those
markstos_ Ok. Committing.
audreyt anything you can commit to, is in the pugs tree
markstos_ Easy rule of thumb. :) 00:54
audreyt cmarcelo: there might be a misconversion... is there a oneliner I can test? also does "elems" still work? 00:55
(I'll bbl, laptop fix + $job)
cmarcelo audreyt: my @a[999999999] = 1; push @a, 2; say "hi" 00:59
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
feather.perl6.nl/syn/S29.html#Obsolete
lambdabot Title: S29
markstos_ agentz: S29 currently cuts off after the "ref" entry in the HTML version. I'm not sure why. feather.perl6.nl/syn/S29.html 01:13
lambdabot Title: S29
cmarcelo audreyt: and @a.elems still works.. 01:15
svnbot6 r12676 | markstos++ | Initial add of say() to S29, at audreyt's prompting. Could use peer review and 01:20
r12676 | markstos++ | appropriate placement in the file.
diakopter A07 link is broken 01:21
audreyt cmarcelo: wrong syntax 01:25
my @a[999999999] = 1; push @a: 2; say "hi"
or 01:26
my @a[999999999] = 1; @a.push(2); say "hi"
while "push @a, 2" will be made to work (I think) via macro rewriting and "method push is export",
TimToady havn't specified that part and the behaviour is currently undefined.
?eval my @a[999999999] = 1; @a.push(2); @a.elems 01:27
01:27 evalbot_12668 is now known as evalbot_12676
evalbot_12676 1000000001 01:27
audreyt that works
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
01:28 merlyn joined
audreyt yes 01:29
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,
r12677 | markstos++ | Apocalypse and Exegesis do. Also, some more content and links were added.
01:31 markstos_ left
audreyt that can be trivially fixed... 01:31
fixed 01:32
svnbot6 r12678 | audreyt++ | * Eval.Var: Simple array/hash variables as function arguments
r12678 | audreyt++ | should gets their size in lvalue, not rvalue, context, such
r12678 | audreyt++ | that huge array/hash sizes won't cause heap overflow.
r12678 | audreyt++ | Reported by: cmarcelo++
r12677 | markstos++ | Re-organize Differences.pod to follow the same pattern that the Synopsis,
r12677 | markstos++ | Apocalypse and Exegesis do. Also, some more content and links were added.
cmarcelo did pugs-commits ML stopped working? 01:33
audreyt I wasn't even aware there's such a ML
CIA tracks pugs, no? htere's also openfoundry's rss feed
01:37 mako132_ joined
cmarcelo it was: lists.utsl.gen.nz/pipermail/pugs-commits/ 01:37
lambdabot Title: The Pugs-commits Archives
01:37 mako132_ joined 01:43 xinming joined 01:51 chromo joined 01:52 chromo left 02:00 neoesque joined 02:02 dolmans joined 02:10 justatheory joined 02:12 Teratogen joined
Teratogen why doesn't Perl 6 have a Ref type? 02:12
it has Int and Str types, I've read. 02:13
flattening is so very Perlish though
oops wrong chan
revdiablo This is #perl6, I don't think it's the wrong channel to ask about Perl 6 =) 02:20
02:21 mjk joined
PerlJam Teratogen: perl6 doesn't need a Ref type. And as I said on #perl, Captures take their place. 02:22
Teratogen hi Perljam 02:24
02:25 clkao joined
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:28
after all references still do get assigned to scalars, right? 02:29
02:29 clkao joined
TreyHarris Teratogen: Perl 6 does not have references 02:30
it's an autoboxing object-oriented language, like Eiffel or Smalltalk 02:31
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:32
Teratogen $foo = @bar; 02:33
what is in $foo?
TreyHarris an Array
revdiablo What I'm beginning to wonder, is what are the purpose of sigils in Perl 6?
Teratogen revdiable, me too
with sigil invariance
=/
TreyHarris ?eval my @a = 1..3; say "\@a: {@a.ref}"; my $foo = @bar; say "\$foo: {$foo.ref}" 02:34
02:34 evalbot_12676 is now known as evalbot_12678
evalbot_12678 OUTPUT[@a: Array ] Error: Undeclared variable: "@bar" 02:34
TreyHarris oops
?eval my @a = 1..3; say "\@a: {@a.ref}"; my $foo = @a; say "\$foo: {$foo.ref}"
evalbot_12678 OUTPUT[@a: Array $foo: Array ] Bool::True
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
Teratogen yeah kinda like PHP
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
you don't have to use a constructor to make an @a into an array, or a %b into a hash
and they autoconstruct a nice context for listy and hashy things when they're on the LHS
revdiablo TreyHarris: Yes, indeed, but %{} and @{} are used fairly frequently
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
Teratogen =)
TreyHarris Teratogen: they're circumfix operators
Teratogen merlyn came up with the term "outfix"
ah.
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.
Teratogen hence they should be listed in any precedence table of perl operators
but they aren't
not in Perl 56
err
Perl 5
TreyHarris ?eval sub circumfix:{'BB','EE'} { say "@_" }
evalbot_12678 undef
TreyHarris ?eval sub circumfix:{'BB','EE'} { say "@_" }; BB "hello" EE;
evalbot_12678 Error: unexpected "E" expecting comment, operator, ":", ",", postfix conditional, postfix loop, postfix iteration, ";" or end of input
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
they just think you can do things like [ 1,2,3 ]
that's sad
TreyHarris revdiablo: mmmm... let's see
?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)}
TreyHarris can you do that without any @'s or %'s?
revdiablo TreyHarris: Your earlier points about creating arrays and hashes without a constructor are well taken, btw. I'm just wondering further.
Teratogen well I hope that Perl 6 operator precedence tables DO inclue [] and {} 02:40
that would be nice
revdiablo ?eval my @a = 'a'..'d'; my @b = 1..4; my %h = zip(@a;@b)
TreyHarris ?eval my $a = 'a'..'d'; my $b = 1..4; my $h = {zip($a;$b).pairs}
evalbot_12678 {("a" => 1), ("b" => 2), ("c" => 3), ("d" => 4)}
Teratogen s/inclue/include/
evalbot_12678 \{Syn "block" {App &pairs (App &zip (: Var "$a", Var "$b"): )}}
TreyHarris oh... that didn't used to work. nice.
?eval my $a = 'a'..'d'; my $b = 1..4; my $h = zip($a;$b)
evalbot_12678 [("a", 1), ("b", 2), ("c", 3), ("d", 4)]
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")}}
TreyHarris ?eval my $a = 'a'..'d'; my $b = 1..4; my $h = {(zip($a;$b)).pairs}
evalbot_12678 \{Syn "block" {App &pairs (App &zip (: Var "$a", Var "$b"): )}}
TreyHarris weird.
revdiablo ?eval my $a = 'a'..'d'; my $b = 1..4; my $h = %(zip($a;$b))
evalbot_12678 {("a" => 1), ("b" => 2), ("c" => 3), ("d" => 4)}
Teratogen what does "zip" do?
revdiablo Neat.
Teratogen is it a builtin? 02:42
TreyHarris yes
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;
Kind of... roughly... that's the idea anyway =)
Teratogen oh 02:44
I really want to like Perl 6 but I don't like the idea of sigil invariance
more's the pity
revdiablo It's not really that hard to get used to
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
revdiablo I like to think Perl 5 programmers are generally fairly flexible and open minded about syntax
TreyHarris and i probably write 100 lines of Perl 5 code for every 1 of Perl 6
revdiablo Writing code in perl 6 does feel nice, even with the small amount I've done 02:46
Teratogen is there a Perl 6 written in Perl 6 that is generating Parrot code yet? 02:47
revdiablo Are you joking? =)
Teratogen nope =)
serious question
revdiablo No 02:48
Teratogen that is the goal though?
TreyHarris Teratogen: one of the goals
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
TreyHarris right
revdiablo I really like the 6-on-5 stack 02:49
02:49 clkao_ joined
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
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
C is fairly portable
TreyHarris haskell most likely, at least at first
Teratogen oh 02:51
is haskell available for most platforms?
C is pretty much universal
TreyHarris sure. but well, everything's converging
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. =)
TreyHarris and then since parrot's written in C....
Teratogen right that would be neat
ah
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
or that i just didn't look in the right place :-)
Teratogen I think it should be in perl 5 reference tables too
but merlyn disagreed
precedence, I mean
TreyHarris well, i'm having trouble thinking of anything with looser precedence
Teratogen they are definitely operators 02:54
TreyHarris [] is a term
isn't it?
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.
I didn't even realize that until I saw someone do it on #perl
TreyHarris if you can't have syntactic ambiguity, you don't care about relative precedence
revdiablo Do people really not realize that?
Teratogen I've never seen it in any Perl book
revdiable, I always thought you could only do things like [ 1,2,3 ] =) 02:55
similarly for hashes
revdiablo Well, how strange
Teratogen well, I've never seen an example in Perl book that was NOT like that 02:56
so how would I know?
not adventurous enough I guess
revdiablo Are you talking about array ref constructor or array indexing?
02:56 clkao joined
Teratogen the array ref constructor I think... [ expr ] 02:56
and the hash ref constructio { } 02:57
although I think it even works for ( expr )
TreyHarris hold on, they're different things
Teratogen bah my typing sucks tonight, sorry.
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?
TreyHarris ( expr ) simply groups expr for precedence reasons
revdiablo Getting a bit OT for #perl6, but: perl -le 'print "@{ print 2+2; [ 0 .. 9 ]} ${ print 1+1; \4 }"'
Teratogen well the act of grouping could be considered an "operation" of sorts
I guess it comes down to semantics 02:59
TreyHarris Teratogen: in any point, your point is moot:
feather.perl6.nl/~agentzh/syn/S03.h...Precedence
lambdabot Title: S03
TreyHarris it's right there on the first line of the table ;-)
though i suppose you'd prefer it to say [ ... ] rather than [ 1,2,3 ] as it now does 03:00
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:01
ok, must decommute & 03:03
03:04 Bit-Man joined 03:08 frederico joined
Teratogen haha maybe this should become the symbol for Perl 6! 03:09
gadgets.engadget.com/2006/08/24/gia...-85-tools/
lambdabot Title: Giant Swiss Army Knife offers 85 tools - Engadget
Patterner not even triple digits 03:10
Teratogen that is one helluva knife 03:11
03:19 weinig|food is now known as weinig
Khisanth xinming: you around? :) 03:22
03:22 justatheory joined 03:23 cmarcelo left 03:36 xinming_ joined 03:38 weinig is now known as weinig|sleep 03:43 zgh joined 03:46 hikozaemon joined 03:49 xinming_ is now known as xinming
xinming audreyt: ping 03:52
03:52 zgh joined
xinming Khisanth: sorry, 03:52
Khisanth: I was sleeping 03:54
Teratogen I like the new Perl 6 /\/\/\/\/\ operator
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? :) 03:55
xinming: nevermind, I think I have figured it out :) 04:01
04:03 lambdabot joined
xinming Khisanth: Do you mean, a file in repository already exists and when you try to load it with svnadmin, you get error? 04:03
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 :)
xinming Khisanth: then, the best answer would delete the .svk/foo I was you. :-P 04:05
Khisanth tried that too but then I can't mirror :P 04:07
although I just found svk.elixus.org/?SVKBootStrap and it seems I didn't do step1 :)
lambdabot Title: SVKBootStrap - Kwiki
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
04:08 kanru joined 04:10 zgh joined
xinming and BTW, if we mirror it, the dump file contains the information for the mirror. 04:10
Khisanth xinming: deleted what? 04:12
xinming the foo repository, and load the file again with repository, 04:13
Khisanth already tried that path already :) 04:15
04:29 zgh joined 04:32 xinming_ joined 04:38 zgh joined 04:51 zgh joined 05:02 onsen joined, zgh joined 05:03 bcorn_ joined 05:06 Aankhen`` joined 05:07 zgh joined 05:15 zgh joined 05:16 spoopithy joined 05:24 kanru joined 05:27 zgh joined 05:34 zgh joined 05:47 zgh joined 05:50 kane-xs joined 05:52 shachaf_ joined 05:55 zgh joined 06:07 kanru joined
dolmans in S06/Operator overloading, sub infix:<(c)> ($text, $owner) { return $text but Copyright($owner) } 06:12
is `return "$text but Copyright($owner)"'?
06:13 onsen_ joined
TimToady no, it's using a "but" infix to mix in the Copyright role. 06:19
dolmans ah, ok. i kinda need study role. 06:21
macro circumfix:?<!-- -->? ($text) is parsed / .*? / { "" } 06:22
is `is parsed / .*? /' mandatory? i think the lexer would always find the begine/end of that circumfix. 06:23
audreyt greetings lambdacamels.
dolmans: it concerns things like 06:24
<!-- do use Foo; BEGIN { rm -rf ... } -->
without is parsed, the middle is parsed as normal expr, and so lots of things may happen
and <!-- ))) --> would fail with unbalanced parens 06:25
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 :)
yes.
dolmans oh, i thought the macro would always delay parse it's parameters.
audreyt it is not so; without "is parsed", it parses using normal <expr> rule 06:27
dolmans ok.
every time i read the Synopsis, a new point will find me. kinda like this. 06:29
06:29 onsen__ joined
audreyt it's widely agreed that it's fractal. 06:31
TimToady sorry about the isSpace debacle. when I googled everything I looked at said that isSpace only does Latin-1 in Haskell 98 06:32
and I forgot they demoted \xfeff from being officially whitespace 06:33
any idea why the infix:<> ops aren't parsing right? 06:34
(user defined ones, that is)
audreyt GHC has been ignoring Haskell 98 isSpace for some time now :)
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
?eval sub infix:<MOOSE> ($x, $y) { 4 }; 1 MOOSE 2
evalbot_12678 Error: unexpected "M" expecting comment, operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input
audreyt looking
I see. userdefined infix currently has no associativity info 06:43
that's good as it means we should allow "is assoc"
TimToady also, just as a human factor, is there any way to cajole parsec into saying unexpected "MOOSE" instead of unexpected "M"? 06:45
audreyt scan for continuous \w+ / \W+ ? 06:46
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?
audreyt I havn't seen the ... form
TimToady I think that was a holdover from long ago. 06:48
when we did autosplit of the string into fore/aft
and used ... to say where the gap was.
dolmans ok, guess i can mend it?
TimToady sure.
wants to be something like circumfix:{'<!--', '-->'} 06:50
can also use french quotes
dolmans yes, i bet i would write these two kinds. :-P 06:51
TimToady circumfix:Ā«<!-- -->Ā»
I think the ordinary slice subscript is clearer for delims containing < or > though... 06:52
06:54 nothingmuch_ joined
dolmans better when the french quotes are not easy typed. 06:54
TimToady I guess one could go all old-fashioned and say circumfix:{qw/<!-- -->/} as well 06:56
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.
TimToady circumfix:{ qw[ <!-- --> ] } is vaguely better, maybe 06:59
but I still prefer circumfix:{'<!--', '-->'}
dolmans perl and english always has accent, that's the way. 07:00
TimToady ?eval sub infix:<MOOSE> ($x, $y) is equiv(&infix:<+>) { 4 }; 1 MOOSE 2 07:01
evalbot_12678 Error: unexpected "M" expecting comment, operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input 07:02
07:02 onsen joined
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
svnbot6 r12679 | agentz++ | [util/smartlinks.pl] 07:10
r12679 | agentz++ | - s/"/\&quot;/g
r12679 | agentz++ | - reversed the reversed smartlinks in HTML
agentzh ?eval say 1+3; 07:11
evalbot_12678 OUTPUT[4 ] Bool::True
svnbot6 r12680 | dolmans++ | amend to the circumfix delim. 07:16
07:18 drrho joined
audreyt implemented. 07:24
svnbot6 r12681 | audreyt++ | * Support for user-defined infix operator associativity: 07:29
r12681 | audreyt++ | sub infix:<Z> is assoc('right') ($x, $y) { $x ** $y };
r12681 | audreyt++ | 2 Z 2 Z 3; # 256, not 4
r12681 | audreyt++ | Chain, list, non, left and right are all supported.
audreyt TimToady: unless otherwise specified, ifnix ops default to leftassoc right? 07:32
TimToady correct
is looking good 07:35
svnbot6 r12682 | agentz++ | [docs/feather/syn_index.html] 07:38
r12682 | agentz++ | - english fixes.
agentzh particle: i'm adding svn rev info to the outputs of smartlinks.pl. :)
dolmans i will add some test case for `is assoc'. 07:41
audreyt dolmans++ 07:44
07:49 xinming joined
audreyt ... oy. ~/.svk has bad sectors as well. 07:50
...I guess that's a sign.
audreyt goes to the repair shop for real
TimToady good luck... 07:53
svnbot6 r12683 | agentz++ | [util/smartlinks.pl] 07:59
r12683 | agentz++ | - added syn rev number to the HTML pages. per
r12683 | agentz++ | particle++'s suggestion.
r12683 | agentz++ | - changed the date time to ISO format.
r12683 | agentz++ | - removed the redundant text "Sxx.html -" from the
r12683 | agentz++ | header, per markstos++'s comment.
clkao audreyt: what's the name of the iconset you used for svk-overview? 08:01
08:01 nothingmuch joined
audreyt nuvola 08:02
xinming audreyt: hmm, q:x { echo "你儽" } won't do right thing. :-P
agentzh ni hao! :) 08:03
TimToady 你儽, äø–ē•Œ
agentzh hello, world!
xinming TimToady: :-)
TimToady latest smoke is up.
now attempting more than 12000 tests. 08:04
fail 88 more, but that's actually progress
agentzh wonders which input method TimToady was using.
TimToady well, on that particular item, cut-n-paste.
agentzh ah
TimToady but I can at least write äø–ē•Œ with my Japanese input method (scim at the moment) 08:06
ä½  doesn't occur in Japanese, however... 08:07
agentzh hehe 08:08
xinming pugs: UniChar.decodeUTF8: bad data 08:11
pugs t/builtins/quote_basic.t
decodeUTF8 on the wrong part maybe.. 08:12
agentzh has no idea how pugs generates src/Pugs/pugs_version.h
TimToady well, it's getting late. 08:13
å®‰ę­‡ &
xinming agentzh: util/version_h.pl maybe...
agentzh xinming: looking, thanks.
xinming 休ęÆ... ;-) 08:14
TimToady :) 08:15
agentzh TimToady was using ancient chinese, i think. :)
agentzh ponders extracting the code from version_h.pl to a separate module since smartlinks.pl also require that functionality. 08:17
or just invoking version_h.pl and reading its stdout. 08:22
08:23 bsb joined 08:31 ruoso joined, larsen joined
svnbot6 r12684 | agentz++ | [util/smartlinks.pl] 08:32
r12684 | agentz++ | - also added pugs rev number to the HTML outputs
r12684 | agentz++ | [util/version_h.pl]
r12684 | agentz++ | - added a comment to warn the reader don't change the
r12684 | agentz++ | stdout format since smartlinks.pl relies on it.
agentzh oh, forgot to say "particle++" in the svn log. ;-)
08:34 buetow joined
agentzh ah, my script don't have the right to invoke audreyt's svk... 08:40
fixing now...
*doesn't
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:44
the pugs rev number which version_h.pl prints on feather is always 0 since the svk setting is unavailable for my account. :( 08:46
yay, fixed. 09:02
suppertime & 09:04
09:04 agentzh left
svnbot6 r12685 | agentz++ | [util/smartlinks.pl] 09:05
r12685 | agentz++ | - fixed the util/version_h.pl issue on feather (by
r12685 | agentz++ | parsing src/Pugs/pugs_version.h if we fail to get
r12685 | agentz++ | rev number through version_h.pl.
09:10 agentzh joined
agentzh Juerd, particle, markstos: please look at the new header here: feather.perl6.nl/syn/S02.html 09:11
lambdabot Title: S02
agentzh suggestions welcome :)
the syn rev does not meet the number on svn.perl.org/perl6/doc/trunk/design/syn/, 09:16
lambdabot Title: Revision 11408: /doc/trunk/design/syn
agentzh because design/syn/ is just a subdirectory of the repos.
i've checked my p6l mails and confirmed that the synopeses on feather are already up-to-date. :) 09:18
Juerd agentzh: I like it. The ISO date is what I wanted to request, so this is perfect :) 09:20
agentzh yay!
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. :)
dolmans agentzh: i think so, but i remember i compile it successfully last time. hm, not sure. 09:24
agentzh ahh
supper for real & 09:27
09:27 agentzh left 09:40 chris2 joined 09:49 elmex joined 09:50 kanru2 joined 10:42 chris2_ joined 10:45 chris2_ is now known as chris2
svnbot6 r12686 | dolmans++ | add 'is assoc' traits for user-defined infix 10:51
11:02 mako132_ joined 11:28 cmarcelo joined 11:30 kanru2 is now known as kanru 12:02 bcorn joined 12:12 bpphillips joined 12:21 Limbic_Region joined
Limbic_Region If you think Pugs is sluggish and you haven't upgraded to GHC 6.5 - it r0x0rs 12:23
12:24 kanru joined
Limbic_Region doubts his attempt at 733t speak was correct but hopes his point was made 12:24
12:32 kanru joined 12:34 dolmans joined
audreyt Limbic_Region: so the opendir() problem persistswith ghc 6.5? 12:37
you are in luck, as my macbook won't be back for another (at least) 4 days (maybe forever) 12:38
and win32is now my primary workspace :)
audreyt is downloading ghc 6.5 snapshot
but yeah, GHC 6.5 shows 2x-3x speedup 12:39
across all platforms, that we get for free :)
svnbot6 r12687 | audreyt++ | * eval 'UnicodeHere' now works again. Thanks to agentzh++ for noticing. 12:42
12:46 plisk joined
Limbic_Region audreyt - checking now 12:50
audreyt - I will not say that the "opendir()" problem persists but the File::Find won't work without debug = 1 ;-) 12:51
also - did you see my nopaste concerning a half dozen example scripts that bomb due to a Pugs STM issue?
"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 sial.org/pbot/19259 12:52
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:53
there is another one that is bombing because of require 'file.pl'; # but I don't know what the correct syntax should be 12:55
audreyt it's not syntax 12:56
it's an implementation bug. willfix 12:57
Limbic_Region oh yeah - I forget that not all the examples were working at one time
there is another example that has lots of hyperoperator stuff that isn't working too
and several infix bugs that TimToady claims - should work 12:58
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
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
audreyt which example(s) are those?
Limbic_Region brb
oh, I remember one of them was the wizard.pl 13:02
Limbic_Region gets the full path
oh wait - it is still failing but for a different reason now 13:03
;-)
Limbic_Region will investigate further
audreyt k... I'll bbiab too 13:04
wolverian I hear liskov crying ... 13:06
13:06 weinig joined 13:08 neoesque joined
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 .
Limbic_Region 2 things to work on if you get a chance 13:11
examples/hop6/expr-parser.pl is currently failing because require 'file.pl'; no workie 13:12
examples/hq9 .pl is currently failing because my subset HQ9PlusProgram where ... no workie 13:13
err - there is a plus symbol after that 9 that CGI:IRC is eating
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
audreyt Limbic_Region: ok. 13:23
ghc still havn't finished downloading
and I probably need to fade in a bit
Limbic_Region no worries
audreyt but tomorrow I'll be back and hack all day :)
(as long as this win32 laptop does not break *cough*)
Limbic_Region that's good
so there are the 4 things that I currently know are b0rk and have isolated enough to let you hack on 13:24
well, 3 are listed above and of course the opendir() issue
oh, and I fixed 1 of the 25 remaining failing examples so we are down to 24 ;-)
at least on this platform
13:25 vel joined
audreyt well, at least I fixed one... r12689. g'nite :) 13:31
svnbot6 r12689 | audreyt++ | * require EXPR now works again.
13:37 hcchien joined
Limbic_Region sleep well 13:42
svnbot6 r12690 | audreyt++ | * allow third-party/installed be nuked and remade with 'make'
r12691 | audreyt++ | * Prefer 6.5 to 6.4 if both GHCs are probed under C:\. 13:45
r12692 | audreyt++ | * clean before each third-party build so that GHC 6.4->GHC 6.5 upgrade won't trigger HsJudy buildfail 13:53
13:55 cjeris joined 14:16 kanru2 joined, marmic joined 14:18 kanru2 is now known as kanru
svnbot6 r12693 | fglock++ | v6 - more p6 code in the compiler - P6P6Rule.pm, P6Perl6.pm 14:20
r12692 | audreyt++ | * clean before each third-party build so that GHC 6.4->GHC 6.5 upgrade won't trigger HsJudy buildfail
Juerd Can someone please quickly describe the current status of non-haskell perl 6 implementations? 14:23
clkao oooo
14:24 fitzzz joined
clkao fglock: how do you do the bootstrap compiling for those pmc ? 14:24
14:24 fitzzz left
[particle] perl6/parrot is still working towards running the perl 6 Test.pm. currently refactoring parrot compiler tools to ease development. 14:25
clkao [particle]: saw my svk mirror comment yesterday? 14:26
[particle] no
clkao [particle]: you were saying not being able to have two svk sync at the same time. it works for me.
[particle]: was it while syncin,g you can't create a new mirror?
[particle] i'll have to check 14:27
i haven't fully made the svn-svk migration yet
14:29 DaGo joined 14:33 chaoslawful joined 14:34 chaoslawful joined 14:35 chaoslawful left 14:37 kanru2 joined 14:38 ruoso joined 14:39 onsen joined 14:42 spoopithy is now known as spoop
Khisanth strict and warnings will be on by default right? 14:45
audreyt somewarnings, yes. strict refs, subs and vars, yes. 14:49
Limbic_Region: I solved the GHC heap overflow bug!
[particle] audreyt: oot!
14:49 buetow joined
audreyt Limbic_Region: you can now build pugs in one sitting :) 14:49
Khisanth probably still can't 14:50
14:51 Aankhen`` joined
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'.
Khisanth on win32 and linux
audreyt win32 should be fine now with r12694
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 :)
audreyt ah. physical memory exhaustion :) 14:54
Khisanth machine is lot less powerful than the windows one but I enjoy working on it a lot more 14:55
14:56 kanru joined 15:21 explorer joined
Limbic_Region audreyt - you are supposed to be sleeping but I will try it out 15:24
15:24 weinig joined, weinig is now known as weinig_ 15:25 weinig_ is now known as weinig 15:29 soisoisoi joined 15:32 gaal joined 15:38 siossois joined 15:46 justatheory joined 15:53 DaGo joined
svnbot6 r12695 | audreyt++ | * do not let 'is assoc' interfere with 'is export' in parsing 15:55
15:59 prefiks joined
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 sial.org/pbot/19266
audreyt fixed 16:01
r12696
16:02 soisoisoi joined
audreyt try again? 16:02
integral audreyt++ # thanks
TimToady audreyt: so backtracking "is" is really kind of a hack
svnbot6 r12696 | audreyt++ | * only unregister/clean third-party when we have a reason to.
audreyt TimToady: it is, but mostly because "is assoc('foo')" 16:03
does not quite parse with existing ruleTrait*
TimToady hmm.
audreyt actually, I don't quite know how it works, macro-scopically
integral audreyt: yep, all working lovely now
audreyt trait_auxillary gets... an function application?
I can see maybe is :assoc<left> 16:04
which would be a literal it's getting
TimToady or something more like :assoc('foo') ?
audreyt yeah :)
Limbic_Region audreyt - fwiw, make in 1 pass works for me
audreyt Limbic_Region: oooh
TimToady darn, I should learn to read while I'm typing. :)
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
I ask, because this last build seemed to bring my machine to its knees
audreyt it just takes what it needs
since it's the heap cap
not initial heap alloc 16:06
Limbic_Region ok, must be the weekly scan or something that just happened to coincide with my build
audreyt I think the wise people at GHC devteam capped win32 heeap at 256mb for good reason...
as indeed once it's past the usual heap exhaustion point (Pugs.Parser for me)
it slows down significantly.
Limbic_Region your fix to require brought the number of examples that need TLC down to 23
audreyt but onepass with slightly uncomfortable ~5mins 16:07
[particle] damn, Test::Simple 0.64 'make test' fails on win32 :(
audreyt I think beats in explicable error messsage and another nmake
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?
audreyt sure 16:08
as long as you used findbin first
TimToady: another way to look at it: 16:09
assoc is actually trait auxillary
16:09 orafu joined
audreyt "is sometraitaux(foo)" gets translated simply to "sometrantaux foo" 16:09
that is consistent with returns/of handling
and would allow
sub infix:<foo> assoc 'left' parsed /.../ equiv &bar { ... } 16:10
I don't know. "is :assoc<left>" looks a bit nicer.
and also fits with the metaphor of the Sub object has a hash of traits 16:11
keyed by name, so "is" is just hanging stuff to it.
TimToady so basically they're named params 16:12
audreyt to traitaux:<is>, yes.
and traitaux:<is> can munge them however they want
TimToady but logically they're named parameters to the declaration
abstractly, to be more precise
16:13 bernhard joined
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
as we expect it to be put in a side ast table somewhere (as is currently the case) 16:15
and it's the declarator that consults them
TimToady My sleepy-buffer is not yet large enough to hold all of this and see whether unification makes sense.
more coffee may or may not help that. 16:16
since I have a hard heap limit... :)_
audreyt S06 has "is Persistent(...)"
which wouldn't work the same as "is Persistent"
TimToady or "is Persisten[...]" 16:17
audreyt yeah
almost makes one want to say "isa Persistent" to be consistent with .isa
but it wouldn't be englishy enough :)
TimToady was thinking that about 5 min ago...
which is why I didn't say it. :) 16:18
audreyt hits the "punt" button, uploads new smoke, and goes to sleep :)
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...
night...
Limbic_Region sleep well TimToady
audreyt so "is rw" becomes "is :rw(1)"? 16:20
Limbic_Region sleep well audreyt
audreyt that would work :)
Limbic_Region that's what happens when you read the channel from bottom to top instead of top down
TimToady 休ęÆ
16:26 Psyche^ joined 16:37 Psyche^ is now known as Patterner 16:39 DaGo joined 16:40 mdiep_ joined 16:43 ilogger2 joined 16:46 justatheory joined 16:50 _bernhard joined 17:01 onsen joined 17:02 eden_c joined 17:10 zgh joined 17:14 iblechbot joined
svnbot6 r12697 | fglock++ | * v6 - moved the bootstrapped modules to v6/v6.pm 17:24
17:38 ilogger2 joined 17:47 xinming joined 18:03 PolettiX joined 18:17 Eimi joined 18:29 radian joined 18:53 rnorwood joined 19:15 mauke_ joined, avarab joined 19:20 avarab joined 19:30 mauke_ is now known as mauke
svnbot6 r12698 | mjreed++ | Add tests for looping through and modifying scalars via is rw (explicit or 19:43
r12698 | mjreed++ | via default $_ lcv).
19:46 justatheory joined 19:49 avar joined 19:53 lightstep joined, xerox joined
lightstep ?seen lumi 19:53
lambdabot lumi is in #perl6. I don't know when lumi last spoke.
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 19:58 qmole joined 20:06 avarab joined 20:11 rashakil joined 20:22 avar joined 20:24 rashakil_ joined
TimToady audreyt: on the "is eval" hack, we could go a couple of ways. 20:24
we could say that "is" works as a sub only if predeclared as such, and is() is just autodeclared differently inside a class. 20:25
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:26
though that is perhaps too late to serve as a modifier to the class declaration if "is" isn't evaluated at BEGIN time. 20:27
so maybe "is" and "has" are declarators only within a class or role block. 20:29
though the other day someone asked why you can't write "class Foo has $.bar {...}" 20:30
that might fall into the category of legal but discouraged...
depending on which foolish consistency we aim for. 20:31
so, um, don't wake up just to read this, k? :) 20:32
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
(you can probably figure out which foolish consistency I'd like :)
20:41 avarab joined 20:53 avarab_ joined 21:05 S801112 joined, S801112 left
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
21:06 justatheory joined
TimToady s/also/always/ 21:07
TreyHarris TimToady: along those lines, will "if productiveSub() -> $x { $x.doSomething() }" work? 21:08
TimToady supposed to.
TreyHarris ok, so unimpl, not disallowed.
TimToady assuming the sub returns something that can both be evaluated as boolean and bound to $x
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
well, it can be written... but the equivalent can't be written
TimToady which is why it's specced to work with "if", so we can keep our "my" rules simple. 21:11
at least I hope it's specced... 21:12
S04 at least has an example: 21:13
if rand -> $x { say "exists" } { extra() }
TreyHarris didn't see it, but there's an example ...
yes :-)
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
it's symbiotic.
and fractal 21:15
and strangely attractive.
TreyHarris lol
TimToady well, right now a nap is being strangely attractive to me...
so I'll sign off &
TreyHarris just don't have a fractal nap, we want to see you again :-)
21:18 avar joined 21:28 jferrero joined 21:36 buubot joined 21:45 elmex joined 21:47 avarab joined 22:05 markstos_ joined
markstos_ I'm interested in refactoring CGI.pm for Perl6 to be OO. 22:05
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 :)
markstos_ Should I bother to preserve the current procedural interface?
Juerd: Which CGI.pm? p5 or p6 ?
Juerd Perl 5 22:07
Is there a Perl 6 one?
markstos_ ext/CGI
merlyn what's wrong with CGI.pm?
markstos_ merlyn: Which CGI.pm? p5 or p6?
merlyn p5
markstos_ merlyn: Perhaps that it should really be named CGI+HTML.pm 22:08
merlyn: Or that is extra complex by offering both procedural and OO interfaces.
merlyn well, as long as you know all that, what's wrong with it? 22:09
besides the "lincoln loader"
markstos_ merlyn: How about this: It's not wrong, just unfortunately different than ideal.
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? :)
markstos_ My inclination is to convert CGI.pm-p6 into an OO-only module. 22:11
I'll only be focusing on the basics for now, becaus that's all I need.
No HTML generation code. :)
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
Anyway, it's all under source control if someone wants to rollback my work or whatever.
Juerd TimToady++ # handwaved it harder :) 22:20
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:22
merlyn yeah, that's a bit organic yes 22:24
Juerd Right - so for Perl 6, I was hoping nobody'd get the idea to do the same thing again. 22:29
But it's unstoppable. CGI.pm lives in too many people's heads.
I personally think we should have Web::
Web::Request (is HTTP::Request), Web::Response (is HTTP::Response), Web::CGI, Web::ModPerl, Web::Auto (CGI|ModPerl), ... 22:31
But I'm probably wrong too. The lack of discussion bothers me :)
autark to me, the word "web" represents much more than just HTTP. 22:32
glasser Juerd: I like that
Juerd autark: That's the point. 22:33
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. :)
Juerd I'd search for /hash/ 22:36
22:36 discordja joined
markstos_ Juerd: don't ruin my joy. :) 22:37
22:37 mako132_ joined 22:47 dolmans joined
markstos_ Is this supposed to work? (yet?) 23:02
class Foo; has $.foo is rw = 1;
?eval class Foo; has $.foo is rw = 1;
evalbot_12698 Error: unexpected "=" expecting trait, "handles", comment, ";" or end of input
Juerd ?eval class Foo { has $.foo is rw = 1 }
evalbot_12698 Error: unexpected "=" expecting trait, "handles", comment, ";" or "}"
Juerd Apparently not. I thought maybe the {}less syntax wasn't supported yet
markstos_ It seems to be only lightly spec'ed, and I suspect not tested for. 23:03
TreyHarris what's broken there is attribute initialization 23:05
you can't do it yet
markstos_ You can, it's just a little ugly. :)
has $!QS_DELIMITER is rw; $!QS_DELIMITER = ';';
TreyHarris right, but that's taking advantage of side effects which aren't guaranteed to work 23:06
23:06 scw joined
markstos_ What side effects? 23:06
TreyHarris you have a bare executable statement inside your class declaration. so a side effect of compiling the class is setting the value 23:07
markstos_ Even when my class declaration isn't inside a block ? 23:08
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 :-)
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.
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
markstos_ I stuck that stuff in a method BUILD {}, and that seemed to Best.
TreyHarris it's the same issue as
?eval my $foo = INIT { 42 }; say $foo
evalbot_12698 OUTPUT[42 ] Bool::True
TreyHarris you need to hook onto object instantiation time 23:13
but you can't yet.
markstos_ I see.
TreyHarris that will be done for you automatically on the RHS of a "has $.foo = 42" declaration
but it will be sugar for whatever the equivalent of INIT is for instatiation time.
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. :)
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:18
markstos_ TreyHarris: This sounds like CURRENT_TIMESTAMP showing up in a "CREATE TABLE" syntax. 23:20
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, capmostarda left
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:21
s/it was/and it was/ 23:22
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:24
markstos_ TreyHarris: then it sounds like we are in agreement ? 23:25
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.
r12699 | markstos++ | I'll update WTemplate next (which uses the old CGI syntax).
23:30 aufrank joined
svnbot6 r12700 | markstos++ | Update WTemplate/exapmles/template.cgi to use OO CGI 23:33
23:56 frederico joined
markstos_ Why is this variable undeclared? 23:59
?eval class Foo; has %!PARAM is rw; submethod BUILD (%param) { %!PARAM = %param; }; Foo.new( a => 'b' );
evalbot_12700 Error: Undeclared variable: "%param"