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/"/\"/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" |