pugscode.org/ planetsix.perl.org/ | nopaste: sial.org/pbot/perl6 | evalbot: perl6: say 3; (or rakudo:, pugs:, elf:, etc) | irclog: irc.pugscode.org/ Set by mncharity on 5 January 2009. |
|||
00:03
[particle]1 joined,
Helios left
00:06
Helios joined
00:18
mdxi left
00:21
[particle] left
00:27
hercynium joined
00:36
alc joined
00:49
gravity joined
00:51
alanhaggai joined
00:54
andrew_ joined
00:55
|jedai| left,
|jedai| joined
00:57
wknight8111 left
01:13
Limbic_Region left
01:16
meppl left
01:25
cspencer joined,
ft left
01:30
alanhaggai left
01:41
cspencer left
01:42
DemoFreak left
01:43
mncharity2 joined
01:45
cspencer joined
01:46
|jedai| left,
agentzh joined,
|jedai| joined
|
|||
mncharity2 | elf: say $?VERSION; | 01:47 | |
p6eval | elf 24900: OUTPUT«Global symbol "$VERSION" requires explicit package name at (eval 117) line 3. at ./elf_f line 3861» | ||
mncharity2 | elf: $*EXECUTABLE_NAME | 01:50 | |
p6eval | elf 24900: RESULT«undef» | ||
mncharity2 | Looks like evalbot is still elf_f. Puzzling. | ||
Btw, <number> on misc/elfish/elfparse/elfgreen is working... it just requires a recent (bugfixed) version of 5.10.0 (at least on 64 bit). | 01:52 | ||
01:56
mncharity2 left
02:07
andrew_ left
02:09
mj41 left
02:11
cspencer left
02:13
[particle] joined
02:16
Exodist left
02:25
eternaleye joined
02:29
jimmy_ joined
02:30
[particle]1 left
02:31
hercynium left
02:32
a2n joined
02:40
a2n left
02:41
jhorwitz left
02:55
meppl joined
03:08
charsbar_ joined
03:09
|jedai| left,
Caelum left,
charsbar left
03:15
|jedai| joined
03:19
Caelum joined
03:25
meppuru joined
03:27
gravity left
03:28
broquaint left
03:30
meppl left,
meppuru is now known as meppl
03:36
mdxi joined
04:04
|jedai| left
04:05
|jedai| joined
04:08
meppl left
04:10
|jedai| left
04:11
|jedai| joined
04:14
[particle]1 joined
04:15
justatheory left
04:32
hercynium joined,
[particle] left
04:40
cspencer joined
04:44
mtnviewmark joined
04:47
xuser joined
04:49
|jedai| left
04:50
|jedai| joined,
japhb__ left
04:53
japhb joined
|
|||
cspencer | perl6: my $x = "zz99"; say ++$x | 04:55 | |
p6eval | elf 24900: OUTPUT«No viable candidate for call to multimethod prefix__43_43($) at (eval 119) line 4 at ./elf_f line 3861» | ||
..pugs, rakudo 35514: OUTPUT«aaa00» | |||
cspencer | perl6: my $x = "99aa"; say ++$x | 04:57 | |
p6eval | elf 24900: OUTPUT«No viable candidate for call to multimethod prefix__43_43($) at (eval 119) line 4 at ./elf_f line 3861» | ||
..pugs, rakudo 35514: OUTPUT«99ab» | |||
cspencer | perl6: my $x = "99zz"; say ++$x | ||
p6eval | elf 24900: OUTPUT«No viable candidate for call to multimethod prefix__43_43($) at (eval 119) line 4 at ./elf_f line 3861» | ||
..pugs, rakudo 35514: OUTPUT«100aa» | |||
05:00
masak joined
05:02
vanjuggler joined
05:15
cspencer left
05:20
hercynium left
05:23
veritos joined
|
|||
veritos | I have a functionality idea. Currently, we have case insensitive matching. What if we were to add case-fixing matching, so that s:fix/idol/idle/ would convert "idol"->"idle", "Idol"->"Idle", "IDOL"->"IDLE" and so on? | 05:24 | |
masak | veritos: AFAIK, we have that already. | 05:26 | |
veritos: do you want me to find the reference for you, or can you browse S05 yourself? | |||
veritos | masak: I can find it; I skimmed too lightly, it seems. | 05:27 | |
masak | I'm not 100% sure, but it does sound familiar. | ||
veritos | :ii or :samecase, apparently. | 05:29 | |
masak | yes, there you go. | 05:31 | |
Perl 6 provides. :) | |||
05:32
alester_ joined
|
|||
veritos | Are we still talking about having unit conversions as inherent capabilities of numbers? | 05:34 | |
masak | veritos: it's not something I've heard about in a long time. but I don't think the idea was abandoned either. | ||
05:36
|jedai| left,
cspencer joined
05:37
|jedai| joined
05:38
veritos left
|
|||
mtnviewmark | oh - masak - you're here! | 05:42 | |
masak | mtnviewmark: so it seems. | ||
mtnviewmark | heh - so "will" -- while it is in S04, it doesn't appear to be an operator | 05:43 | |
at least not in the sense of it forming part of the expression grammar | |||
masak | that surprises me a lot. | ||
it looks just like an infix operator to me. | |||
mtnviewmark | hmmm.... well, it isn't, as you point out, in S03 - and the only use of it in S04 is very tied to variable declarations | 05:44 | |
masak | so what? | ||
mtnviewmark | any clue what precedence it would be? | ||
masak | 'but' works about the same. | ||
no, no clues abotut precedence. | |||
mtnviewmark | well, 'does' and 'but' seem to have examples applied to values | 05:45 | |
masak | but TimToady will need to be the arbriter about this anyway. so you might as well ask him. | ||
mtnviewmark | (... some big expression...) does (something else) | ||
makes sense | |||
but would "will" or "as" work there? | |||
masak | s/arbriter/arbiter/ | ||
mtnviewmark | okay - what is the incantation to invoke the oracle of TimToady? | 05:46 | |
masak | mtnviewmark: ah, you mean it only works in var decls? yes, that might be. | ||
mtnviewmark | I do worry that there are dozens of language pieces that look somewhat like operators.... but might be "special forms" ... | 05:47 | |
and I'm not sure if they should be on the chart or no | |||
masak | mtnviewmark: I don't know of any special incantation that works, but this seems to be an issue where he'd reply something, sooner or later. | ||
mtnviewmark: in the meantime, we should check what STD.pm says about 'will'. | |||
ok, it classifies 'will' as a "trait auxiliary", with 'is' and 'does'. | 05:48 | ||
mtnviewmark | ah - and 'but' as well? there seems to be a whole, er, declension, of the verb to be in there | 05:49 | |
where can I acquire my own copy of STD.pm? | |||
masak | haven't found 'but' yet. | ||
mtnviewmark: got Pugs? | |||
I mean, the SVN flavour. | 05:50 | ||
mtnviewmark | nope | ||
masak | mtnviewmark: start by acquiring a copy. | ||
STD.pm is in src/perl6/ | |||
mtnviewmark | even though it isn't being actively worked on? | ||
masak | mtnviewmark: well, there's Pugs itself, and there's community efforts on Perl 6... | 05:51 | |
the Pugs repo holds the former as well as the latter. | |||
svn co svn.pugscode.org/pugs | |||
05:52
kisu left
|
|||
mtnviewmark | checkout in progress... | 05:52 | |
dukeleto | mtnviewmark: the Rakudo test suite languages/perl6/t/spec is an svn external to the pugs repo | 05:53 | |
masak | traits are allowed in variable declarations, package definitions, routine definitions, method definitions, regex definitions, macro definitions, and paramter lists. | 05:54 | |
mtnviewmark | okay - well, at the risk of being arbitrary (ha!) I'll claim those aren't full fledged operators | ||
05:54
justatheory joined
|
|||
mtnviewmark | where as 'does' and 'but' are allowed in greater context? | 05:54 | |
masak | 'doas' and 'but', however, are normal infix ops. yes. | 05:55 | |
mtnviewmark | oooo the temptaion to type make is high.... but I bet that takes a LONG time.... :-) | ||
masak | it seems that 'does' works on both sides in this regard. | ||
mtnviewmark: I haven't done that in a long time. :) | 05:56 | ||
used to do it all the time. | |||
mtnviewmark | gasp! SYN.pm claims <== and family are OPs! | 05:59 | |
not terminators! | |||
masak | that's surprising. | 06:01 | |
mtnviewmark | well - thank you for that reference - this is going to take some pouring over.... | ||
and just when I was thinking I was close to done! | |||
masak | hehe. | ||
I think you and STD.pm will like each other. | |||
I should read it too. | 06:02 | ||
mtnviewmark | on other fronts -- I've been finding good places to have the chart printed in A1 .. or even A0 sized paper | ||
06:02
kisu joined
|
|||
cspencer | perl6: my $x = "\xff"; say ++$x | 06:04 | |
p6eval | elf 24900: OUTPUT«No viable candidate for call to multimethod prefix__43_43($) at (eval 119) line 4 at ./elf_f line 3861» | ||
..pugs: OUTPUT«Ā» | |||
..rakudo 35515: OUTPUT«ÿ» | |||
cspencer | perl6: my $x = "Ā"; say --$x | 06:05 | |
p6eval | elf 24900: OUTPUT«No viable candidate for call to multimethod prefix__45_45($) at (eval 119) line 4 at ./elf_f line 3861» | ||
..rakudo 35515: OUTPUT«Ā» | |||
..pugs: OUTPUT«-1» | |||
masak | Pugs++ :) | ||
cspencer | heh | ||
06:06
cspencer left
|
|||
masak wonders idly what babble, quibble, tribble and nibble are in STD.pm | 06:06 | ||
jimmy_ | perl6: my $x='b'; say --$x+$x+++++$x | 06:07 | |
p6eval | pugs: OUTPUT«***  Unexpected "+++++$" expecting "::", term postfix, operator, ":" or "," at /tmp/zwE0dqmCoH line 1, column 23» | ||
..elf 24900: OUTPUT«Can't modify postincrement (++) in postincrement (++) at (eval 119) line 4, near ")++" at ./elf_f line 3861» | |||
..rakudo 35515: OUTPUT«0» | |||
06:07
justatheory left
|
|||
jimmy_ | perl6: my $x=4; say --$x+$x+++++$x | 06:07 | |
p6eval | rakudo 35515: OUTPUT«11» | ||
..pugs: OUTPUT«***  Unexpected "+++++$" expecting "::", term postfix, operator, ":" or "," at /tmp/t2fVUZCaOn line 1, column 21» | |||
..elf 24900: OUTPUT«Can't modify postincrement (++) in postincrement (++) at (eval 119) line 4, near ")++" at ./elf_f line 3861» | |||
masak | std: my $a; $a+++++$a | ||
p6eval | std 24900: OUTPUT«00:05 86m» | 06:08 | |
masak | I'll be danged. | ||
jimmy_ wonders what is std. | |||
masak | jimmy_: it's the official Perl 6 grammar. | ||
mtnviewmark | not to mention sibble and quasiquibble | ||
masak | mtnviewmark: right. :) | 06:09 | |
jimmy_ | std: my $x=4; say --$x+$x+++++$x | ||
p6eval | std 24900: OUTPUT«00:08 126m» | ||
masak | I like TimToady names, but sometimes they can be a bit like quasibibble. :) | ||
s/y/y's/ | |||
jimmy_ still doesn't know what is std. | 06:10 | ||
masak | jimmy_: got Pugs? | ||
jimmy_ | I have no Pugs. | ||
masak | ok, hold on. | ||
svn.pugscode.org/pugs/src/perl6/STD.pm | 06:11 | ||
that's STD. | |||
jimmy_ | that's the perl grammar | 06:13 | |
masak | jimmy_: yes, that's what I said. :) | 06:15 | |
jimmy_ | std: my $x=10; say --$x-----$x+++++$x | 06:17 | |
p6eval | std 24900: OUTPUT«00:08 126m» | ||
06:22
alc left
06:25
[particle] joined
06:42
mtnviewmark left,
vanjuggler left,
jhuni joined
06:43
[particle]1 left
06:44
jhuni left
|
|||
diakopter | masak: you around? | 06:50 | |
masak | diakopter: I'm here. | ||
diakopter | t\spec\S04-closure-traits\next. | 06:51 | |
doesn't svn co on windows b/c windows doesn't like filenames ending in . | |||
masak | seems like a mistake to me. | ||
I'll check the svn logs to see what happened. | |||
06:51
ashizawa joined
|
|||
masak | in fact, it ends in '. ' | 06:52 | |
moritz_ | I'll move it to next.t | ||
pugs_svn | r24901 | moritz++ | [t/spec] move 'next. ' to next.t, that was surely a (my?) accident | 06:53 | |
diakopter | thanks u2 | ||
:D | |||
masak | moritz_ is faster on the trigger. I analyze too much. | 06:54 | |
moritz_ | shoot first! | ||
diakopter ponders "shoot first; ask questions later" vs. "'I have a question';'shoot'" | 06:55 | ||
moritz_ | that's the real problem with not asking questions, but asking to ask - you might get shot in between ;-) | 06:58 | |
masak | ah, so _that's_ why people advise against asking to ask. I've always wondered about that. | 06:59 | |
it's for people's own safety. | |||
let us try this, in the interests of public awareness. | |||
diakopter | shoot | ||
masak | may I ask a question? :) | ||
diakopter glances askance | 07:00 | ||
masak falls down on the ground, apparently lifeless | |||
moritz_ prepares masak's obituary | |||
masak | "he was a curious person, perhaps too curious..." | 07:01 | |
diakopter | wait, so who shot masak? I merely instructed him to shoot [the question to us] | ||
masak | diakopter: I think it must have been a magic bullet. | ||
diakopter | [before masak even asked, it should be noted] | ||
moritz_ | that masak seems to be a rather unstable person | 07:02 | |
diakopter | though actually I was saying 'shoot' to moritz_ | ||
n-e-waz | |||
masak | diakopter: it only goes to show how dangerous that word is. | ||
moritz_: I'm only unstable when being observed. that can make me collapse. | 07:03 | ||
as with junctions and boxed cats, you should treat me with care. | 07:04 | ||
moritz_ | masak: maybe you'll be interested in a different interpretation of quantum theory that works without the collapse during observations | ||
masak | moritz_: I've heard about such things before. and yes, they do intrigue me. | 07:05 | |
moritz_ | sometimes they are called "many-world theories", but they don't speculate about multiverses and stuff, they have a solid scientific base | ||
diakopter | oooooo... testable, even? | 07:06 | |
masak | that was my line! | ||
diakopter | my pre-emption must have collapsed our link. | 07:07 | |
moritz_ | diakopter: it's a different interpretation, not a differnt theory. All observables are the same, but they are explained in a slightly more intuitive way | ||
diakopter | ok | ||
$.ok | 07:08 | ||
$.ok() | |||
moritz_ | in that theory the process of measuring creats an entanglement between the measuring system and the measured object | ||
which allows a knowledge gain, which corresponds to the collopse of the wave function into an eigenstate | |||
diakopter pretends to follow | 07:09 | ||
moritz_ | well, I haven't fully understood it either | ||
but it's the pet topic of one of my mates in the office | |||
so I can't be 100% ignorant ;-) | 07:10 | ||
diakopter | interesting, svn update on that dir did in fact delete the file named "next" (which previously subversion said needed to be added, while also saying "next." was missing | ||
) | |||
moritz_ | how surprising | 07:11 | |
I somehow expected it to blow all up | 07:12 | ||
masak | svn-- | ||
diakopter | I don't suppose anyone reading this (this doesn't mean you, bots) knows how to activate Intel VT on a BIOS-crippled Vaio FW170J | ||
perl6: labelit: | 07:13 | ||
p6eval | elf 24901: OUTPUT«Undefined subroutine &GLOBAL::labelit called at (eval 121) line 3. at ./elf_f line 3861» | ||
..pugs: OUTPUT«***  Unexpected end of input expecting Doc block, block declaration, declaration, construct or expression at /tmp/F9irwOKIXN line 2, column 1» | |||
..rakudo 35518: OUTPUT«Statement not terminated properly at line 1, near ":"current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)» | |||
moritz_ | perl6: labelit: print 1; | ||
p6eval | elf 24901: OUTPUT«Can't locate object method "cb__Label" via package "EmitSimpleP5" at ./elf_f line 1595.» | ||
..pugs: OUTPUT«1» | |||
..rakudo 35518: OUTPUT«Statement not terminated properly at line 1, near ": print 1;"current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)» | |||
diakopter | perl6: Superposition.Class.teleport() | 07:16 | |
p6eval | elf 24901: OUTPUT«Can't locate object method "Class" via package "Superposition" (perhaps you forgot to load "Superposition"?) at (eval 115) line 3. at ./elf_f line 3861» | 07:17 | |
..pugs: OUTPUT«*** No such subroutine: "&Superposition" at /tmp/dJ8LV1k4Ut line 1, column 1 - line 2, column 1» | |||
..rakudo 35518: OUTPUT«Could not find non-existent sub Superpositioncurrent instr.: '_block14' pc 53 (EVAL_16:38)» | |||
diakopter | elf thought Class was an object method? | ||
(no parens?) | |||
moritz_ | that's the correct behaviour | 07:18 | |
well, it woiuld, if Superposition where a known type name | |||
since it isn't, it's correct to parse Superposition as a sub call | |||
diakopter | I wasn't referring to rakudo | 07:19 | |
was referring to elf | |||
07:19
spx2 joined
|
|||
moritz_ | yes, I know | 07:19 | |
07:19
spx2_ left
|
|||
diakopter | which output is correct? | 07:20 | |
moritz_ | rakudo's and pugs' | ||
they are basically the same, the format of the error message just differs | 07:21 | ||
masak | actually, I don't much like Rakudo's error. 'could not find non-existent sub'. it sort of says the same thing almost twice. 'no such' is nicer. | ||
moritz_ | right | 07:22 | |
masak | can I change it? please? :) | ||
diakopter | I can't find non-existent things all the times | ||
masak | diakopter: oh, shut up. :) | ||
diakopter | in fact, I invariably fail to find non-existent things | ||
masak | diakopter: that's not the non-existent point. | ||
moritz_ | diakopter: that's because you neglect autovivification ;-) | 07:23 | |
diakopter | rakudo's message begs the question, "why were you looking for something you knew to be non-existent" or "don't you mean 'found that sub to be non-existent'?" | 07:24 | |
07:25
araujo left
|
|||
diakopter | how about "missing sub" or "lost sub" | 07:25 | |
or "sub not found" | 07:26 | ||
moritz_ | or "FAIL: attempted to call non-existant sub 'foo'" | 07:28 | |
diakopter | "voicemail: no answer from call to non-existent sub" | 07:29 | |
masak | rakudo: my $x = :a<5>; say $x.map({.key => .value + 1}).perl | ||
p6eval | rakudo 35518: OUTPUT«Method 'key' not found for invocant of class 'Failure'current instr.: '_block14' pc 101 (EVAL_17:49)» | ||
masak | moritz_: would you expect map to work on a pair? | ||
moritz_ | masak: since we support it on Any, yes | 07:30 | |
masak | so the above is surprising. | ||
moritz_ | rakudo: say 1.map({ say 2*$_ }); | ||
p6eval | rakudo 35518: OUTPUT«21» | ||
moritz_ | not just that... | ||
but also a... | |||
masak | rakudo: my $x = :a<5>; say $x.map({$^k.key => $^k.value + 1}).perl | ||
p6eval | rakudo 35518: OUTPUT«["a" => 6]» | ||
moritz_ | bug | ||
masak submits rakudobug | |||
07:31
namenlos joined
|
|||
moritz_ | so $_ isn't set in the closure in the first example? | 07:31 | |
diakopter | rakudobugmenot | ||
masak | moritz_: seems not. | 07:32 | |
moritz_ | rakudo: say ({ .key => .value + 1}).arity | 07:33 | |
p6eval | rakudo 35518: OUTPUT«Method 'key' not found for invocant of class 'Failure'current instr.: '_block14' pc 66 (EVAL_16:42)» | ||
diakopter | maybe it's not parsing it as a closure | ||
moritz_ | rakudo: say ({ .key => .value + 1}).WHAT | ||
p6eval | rakudo 35518: OUTPUT«Method 'key' not found for invocant of class 'Failure'current instr.: '_block14' pc 66 (EVAL_16:42)» | ||
moritz_ | right | ||
I don't know if that's a bug, or by design | 07:34 | ||
diakopter | rakudo: ({ .key => .value + 1}).WHAT | ||
p6eval | rakudo 35518: OUTPUT«Method 'key' not found for invocant of class 'Failure'current instr.: '_block14' pc 66 (EVAL_15:42)» | ||
diakopter | rakudo: ({ .key => .value + 1}) | ||
p6eval | rakudo 35518: OUTPUT«Method 'key' not found for invocant of class 'Failure'current instr.: '_block14' pc 66 (EVAL_15:42)» | ||
moritz_ | according to the parsing rules I remember (beware...), it should be a hash constructor | ||
oh wait, no | |||
.key isn't and identifier | |||
masak | it's a method of Pair | 07:35 | |
07:35
maerzhase joined
|
|||
moritz_ | rakudo: given :a<5> { say {.key => .value + 1}.WHAT; | 07:36 | |
p6eval | rakudo 35518: OUTPUT«Unable to parse block; couldn't find final '}' at line 1, near ""current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)» | ||
07:36
alester_ left
|
|||
moritz_ | rakudo: given :a<5> { say {.key => .value + 1}.WHAT;}; | 07:36 | |
p6eval | rakudo 35518: OUTPUT«Hash» | ||
diakopter peers to peers | 07:37 | ||
masak | rakudo: my $p = 'mary' => 8; say { .key => .value * 2 }.($p).WHAT | 07:38 | |
p6eval | rakudo 35518: OUTPUT«Method 'key' not found for invocant of class 'Failure'current instr.: '_block14' pc 104 (EVAL_19:50)» | ||
07:39
|jedai| left
07:40
|jedai| joined
|
|||
moritz_ | rakudo: say "fo".chars | 07:44 | |
p6eval | rakudo 35518: OUTPUT«2» | ||
diakopter | rakudo: say "\"fo\"".chars() | 07:48 | |
p6eval | rakudo 35518: OUTPUT«4» | ||
diakopter | rakudo: say "\"fo\"".chars | 07:49 | |
p6eval | rakudo 35518: OUTPUT«4» | ||
07:49
vixey joined
|
|||
diakopter | rakudo: say "\"fo\"".chars () | 07:49 | |
p6eval | rakudo 35518: OUTPUT«Statement not terminated properly at line 1, near "()"current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)» | ||
diakopter | rakudo: say "\"fo\"".chars\ () | 07:50 | |
p6eval | rakudo 35518: OUTPUT«4» | ||
diakopter | rakudo: say "\"fo\"".chars\ .() | ||
p6eval | rakudo 35518: OUTPUT«4» | ||
masak | long dots work? | ||
masak didn't know that | |||
diakopter | rakudo: say "\"fo\"".chars.() | 07:51 | |
p6eval | rakudo 35518: OUTPUT«4» | ||
diakopter | ! | ||
07:52
meppl joined
|
|||
diakopter | rakudo: 4.() | 07:52 | |
p6eval | rakudo 35518: OUTPUT«invoke() not implemented in class 'Integer'current instr.: '_block14' pc 62 (EVAL_17:40)» | ||
diakopter | rakudo: "fo".chars().() | ||
p6eval | rakudo 35518: OUTPUT«invoke() not implemented in class 'Integer'current instr.: '_block14' pc 71 (EVAL_17:41)» | ||
masak | don't provoke the integer! | 07:53 | |
diakopter | rakudo: say "\"fo\"".chars..() | ||
p6eval | rakudo 35518: OUTPUT«» | ||
diakopter | rakudo: say "\"fo\"".chars...() | ||
p6eval | rakudo 35518: OUTPUT«» | ||
diakopter | rakudo: say "\"fo\"".chars. . . . . .() | ||
p6eval | rakudo 35518: OUTPUT«Statement not terminated properly at line 1, near ". . . . . "current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)» | ||
diakopter | rakudo: say "\"fo\"".chars. .() | 07:54 | |
p6eval | rakudo 35518: OUTPUT«Statement not terminated properly at line 1, near ". .()"current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)» | ||
diakopter | rakudo: say "\"fo\"".chars .() | ||
p6eval | rakudo 35518: OUTPUT«Statement not terminated properly at line 1, near ".()"current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)» | ||
pugs_svn | r24902 | masak++ | [u4x] fleshed out README a bit | 07:59 | |
masak | yesterday, I had the idea that we could name the documentation tool 'psi', for 'Perl Six Whatever-the-"i"-means-in-"ri"' | 08:00 | |
('information', it seems) | |||
diakopter | masak: wouldn't that be 'PSW'? | ||
masak | diakopter: how do I unescape things in explanations of abbreviations? | 08:01 | |
diakopter | lol | ||
diakopter looks in the synopses | |||
masak | :) | ||
we could even alias it to ψ | 08:02 | ||
or symlink, I dunno. | |||
diakopter | 'psi' - the ultimate dwim - because it reads your mind directly. | ||
masak | diakopter: ooh, didn't think of that. | ||
diakopter: yes, mind reading is one of the features. | 08:03 | ||
diakopter | ... as opposed to reading your mind indirectly. | ||
masak | see the latest addition to the README. | ||
diakopter | or | ||
psi could also be the name of PerlSix[-In-PerlSix ... [] ] | 08:05 | ||
though there's probably already a programming language [implementation] named that | |||
hmm, no | |||
08:05
ashizawa left,
ashizawa joined
|
|||
diakopter | oh wait, that'd be psip | 08:06 | |
pronounced 'ps-ype | |||
or, to follow viv, vivi | 08:07 | ||
TimToady: see vivi and cetera | |||
08:07
_dh left
|
|||
diakopter | vivivi | 08:08 | |
08:08
iblechbot joined
|
|||
pugs_svn | r24903 | masak++ | [u4x] it's official: the tool will be named 'psi' | 08:09 | |
08:12
ChanServ sets mode: +o diakopter
|
|||
pugs_svn | r24904 | masak++ | [u4x] added inofficial goals to the README | 08:12 | |
08:13
diakopter was kicked by diakopter (no more drunk IRCing tonight)),
diakopter joined
08:22
maerzhase left
08:23
broquaint joined
08:25
maerzhase joined
08:30
meppl left
08:32
_jedai_ joined
08:33
|jedai| left
08:35
pdcawley left
08:38
alc joined
08:41
DemoFreak joined
08:45
[particle]1 joined
08:49
[particle] left
09:01
pmurias joined
09:07
mj41 joined
09:11
alc left
|
|||
masak | rakudo: my $x = "foo"; class A { my $.y = $x } # bug? | 09:12 | |
p6eval | rakudo 35518: OUTPUT«Lexical '$x' not foundcurrent instr.: 'parrot;A;_block22' pc 113 (EVAL_19:58)» | ||
09:14
ludan joined
|
|||
ludan | hi | 09:14 | |
masak | ludan: greetings. | 09:15 | |
09:21
_jedai_ left
09:22
|jedai| joined,
maerzhase left
|
|||
masak | rakudo: our $x = "foo"; class A { my $.y = $x } | 09:24 | |
p6eval | rakudo 35519: OUTPUT«Null PMC access in isa()current instr.: '!CALLMETHOD' pc 16769 (src/builtins/guts.pir:74)» | ||
masak | :( | ||
don't we have tests for this | |||
masak submits rakudobug | |||
moritz_ | what is 'my $.x' supposed to do? | ||
masak | moritz_: that's a class attribute, sir. | ||
moritz_ | masak: and that has a . twigil? | 09:25 | |
09:25
pmurias left
|
|||
masak | moritz_: yes, it can. | 09:25 | |
then it gets a read accessor. | |||
moritz_ | rakudo: our $x = "foo"; class A { has $.y = $x }; say A.new.y | ||
p6eval | rakudo 35519: OUTPUT«Use of uninitialized value» | ||
moritz_ | rakudo: our $x = "foo"; class A { has $.y = 3 }; say A.new.y | 09:26 | |
p6eval | rakudo 35519: OUTPUT«3» | ||
moritz_ | rakudo: my $x = "foo"; class A { has $.y = ++$x }; say A.new.y | ||
p6eval | rakudo 35519: OUTPUT«Lexical '$x' not foundcurrent instr.: 'parrot;A;_block22' pc 140 (EVAL_20:59)» | ||
09:26
elmex joined
09:27
alc joined
09:30
elmex left
09:40
donaldh joined
09:58
maerzhase joined
09:59
mberends joined
10:07
maerzhase1 joined,
maerzhase left
10:08
jimmy_ left
10:14
maerzhase joined,
maerzhase1 left
10:15
DemoFreak left
10:36
|jedai| left,
|jedai| joined
10:49
meppl joined
10:58
aindilis left
10:59
alc left
11:00
|jedai| left,
ruoso joined,
elmex joined,
|jedai| joined
|
|||
ruoso | Hello! | 11:01 | |
11:01
barney joined
|
|||
Matt-W | ruoso: hello! | 11:04 | |
ruoso in a very hard month... barely working in Perl 6 development :( | |||
11:05
[particle] joined,
ejs joined
11:11
ft joined
11:13
|jedai| left,
|jedai| joined
|
|||
Matt-W | ruoso: these things happen sometimes unfortunately | 11:16 | |
11:18
krunen left
11:20
tux300181 joined,
krunen joined
11:22
[particle]1 left
11:39
maerzhase left,
maerzhase joined
11:40
araujo joined
11:45
maerzhase1 joined
11:46
maerzhase left
11:49
braceta joined
11:50
|jedai| left
11:51
|jedai| joined
12:11
vixey left
12:13
ashizawa left
12:41
|jedai| left
12:42
|jedai| joined,
orafu left
|
|||
masak | on p6u, Richard Hainsworth proposes '.face' as the method for getting the string value of an enum value. while I don't understand the rationale for the method name, I definitely think there should be a method. | 12:44 | |
12:44
ruoso left
12:45
orafu joined
|
|||
pugs_svn | r24905 | masak++ | [u4x] added keywords to the README | 12:46 | |
mberends | hi masak, how's Druid online coming along? I've done my part of the deal :) | 12:52 | |
masak | mberends: OH HAI | ||
mberends: well, I'm sort of ready to get going, but two components are needed still. | 12:53 | ||
1: SVG. I'm sort of writing that. | |||
won't be that hard to do, I think. | |||
2: a proof-of-concept page running on feather. | 12:54 | ||
mberends: do you think you could do that second part? it would make it much easier to know how to hook everything up. | |||
mberends | I think SVG may be like Postscript in an XML envelope | ||
masak | I understand each individual word in that sentence. but... what? | 12:55 | |
SVG is SVG. | |||
mberends | I'll add a proof of concept page to autoexec.demon.nl this evening | 12:56 | |
12:56
pmurias joined
|
|||
mberends | autoexec.demon.nl:8888 | 12:56 | |
masak | mberends: excellent. I'll try to speed things up on my end. | ||
jnthn | .oO( What is Druid anyway? ) |
||
masak | jnthn: you haven't played it yet? for shame! | 12:57 | |
github.com/masak/druid/ | |||
jnthn | masak: I'm too busy doing boring stuff, like implementing parametric roles and type registries. ;-) | ||
masak | jnthn: I understand. :) | ||
jnthn | ...and don't have a git client ;-) | ||
masak | you need to relax with this here board game. | ||
jnthn: don't need one. | |||
just click "download". | |||
jnthn | masak: FAIL! | 12:58 | |
github.com/tarballs/masak-druid-09e...285e3d.zip | |||
That page doesn't exist! | |||
masak | :( | ||
it does for me. | 12:59 | ||
should I email you the .zip file? | |||
jnthn | Or the perl6 file ;) | 13:01 | |
masak: Oh, tried again and it worked this time. | |||
masak | oh, good. | ||
13:04
|jedai| left,
pmurias left
13:05
|jedai| joined
13:25
[particle]1 joined
13:29
[particle] left
13:33
DemoFreak joined
|
|||
Matt-W | jnthn: parametric roles are not boring for the people who're going to use them! | 13:49 | |
moritz_ | and who's going to use them? (except STD.pm) | ||
jnthn | Everyone who uses typed arrays? ;-) | 13:50 | |
moritz_ | erm. | 13:51 | |
masak | :) | 13:52 | |
13:52
ejs1 joined
|
|||
masak | jnthn: did the game work? /me is curious. | 13:52 | |
jnthn | masak: I'm just doing some @other work at the moment...will get onto Rakudo stuff in 10 mins or so, then I'll try the game. :-) | ||
masak | :) | ||
moritz_ should try to get a grant for trying out all those Perl 6 games :-) | 13:53 | ||
14:00
alexn_org joined
|
|||
jnthn | masak: I'm hoping my type registry addition didn't cause any pain for Druid/November. | 14:01 | |
masak | jnthn: when did it slide in? | 14:02 | |
moritz_ | yesterday | ||
14:02
athenot left
|
|||
masak | jnthn: in that case, no. | 14:03 | |
14:03
athenot joined
|
|||
masak | at least I think it didn't. | 14:03 | |
masak recompiles Rakudo | |||
I just got all the tests in November's master passing after the rvar branch. | |||
14:04
ejs left
|
|||
jnthn | masak++ | 14:07 | |
masak | :) | 14:08 | |
Matt-W | November's been really helpful to me - looking at its code to figure out how to do stuff | 14:10 | |
moritz_ | it's been also really helpful to all developers, it found dozens or even hundrets of bugs | 14:11 | |
literal | random thought: can macros be used to remove debugging code during compilation so that it won't affect runtime performance? | ||
moritz_ | literal: yes | ||
literal | ok | ||
masak | Matt-W: let's make that step largely unnecessary by making u4x a huge success. | 14:12 | |
moritz_: maybe not hundreds, but surely over a hundred by now. | |||
moritz_ | masak: t/dispatcher/0{1,2} still fail for me | ||
masak | moritz_: nopaste perl6 run of it? | ||
Matt-W | masak: yes that would be a good idea :) | ||
jnthn | (1) Computer versus human | 14:13 | |
(2) Human versus computer | |||
Hmm... :-) | |||
masak | jnthn: what? :) | ||
jnthn | Vertical: A | 14:14 | |
Nasty syntax | |||
Hmm | |||
masak | a2 | ||
jnthn should read the read-me | |||
masak | jnthn: it's under-documented, I know. | ||
moritz_ | masak: funny thing, it passes when I run it directly through perl6 | ||
masak | the move syntax is like a2 or like b3-b5. | ||
the rest is discoverable. | |||
moritz_: :/ | |||
moritz_: ok, what warnings/errors do you get in prove? | |||
jnthn | masak: It appears to work! :-) | 14:15 | |
I don't know how to win though. :-) | |||
moritz_ | masak: nopaste.snit.ch/15304 | ||
jnthn would hvve to read the docs for that | |||
masak | jnthn: if you're vertical, you're supposed to build a chain of pieces from top to bottom. | ||
moritz_: that's from an older version of November. | 14:16 | ||
14:16
Lorn joined
|
|||
jnthn | masak: Aha! | 14:16 | |
masak | moritz_: MD5 (Dispatcher/Rule.pm) = 69e8914f10cdc32f1d4d1dd095b629c5 | ||
jnthn: and it's 3D. | |||
moritz_ | masak: same md5 here | 14:17 | |
masak | moritz_: ok, strange. | ||
moritz_: old Rakudo? :) | |||
moritz_ | masak: Rakudo svn up'ped and built today... | 14:18 | |
masak: november git-pulled and | |||
masak | moritz_: perhaps even different versions when you run prove and perl6... | ||
moritz_ | make clean'ed | ||
and make'd | |||
jnthn | moritz_: Does your Rakudo pass all its tests? | ||
masak | moritz_: oh. I don't make. | ||
masak tries that. | |||
moritz_ | jnthn: I'll try | 14:19 | |
jnthn | Also, one thing to beware of: I did change the root.in yesterday | ||
So you need to perhaps make Makefile | |||
moritz_ | I did a realclean after that | ||
jnthn | Also I found some quirkiness with re-generating gen_builtins.pir | ||
Ah, OK. | |||
That should cover it. | |||
masak | moritz_: I can't make November. are you saying you can? | 14:20 | |
moritz_ | jnthn: t/spec/S02-magicals/dollar_bang dies with Null PMC access in isa() | ||
14:21
|jedai| left
|
|||
moritz_ | masak: so it seems :) | 14:21 | |
masak | oddness. | ||
jnthn | moritz_: Odd. I didn't see that yestrday. Doing spectest run now. | ||
masak | my make dies on compiling November.pm, though I'm not sure the error is in that module. | ||
14:21
|jedai| joined
|
|||
moritz_ stupid | 14:22 | ||
/home/moritz/tmp/rvar2/parrot /home/moritz/tmp/rvar2/languages/perl6/perl6.pbc --target=pir --output=Text/Markup/Wiki/Minimal.pir Text/Markup/Wiki/Minimal.pm | |||
wrong parrot | |||
14:23
pjcj left
|
|||
moritz_ | jnthn: oh, and that test fails because I'm trying Ovid++'s Test.pm | 14:23 | |
jnthn | moritz_: Ah, OK | 14:24 | |
Phew! | |||
moritz_ | now I caused very much unneeded confusion due to two stupid mistakes in a row | ||
time to do some physics | |||
masak | moritz_: ah. so November passes as well? | 14:25 | |
moritz_ | masak: November doesn't build with current rakudo | 14:26 | |
masak | moritz_: that's right. | ||
do don't build it. | |||
just run the tests. | |||
masak will try and figure out why November doesn't build | |||
moritz_: do you also get 'Unable to parse role definition'? don't abort the physics for my sake, just asking for later. | 14:29 | ||
jnthn | masak: Is that something new that you've just got? | 14:31 | |
moritz_ | masak: aye | ||
jnthn has been doing bits with roles | |||
moritz_ | t/01-cgi...........................1/23 too few arguments passed (0) - 2 params expected | ||
masak | jnthn: I have not been able to run make for a few days now. I don't remember when it started. I think the lists are in some november-wiki mailing list discussion. | 14:32 | |
jnthn | masak: OK. | 14:33 | |
masak | moritz_: oh, I'm getting that too now. | ||
must be the latest Rakudo. | |||
investigating. | |||
moritz_ | and many "non-dwimmy hyperops..." | ||
masak | moritz_: I don't get those (yet). | 14:34 | |
I do, however, get many 'too few arguments passed' | |||
14:34
ruoso joined
|
|||
masak | something must have changed under our feet :) | 14:34 | |
moritz_ | these seem to be related to grammar invokation | 14:35 | |
masak | aye. | ||
moritz_ | do you use <Grammar::TOP> to invoke it? | ||
14:36
mberends left
|
|||
moritz_ | t/markup/minimal/06-links..........Non-dwimmy hyperoperator cannot be used on arrays of different sizes or dimensions. | 14:36 | |
jnthn | masak: If you were using things like $foo ~~ Grammar::rule it *will* be broken now. | ||
masak: And the wrong number arguments errors would match up with that. | 14:37 | ||
14:40
alexn_org left
|
|||
masak | oh, joy. | 14:40 | |
what's the correct way to do it? | |||
jnthn | masak: pmichaud had been saying it's wrong for a while. :-) | 14:41 | |
masak | yes, I know, I know. | ||
jnthn | masak: $foo ~~ /<Grammar::rule>/ should work. | ||
moritz_ | 15:35 <@moritz_> do you use <Grammar::TOP> to invoke it? | ||
masak | moritz_: apparently not :/ | 14:42 | |
jnthn | moritz_: I think I may break parametric roles up into a couple of test files. | ||
moritz_ | jnthn: feel free | ||
14:43
alexn_org joined
|
|||
jnthn | moritz_: I want some more basic ones as well as your nice tricky ones. :-) | 14:43 | |
moritz_: Plus as mixins vs on a class etc. | |||
moritz_ | jnthn: I can very much understand that | ||
14:46
|jedai| left
14:47
|jedai| joined,
ft left
15:02
exodist_ joined
15:03
exodist_ left,
Exodist joined
15:05
Casan joined
15:06
vixey joined
15:19
Lorn left
15:23
hercynium joined,
eric256 joined
15:31
ft joined
15:33
maerzhase joined,
maerzhase1 left
15:36
|jedai| left
15:37
|jedai| joined
15:39
mberends joined
15:41
[particle] joined
|
|||
masak | if I use the new /<Foo::Bar::TOP>/ approach instead of the defunct Foo::Bar::TOP one, will $/ be affected in any way? | 15:43 | |
moritz_ | masak: yes, there will be a $/<Foo::Bar::TOP>, which contains the same thing as the old $/ | ||
pmichaud | yes, because the match would be $/<Foo::Bar::TOP> | ||
masak | ok. | 15:44 | |
pmichaud | I *think* the new official way to match a grammar is .parse, yes? | ||
at least I saw something like that scroll across my screens a few days ago | |||
masak | that explains all the sudden test failures after I fixed the first problems. | ||
pmichaud: sounds familiar, yes. | |||
moritz_ | pmichaud: yes, .parse on the grammar | ||
and .parsefile | |||
pmichaud | it's not in S05 yet -- is there an IRC discussion I could look at? | 15:45 | |
eric256 | my $parsed = Foo::Bar.parsefile($filename) ? | ||
masak | maybe I should hold out for that change -- putting long grammar names everywhere in working code makes me cringe a bit. | ||
moritz_ | eric256: yes | 15:46 | |
masak | where $parsed would be a Match object, I guess. | ||
Matt-W | or whatever Foo::Bar::TOP returns with make... | 15:47 | |
If I understand what make does correctly | |||
masak | right. | ||
moritz_ | Matt-W: it always returns a Match object | 15:48 | |
Matt-W: but its scalar value can be an arbitrary object | |||
Matt-W | so make sets what that object will be | ||
moritz_ | aye | ||
Matt-W | such as the AST you've been building in the grammar rules | ||
handy | |||
ruoso | moritz_, I think "make" allows you to return something different from a match object | 15:49 | |
not only its scalar value | |||
masak | :) | ||
ruoso | but $/ will still be set, tho | ||
moritz_ | ruoso: I asked Larry why there's $/.text when ~$/ would do as well | 15:50 | |
ruoso: the answer was "because the scalar value of $/ can be affected by make" | |||
(not word by word, though) | |||
eric256 | off topic: anyone have an idea what an average hourly rate for salesforce.com customization might be? | ||
ruoso | right... right,.. | ||
moritz_, I think that means that when you do "make" it will change the scalar value of $/ | |||
but not only that | 15:51 | ||
it also returns that value from the token/rule instead of the match object | |||
pugs: token a { . { make 123 } }; my $a = 'a' ~~ /<a>/; say $a.WHAT; | 15:52 | ||
p6eval | pugs: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) { unshift @INC, '/home/evalenv/pugs/perl5/Pugs-Compiler-Rule/lib'; unshift @INC, '/home/evalenv/pugs/third-party/Parse-Yapp/lib'; eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;}'Pugs::Runti... | ||
ruoso | meh | ||
rakudo: token a { . { make 123 } }; my $a = 'a' ~~ /<a>/; say $a.WHAT; | |||
p6eval | rakudo 35528: OUTPUT«Statement not terminated properly at line 1, near "make 123 }"current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)» | ||
moritz_ | pugs predates make | ||
ruoso | kp6: token a { . { make 123 } }; my $a = 'a' ~~ /<a>/; say $a.WHAT; | ||
p6eval | kp6 24905: OUTPUT«syntax error at position 40, line 1 column 40:token a { . { make 123 } }; my $a = 'a' ~~ /<a>/; say $a.WHAT ^ HERE» | ||
ruoso | hmpf; | ||
pugs_svn | r24906 | masak++ | [u4x] want to handle special vars and pseudo-packages as well | 15:53 | |
pmichaud | hmm, that's interesting. I might've guessed that my $a = Grammar.parse() would result in $a getting the Match object itself. | ||
and then one does $( $a ) to get at the result object. | |||
moritz_ | rakudo: token a { . {{ .return(23) }} }; my $a = 'a' ~~ /<a>/; say $a.PARROT | ||
p6eval | rakudo 35528: OUTPUT«Perl6Scalar->Match» | ||
moritz_ | pmichaud: that's my understanding as well | ||
masak | mine too. | ||
ruoso | and what if you "make @@a" | ||
or... make grep { ... }, ...; | 15:54 | ||
you'll be enforcing one context | |||
where it could be assigned to any context | |||
Matt-W | rakudo doesn't support make yet, does it | ||
pmichaud | masak: I think I can put .parse in fairly quickly if we can find the original discussion. | ||
masak | \o/ | ||
pmichaud: I'll go look for it. | |||
pmichaud | Note from #parrot, though -- as things currently stand the Parrot repo will be down starting 1900 UTC | 15:55 | |
Matt-W | Oh dear. Any indication of how long for? | ||
masak | pmichaud: yes, I know. | ||
15:56
jgoulah left
|
|||
ruoso | token a { . { make grep { $_ % 2 }, 1..10 } }; my @@a = 'a' ~~ /<a>/ | 15:56 | |
moritz_ | irclog.perlgeek.de/perl6/2008-12-31#i_797318 | ||
pmichaud: that was for you | |||
pmichaud | Matt-W: as much as 5 hours | ||
moritz++ | |||
masak | moritz_++ | ||
Matt-W | pmichaud: Thanks. | 15:57 | |
Matt-W makes a note to svn up rakudo as soon as he gets home | |||
15:57
[particle]1 left
|
|||
ruoso | Matt-W, that's when you want to be using git-svn | 15:58 | |
(or svk) | |||
Matt-W | Please don't make me overload my brain with more than its limited capacity, it's still trying to learn Perl 6... | ||
Also, if I start using git for anything at home, the svn setup at work is going to get even more intolerable | 15:59 | ||
masak | I just learned to use git. I still think git-svn is a bit tough to use. | ||
ruoso | still easier than svk... | 16:00 | |
Matt-W | home & | ||
mberends | in r35522 (and for a few days already) there seems to be a difference between 'parrot perl6.pbc' and 'perl6' when applied to '--target=pir --output=Test.pir Test.pm' in languages/perl6. The former works (as used in make spectest), the latter segfaults here. is that a known problem? | 16:05 | |
pugs_svn | r24907 | jnthn++ | [t/spec] The beginnings of some simple tests for parameterized roles - more to come. | 16:06 | |
masak | mberends: no, but thanks for the tip. I've have problems building November, and that might be it. | ||
moritz_ | mberends: perl6 is more strict with memory checking than parrot perl6.pbc | 16:07 | |
mberends: but if you have a short test case, please submit it as a rakudbug | |||
mberends | my suspicion is directed as pbc_to_exe | 16:08 | |
the compile if Test.pm is a test case. gotta commute home soon, rakudobug later | 16:09 | ||
s/if/of/ | |||
rakudo_svn | r35530 | jonathan++ | [rakudo] class C does R[param1, ...] { ... } now works insofar as it chooses the correct role. | 16:10 | |
16:10
|jedai| left,
|jedai| joined,
ejs1 left
16:11
mberends left
16:12
ejs1 joined
16:14
stephens joined
16:15
maerzhase left
|
|||
jnthn | std: role Foo[] { } | 16:32 | |
p6eval | std 24907: OUTPUT«00:05 83m» | ||
jnthn | std: role Foo[] { }; class X does Foo[] { } | ||
p6eval | std 24907: OUTPUT«00:05 83m» | ||
16:38
ludan left
|
|||
rakudo_svn | r35531 | jonathan++ | [rakudo] Parse does Foo[] (STD.pm does). | 16:40 | |
Matt-W | masak: reading the updated u4x readme, psi is going to benefit greatly from having STD.pm I think... | 16:42 | |
masak | Matt-W: perhaps. | ||
I was hoping that wouldn't be necessary, but maybe it is. | |||
maybe we can get away with using a small part of it. | 16:43 | ||
moritz_ | masak: did you follow my earlier "perlhints" attempt? | ||
masak | moritz_: oh, it was you! yes, I remember it. | ||
moritz_: I have unconsciously borrowed some ideas from it, methinks. | 16:44 | ||
moritz_ | I noticed some similarities | ||
masak | yes, that's because I liked the old idea. | ||
moritz_ | the idea was to have a chunk of documentation with much meta information | ||
jnthn | std: multi foo(::T) { } | ||
p6eval | std 24907: OUTPUT«00:05 83m» | ||
jnthn | std: multi foo(::T $x) { } | ||
p6eval | std 24907: OUTPUT«00:05 83m» | 16:45 | |
masak | moritz_: I've barely started to figure out how to structure the documentation. | ||
moritz_ | enough so that a Perl 6 parser could emit HTML where you click on an element, and it gives you an explanation for this thing | ||
masak | moritz_: so far, I'm targetting the prompt and some sort of static web site. | 16:46 | |
eric256 | irclog.perlgeek.de/perl6/2009-01-13#i_829019 moritz_ and i where talking about being able to use the documentation for some thing like "use diagnostics" as wlel | ||
masak | (my role models being ri and perldoc, respectively) | ||
eric256: sounds orthogonal to u4x, but a cool idea. | 16:47 | ||
moritz_ | well, if we organize it as some kind of database, it's available to every tool | ||
PerlJam | (available to all)++ | 16:48 | |
It occurs to me that whatever form that database takes it should probably use the same "database engine" that perl6 will use to manage modules/authors/revisions. | |||
moritz_ | for subs and method, they could just be available by name | 16:49 | |
masak | moritz_: my only thought so far is that I'll have one directory with all the classes, one with all the operators, etc. | ||
moritz_ | masak: IMHO there's no reason to separate subs and operators | ||
masak: because ops are just subs with weird name and syntax | |||
masak | moritz_: agreed. | ||
16:50
|jedai| left,
|jedai| joined
|
|||
masak | as long as things can work as advertised, that's good. | 16:50 | |
moritz_ | what I worry more about, how do we index information to keywords? | ||
keyword:class perhaps? | |||
masak | moritz_: why not just 'class'? | ||
'psi class' | |||
moritz_ | masak: because it doesn't work for things like 'is' | 16:51 | |
masak | moritz_: why not? | ||
moritz_ | masak: 'is' can be 1) traits 2) implementation type 3) inheritance 4) sub | ||
masak | moritz_: ok, so we need both the fuzzy term and a bunch of exact terms. yes. | ||
the former will either turn up all matches, or a list of them. | 16:52 | ||
moritz_ | masak: that idea is incorporated in the `perlhints' data as well | ||
I use the rule names by which STD.pm matches | |||
as well as the syntax itself | |||
masak | moritz_: ooh, good idea! | ||
moritz_ | ie infix:<**> and ** | 16:53 | |
masak | exactly. | ||
16:53
maerzhase joined
|
|||
moritz_ | PerlJam: re "Database Engine" maybe that's a good idea, but I'm not fond on waiting for such a thing | 16:56 | |
PerlJam | moritz_: well, rather than waiting you could prototype something good :-) | ||
masak plans to use the file system as his database engine in the short term | 16:57 | ||
moritz_ | PerlJam: that would require good understanding of what's needed for Modules, and Design skills, and so on | ||
masak: as long as you don't create files named 'infix:<**>' :-) | |||
PerlJam | masak: what about dbm files (or bdb)? | 16:58 | |
moritz_ | PerlJam: are they human readable | ||
masak | moritz_: oh. I'll have to think about that. | ||
eric256 | is that meta information about modules going to be stored in pod in the module? or externaly? | ||
16:58
iblechbot left
|
|||
masak | PerlJam: do you have a reference? I don't know anything about those formats. | 16:58 | |
PerlJam | masak: it's basically a glorified hash on disk. keys and values. | 16:59 | |
masak | eric256: this is first and foremost for core things, not user-written modules. when we get as far as user-written modules, it'll be stored externally. | ||
PerlJam: sounds nice. | |||
PerlJam: why use that and not a Perl hash? | |||
16:59
justatheory joined
|
|||
moritz_ | eric256: well, Perl 6 will have to have some kind of module database, because it must be able to locate modules by names that the file system doesn't support | 16:59 | |
PerlJam | masak: you could tie the hash-on-disk to a perl hash if you want | ||
masak: perldoc -f dbmopenn # for the old-school method | 17:00 | ||
masak: perldoc -f tie | |||
eric256 | why can't core documentation be in the form of modules? Array.pm, etc. then once prelude gets going it loads all those | ||
PerlJam | er, s/dbmopenn/dbmopen/ | ||
masak | PerlJam: right, right. I was thinking of doing this in Rakudo, however. | ||
eric256 | and instantly we can implement core functions in perl6 itself | ||
moritz_ | eric256: because we don't have Array.pm right now | ||
masak | eric256: also because there is not one Perl 6 implementation. | ||
PerlJam | masak: okay ... so you'd have to write the interface glue to attach a dbm file to rakudo. That's a small strike against it I guess. | 17:01 | |
eric256 | moritz_: doesn't mean that it couldn't be started just to house documentation? | ||
PerlJam | :-) | ||
masak | PerlJam: but the hash idea is good. that'll get us started. | ||
moritz_ | in my vision the documentation can be inside POD, and an external tool will extract that into a doc database | 17:02 | |
masak | moritz_: yes, I want to use Pod. | ||
admittedly, writing all of the Pod inside hash values sounds a bit cumbersome. | 17:06 | ||
so maybe make the files pure Pod files instead... | |||
...and treat some level of heading like hash keys when loading them. | 17:07 | ||
moritz_ | that sounds nice | ||
masak | I like it, too. | ||
so, starting from the list in the README file, which Pod files will we have? | 17:09 | ||
subs, metaoperators, macros, keywords, special-variables, pseudo-packages... | 17:10 | ||
moritz_ | I'd rather structure it by topic | ||
masak | moritz_: please elaborate. | ||
moritz_ | Numbers, Arrays, Hashes, Objects, ... | ||
17:11
maerzhase left,
|jedai| left
|
|||
moritz_ | and Numbers would contain subs, methods, ops, macros (if any), ... | 17:11 | |
masak | moritz_: I'm thinking of it from the viewpoint of fast access. how would pse know where to look? | ||
17:11
maerzhase joined
|
|||
moritz_ | masak: it would read all files, build an index (or a db), ... | 17:11 | |
masak | hm, maybe that really isn't a problem. or maybe it'll be a problem regardless... | ||
17:11
|jedai| joined
|
|||
masak | moritz_: aye. | 17:12 | |
moritz_ | masak: and that structure can be optimized for access | ||
what we write should be optimized for flexibility and writeability | |||
masak | indeed. | ||
moritz_ | that's also the route I took for perlhints | 17:13 | |
masak | but I guess that was in Perl 5? | ||
moritz_ | the programs, yes | ||
masak | moritz_: do you see any reasons not to use Rakudo for this? | 17:14 | |
moritz_ | but I consider them just a prove-of-concept | ||
masak | ok. | ||
moritz_ | much more effort went into the docs themselves | ||
masak: using Rakudo is good. | |||
masak | moritz_: where is perlhint? | ||
moritz_ | masak: misc/perlhints in the pugs repo | 17:15 | |
masak has a look | |||
moritz_ | it has too much duplicate information right now | 17:16 | |
masak | moritz_: why is that? | ||
moritz_ | masak: because I was unsure of how much I needed | 17:17 | |
masak: for example token, name and id seem ... it seems overkill to have three of them | |||
s/seem/ | |||
17:18
eternaleye left
|
|||
masak | moritz_: ah. | 17:18 | |
moritz_ | but I like the label approach where you can say "this is an example", "this is a cross reference" etc. | 17:19 | |
masak | I was thinking I'd use Pod for that. | 17:20 | |
haven't thought much about it, though. | |||
17:21
dalek left,
jnthn left
|
|||
moritz_ | I found it a bit too clumsy for that | 17:21 | |
but that's only personal preference | 17:22 | ||
17:22
maerzhase1 joined
|
|||
moritz_ | that's why I used ultra-simplistic markup | 17:22 | |
17:22
maerzhase left
|
|||
masak | ok. | 17:23 | |
will mull over this. | |||
moritz_ | that can be parsed with minimal effort, and learned with minimal effort | ||
(but doesn't offer rich possiblities - just key => value pairs) | |||
masak | why is it important that the markup be learned with minimal effort? | 17:24 | |
I mean, why is that more important than expressivity? | |||
moritz_ | it's not really all that important | 17:25 | |
more important for me was that I could talk about all kinds of crazy Perl 6 syntax without interfering with markup | |||
masak | yes, I can see how that might be an issue. | 17:26 | |
moritz_ | afk | ||
masak | to think that this was only a year and a half ago... | ||
I think Rakudo is to thank for it feeling much longer. | |||
(that's a compliment, by the way. Rakudo++) | 17:27 | ||
eric256 got pulled away to a metting | 17:30 | ||
is there stuff in the pod spec for labeling methods, classes, etc, including paramters? or was that just talk on the mailing list | 17:32 | ||
hard to keep this stuff all straight some times | |||
masak | eric256: ISTR there was some talk about JavaDoc-like functionality. I don't know if Damian changed anything because of it. | 17:36 | |
to make matters worst, S26 is a draft and out of date. | |||
I plan to read first S26 and then STD.pm to try to get an understanding of Pod. | 17:37 | ||
17:37
estrabd left
17:41
namenlos left
|
|||
rakudo_svn | r35533 | pmichaud++ | [rakudo]: spectest-progress.csv update: 282 files, 6233 passing, 0 failing | 17:50 | |
r35534 | jonathan++ | [rakudo] Ensure parse_name handles names with type-parametric parts. | |||
17:51
[particle]1 joined,
pdcawley joined,
athenot left,
athenot joined
|
|||
rakudo_svn | r35535 | jonathan++ | [rakudo] Handle the case where we have something like multi foo(::T) { ... } or role Foo[::T] { ... }. Added an assertion that isn't in STD.pm, but makes things somewhat easier when building the AST (otherwise we'd get a bogus empty node in the Signature - maybe STD.pm avoids | 18:00 | |
..this in some other way, but I can't quite see how). | |||
moritz_ | I don't think STD.pm really avoid the creation of empty nodes | 18:02 | |
18:03
[particle]2 joined
|
|||
[particle]2 | rakudo: my $s = '+a ++b-b -c d ++b ++/b-b +++c -d -e ++c -f ++/c +++/c -g'; $s ~~ / [ \b ('+''+'+)(<.ident>['-'<.ident>]*) \b ] ~ [ \b $0 '/' $1 \b ] .*? /; | 18:04 | |
p6eval | rakudo 35532: OUTPUT«Statement not terminated properly at line 1, near ".*? /;"current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)» | ||
[particle]2 | feh. | ||
rakudo: my $s = '+a ++b-b -c d ++b ++/b-b +++c -d -e ++c -f ++/c +++/c -g'; $s ~~ / [ \b ('+''+'+)(<.ident>['-'<.ident>]*) \b ] (.*?) [ \b $0 '/' $1 \b ] /; | 18:05 | ||
p6eval | rakudo 35532: RESULT«Method 'perl' not found for invocant of class 'Match'current instr.: '_block14' pc 74 (EVAL_17:43)» | ||
masak | that's a known bug, I think. | ||
[particle]2 | rakudo: my $s = '+a ++b-b -c d ++b ++/b-b +++c -d -e ++c -f ++/c +++/c -g'; $s ~~ / [ \b ('+''+'+)(<.ident>['-'<.ident>]*) \b ] (.*?) [ \b $0 '/' $1 \b ] /; say $/[1]; | ||
p6eval | rakudo 35532: OUTPUT«Use of uninitialized value» | ||
[particle]2 | what's known, the failure of goal matching syntax to work with non-string args? | ||
or .perl? | |||
masak | that .perl isn't available on Match objects. | 18:07 | |
moritz_ | [particle]2: it's known that <atom> ~ <atom> [ ... ] fails | ||
[particle]2 | ah, both :) | ||
18:07
[particle] left
|
|||
moritz_ | [particle]2: if you're looking for a small project, a dump of Match objects would be *very* nice | 18:08 | |
[particle]2 | thank larry there's more than one way to do it. if this were guido's language, we'd be screwed. | ||
18:08
Patterner left
|
|||
moritz_ | even if eval($/.perl) wouldn't recreate the match object exactly, some dump as debuggin info would be great | 18:09 | |
[particle]2 | moritz: i'm prototyping the api and grammar for a command-line parser atm | ||
agreed that Match.perl is highly desirable | 18:10 | ||
moritz_ | I guess that's also necessary | ||
[particle]2 | it's necessary for me to get paid :) | ||
avar | somehow I read that as s/p/l/ | 18:12 | |
masak | Freudian slip of the eye. | 18:13 | |
18:13
Psyche^ joined,
Psyche^ is now known as Patterner
18:20
dalek joined
18:24
jnthn joined
|
|||
masak | ok, so I'm about to port SVG.pm from Perl 5 to Perl 6. | 18:27 | |
I find that the test suite doesn't really cover a lot of the module's functionality. | 18:28 | ||
from what I can tell, it may even have grown as a sort of guard against regressions. | |||
it definitely does not exercise all possible ways of using SVG. | |||
so, what to do? just start from scratch? any ideas? | 18:29 | ||
PerlJam | I'd start with the tests that are there and incrementally adds ones to cover the functionality as it is ported | 18:30 | |
18:31
spx2 left
|
|||
avar | Or, if you just want to port something and don't need SVG in particular port something with proper tests | 18:31 | |
99% of cpan probably has "stuff that was screwed at one point" as opposed to anything near 100% coverage though:) | |||
18:32
spx2 joined
18:35
maerzhase1 left
|
|||
masak | thank you both. | 18:35 | |
I do need SVG in particular. | |||
18:39
alexn_org left
18:40
donaldh left
18:46
ft left
18:48
iblechbot joined
|
|||
pugs_svn | r24908 | jnthn++ | [t/spec] More tests for parametric roles, including use of parameters in methods. | 18:57 | |
jnthn | OK, back in a bit...that patch gets parametric roles and methods within them working out about right, I think. | 18:59 | |
Some weird issue with attributes within them though. | |||
rakudo_svn | r35542 | jonathan++ | [rakudo] Parametric roles now clone methods, meaning that we get them attached to the right parameters. | 19:00 | |
19:01
braceta left
19:04
maerzhase joined
19:26
pmurias joined
|
|||
pmurias | hi | 19:26 | |
moritz_ | hi pmurias | 19:30 | |
masak | hello pmurias | ||
19:31
[particle]2 left
|
|||
szabgab | rakudo: my $x; $x //= 'DEFAULT'; $x.say; | 19:38 | |
p6eval | rakudo 35545: OUTPUT«Use of uninitialized value» | ||
moritz_ | szabgab: //= doesn't work atm | 19:39 | |
szabgab: there's a ticket for that already | |||
szabgab | moritz_: thanks | 19:41 | |
19:43
braceta joined
|
|||
pmurias | is code i intend to port to p6 when it's finished off-topic for the pugs repo? | 19:47 | |
moritz_ | pmurias: the pugs repo has a fairly loose defintion of topic ;-) | 19:49 | |
jnthn | pmurias: If it's useful to your work on p6 related stuff, then I'd say it's fine. :-) | ||
moritz_ | I certainly won't feel offended | 19:50 | |
TimToady: we've been discussing built-in testing and adverbs a few months ago - would you mind if I take the disucssion to p6l? | 19:51 | ||
pmichaud | moritz_: I think the answer will be "I don't mind", or "no need to ask". :-) | 19:54 | |
I don't speak for TimToady, but that's my guess. | |||
jnthn is back from dinner | 19:55 | ||
moritz_ | pmichaud: probably, but since I have no hurry, it doesn't hurt to ask | ||
pugs_svn | r24909 | masak++ | [perlhints] fixed small typo | ||
jnthn | pmichaud: I just put a chunk of inline PIR into actions.pm, because we need to spit out the newclosure in the right place, so I couldn't put it in some PIR. | ||
(IIUC) | |||
pmichaud: If that's hateful to you, suggestions for how to do better welcome. :-) | 19:56 | ||
pmichaud | okay. But you should also be able to do a :pirop('newclosure') somehow, instead of the inline PIR. Still, I'm not adamantly apposed to the inline PIR. | 19:57 | |
I'll review it a bit later to double-check. | |||
TimToady | moritz_: well, depends on how much bikeshedding you want :) | 19:59 | |
moritz_ | TimToady: I know, but I want to hear opinions | ||
TimToady | I don't have a problem with it, at least not yet... | 20:00 | |
moritz_ | and maybe if we give them some food for thought, they spend less energy on .trim ;-) | ||
(ok, that's only wishful thinking) | |||
jnthn | pmichaud: Review and let me know. There's a bit more to it than I can see being able to handle with a :pirop. | 20:02 | |
20:02
[particle] joined
|
|||
pmichaud | jnthn: that's kinda what I figure. :-) | 20:04 | |
20:07
masak left
20:10
dh_ joined
|
|||
szabgab | rakudo: if 1 { say 'ok' } | 20:11 | |
p6eval | rakudo 35545: OUTPUT«ok» | ||
szabgab | strange, that does not work for me, checking | 20:12 | |
moritz_ | szabgab: there are a few known parse failures when an 'if' or 'for' or 'while' is directly after a class (or sub?) definiton | ||
szabgab | ah, then that's the reason, thanks | 20:13 | |
moritz_ | they are always WTF moments when I encounter them | ||
szabgab | adding a ; after the sub declaration helps | ||
is there a test with this ? | 20:14 | ||
moritz_ | szabgab: there's a test case in the ticket, but not in the suite | 20:15 | |
szabgab | I guess it is still in RT? | ||
moritz_ | aye | 20:16 | |
rt.perl.org/rt3/Ticket/Display.html?id=58544 | |||
no, that's the wrong one | 20:17 | ||
rt.perl.org/rt3/Ticket/Display.html?id=57876 | |||
20:18
[particle]1 left
|
|||
szabgab | thanks | 20:18 | |
moritz_ | np | 20:19 | |
20:21
pbuetow joined
|
|||
pugs_svn | r24910 | moritz++ | [t/spec] basic tests that bare print and say die | 20:26 | |
szabgab | rakudo_svn: @a=(1,2); say @a[-1]; | 20:32 | |
rakudo: @a=(1,2); say @a[-1]; | |||
p6eval | rakudo 35545: OUTPUT«Scope not found for PAST::Var '@a' in current instr.: 'parrot;PCT;HLLCompiler;panic' pc 146 (src/PCT/HLLCompiler.pir:102)» | ||
szabgab | rakudo: my @a=(1,2); say @a[-1]; | ||
p6eval | rakudo 35545: OUTPUT«Use of uninitialized value» | ||
moritz_ | rakudo: my @a=(1,2); say @a[*-1]; | ||
p6eval | rakudo 35545: OUTPUT«2» | ||
szabgab | ah, I see now, thanks | 20:33 | |
but that's ugly :-( | |||
moritz_ | I won't argue on this one :/ | 20:34 | |
szabgab | actually what index -1 means here ? | ||
just another slot before the 0th ? | |||
moritz_ | I think so, yes | ||
S09 has the gory details | |||
but mostly it was to avoid accidental indexing from behind | 20:35 | ||
szabgab | yeah, looking at it | ||
20:39
mberends joined
20:40
ovid joined
|
|||
szabgab | I have very strange problem in this script: svn1.hostlocal.com/szabgab/trunk/Pe..._Commas.p6 | 20:40 | |
it works now, but if I comment out the @_.perl.say; | 20:41 | ||
part in the first line of the sub, it starts printing foobarbaz | |||
ovid | End blocks in Test.pm are not firing. Well, I can put a say() statement in there and it sometimes fires ... at the beginning of the test script. | ||
This means I can't implement no_plan for Test.pm | 20:42 | ||
szabgab | ovid: hi | ||
ovid | HI Gabor :) | ||
mberends | masak: RAKDO CAN HAZ SVG! autoexec.demon.nl/svg/ | ||
masak: RAKDO CAN HAZ SVG! autoexec.demon.nl:8888/svg/ | |||
moritz_ | szabgab: I remember there was a problem with nested ?? !! - don't know if that still persists | 20:43 | |
eric256 | mberends++ | ||
moritz_ | szabgab: but it doesn't really look like that's the problem | ||
szabgab | moritz_: the strange thing is that it works if I have the first say in there | ||
moritz_ | szabgab: aye | ||
szabgab: seems to be an array passing problem of some sort | 20:44 | ||
jnthn | ovid: Is that a pre-compiled Test.pm? | ||
moritz_ | szabgab: if you 'say commify_series(|@names);' it works | ||
jnthn wonders how END blocks and pre-compilation go together... | |||
szabgab | what is that | there ? | 20:45 | |
ovid | jnthn: All I know is that when I alter it, I can type make $test_name and all alterations are picked up, so I think it's being output as Test.pir and then run. | ||
szabgab | reading @09 ? | ||
jnthn | ovid: Ah. | ||
20:45
donaldh joined
|
|||
ovid | ../../parrot perl6.pbc --target=pir --output=Test.pir Test.pm | 20:45 | |
jnthn | ovid: I have a suspicion that END blocks and pre-compilation don't go together. | ||
ovid | Ouch :( | 20:46 | |
eric256 | szabgab: i added a sig (@s) and s/_/s/g and it works too | ||
jnthn | ovid: Give me a few minutes... :-) | ||
ovid | Heh. OK. | ||
moritz_ | ovid: plan(*) is probably the more Perl6ish version of 'no_plan' | ||
ovid | I can change it once END blocks work. | 20:47 | |
moritz_ | ovid: oh, and please keep the subs (like ok()) multis, even if you make the description optional | ||
ovid: that way they are easier to extend/override | |||
szabgab | but I assume it *should* work the way I wrote too , without the |, or the @s right ? | ||
ovid | My friend Gabrielle is flying in and I won't have much time to work on Perl 6 for the next couple of weeks, so I hope to get Test.pm done before then :) | ||
moritz_ | szabgab: I think it should, because @_ should be slurpy | 20:48 | |
ovid | moritz_: why so? We've got the core testing API stabilized for years. How will this help? (Not that I mind. Just curious) | ||
szabgab | oh, the data is there and it works iff I have the first say :-) | ||
ovid | It just seems like an awful lot of duplicated code. | ||
szabgab | ok, I am going in loop | ||
s | |||
20:49
meppl left
|
|||
moritz_ | ovid: when somebody wants to write another 'is' sub that compares things of a specific type, they can add a multi much easier if is() is declared to be a multi | 20:49 | |
rakudo_svn | r35547 | bernhard++ | [codingstd] trailing spaces | 20:50 | |
moritz_ | ovid: that doesn't imply that you have to duplicate any code, just add a 'multi ' before the sub, and keep the default value for the description | ||
ovid | Ah! I see what you mean. So long as I have $desc="" in the sig, that seems ok. | ||
moritz_ | (ideally we'd just declare protos, but I'm not sure how well rakudo does them atm) | 20:52 | |
jnthn | moritz_: protos only work as tie-breakers at the mo. | 20:53 | |
Hope to get that aspect of them in shortlyish though. :-) | |||
20:53
simcop2387 left
|
|||
jnthn | ovid: svn up and give it a try - may have fixed the lexicals in END blocks issue too with that patch. | 20:53 | |
ovid | ok | 20:54 | |
moritz_ | jnthn: no hurry | ||
jnthn | moritz_: It's on my Hague grant todo list. :-) | ||
moritz_ | ah ;) | ||
jnthn | moritz_: So if I want to have money for beer a couple of months down the line, hurry. ;-) | ||
ovid | Recompiling everything now (and hoping) :) | 20:55 | |
rakudo_svn | r35548 | jonathan++ | [rakudo] Try to fix END blocks to work with pre-compiled modules and with lexicals. | 21:00 | |
r35549 | jonathan++ | [rakudo] Fix make test by tracking roles change in PIR tests for Perl6MultiSub. | |||
r35550 | moritz++ | [rakudo] add test for bare 'say' being an error to t/spectest.data | |||
21:01
vixey left
|
|||
ovid | I assume that with parrot, others are getting regular failures with t/library/protoobject.t? (test 8) | 21:03 | |
Wow. languages/perl6 make test just imploded quite spectacularly :) | |||
I did make realclean, but checking out a clean parrot just to be sure. | 21:04 | ||
jnthn | ovid: Really? | 21:05 | |
ovid: Where? | |||
ovid | Yeah. Tons of failures looking just like this: | ||
'Sub' | |||
current instr.: 'parrot;Any;evalfile' pc 2908381 ((unknown file):-1) | |||
t/spec/S02-builtin_data_types/mixed_multi_dimensional.rakudo ... Dubious, test returned 1 (wstat 256, 0x100) | |||
No subtests run | |||
Like I said, I'm checking out parrot into a new directory and will try again there, just in case I diddled something I should not have. | 21:06 | ||
jnthn | ovid: With no local diffs I get well past that in the spectests, so may be your working copy or something. | 21:07 | |
ovid | Yeah, I borked Test.pm and forgot to revert it :) | 21:08 | |
moritz_ | works here too | ||
ovid: I did the same mistake today already ;-) | |||
ovid | I need to build better tools to manage this. i already have an alias to handle this, but I need it to run 'svn status' and abort if grep ^M | 21:09 | |
Actually, I need to write a bash script to do this. My alias is too long already. | |||
21:12
simcop2387 joined,
pmurias left
21:15
ruoso left
|
|||
ovid | Whee! My new 'reparrot' command works beautifully :) | 21:16 | |
jnthn | Wow! The original Test.pm actually has an END block. Which now gives output... | ||
ovid | Sweet! | 21:17 | |
jnthn just ran a test invidivually and observed this | |||
Sadly, the test failed. :-| | 21:18 | ||
jnthn tries to work out the next bug with attributes in roles... | |||
moritz_ | can I use a parameterized role everywhere instead of a normal type? | 21:19 | |
jnthn | Not *yet*. :-) | 21:20 | |
moritz_ | but in theory I can? | 21:21 | |
justatheory | hem? | ||
jnthn | Depends what you mean by "everywhere" :-) | ||
pmichaud | and "theory" :-) | ||
and "can" :-) | |||
moritz_ | jnthn: for example in signatures | ||
justatheory | Can I what? | ||
jnthn | moritz_: Yes. | ||
moritz_: I believe so. | |||
But that's still very much todo. | 21:22 | ||
moritz_ | rakudo: role A[$x] { method f { 2 * $x } }; class B does A[3] { }; B.new.f | 21:23 | |
p6eval | rakudo 35551: RESULT«6» | ||
moritz_ | jnthn++ | ||
that's really cool | |||
ovid | Sweet :) | 21:24 | |
moritz_ | rakudo: role A[$x] { method f { 2 * $x } }; my $x = "foo" but A[5]; say $x.f | ||
p6eval | rakudo 35551: OUTPUT«elements() not implemented in class 'Perl6Role'current instr.: 'postcircumfix:[ ]' pc 2656 (src/classes/Positional.pir:108)» | ||
jnthn | moritz_: Note done the mix-in form yet. | ||
*not | |||
pasteling | "ovid" at 91.85.167.13 pasted "t/library/protoobject.t has been failing for a while now" (14 lines, 250B) at sial.org/pbot/34477 | 21:26 | |
ovid | That output doesn't make a lick of sense to me. | ||
moritz_ | Exited with error code: [SIGNAL 10] | ||
it's a bit confusing that the got/expected is shown even though it matches | 21:27 | ||
jnthn | The fact that it...yes, that. | ||
ovid | Whitespace? I doubt it, but since there aren't any quotes, tough to say. | ||
21:28
ovid left
|
|||
moritz_ | ovid: the test script runs individual .pir files, and one of them parrot died, after it produced the desired output | 21:28 | |
21:29
ovid joined
|
|||
ovid | Missed me? | 21:29 | |
moritz_ | ovid: run './parrot t/library/protoobject_8.pir' to get more information | ||
ovid | Will do in a moment. | ||
pasteling | "ovid" at 91.85.167.13 pasted "Bus error" (5 lines, 70B) at sial.org/pbot/34478 | 21:30 | |
21:31
wolverian joined
|
|||
moritz_ | ovid: trac.parrot.org/parrot/newticket if you please ;-) | 21:31 | |
ovid | Will do :) | ||
Ah, sheesh. I don't know if I have an account there. Let me try various pass/email combos. | 21:32 | ||
moritz_ | it's pretty new | ||
21:33
iblechbot left
|
|||
ovid | Yeah, I don't have an account on that (that I can tell) | 21:33 | |
21:36
thepler joined
|
|||
ovid | no_plan now works :) | 21:37 | |
I'll submit a bug to parrotbug until I get a Trac account. | 21:38 | ||
jnthn | ovid: Great! | 21:40 | |
ovid: Lexicals probably should work in end blocks too, if that was getting in your way before. | |||
21:41
|jedai| left
|
|||
jnthn | Turns out attribute initialization in non-parameterized roles didn't work, let alone the parameterized ones. :-) | 21:41 | |
(Though there was an extra special bug for paramterized ones too. ;-)) | |||
21:43
|jedai| joined
|
|||
szabgab | rakudo: qw(A B C D).pick(5, 1).say; | 21:43 | |
p6eval | rakudo 35551: OUTPUT«CBDDD» | ||
szabgab | rakudo: qw(A B C D).pick(5).say; | ||
p6eval | rakudo 35551: OUTPUT«DACB» | ||
szabgab | should not the latter give an error ? | ||
moritz_ | dunno | 21:44 | |
jnthn didn't know that pick took a second argument...what is that? | |||
21:44
kisu left
|
|||
szabgab | allows repetition | 21:44 | |
jnthn | Ah, OK. | 21:45 | |
szabgab | default is no repetition so picking 5 out of 4 is sort of, impossible | ||
moritz_ | szabgab: qw() shouldn't work in Perl6, everything of the form identifier() is a sub call | 21:47 | |
szabgab: use <a b c d> instead | |||
TimToady | note that's supposed to be a named-only parameter | ||
pugs_svn | r24911 | jnthn++ | [t/spec] Test for attributes in roles having a default value. | ||
TimToady | rakudo: <A B C D>.pick(5, :repl).say | ||
p6eval | rakudo 35553: OUTPUT«DACBD» | ||
TimToady | so the positional call to it should be disallowed | ||
moritz_ | rakudo and parrot are too permissive in that respect | ||
pugs_svn | r24912 | jnthn++ | [t/spec] Tsts for using role parameters for attribute initialization. | 21:48 | |
szabgab | moritz_: wel,, now qw() works in rakudo but I stop using it then :-) | ||
21:49
maerzhase1 joined
|
|||
TimToady | std: qw(42) | 21:50 | |
p6eval | std 24912: OUTPUT«Unknown routines: qw called at 1 00:05 85m» | ||
rakudo_svn | r35559 | jonathan++ | [rakudo] When composing attributes into a role, we need to carry any properties along with them, otherwise default values and traits and so forth don't work. | ||
r35560 | jonathan++ | [rakudo] Since when we are parsing a signature we may be doing it for a package now (e.g. a parameterized role), we may already have got a block created. So check for this and use the existing one if so (otherwise we lose $block<pkgdecl>). | |||
21:50
maerzhase left
21:51
kisu joined
|
|||
szabgab | TimToady: so you say that 1 as the second param should not be allowed just :repl ? | 21:51 | |
jnthn | TimToady: Heh, I was about to say, "wouldn't it be better to make it named..." :-) | ||
OK, that's enough parametric roles hacking for one day. | |||
TimToady | jnthn: also the parameter to the role needs to be treated as constant | 21:52 | |
found this necessary in STD | |||
so that I could say match $stopper and have it treated as part of the token | |||
jnthn | TimToady: Clarify what you mean by "constant" | 21:53 | |
TimToady: Do you mean that | |||
role Foo[$x] { ... } | |||
class A does Foo['a'] { ... } | |||
class B does Foo['b'] { ... } | |||
Will not trample on each others $x? | 21:54 | ||
TimToady | the optimizer can bank on those not changing for the particular instantiation | ||
in particular, regex semantics need to know what's part of the token, and that implies knowing that the parameter effectively constant | |||
also means that the constant folder can go to work | 21:55 | ||
jnthn | Ah, OK. So you're saying that class A does Foo[$thingy_that_can_change] { ... } should be forbidden? | ||
moritz_ | or that a snapshot should be taken from $thingy_that_can_change? | ||
jnthn | Or rather, that we take a copy of it as it is at the time we do the role? | 21:56 | |
TimToady | probably is nonsense to have an "is rw" param there | ||
jnthn | It's like an is copy but still readonly kinda thing. :-) | ||
TimToady | but since there is just one call for the given instantiation, is effectively constant | ||
jnthn | TimToady: Is moritz_ snapshot statement about right? | 21:57 | |
pasteling | "ovid" at 91.85.167.13 pasted "Known bugs with *?" (25 lines, 1.5K) at sial.org/pbot/34479 | ||
ovid | Tried to implement plan * as 'no_plan' | ||
TimToady | didn't see it | ||
jnthn | 22:55 <@moritz_> or that a snapshot should be taken from $thingy_that_can_change? | ||
Basically, is it like we take a snapshot of what the value was? | |||
TimToady | yes, snapshot | 21:58 | |
jnthn | OK. | ||
That makes sense. | |||
pmichaud | ovid: those look like rakudobugs to me. | ||
ovid | Known? If not, I'll file 'em. | ||
pmichaud | I don't think known. | ||
ovid | OK. | ||
pmichaud | okay to file, even if they're dups :-) | ||
moritz_ | rakudo: multi sub plan(Whatever $x) { say "1..0" }; multi sub plan(Int $x) { say "1..$x" }; plan(4); plan(*) | ||
p6eval | rakudo 35553: OUTPUT«1..41..0» | ||
TimToady | otherwise I see little benefit of normal parameterized code | ||
jnthn | I don't remember seeing a ticket, but I've seen the first bug. | ||
ovid | Ah. I'll stop bugging people about known bugs then :) | 21:59 | |
TimToady | s/of/over/ | ||
jnthn | TimToady: Indeed. | ||
[particle] | ovid is a known bugger | ||
jnthn | Makes sense. | ||
21:59
cspencer joined
|
|||
TimToady | $dayjob & | 21:59 | |
ovid | particle: shhh! Don't tell anyone! | ||
Actually, that first one I think is a known bug because I seem to recall seeing it in some code where a trailing semi-colon is required. If I supply that, I get the second error. | 22:02 | ||
22:03
wknight8111 joined
|
|||
ovid | Ah, so as long as I specify the type with a multi-sub , it works. Strange. I'll try that. | 22:03 | |
22:05
iblechbot joined
|
|||
cspencer | rakudo: my $x = *; say $x | 22:08 | |
p6eval | rakudo 35553: OUTPUT«Whatever<0xb5fa2218>» | ||
cspencer | rakudo: my Int $x = *; say $x | ||
p6eval | rakudo 35553: OUTPUT«Type mismatch in assignment.current instr.: 'die' pc 15870 (src/builtins/control.pir:204)» | ||
22:13
[particle]1 joined
22:16
thepler left
|
|||
ovid | Damn it. How many times am I going to send in patches and forget to attach them? | 22:16 | |
PerlJam | as many times as it takes ;) | 22:17 | |
ovid | :) | 22:18 | |
PerlJam | ovid: since you're here and I'm curious ... Did you convince the BBC or are there other forward thinking people in there that all agreed to help perl 6 ? | ||
ovid | This chat is logged. I plead the fifth. | 22:19 | |
PerlJam | fair enough | ||
ovid++ anyway :) | |||
ovid | Let's just say there was a lot of internal support and excitement about it. | ||
Thanks :) | |||
Mmmm ... profanity (apropos of nothing, of course ...) | 22:20 | ||
22:20
Casan left,
donaldh left
22:22
[particle] left
22:25
|jedai| left,
maerzhase1 left,
|jedai| joined
|
|||
ovid | What I CAN say, and it can be repeatedly publicly so long as it's made extremely clear that this is my opinion and I'm not speaking for the BBC is that we have many excellent developers who are quite excited about Parrot and Perl 6 and they're very excited about its development and how we might use it in the future. | 22:32 | |
jnthn | :-) | ||
ovid | The problem is that the BBC cannot be seen to endorsing "products" as this can distort the market. Just because the developers are excited about Parrot/Rakudo does not mean that it will be adopted. | 22:33 | |
dh_ | if it ever gets released in the future, and when this happens, hopefully it is as least as fast as perl 5 :) | ||
ovid | Again, my opinion and not speaking for the BBC :) | ||
PerlJam | dh_: It'll be faster because programmers will be able to do more while writing less. | 22:39 | |
moritz_ | dh_: I don't think that the first versions will be faster than Perl 5, because that has 20 years of optimizing behind it | 22:41 | |
ovid | Yes, developer performance != CPU performance. | 22:42 | |
jnthn | Indeed. It would be a huge diss to the Perl 5 developers to suggest that an unoptimized Perl 6 would beat a Perl 5 that's had so much effort put into it in terms of runtime performance. | ||
moritz_ | and I think that Perl 6 compilation will never be as fast as Perl 5 compilation | 22:43 | |
simply because in Perl 5 the compilation phase doesn't do all that much | |||
heck, it's even faster to recompile a perl script than to dump the byte code to disk, and re-read it again | |||
jnthn | Aye. The parsing will speed up notably over where we're at now in Rakudo. But I agree with moritz_ - we're doing a lot more at compile time. | 22:44 | |
*but* running from the bytecode should be good :-) | 22:45 | ||
22:45
jferrero joined
|
|||
jnthn | (Again, maybe not Perl 5 competitive at first. But I think over time we will have a good chance there.) | 22:46 | |
Optimzing before we have a *lot* of regression tests would also be a very bad idea. | |||
moritz_ | aye | ||
and writing a type aware optimizer is probably a big task | 22:47 | ||
araujo | ovid, so when you guys in BBC plan to start migrating to Perl 6? | ||
:-D | |||
22:47
barney left
|
|||
ovid | Christmas. | 22:47 | |
PerlJam | heh | ||
ovid | Well, hey ... that was just begging for that response :) | 22:49 | |
jnthn | moritz_: Aye, I think there will be much fun to be had on type-based optimizations. But...later. | ||
Parametric roles have hurt my brain enough this week. | |||
moritz_ | yes, such an optimizer is a well-past-rakudo-1.0-task | 22:50 | |
araujo packs the logs and send them to BBC ... (with a typo fix) | |||
jnthn hopes to still be around to participate in writing such an optimizer | |||
ovid hopes to be around after araujo sends those logs :) I was careful about what I said. I doubt they'll be too worried so long as I have enough disclaimers. Of course, that's only my opinion and not the official opinion of the BBC. | 22:51 | ||
araujo | haha | ||
ovid | jnthn: Are you worried you'll be gone for a while? | 22:52 | |
dh_ | are you guys saying it is not possible to design a language that is both equally effecient for the programmer and computer resources? | ||
ovid | dh_ Optimization of dynamic languages still lag for behind optimization of static languages. | 22:53 | |
araujo | ovid, don't worry, you are safe here ... | ||
we even have TimToady | |||
moritz_ | dh_: I don't say it's impossible, I just say that it'll be a whole lot of work to optimize Perl 6 | ||
jnthn | ovid: I don't see anything that'll cause me not to be involved in Rakudo for the foreseeable future, but who knows what life will throw. | 22:54 | |
22:54
ejs1 left
|
|||
jnthn | Right now, it's the most interesting project I work on. :-) | 22:54 | |
moritz_ | dh_: otoh Perl 6 has many more possible hooks for optimization than Perl 5, so after some years or decades I guess that Perl 6 execute speed will be better than Perl 5's, hopefully way beyond | ||
ovid | Oh, and if anyone is concerned about my use of 'static' and 'dynamic', I like this description: www.pphsg.org/cdsmith/types.html | 22:55 | |
dh_ | moritz, that's good to hear, that's what i am hoping for | 22:56 | |
PerlJam | moritz_: it'll be hard to optimize the parser so much I think. | ||
dh_ | i certainly wouldn't expect perl6 to be faster right away | ||
or as fast | 22:57 | ||
moritz_ | PerlJam: don't forget that the parser can, in theory, use pre-compiled DFAs for many regexes | ||
PerlJam | moritz_: let's just say I'm hopeful but pessimistic. | 22:58 | |
moritz_ | ;-) | ||
PerlJam | I mean, I *know* the parser might be able to use pre-compiled DFAs ... I just think it's going to be a while before we get there and there will be other factors involved in parsing speed that may negate the advantages. | 22:59 | |
ask me about it again after the LTM gets integrated ;) | 23:01 | ||
ovid | I figure some developers might find this useful: use.perl.org/~Ovid/journal/38290 | 23:02 | |
moritz_ reviews and tests ovid++'s Test.pm | 23:03 | ||
justatheory | werd up, ovid | ||
ovid | I'm trying to add the diagnostics, but so many bugs ... (including one that I can't replicate in a smaller test case!) | ||
Thanks David :) | |||
justatheory | fer what? | 23:04 | |
moritz_ | ovid: is there a good reason for plan(Whatever) not to set $testing_started? | 23:05 | |
ovid | moritz_ Hmm, didn't think about that. Didn't impact the test suite passing, though. | ||
I'll look again. | 23:06 | ||
moritz_ | ovid: afaict the only difference is that it will never output the "Looks like you failed $num_of_tests_failed tests of $num_of_tests_run" message, I think | ||
pmichaud | when looking at Test.pm, keep in mind two items: (1) there's a good case to be made that it should remain simple, so that other budding Perl 6 implementations can use it; (2) we expect/hope many of these functions to become part of the Perl 6 specification. | ||
ovid | justatheory: I thought "werd up" was a compliment. My bad. | ||
:) | |||
pmichaud | (in which case Test.pm becomes obsolete, or part of the prelude) | 23:07 | |
ovid | pmichaud: Interesting point. I thought about incorporating some of the new TAP diagnostics, but I thought a) they're not finalized and b) Test.pm needs to go away because it's too primitive. | ||
moritz_ | ovid: t/spec/S03-junctions/boolean-context.t fails with your Test.pm, but passes with the old one | ||
ovid | Hmm, not getting that failure. I'll look again. | 23:08 | |
pmichaud | there's a purpose for having a primitive Test.pm (the idea that these may become part of the spec) | ||
moritz_ | pmichaud: from my POV it's ok to sacrifice some simplicity to get good diagnostics | ||
pmichaud | this isn't to say that there can't be a more sophisticated testing harness -- we just don't want to make that a requirement for using the spectest suite | ||
justatheory | ovid: Just saying hello. | 23:09 | |
pmichaud | I'd like to avoid (or help others avoid) the problem I run into with Python-on-Parrot. Python has a test suite, but you can only use it if you have a fully implemented version of Python. | 23:10 | |
ovid | pmichaud: the test harness consumes TAP. Test.pm produces it. Different things. That being said, I completely understand your point. Maybe I should write a different Makefile target which uses a more fully featured Test.pm (renamed, of course) to avoid said issues? | 23:11 | |
moritz_ | pmichaud: sure, but that shouldn't keep us from improving Test.pm... as long as it's not hard to write a very primitive Test.pm when we start a new implementation | ||
pmichaud | moritz_: we're agreeing. :-) | ||
moritz_ | good ;-) | ||
pmichaud | thus I said "keep in mind" as opposed to "don't do it because..." :-) | 23:12 | |
I'm very receptive to improvements to Test.pm | 23:13 | ||
ovid | pmichaud: I agree, too. That's why I'm thinking there should be a separate Makefile target for the spectests and a better "Test.pm". I welcome other strategies, though. (And the fact that I'm soon on vacation and may not have much time is a frustration. I want to keep working on this) :) | ||
pmichaud | ovid: the issue will likely still be around when you return from vacation :-) | 23:14 | |
jnthn | pmichaud: Fixing END blocks in pre-compiled modules gets tests spitting out a little more diagnostics at the end when run individually. :-) | ||
justatheory | ovid: Work on it during your vacation. | ||
ovid | Stop. Yer killin' me :) | ||
pmichaud | I'm find with separate makefile targets for a while. | ||
*fine | |||
moritz_ | ovid: the tests that cause problems for me are of the form | 23:15 | |
(1|$undef && pass '1|undef in boolean context') || flunk '1|undef in boolean context'; | |||
ovid | OK. I'll have to reconfigure vim to not kill all tabs. I'll take a s(tab) at it. | ||
pmichaud | make sure that the test functions accept Object and not Any | ||
moritz_ | ovid: in this case, poss pass() and flunk() are run | ||
ovid | moritz_: Ah, I just fixed that. The 'sub proclaim' needs to return '$cond' or "$passed" or whatever it's called. | ||
moritz_ | ovid: I thought along the same lines | ||
ones that's fixed, I'm positive to check it in (awaiting pmichaud's veto) | 23:16 | ||
but now: bed | |||
jnthn | pmichaud: ping | 23:18 | |
pmichaud | pong | ||
jnthn | hi | ||
Does PGE yet handle interpolating variables into tokens/rules/regexes? | |||
As in token foo { $x } | |||
pmichaud | no. | 23:21 | |
that's coming relatively soon. | |||
jnthn | OK. | ||
pmichaud | (because when PGE was written, lexicals didn't work. Like, at all.) | ||
jnthn | *nod* | ||
Will it be smart about things marked constant? | |||
23:21
iblechbot left
|
|||
pmichaud | you mean for assignments? | 23:21 | |
jnthn | Once we define a way of marking thingies constant... :-) | ||
pmichaud | I'm confused. | 23:22 | |
jnthn | In my example above, if you know the variable $x cannot change, it'd be able to take its value at compile time and inline it? | ||
As in, match its content as a literal. | |||
ovid | Since the test explicitly say 'use Test', is there yet a way to get Perl 6 to pick up a different path (e.g. perl6 -l lib/Test.pm)? I can't think of any other way for the tests to pick up a better Test.pm. | ||
moritz_ | ovid: set PERL6LIB env variable | 23:23 | |
pmichaud | ovid: change PERL6LIB env var | ||
ovid | Ah. Thanks! | ||
moritz_ | ovid: or BEGIN { @*INC.push('/path/') } | ||
pmichaud | jnthn: I'm not sure that we can assume that $x doesn't change. | ||
anyway, inlining it won't really be that big an improvement, I don't think. | |||
jnthn | pmichaud: In the case when we _know_ it can't? | ||
pmichaud | jnthn: I don't think there's a significant speed difference between looking up the PMC and simply having a string constant. | 23:24 | |
jnthn | Maybe I should just point you upwards to earlier discussion with TimToady on this. :-) | ||
ovid | Gotta hit the hey. Thanks for everyone's help! | ||
s/hey/hay/ | |||
jnthn | But basically, when you pass parameters to a parametric role they become "constant". | ||
As in, snapshot-ish. | |||
23:24
ovid left
|
|||
pmichaud | sure, I followed that part. | 23:24 | |
oh, you want the _grammar_ to do the substitution for you? | 23:25 | ||
jnthn | No, no. | ||
Well, I don't *think* so. :-) | |||
pmichaud | let me phrase it this way | ||
jnthn | I don't quite follow what needs to happen for the parsing stuff to work out. | ||
pmichaud | PGE will take "token foo { $x }" and compile it to a sub that does a lexical lookup of $x and attempts to match that value. | 23:26 | |
jnthn | I just want to make sure however I make this happen, it's going to tie up with what you need. | ||
pmichaud | because PGE is really a regular expression compiler. | ||
jnthn | OK | 23:27 | |
Then I'll just make sure, you can do that. :-) | |||
pmichaud | it's possible that at the point of compilation we might know that $x is constant. But in the general case we don't know that, and in order to figure it out PGE would have to be smart enough to look at the outer PAST::* scopes to figure out that $x is really a constant lexical. | ||
jnthn | I was thinking more than if know we can label it with a properly. | ||
*property | |||
23:27
Limbic_Region joined
|
|||
pmichaud | (and yes, it does mean we have to figure out how to handle the case where $x is a package scoped variable) | 23:27 | |
by the time we get around to executing the regex, we could check if the variable has a constant property, but the regex itself is already compiled. | 23:28 | ||
jnthn | This is the difficultly I was seeing. | ||
TimToady | point is that the regex compiler has to know it | ||
jnthn | This is what I was picking up. | 23:29 | |
pmichaud | okay. | ||
TimToady | or, actually, just the code that harvests the longest token | ||
pmichaud | that's a point I hadn't foreseen and we'll fix it. | ||
TimToady | (is how Cursor does it) | ||
pmichaud | oh, harvesting the longest token I had thought about handling, yes. | ||
I knew I would have to handle that. | |||
TimToady | in particular, STD uses it for tokens embedded in parametric roles | ||
expecting starters and stoppers to become part of LTM | 23:30 | ||
pmichaud | no problem. | ||
PGE doesn't come anywhere close to handling that now. | |||
It will. | |||
TimToady | line 2298 in STD.pm for instance | ||
pmichaud | (the "It will" part might be a problem for _me_, but I'm willing to tackle it when I get to that point.) | 23:31 | |
23:31
|jedai| left
|
|||
moritz_ | TimToady: speaking of which, should the ~ combinator backtrack to find the terminator? so will 'a' ~ 'a' 'a'* ever match? | 23:31 | |
(I don't care either way, just want to know if my test cases are correct) | |||
23:32
|jedai| joined
|
|||
TimToady | I suppose it depends on :ratchet, but probably it would be dwimmier if it didn't autoratchet :) | 23:32 | |
pmichaud | TimToady: S05 currently has | 23:33 | |
$<OPEN> = '(' <SETGOAL: ')'> <expression> [ $GOAL || <FAILGOAL> ] | |||
which means after parsing an expression (greedy 'a'* ), we either match the goal or fail. | |||
I'm thinking it should be | |||
$<OPEN> = '(' <SETGOAL: ')'> [ <expression> $GOAL || <FAILGOAL> ] | |||
(perhaps) | |||
TimToady | or something. STD doesn't even handle non-string goals yet... | 23:34 | |
pmichaud | so that <expression> can backtrack if we don't immediately find the goal (and if expression is backtracking, which depends on :ratchet) | ||
PGE is currently implementing the first version, which is what moritz++ is seeing. | |||
TimToady | I suspect we should do it right rather than wrong :) | 23:35 | |
pmichaud | we're curious what "right" is :-) | ||
I lean towards the second, but didn't know if there was a side effect I'm not seeing. | |||
TimToady | me too | ||
pmichaud | we can make it the second for now and see what side effects pop up :-) | 23:36 | |
TimToady | TIAS | ||
pmichaud | okay, we'll do that. moritz: I'll make the change later tonight or early tomorrow. | ||
TimToady | also have an issue with the notion that make replaces what is returned by a rule, because under STD it must always be a Cursor that is returned | ||
moritz_ | pmichaud: ok | 23:37 | |
TimToady | so currently it only replaces the scalar element | ||
and then maybe we pull that out at the last moment somehow | |||
otherwise we have a type issue | |||
pmichaud | "make replaces what is returned" ... you mean something other than the result object? | 23:38 | |
TimToady | since we always have to return the new match state in order to continue anyway | ||
the result object is in $($/), doesn't replace $/ | |||
pmichaud | right. | ||
TimToady | is what I'm saying | ||
pmichaud | that's the way I've always understood it to be. | ||
TimToady | I think S05 isn't always clear on the subject | 23:39 | |
pmichaud | okay. | ||
certainly rakudo relies on that behavior. | |||
but rules return Cursor objects, or Match objects, or there's a relationship between Match and Cursor I haven't detected? (I haven't looked at STD Cursor objects yet.) | 23:40 | ||
because PGE/Rakudo has rules always returning Match objects. | |||
TimToady | maybe Cursor does Match, or something | 23:41 | |
pmichaud | anyway, I've always understood "make" to set an element of a Match object, and not set the return of the match itself. | 23:43 | |
(where that element is the Match object's scalar value) | |||
(or more precisely, how a Match evaluates if explicitly given an item context) | |||
TimToady | which is, unfortunately, somewhat ill defined | 23:44 | |
pmichaud | yes. | ||
TimToady | a strong argument for an object always behaving as *itself* in item context | 23:45 | |
pmichaud | anyway, over the next couple of weeks I expect to review STD Cursor (in order to do something similar in PGE), so I can hopefully speak on this more usefully then. | ||
23:45
spx2 left
|
|||
TimToady | I'll be glad to answer Qs | 23:45 | |
pmichaud | I'm certain I'll have them :-) | 23:46 | |
23:46
eric256 left
|
|||
pmichaud | afk for me for a bit | 23:46 | |
23:46
cspencer left
|
|||
Limbic_Region | pmichaud - when you come back, do any of the rakudo spec tests open a network socket? | 23:48 | |
the test suite is hanging for me, and the only thing I can come up with is my firewall is interfering | 23:49 | ||
23:49
spx2 joined
|
|||
jnthn | Limbic_Region: AFAIK we don't implement socket IO in Rakudo yet. | 23:50 | |
Limbic_Region | jnthn - I didn't think so either | 23:51 | |
23:51
wknight8111 left
23:54
wknight8111 joined
23:56
|jedai| left
23:57
|jedai| joined
|
|||
pasteling | "Limbic_Region" at 68.48.165.70 pasted "rakudo spectest output on Win32/MinGW with latest rev" (69 lines, 4.4K) at sial.org/pbot/34484 | 23:57 | |
Limbic_Region | jnthn - does that look right to you? | ||
Limbic_Region hasn't been running spectest for quite a while | 23:58 |