»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo:, alpha:, pugs:, std:, or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend! Set by lichtkind on 5 March 2010. |
|||
lue | TimToady.......left. | 00:00 | |
00:01
diakopter__ joined,
doublec_ is now known as doublec
|
|||
jnthn | Turns out there *is* a bug in above patch, but so far (up to test 12,000 or so) it's resulted in one new failure. | 00:01 | |
diakopter__ | the vps we use appears to have ... died. | ||
:|| | 00:02 | ||
sorear | ping timeouts suck, I lost an @ to one once | 00:03 | |
colomon | lue: yes | ||
jnthn | lue: No, just sub radcalc(...) | ||
Or multi if there are variants. | |||
colomon | gack, jnthn++ is right of course. | 00:04 | |
jnthn | :-) | ||
colomon: If you hit a fail in assign-is-not-binding.t it's my fault. | |||
lue | alright. Should it be within the part of Num.pm that augments Num, or detached from that class? | ||
Ow! my head... | 00:05 | ||
jnthn | lue: Detached. | 00:06 | |
pugssvn | r30168 | colomon++ | [t/spec] Fudge radix.t to work with lue++'s patch. | ||
colomon | lue: want me to push the parrot version for now? | ||
sorear | now I just need for those Parrot folks to finish merging pcc_hackathon_6mar10 | 00:07 | |
00:08
diakopter__ left
|
|||
lue | yes, colomon | 00:09 | |
I'm assuming the radcalc sub in Num.pm should be outside of the augmentatioin of the Num class? | |||
colomon | yes. | ||
or possibly it should be a different file or a file of its own. | |||
lue | Wouldn't I have to put an include for the new file somewhere? (not that it's an issue...) | 00:10 | |
I agree, it's going to get big enough for its own file. :) | |||
colomon | oh, ack, someone else pushed to github while I was sitting here. Now I need to rebuild and retest. | ||
lue | (esp. with support of [] for bases 37+) | ||
colomon | lue: you need to modify build/Makefile.in to add new files. | 00:11 | |
lue | alright, thanks for the heads up. | 00:13 | |
jnthn | Think I have a fix for the fail I caused. :-) | 00:16 | |
colomon | \o/ | ||
jnthn | Heh. If this test run works out, probably we get to cross off a ROADMAP item. :-) | ||
colomon | we seem to be doing pretty well at that these days. :) | 00:17 | |
lue | Well, April _is_ nearing... | ||
jnthn | I think we really can't be too far off being able to tick off "true hyper/cross/reverse/other metaoperators" | ||
lue | (radix.pm is a good name for the file w/ radcalc, isn't it?) | ||
00:17
unobe joined
|
|||
jnthn | lue: wfm | 00:17 | |
lue | wfm? | ||
colomon | last wednesday, I never dreamed we'd have user-defined operators, reduce ops and hyper ops working by today. | 00:18 | |
lue | (ah, works for me) | ||
jnthn | colomon: Same. | ||
colomon: I really do need to go back to worry about OO bits again soon. :-) | 00:19 | ||
The meta ops have been awesome fun though. :-) | |||
unobe | colomon: I re-ran spectests and yeah, a *lot* more a failing :-( | ||
colomon | I'd say we have real !op and Rop at this point, absolutely. Xop and Zop still have some minor issues, but their core functionality is solid, I think, | ||
unobe: yeah, I wonder what happened there? | |||
unobe | beats me. I am going to fiddle around with it a bit | 00:20 | |
colomon | unobe: but for sure you need exists to do that one test in pure p6, and I think we're still waiting on a working exists implementation. | ||
jnthn | On array? | ||
unobe | yeah, I've written up a port from the old version | 00:21 | |
colomon | yes. | ||
unobe | jnthn: yes | ||
jnthn | Ah, OK. | ||
colomon | of @a[@-1] | ||
Tene | don't you mean *-1 ? | ||
colomon | Tene: yes, typo. | ||
unobe | I will see if it compiles and test it out on S32-array/exist.t | ||
Tene | just checking | ||
colomon | oh, a port of the old exists? I don't think that will work. | ||
jnthn | No, probably not. | 00:22 | |
colomon | in fact, I think someone tried that two days ago or so. | ||
lue | rakudo: say "hello"[2:3] | ||
p6eval | rakudo 53707f: OUTPUT«Unable to parse postcircumfix:sym<[ ]>, couldn't find final ']' at line 11current instr.: 'perl6;Regex;Cursor;FAILGOAL' pc 1664 (ext/nqp-rx/src/stage0/Regex-s0.pir:907)» | ||
lue | (darn python habits :) ) | ||
jnthn | :-P | ||
lue | It is an awesome way to splice a string though... | 00:23 | |
unobe | github.com/unobe/rakudo/commit/398f...d2c18932e8 | 00:24 | |
that's the diff of the version I'm going to start testing | |||
since I'm working on an eeePC, my testing isn't blazing fast :-( | |||
jnthn | eeek, that'd be slow. | 00:26 | |
sorear | how much memory? | ||
unobe | 1GB | 00:27 | |
Tene | and like 800mhz, iirc | ||
unobe | yeah, I think you're right, Tene | ||
nope, 1.6GHz | 00:28 | ||
uname -a: i686 Intel(R) Atom(TM) CPU N270 @ 1.60GHz | |||
but it certainly feels like 800 | |||
lue | rakudo: say index("hello","lo") | 00:30 | |
p6eval | rakudo 53707f: OUTPUT«3» | ||
jnthn | masak++ wrote a really nice blogpost today :-) | ||
lue | how do I get characters from a certain position in a string? | 00:31 | |
jnthn | substr | ||
substr($str, $offset, $howmany) | |||
lue | same as PIR then :) | ||
jnthn | :-) | 00:32 | |
lue | rakudo: say substr("hello",2) | 00:37 | |
p6eval | rakudo 53707f: OUTPUT«llo» | ||
dalek | kudo: becc7e0 | jonathan++ | src/Perl6/Grammar.pm: One more tweak and seems we have item assignment working now, with all existing tests passing. :-) |
00:38 | |
kudo: 5d8fd6a | jonathan++ | docs/ROADMAP: Minor ROADMAP tweaks. |
|||
jnthn | colomon: erm. Sorry. | ||
:-) | 00:39 | ||
colomon: I promise not to push anything else tonight. :-) | |||
lue | an else if in P6 is elsif, right? | 00:41 | |
arnsholt | Da. | 00:42 | |
sorear | How far off is Rakudo from being able to run STD.pm? | 00:46 | |
00:50
alester left
|
|||
jnthn | sorear: Not sure...I don't look through it seeing hundreds of things we're missing though. | 00:50 | |
We've got a lot of what it needs. | 00:51 | ||
00:53
synth joined
00:54
mberends left,
smash_ left
00:56
snarkyboojum left
|
|||
lue | rakudo: pass | 00:57 | |
p6eval | rakudo 53707f: OUTPUT«Could not find non-existent sub &passcurrent instr.: '_block14' pc 29 (EVAL_1:0)» | ||
lue | pass DOES work inside if's and such, right? | ||
00:58
kfo joined
|
|||
jnthn | pass? | 00:59 | |
lue | as in if a==3 { pass; } | 01:00 | |
rakudo: if a==3 { pass; } | |||
p6eval | rakudo 53707f: OUTPUT«Could not find non-existent sub &acurrent instr.: '_block14' pc 29 (EVAL_1:0)» | ||
lue | rakudo: if 3==3 { pass; } | ||
p6eval | rakudo 53707f: OUTPUT«Could not find non-existent sub &passcurrent instr.: '_block50' pc 317 (EVAL_1:136)» | ||
jnthn | There's no pass build-it... :-) | ||
*built-in | |||
lue | then just place a comment? | ||
jnthn | It's probably called something else, though I'm not quite sure what you're after. :-) | ||
Oh | |||
You mean, it should do nothing? | 01:01 | ||
lue | as in "do nothing, this is just here" | ||
jnthn | Just leave it empty? :-) | ||
lue | I could swear I heard about C<pass> though... | ||
sorear | that's a Pythonism | 01:02 | |
lue | ahhh | 01:03 | |
sorear | Python's syntax does not allow empty statement lists | ||
so pass was invented | |||
lue | only natural, it relies on whitespace :) | ||
rakudo: my $a=3; $a *= 2; say $a | 01:05 | ||
p6eval | rakudo 53707f: OUTPUT«6» | ||
lue | rakudo: say substr("hello",6,1) | 01:06 | |
p6eval | rakudo 53707f: OUTPUT«Mu()» | ||
lue | rakudo: say substr("hello",5,1) | ||
p6eval | rakudo 53707f: OUTPUT«» | ||
lue | rakudo: say substr("hello",5,1) ~~ "" | 01:07 | |
p6eval | rakudo 53707f: OUTPUT«1» | ||
lue | rakudo: say substr("hello",6,1) ~~ "" | ||
p6eval | rakudo 53707f: OUTPUT«0» | ||
lue | :( | ||
rakudo: say substr("hello",6,1) ~~ Mu | |||
p6eval | rakudo 53707f: OUTPUT«1» | ||
colomon | jnthn: no worries, been changing diapers and taking out the garbage and pouring single malt instead of spectesting. | 01:08 | |
01:09
justatheory left
|
|||
jnthn | (single malt)++ | 01:09 | |
jnthn is lacking in that particular substance at the moment | |||
A trip to Russia will replenish my Vodka stock though. \o/ | 01:10 | ||
colomon | I am too, but my parents are over for the night and my dad brought two bottles with him and got a third for his birthday. ;) | ||
jnthn | \o/ | ||
Nice! | |||
OK, I've gotta go and see the hopefully nice folks at the bank tomorrow morning, so guess I should get a sensible amount of sleep. :-) | |||
lue | a large amount of hope ye have. night jnthn o/ | 01:11 | |
jnthn | night, catch you all tomorrow o/ | ||
01:12
arlinius joined
|
|||
colomon | o/ | 01:13 | |
01:18
muixirt_ joined
01:20
muixirt left,
muixirt_ is now known as muixirt
|
|||
lue is currently attempting to edit build/Makefile.in | 01:24 | ||
colomon | I suggest looking for Num.pm in Makefile.in and adding your new file right in that neighborhood of the makefile. | 01:25 | |
01:25
muixirt left
01:26
snarkyboojum joined
|
|||
colomon | Once you've added it, you need to call perl Configure --gen-parrot again, to generate the actual Makefile you will use to compile. | 01:26 | |
lue | would a git pull kill my changes? | ||
colomon | no | ||
it probably would just refuse to work with them. | 01:27 | ||
lue | Should I git pull before configure/make or just put it off? | ||
colomon | you can commit them locally and then do a git pull --rebase, or you can use git stash to stash them away and then just do git pull. | ||
Your builds take forever, right? | |||
lue | nope (I love ssh-ing to remote computers :D ) | 01:28 | |
I'll just leave off the latest git pull until I need it :) | 01:29 | ||
colomon | groovy. | 01:31 | |
lue | NO! Fatal error during make! •.• | 01:34 | |
null pmc access in invoke() ! | 01:35 | ||
.u snowman | |||
phenny | U+2603 SNOWMAN (☃) | ||
lue | .u comet | ||
phenny | U+2604 COMET (☄) | ||
lue | .u 2605 | 01:36 | |
phenny | U+2605 BLACK STAR (★) | ||
lue | .u 2602 | ||
phenny | U+2602 UMBRELLA (☂) | ||
sorear | "when the Unicode Consortium decided that all character sets must be included, WEBDINGS WAS NO EXCEPTION" | ||
lue | .u 260A | 01:37 | |
phenny | U+260A ASCENDING NODE (☊) | ||
colomon | just finally pushed your first patch, lue++. :) | ||
lue | :D | ||
Technically not my first, but I can't remember what the first one was :) | |||
snarkyboojum | colomon++ jnthn++ for all the ops stuff! It's t'ops! :) | ||
lue++ (i think your first was porting the file existence tests etc?) | |||
lue | o ho ho ho. o ho ho ho. | ||
snarky: yes. | 01:38 | ||
after I'm done with radix conversion (which in P6 form I just got a fail), I might just feel crazy enough to get into regexes. | 01:39 | ||
For the sole purpose of bringing back snowman/comet! :) | |||
sorear | after I'm done with P5 interoperability I'm going to write a memory profiler | 01:40 | |
I suck at picking small problems | |||
lue | I think kate's indentation indicator (where you can fold blocks of code) is the key to finding my Null PMC Access problem... | 01:41 | |
dalek | kudo: 265726d | (Solomon Foster)++ | src/builtins/Num.pir: Cleanup trailing whitespace. |
||
kudo: fabef9f | Lue++ | src/ (2 files): Put in support for fractional numbers (:16<A.4>) and other base scanning (:2<0o10>) into the radcalc function. |
|||
01:43
diakopter joined
|
|||
diakopter | vps liveth | 01:43 | |
01:44
justatheory joined
|
|||
lue | afk | 01:45 | |
01:50
IllvilJa left
01:52
xomas left
01:55
meppl left
02:05
wknight8111 left
02:11
crythias left
02:33
molaf_ joined
|
|||
colomon wishes he knew what the heck is going on with hyper.t. | 02:34 | ||
02:36
molaf left
|
|||
lue | anybody here? | 03:08 | |
bkeeler | Yup. Just got back | 03:09 | |
lue | I'm really wondering why my code causes a Null PMC Access... | ||
Kate (my editor) says the indentation's off, I just can't see it. | 03:10 | ||
bkeeler | For Null PMCs I usually end up poring over the output of --target=pir | 03:15 | |
> my $foo = rx/o+h/; my $bar = "it"; say "ooooohitworks" ~~ /$foo $bar works/ | 03:17 | ||
ooooohitworks | |||
\o/ | |||
One step closer | |||
lue | make --target=pir? Cause it fails whilst making rakudo :) | 03:18 | |
bkeeler | Aah | 03:19 | |
Is it an nqp fail, or when its compiling core.pm? | 03:20 | ||
lue | last line before the error messages: src/gen/core.pm > src/gen/core.pir (so yeah, compiling core.pm) | ||
03:21
nihiliad left
|
|||
bkeeler | That could be tricky to track down then | 03:22 | |
lue | It's a new file I created, could I theoretically run perl6 on that file and see what happens? | 03:23 | |
bkeeler | Yeah, could do | ||
lue | and that --target=pir thing? | ||
but... a result of my half-finished make is that ./perl6 no longer exists :( | 03:24 | ||
bkeeler | parrot src/gen/perl6.pbc --target=pir file.pm | 03:26 | |
lue | here's the results of running what you gave me: | 03:27 | |
Null PMC access in invoke() | |||
current instr.: '!create_parametric_role' pc 1161 (src/glue/role.pir:49) | |||
called from Sub 'perl6;Perl6Role;!select' pc 9969 (src/gen/RoleToClassApplier.pir:600) | |||
called from Sub 'perl6;Iterator;onload' pc 10751 (src/builtins/Role.pir:134) | |||
bkeeler | Does inspection of the pir files it mentions give any clues? | 03:28 | |
lue | haven't looked :) | ||
I will look later though. | 03:29 | ||
03:31
TimToady joined
|
|||
lue | TimToady is back \o/ | 03:32 | |
TimToady | vaguely | 03:33 | |
bkeeler | TimToady: is there supposed to be a difference between / <{ ...}> / and / { ... } / closure syntax in regexes? | 03:36 | |
TimToady | S05:1269 | 03:37 | |
bare {} doesn't interpolate anything, <{}> interplates regex | 03:38 | ||
bkeeler | Thanks | 03:39 | |
03:47
bbkr left
03:53
agentzh joined
03:59
vamped joined
|
|||
Teratogen | when is Perl 6 gonna be released, dammit | 03:59 | |
TimToady hugs Teratogen | 04:00 | ||
lue | I could swear Teratogen said those exact words last time... ah well :) | ||
TimToady | Teratogen is insecure, and needs lots of hugs | ||
lue | .oO(dang it, hugme's not here) |
04:01 | |
vamped | you're gonna have to do it yourself lue | 04:02 | |
Teratogen | I want Perl 6 now! | 04:05 | |
TimToady hugs Teratogen again | |||
snarkyboojum | hehe | 04:06 | |
lue | Talk to dalek. He may know where The Doctor is. | 04:07 | |
The Doctor can use his TARDIS to get a stable P6 interpreter for you now. :) | 04:08 | ||
Seriously, there is no stable version of P6 yet. Be patient. | |||
Teratogen | I want to do Perl 6 CGI =) | ||
snarkyboojum | perl6 is pretty stable for me (depending on what I try and run :)) | 04:10 | |
lue | dalek: find archenemy | ||
.u asteroid | 04:11 | ||
phenny | lue: Sorry, no results for 'asteroid'. | ||
TimToady | .u asterism | 04:14 | |
phenny | U+2042 ASTERISM (⁂) | ||
lue | Is there a nice chart of all the unicode characters anywhere? I wish to browse its deep magic. | 04:16 | |
I wish to learn of the fifth astral plane! | |||
.u FFFF | |||
phenny | U+FFFF (No name found) | ||
sorear | unicode.org has lots of them | ||
vamped | .u maelstrom | ||
phenny | vamped: Sorry, no results for 'maelstrom'. | ||
sorear | .u 101F80 | ||
phenny | sorear: Sorry, no results for '101F80'. | ||
sorear | .u 11F80 | 04:17 | |
phenny | sorear: Sorry, no results for '11F80'. | ||
lue | but it's horrible to navigate. I don't trust unicode.org :) | ||
Before reading the wikipedia page on unicode (doing it now), I thought the limit was at number FFFF. I was wrong. | 04:18 | ||
TimToady | 0x10ffff | ||
I spend a lot of time looking at chars in the 20000 range | |||
sorear | 20000 is han extensions? | ||
TimToady | yes, currently up to 20ba3, in the MOUTH section | 04:19 | |
quietfanatic | lue: If you're on Gnome, <alt-F2>gucharmap<enter> | 04:20 | |
lue | I could be on gnome, but I'm not. KDE. (although, I should still be able to run it) | 04:22 | |
.u 20000 | |||
phenny | lue: Sorry, no results for '20000'. | ||
lue | phenny can't display anything above FFFF. :( | ||
TimToady | that's 𠀀 | ||
which probably doesn't show in irc | |||
lue | .u FFFF | ||
phenny | U+FFFF (No name found) | ||
TimToady | shows in the log though | 04:23 | |
lue | to KCharSelect! | ||
sorear | .u 20ba3 | 04:24 | |
phenny | sorear: Sorry, no results for '20ba3'. | ||
lue | FFFF: not assigned :/ | ||
sorear | .u 20BA3 | ||
phenny | sorear: Sorry, no results for '20BA3'. | ||
sorear | lue: FFFF = (short)-1 = WEOF | ||
on UTF-16 systems | |||
TimToady | 20ba3 is 𠮣 | ||
sorear | it cannot be assigned | ||
TimToady | x on the top, mouth on the bototm | ||
bottom | |||
sorear | there are a good few special chars in the FFxx range | 04:25 | |
.u FFFE | |||
phenny | U+FFFE (No name found) | ||
sorear | .u FFFD | ||
phenny | U+FFFD REPLACEMENT CHARACTER (�) | ||
sorear | .u FFFC | ||
phenny | U+FFFC OBJECT REPLACEMENT CHARACTER () | ||
sorear | .u FFFB | ||
phenny | U+FFFB INTERLINEAR ANNOTATION TERMINATOR () | ||
sorear | .u FFFA | ||
phenny | U+FFFA INTERLINEAR ANNOTATION SEPARATOR () | ||
sorear | .u FFF9 | ||
phenny | U+FFF9 INTERLINEAR ANNOTATION ANCHOR () | ||
sorear | .u FFF0 | ||
phenny | U+FFF0 (No name found) | ||
lue | unicode is fun (although I wish KCharSelect would show up to & through the 4th astral plane...) | ||
just type a four-digit hex number, and see what happens! | 04:26 | ||
.u 1337 | 04:27 | ||
phenny | U+1337 ETHIOPIC SYLLABLE PHWA (ጷ) | ||
TimToady | actually, it looks like screen that doesn't like the plane 1 chars | ||
sorear | .u 000A | ||
phenny | U+000A (No name found) | ||
TimToady | er, plane 2 | 04:28 | |
quietfanatic | Not liking plane 1 chars would be rather... | ||
nonportable :) | |||
TimToady | er, you're typing plane 0 | ||
quietfanatic | oh | ||
vamped | .u 298D | ||
phenny | U+298D LEFT SQUARE BRACKET WITH TICK IN TOP CORNER (⦍) | ||
lue | why does unicode have to be so complex? I just want to be able to view up to the last of AP 4 | ||
vamped | .u 301F | 04:29 | |
phenny | U+301F LOW DOUBLE PRIME QUOTATION MARK (〟) | ||
TimToady | (iirc) | ||
lue | what does iirc mean? | ||
TimToady | if I recall correctly | ||
lue | dankon | ||
.u 7357 | |||
phenny | U+7357 CJK UNIFIED IDEOGRAPH-7357 (獗) | ||
quietfanatic | if he recalls correctly | ||
sjohnson | google => acronyms.thefreedictionary.com/IIRC | ||
sorear grumbles at unicode not actually naming any of the CJKs | 04:30 | ||
TimToady | I've named them :) | ||
lue | The one I put there says (in KCharSelect) that its english meaning is violent, lawless :) | ||
.u BEL | 04:31 | ||
phenny | U+BCA8 HANGUL SYLLABLE BEL (벨) | ||
quietfanatic | My dictionary says storm around, be crazy | ||
lue | .u ASCII BEL | ||
phenny | lue: Sorry, no results for 'ASCII BEL'. | ||
TimToady | 7357 15獗dog.l their.r | ||
it's "dog" on the left and "their" on the right | |||
quietfanatic | My dictionary says dog, cliff, old grass, yawn, and eight-head | ||
sorear | .u 0009 | 04:32 | |
phenny | U+0009 (No name found) | ||
sorear | .u 0080 | ||
phenny | U+0080 (No name found) | ||
quietfanatic | .u 0000 | ||
phenny | U+0000 (No name found) | ||
sorear | I guess phenny doesn't have the C0 and C1 subblocks | ||
TimToady | cliff and hiccup | ||
sorear | .u BE | ||
phenny | U+A02A YI SYLLABLE BE (ꀪ) | ||
TimToady | hiccup is oppose and yawn | ||
04:33
justatheory left
|
|||
lue | .u 7170 | 04:33 | |
phenny | U+7170 CJK UNIFIED IDEOGRAPH-7170 (煰) | ||
TimToady | that's Fire.l and goods.r | ||
lue | .u CAFE | 04:34 | |
phenny | U+CAFE HANGUL SYLLABLE JJWAELM (쫾) | ||
TimToady | I don't do hangul | ||
lue | .u perl | ||
phenny | lue: Sorry, no results for 'perl'. | ||
TimToady | (yet) | ||
bkeeler | So 獗 獗 獗 is "the dog on the old grass yawns"? ;) | ||
I wonder what's the most complicated sentence you can make out of only one character | 04:35 | ||
lue | ∞ | ||
04:36
justatheory joined
|
|||
lue | .u 2102 | 04:36 | |
phenny | U+2102 DOUBLE-STRUCK CAPITAL C (ℂ) | ||
lue | .u 1403 | ||
phenny | U+1403 CANADIAN SYLLABICS I (ᐃ) | ||
TimToady | well, the most astonishingly complicated character I've found is: | ||
sorear | Had had had had, had Had had had had had, had had had. | ||
TimToady | 20b98 24 𠮘 dex.rb former.rm mouth.rm up.rt mu.lt mountain.lm wicket.lmo non.lmi | ||
it has 8 unrelated components, non of which combine into any other known character (known to me, so far) | 04:37 | ||
04:37
justatheory left
|
|||
sorear | I think english has the east asian languages solidly beaten here | 04:37 | |
TimToady | *none | ||
and in only 24 strokes | |||
(there are characters with up to 64 strokes) | |||
2a6a5 64 𪚥 4.dragon 2dragon.t 2dragon.b | 04:38 | ||
lue | There are several characters I know who might stroke 64 times trying to learn East Asian languages :) | ||
TimToady | oh, wait, those should be lbo and lbi, hmm | 04:40 | |
lue | stop! You're making Konversation (and possibly all of KDE) hurt! that last one showed up as two replacement characters! | 04:41 | |
TimToady | Konversation should get out of the stone age | ||
lue | KCharSelect ought to show me Unicode > FFFF :( | ||
rakudo: say "\x10000" #first bit of P6 code on this channel in hours :) | 04:42 | ||
p6eval | rakudo 265726: OUTPUT«𐀀» | ||
sorear | at least you're not ais523 | ||
lue | I see two FFFD 's | ||
why am I at least not ais523? | |||
sorear | *his* stone age client actually crashes on non-ASCII text | ||
lue | TimToady, did you see character 10000? | 04:43 | |
sorear | unfortunately I'm in screen so I can't see your beautiful extraplanar characters | ||
Teratogen | I am waiting for the day when I can type "perl6 -v" from the shell prompt! | 04:44 | |
TimToady | perl6 -v | ||
This compiler is built with the Parrot Compiler Toolkit, parrot revision 44954. | |||
lue | I ought to submit a ticket to KDE for characters > FFFF | 04:45 | |
Teratogen | hey cool! | ||
bkeeler | darn it, my dog is eating Kleenex again :( | ||
lue | heh heh heh | 04:46 | |
Obviously KDE. My gnome character select change go well over 10000 :( | 04:47 | ||
s/change/can/ | |||
�� is somewhat appropos for R* (in Gnome it's fine, but paste it into Konversation, and it's two FFFD's) | 04:51 | ||
sorear | I expect kde will say " | 04:52 | |
not a bug, stop your uniiiicode pertenshusness | |||
lue | It pastes fine in KCharSelect, but I can't search for it :\ | 04:53 | |
sorear | like that one day I accidentally entered a 128 character extended command into mg, "<me> I did X, Y, Z, and your program crashes, totally reproducable <maintainer> Don't do that then. Buffer overrun checking would be bloat." | ||
lue | Pastes fine in Konsole, but backspace key turns it into a rectangle I can't get rid of :) | 04:54 | |
04:54
awwaiid joined
|
|||
lue | I could also petition Unicode to stop being so confusing, and create astral planes 5-10 for alien languages (reserved for the future of course) | 04:59 | |
05:02
Sarten-X left
|
|||
Teratogen | isn't there Unicode for Klingon? | 05:02 | |
lue | nope, it's not allowed (read wikipedia) | 05:03 | |
05:06
constant joined,
constant left,
constant joined
05:11
Sarten-X joined,
gfx joined
|
|||
TimToady | lue: no, I don't have a Linear B font on my machine :) | 05:17 | |
lue | What, for the symbol I posted earlier? It's a Tai Xuan Jing symbol that (according to gnome's character map) means 'release' | 05:20 | |
TimToady | um, 10000 decimal? | ||
www.unicode.org/charts/PDF/U10000.pdf | 05:21 | ||
\x10000 is in Linear B | 05:22 | ||
bkeeler | > say "zomgeeeetworks" ~~ /zomg <{ rx/e+t/ }> works/ ?? 'Match' !! 'No match' | 05:23 | |
Match | |||
> say "zomgeeeetworks" ~~ /zomg { rx/e+t/ } works/ ?? 'Match' !! 'No match' | |||
No match | |||
lue | oh, that long ago, TimToady. | ||
TimToady | bkeeler++ | 05:25 | |
sorear | bkeeler: What is this? | 05:28 | |
bkeeler | Interpolation of the return value of a closure in a <{ ...}> assertion | ||
Looks like I broke <?{ ... }> though :( | 05:29 | ||
sorear | TimToady: An entire plane for ~40 characters? | ||
TimToady | no, that's just one chart | ||
I'm sure musical symbols are in the same plane | 05:30 | ||
gothic | |||
coptic syllabary | 05:31 | ||
lue | rakudo: say "\u1337" | ||
TimToady | cypriot rather | ||
std: say "\u1337" | |||
p6eval | rakudo 265726: OUTPUT«\u1337» | 05:32 | |
std 30169: OUTPUT«===SORRY!===Unrecognized backslash sequence: '\u' at /tmp/0BwSEFuG3Q line 1:------> say "\u⏏1337"FAILED 00:01 107m» | |||
lue | rakudo: say "\x1337" | ||
p6eval | rakudo 265726: OUTPUT«ጷ» | ||
sorear | TimToady: ohh, I intepreted U10000 as U1xxxx | 05:33 | |
lue | .u 1337 | ||
phenny | U+1337 ETHIOPIC SYLLABLE PHWA (ጷ) | ||
05:33
xomas joined
|
|||
lue | rakudo: say "\x0007" # hee hee | 05:34 | |
p6eval | rakudo 265726: OUTPUT«» | ||
Wolfman2000 | ...hey, no beeping! | ||
TimToady | heh, www.unicode.org/charts/PDF/U1F000.pdf is MahJong tiles :) | 05:35 | |
lue | sorry wolfman2000 | ||
TimToady: I know, I saw that earlier :) | 05:36 | ||
Wolfman2000 | it's alright | ||
lue | While we were talking about Unicode, I just had to type ASCII BEL :) | ||
"What do you mean, you programmed a Mahjong game for the terminal without ASCII art?" | 05:38 | ||
"It's called Unicode, sir!" | |||
.u 263E | 05:40 | ||
phenny | U+263E LAST QUARTER MOON (☾) | ||
lue | .u 236E | ||
phenny | U+236E APL FUNCTIONAL SYMBOL SEMICOLON UNDERBAR (⍮) | ||
TimToady | u keyboard | 05:41 | |
.u keyboard | |||
phenny | U+2328 KEYBOARD (⌨) | ||
05:41
xomas left
|
|||
lue | www.unicode.org/charts/PDF/U2600.pdf contains our snowman/comet, along with chess pieces and a couple other snowmen :) | 05:43 | |
.u 26E8 | |||
phenny | U+26E8 (No name found) | ||
lue | rakudo: say "\x26E8" | 05:44 | |
p6eval | rakudo 265726: OUTPUT«⛨» | ||
lue | Yes, unicode does come with defense armor :) | ||
I'd have a field day transcribing unicode symbols into valid P6 commands (as a module of course) | 05:49 | ||
.u 26A0 | |||
phenny | U+26A0 WARNING SIGN (⚠) | ||
lue | that could be warning, for example :) | ||
rakudo: warn('Oh noes, warning!'); say "just been warned" | 05:50 | ||
p6eval | rakudo 265726: OUTPUT«Oh noes, warning!just been warned» | ||
lue | rakudo: multi sub circumfix:<⚠ ⚠>($a){warn($a);};⚠'Oh no!'⚠; say "just been warned" | ||
p6eval | rakudo 265726: OUTPUT«error:imcc:syntax error, unexpected '\n' in file 'EVAL_1' line 58Confused at line 11, near "\u26a0'Oh no!'\u26a0"current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)» | 05:51 | |
05:51
snarkyboojum left
|
|||
lue | alpha: multi sub circumfix:<⚠ ⚠>($a){warn($a);};⚠'Oh no!'⚠; say "just been warned" | 05:51 | |
p6eval | alpha 30e0ed: OUTPUT«Oh no!just been warned» | ||
TimToady | rakudo: say q⟅a b c⟆ | ||
p6eval | rakudo 265726: OUTPUT«a b c» | ||
sorear | "But how does Rakudo know that that particular square box is a quote?" | 05:52 | |
lue | .u ⟅ | ||
phenny | U+27C5 LEFT S-SHAPED BAG DELIMITER (⟅) | ||
vamped | nice. has anyone made an (unofficial) list of quoting delimeters - besides the few mentioned in S02 | 05:57 | |
lue | www.unicode.org/charts/PDF/U1F030.pdf now you can also create a game of dominoes for the terminal! | ||
TimToady | STD has a list of 'em | ||
line 343 | 05:58 | ||
bkeeler | Must be spring. The frogs are getting loud | ||
vamped | oh. i guess I'll try to figure out where STD is. | 05:59 | |
TimToady | svn.pugscode.org/pugs/src/perl6/STD.pm | ||
vamped | there it is. i think. in the pugs repo. (too slow) | ||
sorear | lue: www.muppetlabs.com/~breadbox/softwa...games.html - terminal minesweeper | 06:00 | |
vamped | thanks for the line number! searching for the actual characters failed. | 06:03 | |
hejki | sorear: too bad they're not in perl6 ;< | ||
lue | when I feel like it, I'm going to try my best to reimplement the snowman/comet regex (even if just part of an addon module) | 06:06 | |
vamped | sorear - you're saying that ⟅ is just showing up as a box for you? | 06:07 | |
06:08
Sarten-X left
|
|||
TimToady | I think ⟅⟆ are supposed to look like a bag together | 06:08 | |
lue | it does (to me) | ||
hejki | i was just gonna say "good that your sentence about the looks of those two characters were conditional" :) | ||
bkeeler | It's a box for me too | 06:09 | |
hejki | looks just like two garbled unicode symbols (to me) :) | ||
vamped | bkeeler - what system are you running? | 06:11 | |
lue | and I was thinking to myself "I need to install a full unicode font". Turns out I'm lucky enough to see a lot of them :) | ||
bkeeler | IRC client is Colloquy on MacOS | ||
lue | (I do though; of the three east asian languages (CJK), I've only bothered with installing japanese :) ) | ||
06:12
IllvilJa joined
|
|||
vamped | ok. I was trying the other day to get some unicode characters to appear in Ubuntu. figured it out partially. | 06:12 | |
bkeeler | Lucida Grande font | ||
TimToady | in theory, any Chinese character is legal in Japanese. :) | ||
lue | Yes, but some of the east asian ideographs show up as boxes for me (I consider that good right now; it lets me see what's japanese :) ) | 06:13 | |
.u tim | 06:14 | ||
phenny | U+D300 HANGUL SYLLABLE TIM (팀) | ||
vamped | installed unifond - now my terminal / irc_client work fine. but OOO Writer still shows boxes. | ||
lue | .u toad | ||
phenny | lue: Sorry, no results for 'toad'. | ||
lue | .u toa | 06:15 | |
phenny | U+2D86 ETHIOPIC SYLLABLE TOA (ⶆ) | ||
lue | .u dy | ||
phenny | U+0684 ARABIC LETTER DYEH (ڄ) | ||
TimToady is impressed, not necessarily positively :) | |||
lue | rakudo: say "\x[D300,2D86,0684]" | ||
p6eval | rakudo 265726: OUTPUT«팀ⶆڄ» | ||
lue | I am REALLY bored, if it isn't obvious (heck, I just opened up KBlackBox a moment ago) | 06:16 | |
.u lue | 06:17 | ||
phenny | U+19DE NEW TAI LUE SIGN LAE (᧞) | ||
vamped | where's the source code for .u bot? I'd like to install that functionality for offline use. | ||
hejki | ok.. that's block to me :> | ||
lue | me as well :) | ||
.u camel | |||
phenny | lue: Sorry, no results for 'camel'. | ||
hejki | .u hejki | ||
phenny | hejki: Sorry, no results for 'hejki'. | ||
hejki | =( | 06:18 | |
.u sign | |||
phenny | U+00A5 YEN SIGN (¥) | ||
lue | .u came | ||
phenny | lue: Sorry, no results for 'came'. | ||
lue | .u cam | ||
hejki | :DD | ||
phenny | U+CC38 HANGUL SYLLABLE CAM (참) | ||
lue | .u el | ||
phenny | U+C5D8 HANGUL SYLLABLE EL (엘) | ||
lue | rakudo: say "\x[CC38,C5D8]" # enough of that now | ||
p6eval | rakudo 265726: OUTPUT«참엘» | ||
lue | .oO(I need to find a good unicode font) |
06:20 | |
hejki | terminus rocks | ||
also using urxvt is encouraged :> | |||
lue | are those fonts? | ||
hejki | it tries to fill in chars not found from your current font set by other fontsets | 06:21 | |
terminus is | |||
bkeeler | urxvt is a terminal emulator | ||
hejki | urxvt is a terminal emulator | ||
ye | |||
:P | |||
heikki.mehtanen.fi/vim_gnum.png | |||
this is terminus | |||
bkeeler | I've always liked Dejavu, but I might give terminus a try | 06:22 | |
TimToady | std: say :16<'0o10'> # should be error | ||
p6eval | std 30169: OUTPUT«===SORRY!===Malformed radix number at /tmp/7qfMlXj0Vw line 1:------> say :16<⏏'0o10'> # should be error expecting number in radix notationFAILED 00:01 107m» | ||
lue | why? | 06:23 | |
TimToady | lue: you can't use '' inside <> | ||
<> are already quotes | |||
lue | oh :) | ||
TimToady | std: say :16('0o10') # fine | ||
p6eval | std 30169: OUTPUT«ok 00:01 106m» | ||
lue | geez, you answered my "why?" so fast you must've time-traveled! | ||
TimToady | I just read your mind | 06:24 | |
lue | heijki: urxvt looks epic (from that screenshot) | 06:25 | |
hejki | lue: s/urxvt/my desktop/; :) | 06:27 | |
lue | that wasn't just urxvt? | 06:28 | |
hejki | well i run all from cli | ||
so it's urxvt | |||
but ran from within xmonad | |||
3 urxvt's to be exact | |||
btw.. the vim theme is strongly inspired by the TV series 'Teenage Mutant Ninja Turtles' :) | |||
06:30
molaf_ left
|
|||
vamped | lue: look at: search.cpan.org/~zoffix/POE-Compone...ode/UCD.pm | 06:32 | |
06:33
vamped left
06:36
kaare joined,
kaare is now known as Guest50408
|
|||
sorear | .u larry | 06:39 | |
phenny | sorear: Sorry, no results for 'larry'. | ||
sorear | hejki: people still use xmonad? | ||
hejki | i use xmonad | ||
:) | |||
and quite a bunch of others i do know of | |||
why? | |||
sorear | its popularity seemed very faddish | 06:40 | |
lue | alpha: multi sub circumfix:<☠ ☠>($a){die($a);}; ☠"UR DOIN IT RONG"☠ | ||
hejki | that's mainly since people don't like haskell | ||
p6eval | alpha 30e0ed: OUTPUT«UR DOIN IT RONGin sub » | ||
sorear | also I'm kinda curious what's happened since 0.3 | ||
I was the first of the founding developers to leave the project | 06:41 | ||
lue | o wow. Goodnight everyone o/ | 06:44 | |
sorear | (I still use it, I just consider it finished and no longer have any reason to code for it) | ||
06:55
snarkyboojum joined
|
|||
TimToady | colomon: 2«1.1*:2<10>**:2<10>» is a semantic fail; you can't use .{} on a 2 | 07:01 | |
and :2«1.1*:2<10>**:2<10>» should not parse | 07:02 | ||
bkeeler | G"night all! | 07:08 | |
07:09
azawawi joined
|
|||
azawawi | good morning | 07:09 | |
sorear | hello | ||
07:11
uniejo joined
|
|||
pugssvn | r30169 | colomon++ | [t/spec] Fudge hyper.t for Rakudo. | 07:12 | |
07:27
azawawi left
07:40
Psyche^ joined
07:44
Patterner left
07:45
Psyche^ left
07:47
Psyche^ joined,
Psyche^ is now known as Patterner
07:50
jonasbn joined
07:57
rv2733 left
08:02
moritz_ sets mode: +ooo sorear TimToady colomon
08:03
payload joined
08:06
riffraff joined
|
|||
mathw | Good {localtime}, #perl6! | 08:20 | |
sjohnson | yo | 08:21 | |
mathw | hey sjohnson | 08:25 | |
08:25
iblechbot joined
|
|||
sjohnson | hi matt | 08:25 | |
08:26
sorear left
08:27
sorear joined
|
|||
jnthn | morning, folks | 08:33 | |
moritz_ | m\o/rning | ||
moritz_ stretches | 08:34 | ||
08:36
snarkyboojum left
|
|||
jnthn | :-) | 08:36 | |
Heh, looks like the backlog is mostly folks playing around with unicode. :-) | |||
jhuni | why is there a bunch of (?? True !! False) blocks in operators.pm when you could just use ? for boolean coercion | ||
moritz_ | jhuni: at some point prefix:<?> was broken | 08:38 | |
jhuni | moritz_: k, the other thing is I am wondering where I can get documentation on all these pir:: functions | 08:39 | |
mathw | morning jnthn, moritz_, jhuni | 08:40 | |
moritz_ | jhuni: that's a good question... I think there's a parrot book that documents all the PIR functions | ||
jhuni: the perl wrapper is just something PIR::some-pir-function__SSI where the SSI are the types | |||
S = string, I = Integer, P = PMC, N = Number | 08:41 | ||
mathw | jnthn: Why did masak take all the unicode ops out of Set.pm? | 08:42 | |
jhuni | moritz_: I think I am going to look for that parrot book | 08:43 | |
jnthn | jhuni: They're just Parrot opcodes; consult the Parrot ops docs. | ||
mathw: Turns out that if we get stuff outside of Latin-1 in a file, the parser gets slow. | |||
mathw | jnthn: aaaaw :( | 08:44 | |
Is it a temporary removal pending a fix to the parser? :) | |||
jnthn | There was also something at non-Latin-1 ops in core without asking for them too... | 08:45 | |
That they may need some pragma to enable them. | |||
Anyway, I expect they can come back at some point. For now it was almost doubling the compile time of the setting, which is a little painful for those of us hacking on Rakudo! | 08:46 | ||
mathw | yes it takes long enough already | ||
hmm I'm not sure why you'd need a pragma to enable unicode ops in the core... provided there was another way to do the same thing, and their very presence didn't cause a 2x slowdown in compile time or something crazy like that... | |||
jnthn | It certainly sucks that it's that much slower. | 08:48 | |
mathw | Yeah | 09:09 | |
I don't suppose there are any clues why? | 09:10 | ||
09:10
hugme joined
|
|||
moritz_ | probably the old thing that UTF-8 is a variable width encoding | 09:10 | |
jnthn | Yes, I know why. | ||
moritz_: Yes, that one | |||
moritz_ | and indexing strings just takes longer | ||
jnthn | pmichaud++ discovered this one quite a while back. | 09:11 | |
mathw | :( | 09:12 | |
09:16
payload left
09:17
moritz_ sets mode: +v hugme
09:39
snarkyboojum joined
09:47
arnsholt left,
arnsholt joined
09:48
payload joined
|
|||
jnthn | afk, boring bank stuff | 09:52 | |
09:58
gfx left
10:00
JimmyZ joined
10:07
riffraff left
10:10
riffraff joined
10:35
JimmyZ left
10:42
payload left
10:43
payload joined
10:48
xinming_ joined
|
|||
dalek | kudo: 041ad2a | (Solomon Foster)++ | src/Perl6/Grammar.pm: Tweak the grammar for unicode hyperops. Still getting strange issues with this, but hyper.t definitely works better with this change than without it. |
10:50 | |
kudo: 35f3373 | (Solomon Foster)++ | t/spectest.data: Turn on hyper.t. |
|||
11:06
ruoso left
11:07
masak joined
|
|||
masak | oh hai, #perl6 | 11:07 | |
colomon | o/ | ||
11:08
clintongormley joined
11:11
wolf2k_ubuntu joined
11:12
agentzh left,
payload left
|
|||
masak drops a pin | 11:13 | ||
arnsholt | *BONG* | ||
=) | |||
masak | class Pin { method drop() { say '*BONG*' } } | 11:16 | |
11:17
payload joined
|
|||
mathw | ow | 11:19 | |
mathw stepped on the pin | |||
hejki | class Band { method age() { ... } | 11:21 | |
11:21
xinming_ is now known as xinming
|
|||
mathw | $.foot<left>.toes<big> but= Wounded; | 11:23 | |
snarkyboojum | masak-san | 11:25 | |
masak | snarkyboojum! | 11:26 | |
mathw: your API is a bit counterintuitive. 'foot' is singular, but 'toes' is plural. | |||
snarkyboojum | read with great gusto your last blog post - I too am at week4 | ||
masak | snarkyboojum: when do we have our next, wildly successful virtual hackathon? | ||
hejki | one foot has 5 toes | ||
snarkyboojum | the odds | ||
hejki | ermm sorry, i rephrase | ||
snarkyboojum | masak: the sooner the better | ||
masak | snarkyboojum: good thinking. | 11:27 | |
hejki | class Foot { has $.toes is rw = 5; } | ||
:) | |||
masak | hejki: nono, toes must be a hash. | ||
we're hash-indexing into it. | |||
or at least it must be Associative. | |||
colomon | Heh... I made it to week 4 last year, then had complete and utter fail. | ||
hejki | :P | ||
snarkyboojum | colomon: :) I spent 3 weeks on week 3, don't tell me it gets worse :P | 11:28 | |
masak | I've been doing weeks 3 and 4 twice now, just to make sure I actually have the muscle strength to proceed. | 11:29 | |
it's tough going, no doubt about it. | |||
snarkyboojum | but worthwhile :) I'm swimming 2km a few times a week too - just for kicks | ||
masak | me too :) | 11:30 | |
snarkyboojum | masak: great minds | ||
masak | must be. :P | ||
colomon | maybe my problem was not realizing week three should take a month. ;) | 11:32 | |
jnthn back | 11:34 | ||
colomon | jnthn: getting really weird results with unicode hyperops | 11:36 | |
jnthn | :-/ | ||
colomon: Probably something silly. | |||
colomon | You never committed the infixish(1) fix, but that was easily done on my part. | 11:37 | |
masak | jnthn! | ||
jnthn | s/committed// :-) | ||
masak: omgz I has a train ticket to Uppsala. | |||
I convinced the automat to give me one yesterday. | |||
:-) | |||
colomon | some unicode tests pass in hyper.t and some had to be skipped. | 11:38 | |
and I get | |||
> my @a = 1..3; my @b = 3..5; say @a »*« @b | |||
Confused at line 1, near "say @a \x{c2}\x{bb}*" | |||
jnthn | colomon: Any pattern? | ||
OK, the string dump is typical. | |||
The confusion is weird. | |||
colomon | not that I could discern while I was half awake last night. | ||
it's all pushed, so you can take a look when you have a chance. | 11:39 | ||
jnthn | OK, thanks. | 11:40 | |
colomon | does >>++ work yet? | ||
jnthn | Did it last night. | ||
colomon | \o/ | ||
jnthn | and ++<< | ||
(prefix) | |||
masak | jnthn: the way you write 'automat', it makes me feel like we're in a Russian satellite state. :P | ||
colomon | cool, just unfudged five hyper.t tests successfully because of those changes. | 11:41 | |
and ones that never worked in alpha, so far as I know. | |||
jnthn | masak: Which is amusing given I thought Slovak actually had loaned the word from German. | ||
masak | jnthn: great news about the tickets though -- looking forward to some serious hacking and Indian food consumption! :) | ||
arnsholt | masak: Just be glad he didn't write it with a v =) | ||
masak | arnsholt: aftomaut. :) | ||
jnthn | masak: That's the Swedish spelling? | 11:42 | |
masak | jnthn: no, don't listen to masak, he's rambling. :P | ||
jnthn | Phew, it looked weird. | ||
;-) | |||
masak | jnthn: you wrote it right the first time... | ||
jnthn | :-P | ||
masak | it was just seeing the Swedish word in an English sentence which made it feel weird. | ||
jnthn | Are the cash machines "bankomat" here too? | ||
masak | yes, but that's a trademark by some specific bank, I think. | 11:43 | |
jnthn | Ah, OK. | ||
masak | doesn't prevent people from calling all of them that, though. | ||
jnthn | So based on these two words, Swedish and Slovak are actually quite close. | ||
arnsholt | In Norway, they're called minibank =) | ||
jnthn | ;-) | ||
masak | minibank. that's kinda cute. | 11:44 | |
colomon | > my @a = (1, 2, 3); say @a>>++; say @a.perl | 11:45 | |
123 | 11:46 | ||
[2, 3, 4] | |||
> my @a = (1, 2, 3); say @a»++; say @a.perl | |||
Confused at line 1, near "say @a\x{c2}\x{bb}++" | |||
jnthn | :-/ | ||
rakudo: my @a = (1, 2, 3); say @a»++; say @a.perl | |||
p6eval | rakudo 35f337: OUTPUT«123[2, 3, 4]» | 11:47 | |
jnthn | Erm. :-/ | ||
colomon | wtf? | ||
hejki | maybe this is related? 10:42:58 < mathw > jnthn: Why did masak take all the unicode ops out of Set.pm? | ||
jnthn | hejki: no | ||
colomon: Terminal encoding? | |||
colomon: Oh, but that doesn't explain the fails int he file. | |||
Hmm | |||
masak | well, part of the reason was that they didn't work... :/ | ||
hejki | =( | ||
masak | but I don't think they didn't work because they were non-ASCII. | 11:48 | |
jnthn | masak: Yes, but that's because user defined ops aren't finished. | ||
masak | because the ASCII ops don't work either :( | ||
jnthn | Right. Unicode is unrelated. | ||
I wanted to do BEGIN before I fixed those up. | |||
Because I akshually need to solve the same problem. | |||
I've done BEGIN now, so can steal that infrastructure and fix up the ops. :-) | 11:49 | ||
(The problem is that the grammar tweakage code doesn't make it into to PIR, only the current parse, so when the setting is parsed the ops are all there, but once it's persisted we lose them.) | 11:50 | ||
11:50
am0c left
|
|||
masak | makes vague sense. | 11:50 | |
great post. jnthn++ # use.perl.org/~JonathanWorthington/journal/40258 | 11:51 | ||
mathw | masak: API design is hard, that's why | 11:58 | |
masak | mathw: aye. | ||
mathw | Especially when you're making it up on the spot | ||
masak | it's easy to shoot yourself in the foot. | ||
11:59
takadonet joined
|
|||
takadonet | bonjour $perl6 | 11:59 | |
#perl6 | |||
masak | takadonet: \o | 12:00 | |
lunch & | |||
colomon | agreed, jnthn++ for the post. | 12:02 | |
takadonet | colomon: for this post: use.perl.org/~JonathanWorthington/j...8?from=rss ? | 12:03 | |
colomon | yes | ||
takadonet: sorry, that was in the backlog about five lines before you joined up just now. :) | |||
takadonet | colomon: Should have logged on faster . I read the post this morning at home | 12:04 | |
second thing I do when I wake up | |||
mathw | I liked it too | 12:07 | |
jnthn++ | |||
12:12
envi^home joined
12:19
Coke_ joined
|
|||
Coke_ | rakudo: 3 | 12:19 | |
rakudo: 3.say | 12:20 | ||
p6eval | rakudo 35f337: ( no output ) | ||
rakudo 35f337: OUTPUT«3» | |||
12:22
Sarten-X joined,
Coke_ left,
synth left,
synth joined
12:29
[synth] joined
|
|||
cognominal | I concur : great post. jnthn++ # use.perl.org/~JonathanWorthington/journal/40258 | 12:36 | |
12:40
snarkyboojum left
|
|||
moritz_ | indeed it is | 12:42 | |
12:44
ignacio_ joined
12:45
rv2733 joined
|
|||
szbalint | I hope someone's archiving use.perl.org, as the site itself doesn't seem to be maintained anymore | 12:45 | |
It would be a shame for these posts to disappear one day without having a backup | 12:46 | ||
moritz_ has 17G of free space on his hard disc - should do :-) | 12:47 | ||
now a scraper... | |||
if one could access a journal entry just by number, not by user... that would be great | 12:48 | ||
jnthn is still trying to work out whether/when/to where to move from use.perl.org | 12:56 | ||
szbalint | blogs.perl.org ? | ||
moritz_ | seems decent, if you don't have a javascript phobia | ||
jnthn | Keep hearing "it's flakey" style reports. | ||
szbalint | yeah, it's kind of new | ||
jnthn also wonders if there'll be a blogs.perl6.org | 12:57 | ||
masak | szbalint: I'll probably do a backup of all my posts on use.perl.org at some point in the near future. | ||
jnthn | I was quite happy with whatever it was we ran the advent calendar on. | ||
masak | wordpress. | ||
they're good, yes. | |||
those PHP guys know what they're doing :) | 12:58 | ||
jnthn | Heh. I don't care what it's written in. | ||
works well for me > dogma :-) | |||
masak | some people seemed to care what npw2010.fsfi.is/ was written in :) | 12:59 | |
jnthn | .oO( perl6.is/awesome/ |
||
szbalint | there is always movable type as a Perl based blogging platform :) | ||
jnthn | szbalint: Yeah, I've used that a couple of times and not really taken to it. | 13:00 | |
Dunno why. | |||
moritz_ | blogs.perl.org is a modified movable type installation, iiuc | ||
szbalint | done by sixapart guys if I recall correctly? | 13:01 | |
13:01
wolf2k_ubuntu left
|
|||
moritz_ | no idea | 13:02 | |
masak | it seems rt.perl.org/rt3//Public/Bug/Display...l?id=59118 is surrounded by confusion. | 13:04 | |
I don't really see what's confusing about it: class attributes can have twigils, too. | |||
they work like instance attributes, but they're shared among all instances. | 13:05 | ||
moritz_ | class attributes shouldn't be scoped with 'my' | ||
masak | S12 disagrees. | ||
moritz_ | because it means they become inaccessible when you augment a class | ||
masak | I know. better to use 'our'. | ||
Wolfman2000 | ...I think I found a new hatred | ||
permissions | |||
masak | moritz_: still doesn't make the ticket invalid. | ||
jnthn | I'm not sure I like the spec in that area, fwiw. | 13:06 | |
masak | Wolfman2000: try not to hate so much. it's bad for your skin. :) | ||
jnthn | I really would like $!foo to always mean instance attribute, unambiguously. | ||
moritz_ agrees both with jnthn and masak | |||
Wolfman2000 | masak: noted. Still...you'd think porting over an app from production to server would be better | ||
masak | jnthn: I'm not sure I feel strongly about it. :) | ||
Wolfman2000 | for nearly two months, I had a permissions issue. And it was NEVER made obvious to me | 13:07 | |
masak hugs Wolfman2000 | |||
Wolfman2000 | I'm only thankful that the URL to that page has beta. instead of www. | ||
13:07
meppl joined
|
|||
masak | jnthn: do you agree that having a dot on public class attributes is nice, because then you can call accessor methods just like on instance attributes? | 13:08 | |
jnthn: and do you further agree that then it's only consistent to have a C<!> on private class attributes? | |||
masak presses on in cross-examining :) | 13:09 | ||
jnthn | masak: I'd mostly seen it as syntactic sugar for "make me an lvalue method that deals with a lexical variable" | ||
moritz_ would like a syntactic distinction between class and instance attributes | |||
a trigil! | |||
masak | no, we promised not to do those in A12 :) | 13:10 | |
moritz_ | %!¢foo! | ||
jnthn | I see . as meaning "make me an accessor" in a declaration context. | ||
moritz_ too | |||
jnthn | And it "just knows" what the real underlying storage is. | ||
masak | jnthn: I hear ya, but I don't see how that speaks against twigils on class attrs. | ||
jnthn | They aren't really attrs. | ||
masak | discrimination! | ||
jnthn | It's just a lexical variable. | 13:11 | |
13:11
ispeak_ joined
|
|||
masak | with a twigil. | 13:11 | |
13:11
PerlJam joined
|
|||
masak | hm, seems this discussion needs a circularity saw :P | 13:11 | |
PerlJam | good morning | 13:12 | |
masak | PerlJam! | ||
jnthn | I gave you one. "I want $!foo to unambiguously mean instance attribute." | ||
PerlJam | masak! | ||
jnthn | morning, PerlJam | ||
PerlJam | greets jnthn | ||
Anything interesting happen in the last week or so? | 13:13 | ||
moritz_ | aye | ||
masak | jnthn: yeah. but I kinda think that the way things currently are is fairly consistent, and I don't see your motives for changing things to unambiguoulsy mean instance attributes. | ||
moritz_ | we've got custom operators and meta operators back | ||
masak | PerlJam: you bet. | ||
...thousands of spec tests back... | |||
PerlJam | sweet | ||
moritz_ | and I fixed rakudo + Test::Util | 13:14 | |
(ok, minor thing, I know :-) | |||
masak | what's Test::Util? | ||
moritz_ | masak: it's a module used in the test suite to spawn an external Perl 6 program and capture output, STDERR; return value etc. | ||
jnthn | masak: Because I'm not too convinced we can reliably/safely know (e.g. inside an augment) whether we've got an instance attribute or a "class attribute". | ||
masak | jnthn: now we're talking. show me an incosistency/problem with the current model, and I'll start to sway. | 13:15 | |
jnthn | And if we're saying it's a lexical, you shouldn't expect leakage. | ||
(out of the original scope) | |||
masak | moritz_: oh, cool. | ||
jnthn: when would there be leakage? | 13:16 | ||
jnthn | masak: class Foo { my $x; }; augment class Foo { say $x; } # I think we agree this is an error. | ||
masak | regardless, the RT ticket doesn't currently reflect the disconnect between the spec and the OO implementor. :) | 13:17 | |
jnthn: yes. | |||
lexical scope. | |||
moritz_ | class Foo { my $!x; }; augment class Foo { say $!x; } # same error | ||
masak | nod. | 13:18 | |
still not seeing any problem. | |||
that's what 'my' gets you. | |||
jnthn | Right, but you don't expect class Foo { has $!x; }; augment class Foo { method blah() { say $!x } } to get you an error. | ||
PerlJam | ack lift | 13:19 | |
ook | |||
masak | no, because 'has' doesn't have a lexical scope, it has an 'instance' scope. | ||
hm, I sorta see why this concerns you... | |||
jnthn | Inside the augment, when I see a $!x, how do I then know whether I have an instance attribute? | 13:20 | |
Or not? | |||
masak | right. | ||
moritz_ | by looking into the class defintion? | ||
jnthn | Given that the thing we're augmenting may well be coming from a pre-compiled module. | ||
We could say "oh, the parser goes and uses the introspection interface" | |||
But...ick. | |||
PerlJam | jnthn: by introspection ;> | ||
oops, too slow | 13:21 | ||
moritz_ | doesn't it has to do that anyway? for catching method re-declarations and the like? | ||
oh wait, that's probably the meta class, not the parser | |||
PerlJam | Humans shouldn't have to use the introspection interface for this particular information anyway. It's the humans that matter. | 13:22 | |
jnthn | moritz_: The meta-class currently worries about those things. | ||
moritz_ | PerlJam++ | ||
jnthn | PerlJam: Well, there is that too. It's nice to know if I'm looking at an instance attribute or not. | ||
masak | so, in summary: class attrs should (1) have accessors just like instance attrs, (2) be either private or public, and (3) work right with 'augment' and inheritance. the current spec does (1) and (2) but not (3). | 13:24 | |
jnthn | masak: On the whole, I guess I think calling what the spec currently has "class attrs" is a bit misleading. | 13:25 | |
masak | jnthn: nod. | ||
how can we do better? | |||
should we just remove the ability to combine 'my' and 'our' with twigils? | 13:26 | ||
jnthn | Probably best to look at use cases. | ||
masak | I agree. | ||
jnthn | Well, that'd be a conservative thing, and wouldn't upset me. | ||
If people are writing a lexical and a method to go with it all the time, we can probably revisit the "want sugar" issue. | |||
I've not seen a lot of code where people are using this sugar though, tbh. | 13:27 | ||
masak | ok, so here's a use case: I have a class Car, and I want a class attribute .carsproduced whose method can be called on any instance and on the type object. | ||
jnthn | And it make make sense to reserve it for soemthing a bit smarter. | ||
masak | please disregard the horrible coding practice involved. :) it's just an example. | ||
jnthn | masak: Here's my real problem. "class attribute" implies some kind of storage. | ||
masak | aye. | ||
jnthn | A kind that is distinct from "where we put instance attributes", "the package" and "the lexpad". | 13:28 | |
masak | indeed. just as in Java. | ||
jnthn | And we don't have such a concept really at the moment. | ||
masak | just store it in a global hash from types to a pad. :) | ||
jnthn | Yes, and leak memory on lexical classes that go away and anonymous classes. | ||
fejl. :-) | 13:29 | ||
masak | oops. | ||
jnthn | Yes, things are never *quite* that easy. :-) | ||
(This area is one of those that makes my life awkward when it comes to lexical and anonymous classes generally. Making sure we don't get unwanted attachments.) | 13:30 | ||
masak | I see the problem. | 13:32 | |
jnthn | It's solvable. | ||
With some effort. | |||
I think that we may want to for now just say that we reserve twigils on lexicals/package scoped variables while we work out what we actually want that to mean, or what class attributes should really look like, though. | 13:33 | ||
masak | nod. this isn't at all urgent, by the way. | ||
jnthn | I figured. :-) | 13:34 | |
masak | I was just interested all of a sudden because both lue and jnthn said things I didn't agree with in the ticket. :) | ||
it would be much nicer to have 'self' in the class scope, for example. and proper attribute initialization of the form 'has $.a = 42; has $.b = $!a * 2;'. | 13:35 | ||
jnthn | huh? | 13:36 | |
Those already work but not for that reason. | |||
:-) | |||
rakudo: class Foo { has $.a = 42; has $.b = $!a * 2; }; say Foo.new.b | |||
p6eval | rakudo 35f337: OUTPUT«84» | ||
masak | oh wow :) | ||
jnthn | They work because the thingy on the RHS of an attribute is an anonymous method rather than just a closure. :-) | ||
masak | ok :) | 13:37 | |
jnthn | masak: BTW, did you see my rather cute discovery yesterday about hyperpostcircumfixes in the backlog? :-) | ||
masak | rakudo: class Foo { has $.a = 42; has $.b = $.a * 2; }; say Foo.new.b | ||
p6eval | rakudo 35f337: OUTPUT«Use of type object as value in numeric contextcurrent instr.: 'perl6;Perl6Exception;throw' pc 14812 (src/builtins/Seq.pir:77)» | ||
jnthn | wtf? | ||
Oh. | |||
masak: It's flakey at the moment. | |||
masak | jnthn: no, but I haven't backlogged completely yet. | 13:38 | |
jnthn | masak: Because I accidentally the hash. | ||
:-/ | |||
masak does that | |||
Teratogen: [backlog] stop asking that question and give us a helping hand, damnit :) | 13:40 | ||
13:41
SmokeMachine joined
|
|||
Teratogen | i want Perl 6 NOW! | 13:42 | |
I can't wait any longer! | |||
jnthn | Me too! | ||
masak | I also! | ||
13:43
ignacio_ left
|
|||
masak | Teratogen: have you used all the parts we have already? because I haven't, and I've been actively trying for two years now :) | 13:43 | |
moritz_ | hugme: hug Teratogen | ||
hugme hugs Teratogen | |||
phenny | hugme: 20 Mar 03:26Z <lue> tell hugme he is needed badly | ||
masak | hugme: hug lue | ||
hugme hugs lue | |||
masak | :) | ||
jnthn | oh wow, we got the bots talking! ;-) | 13:44 | |
Now we just need to find a way to get infinite mutual recursion... | 13:45 | ||
I mean, er, to not find... | |||
:) | |||
13:46
ash_ joined
|
|||
masak | naughty jnthn... :) | 13:46 | |
rakudo: my @a = { a => 1}, { a => 2}, { a => 3}; say @a>><a> | |||
p6eval | rakudo 35f337: OUTPUT«123» | ||
masak | jnthn: that one? cool! | ||
moritz_ | this is so cute. | ||
jnthn | masak: Yes! | ||
moritz_: Isn't it? :-) | |||
13:46
am0c joined
|
|||
colomon | that would work with a class attribute too, wouldn't it? | 13:47 | |
masak | wow yes! :) | ||
colomon | something like my Point3d @a; say @a>>.x | ||
ash_ | wow, hyper >> is working now? | 13:48 | |
jnthn | colomon: yes, that's parallel method dispatch, and works too :-) | ||
ash_: Yeah | |||
colomon | \o/ | ||
ash_ | sweet | ||
masak | say @a>>.?x :) | 13:49 | |
13:49
justatheory joined
|
|||
jnthn | masak: Should already work. | 13:49 | |
ash_ | slightly un-related, and people might of known about it already, but clang's C++ support has gotten good enough to compile the llvm and clang using clang, so it can self host, oh, and it can compiler parrot, granted its been capable of that for a while though... | 13:50 | |
moritz_ | rakudo: class Foo { method bar { 'bar' } }; say (1, 2, Foo.new)>>.?bar | ||
p6eval | rakudo 35f337: OUTPUT«bar» | ||
moritz_ | ash_: yes, I've tried it on parrot some time ago | ||
and reported some minor problems | |||
jnthn | rakudo: my @a = -1,2,-5; @a>>.=abs; say @a; | 13:52 | |
p6eval | rakudo 35f337: OUTPUT«125» | ||
ash_ | can you use >> on a hash? and what would that do? cycle thorough the kv's? | 13:53 | |
moritz_ | call the method on each pair | ||
rakudo: say { a => 2, b => 3}>>.key | 13:54 | ||
p6eval | rakudo 35f337: OUTPUT«Method 'key' not found for invocant of class ''current instr.: '!dispatch_method_parallel' pc 359 (src/glue/dispatch.pir:72)» | ||
moritz_ | NYI it seems :-) | ||
ash_ | rakudo: my %a = { a => 4, b => 3 }; %a>>.say; | ||
p6eval | rakudo 35f337: OUTPUT«a 4b 3» | ||
ash_ | seemed to work | ||
moritz_ | rakudo: my %a = { a => 4, b => 3 }; say %a>>.WHAT | 13:55 | |
ash_ | is there an extra newline in that? | ||
p6eval | rakudo 35f337: OUTPUT«Hash()» | ||
moritz_ | ash_: yes | ||
ash_ | rakudo: my %a = { a => 4, b => 3 }; %a>>.WHAT.say; | ||
p6eval | rakudo 35f337: OUTPUT«Hash()» | ||
13:56
ignacio_ joined,
kfo_ joined
|
|||
jnthn | moritz_: It doesn't just grab an iterator, >> considers the LHS in list context. | 13:57 | |
moritz_: So it goes over a list with one hash in. | |||
At least, in current impl | 13:58 | ||
Maybe we want to tweak that...dunno. | |||
moritz_ | rakudo: say [1, 2]>>.say | ||
p6eval | rakudo 35f337: OUTPUT«1211» | ||
moritz_ | rakudo: [1, 2]>>.say | ||
p6eval | rakudo 35f337: OUTPUT«12» | ||
moritz_ | jnthn: but.. a hash in list context should be the list of pairs, no? | ||
masak | >> combined with .say considered harmful :) | 13:59 | |
moritz_ | I know, it's just for testing :-) | ||
ash_ | does >> return anything? like a list? | ||
14:00
kfo left,
kfo_ is now known as kfo
|
|||
moritz_ | a Seq or a Parcel or a Capture or so | 14:00 | |
I'm not quite up-to-date | |||
rakudo: say (1, 2)>>.uc.WHAT | |||
p6eval | rakudo 35f337: OUTPUT«Parcel()» | ||
jnthn | Parcel iirc. | ||
moritz_: Hmm...good point. | 14:01 | ||
14:02
nihiliad joined,
Lorn joined
14:04
justatheory left
|
|||
mathw | masak: nonsense, it's not harmful if you don't care about determinism :P | 14:05 | |
jnthn | Consider it sugar for .pick(*).join("\n").say ;-) | 14:06 | |
masak | mathw: >> combined with .say considered harmful if you care about determinism :) | 14:07 | |
mathw | Thank you | ||
:) | |||
I know, the usual naive use of it is going to be wrong | |||
masak | but I actually think it might be bad for more reasons than that. | ||
long prints might be interleaved etc. | |||
14:08
ispeak_ left
|
|||
jnthn | Oh, yes. :-) | 14:08 | |
mathw | particularly if your interpreter goes multithreaded | ||
jnthn | Who knows what'll happen :) | ||
moritz_ | unless we define prints to be atomic | ||
mathw | that's going to be sooo much fun | ||
moritz_: I would by instinct say we should let people define an atomic output routine if they need one | 14:09 | ||
masak | I've had Parrot errors be output before the last line of ordinary output in some of my program runs. :( | ||
that's a whole bucket of not fun. | |||
jnthn | That's probably buffering confusion over anything else. | ||
mathw | aaah, buffering | 14:10 | |
I've had so much fun with that in the past | |||
14:10
PacoLinux joined
|
|||
moritz_ | $|=1 | 14:10 | |
rakudo: try { '"a' ~~ /'"' ~ '"' a/ }; say "alive"; | 14:12 | ||
p6eval | rakudo 35f337: OUTPUT«alive» | ||
moritz_ | wow, why does it break here? | ||
rakudo: say try { '"a' ~~ /'"' ~ '"' a/ }; | 14:13 | ||
p6eval | rakudo 35f337: OUTPUT«Null PMC access in type()current instr.: '_block14' pc 29 (EVAL_1:0)» | ||
masak | works here. | ||
moritz_ | ah, that's the one | ||
masak submits rakudobug | |||
moritz_ | if you use the result of the try block | 14:14 | |
rakudo: say { try die 'foo' } | |||
p6eval | rakudo 35f337: OUTPUT«_block46» | ||
moritz_ | rakudo: say try { die 'foo' } | ||
p6eval | rakudo 35f337: OUTPUT«Null PMC access in type()current instr.: '_block14' pc 29 (EVAL_1:0)» | ||
14:15
unobe left
14:16
charsbar joined
|
|||
masak | rakudo: say try {} | 14:16 | |
p6eval | rakudo 35f337: OUTPUT«Null PMC access in type()current instr.: '_block14' pc 29 (EVAL_1:0)» | ||
mathw | ick | 14:17 | |
jnthn | Rakudo really should try harder. | ||
mathw | feel free to give it a good beating | 14:18 | |
14:18
gabiruh_ joined
14:19
dukeleto_ joined,
kcwu_ joined
|
|||
masak | do we have 'use A;' in place yet? I'm fielding this question from Twitter. :) | 14:19 | |
jnthn | masak: Yes. | ||
mathw | if there's a module called A, surely that would work? | ||
moritz_ | aye | 14:20 | |
even with versions :-) | |||
jnthn | Well, there was a time when you had to pre-compile things to PIR | ||
mathw | \o/ | ||
masak | rakudo: use Test; | ||
jnthn | But that came to and end a while ago. :-) | ||
p6eval | rakudo 35f337: ( no output ) | ||
masak | rakudo: use Test | 14:21 | |
long delays... :/ | |||
p6eval | rakudo 35f337: ( no output ) | 14:22 | |
masak | locally, when I have a file with just 'use A;', it works fine. If I remove the semicolon, it says 'confused'. | ||
14:22
colomon left
|
|||
jnthn | std: use A; | 14:23 | |
std: use A | |||
p6eval | std 30169: OUTPUT«Potential difficulties: Can't locate module A at /tmp/FQGpoIxpTk line 1:------> use A⏏;ok 00:02 106m» | ||
std 30169: OUTPUT«Potential difficulties: Can't locate module A at /tmp/hIrELZGAXV line 1 (EOF):------> use A⏏<EOL>ok 00:01 104m» | |||
jnthn | :-/ | ||
masak | both are equally ok. | ||
jnthn | agree | ||
file Rakudo bug if Rakudo refuses to accept the latter. | |||
masak files rakudobug | |||
14:24
clintongormley left,
constant left,
dukeleto left,
Teratogen left,
kcwu left,
frodwith left
14:26
[synth] left
|
|||
jnthn | masak: oh btw | 14:26 | |
14:27
meteorjay joined,
[synth] joined
|
|||
jnthn | rakudo: loop (my $a = 1, my $b = 2; $a < 5; $a++, $b++) { say "$a $b"; } | 14:27 | |
p6eval | rakudo 35f337: OUTPUT«1 22 33 44 5» | ||
14:27
ash_ left
|
|||
moritz_ | \o/ item asignment | 14:28 | |
masak | jnthn: nice! | ||
jnthn | Yeah, hacked it in last night | ||
masak | jnthn++ | ||
takadonet | jnthn: WOW! | ||
jnthn++ | |||
14:28
synth left
|
|||
jnthn | If anyone has time to get us some test coverage on it, we can move it to done section in ROADMAP | 14:28 | |
14:28
synth joined
|
|||
moritz_ | asign.t has lots of tests :-) | 14:28 | |
jnthn | Same for protoregexes, btw; bkeeler++ mentioned those worked too. :-) | ||
moritz_: We don't attempt that file yet :-) | |||
moritz_ | rakudo: module Foo::Bar; | 14:30 | |
p6eval | rakudo 35f337: ( no output ) | ||
moritz_ gets Can't handle scope declarator on modules yet | |||
but it's a bit more complicated | |||
jnthn | :-/ | 14:31 | |
14:31
clintongormley joined
|
|||
moritz_ | oh | 14:31 | |
it's not just for modules, it's for all kind of packages | |||
14:31
Teratogen joined
|
|||
moritz_ | rakudo: grammar JSON::Tiny::Grammar; | 14:32 | |
p6eval | rakudo 35f337: ( no output ) | ||
moritz_ | rakudo: class JSON::Tiny::Actions | ||
p6eval | rakudo 35f337: OUTPUT«Malformed package declaration at line 11, near ""current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)» | ||
moritz_ | rakudo: class JSON::Tiny::Actions; | ||
p6eval | rakudo 35f337: ( no output ) | ||
moritz_ | std: JSON::Tiny::Actions | ||
p6eval | std 30169: OUTPUT«Undeclared name: 'JSON::Tiny::Actions' used at line 1ok 00:01 107m» | ||
moritz_ | std: class JSON::Tiny::Actions | 14:33 | |
p6eval | std 30169: OUTPUT«ok 00:01 105m» | ||
moritz_ | another semicolon parsing bug | ||
masak submits it too | |||
14:37
constant joined,
constant left,
constant joined
14:38
colomon joined
14:47
riffraff left
14:48
riffraff joined
14:49
pmichaud joined
|
|||
pmichaud | good morning, #perl6 | 14:49 | |
phenny | pmichaud: 21 Mar 08:32Z <moritz_> tell pmichaud could you please add a small guide to the nqp-rx README telling people how to update the nqp sources in parrot? it seems to lower the truck number unnecessary as is | ||
pmichaud: 21 Mar 09:06Z <moritz_> tell pmichaud I've assigned RT #73698 to you; it's blocking me from running the JSON::Tiny test suite, and I need to port JSON::Tiny to proto regexes for the book... - would be nice if you could take a look in your sparse tuits | |||
14:50
moritz_ sets mode: +o pmichaud
|
|||
moritz_ | pmichaud: sorry for bothering you before greeting :-) Oh hai pmichaud | 14:50 | |
pmichaud | moritz_: np | ||
#73698 is not likely to be an easy fix. | 14:51 | ||
moritz_ | I thought so | ||
masak | oh hai pmichaud | ||
jnthn | hi, pmichaud | 14:52 | |
pmichaud | I suspect that backslash escapes there will have to be factored out into a set of tests to be run, or we have to change the way that we handle enumerated character lists (been discussed before) | ||
moritz_ remembers the discussion | 14:54 | ||
mathw | oh hai pmichaud | 14:55 | |
15:01
ash_ joined,
_sri left
15:02
_sri joined
|
|||
pmichaud | I might be able to get the lowercase forms to work relatively quickly, though. | 15:02 | |
15:03
Guest50408 left
15:05
rgrau` joined
|
|||
ash_ | oh, btw, i tried out the INET socket stuff from alpha, it works with minimal changes in master now, if you guys want to put that back in, thats for IO::Socket::INET | 15:12 | |
masak | ash_: yes, please. :) | ||
15:13
rv2733 left
|
|||
mathw | \o/ | 15:13 | |
ash_ | i think the only change I had to make was adding a .local pmc self to INET | 15:14 | |
15:14
xalbo joined
|
|||
ash_ | i haven't tested it much (well, i can fetch google's homepage, so i assume most other stuff works) | 15:14 | |
masak | that's really all you need. :) | 15:16 | |
15:27
uniejo left
15:29
Trashlord joined
|
|||
ash_ | i don't have commit access to put it back in the master, just so you know... | 15:34 | |
PerlJam | does someone have to manually update the graph on rakudo.org/status ? | 15:36 | |
ash_ | i'd imagine not... | 15:38 | |
but i don't know for sure | |||
15:42
dukeleto_ is now known as dukeleto
|
|||
dukeleto | PerlJam: i think it works off of a csv file that pmichaud usually commits to | 15:44 | |
pmichaud | I'll write up the instructions for updating the csv | 15:46 | |
I have a script that doesit. | |||
ash_ | so, accessors are implemented basically by making a method that returns a parcel to the attribute? | 15:52 | |
15:53
mssm joined
|
|||
jnthn | Parcel to? | 15:58 | |
ash_ | the attribute? | ||
jnthn | But no, rw ones just hand back the container itself ATM | ||
15:58
christine left
|
|||
jnthn | And ro ones wrap it on a non-rw container. | 15:58 | |
In the future we may (or may not) want to replace that with some kind of Proxy object. | |||
ash_ | ah, proxy is what i was thinking of, i think... maybe | 15:59 | |
16:00
christine joined
|
|||
jnthn | :-) | 16:01 | |
colomon | o/ | 16:02 | |
ash_ | in my nq-nqp mini-language i am working on, i am almost done making an AST i can walk, so i am going to have to figure out how to actually implement objects now | ||
16:10
jaldhar left
16:11
ruoso joined,
jaldhar joined
16:21
bbkr joined
16:22
uniejo joined
16:23
payload left
16:24
payload joined
16:26
jonasbn left
16:27
ash_ left
16:28
ash_ joined
|
|||
masak ponders writing up the class-attributes discussion into a blog post | 16:31 | ||
16:32
ash_ left
16:33
payload left
|
|||
jnthn | masak: May be a good way of persisting it. :-) | 16:34 | |
masak: Though infrared clogs do that too. | |||
masak | hm, 'infrared clogs' sounds like half of a meme I ought to recognize... :) | ||
jnthn waits for the penny to drop :-) | 16:35 | ||
masak | the punny, you mean :P | ||
jnthn | ;-) | ||
masak | funnily enough, Googling it leads back to the Parrot logs :P | ||
right. IR Clogs. got it. :P | 16:36 | ||
jnthn | Yes, they're to blame for this particular one, I think. :-) | ||
masak .oO( infrared Parrot clogs... ) | 16:37 | ||
16:37
ash_ joined
|
|||
masak | jnthn: well, I'm not out to persist the discussion as much as to find a possible design sweet spot that's currently staring us all in the face. | 16:38 | |
jnthn | nod | ||
It'll also make sure that all of us went from it with the same kinda understanding of the problem space. :-) | |||
TimToady | blear | 16:39 | |
16:39
alester joined
|
|||
masak hugs TimToady good morning o/ | 16:40 | ||
16:41
TimToady sets mode: +vvvv buubot dalek hugme iblechbot,
TimToady sets mode: +vv ilogger2 IRSeekBot,
TimToady sets mode: +vv p6eval phenny
|
|||
masak | the 'infrared clogs' meme was put into purl in October 2008. one year later, people got tired of it and took it back out. | 16:41 | |
we also learn that infrared clogs are like ruby slippers, only more so. :) | |||
16:42
envi^home left
|
|||
TimToady | .oO(there's no place like ~) |
16:42 | |
jnthn | So basically it's a necromeme that just became undead? | ||
masak | jnthn: infradead. :) | ||
(as opposed to ultraviolent...) | 16:43 | ||
jnthn | lol | ||
TimToady | a werememe | ||
something that pops up every full moon or so... | |||
masak | "Wherewolf!?" -- "There wolf! There castle!" -- "Why're you talking like that?" -- "Well, you started it..." | 16:44 | |
s/Wh/W/ | 16:45 | ||
ash_ | "Wasn't your hump on the other side?" "What hump? | ||
" | |||
masak | :) | ||
diakopter | diz | 16:48 | |
16:48
cdarroch joined,
cdarroch left,
cdarroch joined
|
|||
bkeeler | Morning! | 16:50 | |
jnthn | morning, bkeeler o/ | 16:51 | |
masak | bkeeler! \o/ | ||
pmichaud | Hello, bkeeler. | 16:54 | |
bkeeler | pmichaud: Oh hai! I've been up to devious tricks with your regex engine again | 16:55 | |
pmichaud | bkeeler: so I've heard. :-) | ||
masak | bkeeler++ | ||
jnthn | .oO( I heard you liked hacking regex engines ) |
16:56 | |
masak | .oO( ...so I but a regex engine in your regex engine? ) |
16:57 | |
TimToady | I already did bkeeler++ so I don't have to bkeeler++ again. | ||
masak | s/but/put/ | ||
bkeeler | Wow, I'm popular today | ||
> my $foo = rx/o+h/; my $bar = 'it'; say "ooooohitworks" ~~ /$foo $bar works/ | |||
ooooohitworks | |||
> say "ooooohitworks" ~~ /<{ rx/o+h/ }> <{ "it" }> works/ | |||
ooooohitworks | |||
moritz_ awakes after 2 hours of sleeping like dead | |||
that could has hit me harder than I would have thought | |||
masak | moritz_: sorry to hear that. mine came and went. | 16:58 | |
bkeeler | I haven't figured out how to do @array interpolation without extending the regex compiler though | ||
moritz_ | so did my first one :-) | ||
ash_ | bkeeler: ooo, neat so you have variable interpolation in strings started? | ||
pmichaud | ...extending the regex compiler? | ||
moritz_ | bkeeler: by extending nqp-rx :-) | 16:59 | |
masak | moritz_: uh oh :/ | ||
pmichaud | for @array interpolation in regexes, we likely have to come up with a specialized node that can do the array match | 17:00 | |
bkeeler | pmichaud: the only way I can see it working is by adding a new PAST::Regex pasttype. Could be I just haven't thought | ||
pmichaud | (new pasttype) I agree, that's likely the best way at this point. | 17:01 | |
bkeeler | Aha, yeah, see we're thinking along the same lines | ||
pmichaud | I hadn't done it yet because I haven't needed it yet. :-) | ||
It's also something that impacts ltm handling at some point. | |||
bkeeler | And the "$foo = [whatever]" mechanism I also haven't figured out either | 17:02 | |
What i have so far is at github.com/bkeeler/rakudo/commit/a3...70be95b61c | 17:03 | ||
TimToady | if you do $<foo> = <{ rx/ (o+h) / }> then $<foo>[0] should get your oohs | 17:04 | |
pmichaud | bkeeler: looking | ||
TimToady | well, just one ooh in this case | 17:05 | |
pmichaud | I'm not (yet) keen on the $*ZEROWIDTH variable. | ||
so far we've been able to work without it | |||
bkeeler | > "oooooh" ~~ /$<foo> = <{ rx/(o+h)/ }>/; say $<foo> | 17:07 | |
oooooh | |||
17:07
nihiliad left
|
|||
TimToady | \o/ now can you pull out .[0]? | 17:07 | |
bkeeler | pmichaud: yeah, it feels like a hack to me too. But assertion:sym<{ }> needs to know | 17:08 | |
pmichaud | bkeeler: why? | ||
bkeeler | Because when it's <?{ ...}> it just needs to test the result for truthiness and fail or not. Otherwise it needs to interpolate the result | 17:09 | |
TimToady | I wouldn't call that ZEROWIDTH, but maybe BOOLEAN | ||
pmichaud | but that's not consistent with the way that ? and ! are handled for the other assertions | 17:10 | |
17:10
iblechbot left
|
|||
TimToady | in any case, zerowidth is enforced by the outside of the {}, not the inside | 17:10 | |
pmichaud | ? and ! generally set flags on the underlying assertion node | ||
bkeeler | Indeed. | 17:11 | |
TimToady | all you do is return a zero-width cursor | ||
but that's *after* testing the result for boolean | |||
pmichaud | right | ||
TimToady | the block doesn't need to know that | ||
pmichaud | correct. | 17:12 | |
TimToady | so yes, a lexical flag, basically | ||
a different opcode, really | |||
pmichaud | anyway, afaic $*ZEROWIDTH (or $*BOOLEAN) don't follow the pattern nqp-rx expects. | ||
TimToady | a different method call on the current Cursor, is all | 17:13 | |
bkeeler | My first cut of <{ ... }> interpolation broke <?{ ... }>. That was the fix I came up with, but I certainly open to other ideas | 17:14 | |
TimToady | and with different LTM characteristics | ||
pmichaud | <{...}> should parse as < ? {...} > | ||
where the ? is simply a modifier on the {...} assertion | |||
much like <?foo> simply has the ? as a modifier on the subrule call to 'foo' | |||
TimToady | yes, and if <!!{...}> doesn't work, it's not recursive | ||
bkeeler | I get that. | 17:15 | |
Possibly my underlying approach to the interpolation mechanism needs work to accomodate that | |||
pmichaud | um, I thought that nqp already supported code assertions, though, including <?{ ... }> and <!{...}> ? Am I misremembering? | 17:16 | |
TimToady | I suspect that you have to recognize <{...}> as a special form | ||
17:17
cotto_work left
|
|||
bkeeler | It does | 17:17 | |
moritz_ | nqp: grammar Foo { token TOP { <{ 1 + 2 } } | ||
17:17
cotto_work joined
|
|||
p6eval | nqp: OUTPUT«regex assertion not terminated by angle bracket at line 1, near " }"current instr.: 'parrot;HLL;Grammar;panic' pc 500 (src/cheats/hll-grammar.pir:197)» | 17:17 | |
moritz_ | nqp: grammar Foo { token TOP { <{ 1 + 2 }> } | ||
p6eval | nqp: OUTPUT«Unable to parse blockoid, couldn't find final '}' at line 1current instr.: 'parrot;Regex;Cursor;FAILGOAL' pc 1664 (src/Regex/Cursor-builtins.pir:179)» | ||
bkeeler | But nqp-rx doesn't do interpolation | ||
moritz_ | nqp: grammar Foo { token TOP { <{ 1 + 2 }> } } | ||
p6eval | nqp: ( no output ) | ||
TimToady | because <?{...}> has to not do interpolation | ||
bkeeler | TimToady's got it | ||
pmichaud | the difference is in the handling of the closure node in the PAST::Regex tree | 17:19 | |
if the 'zerowidth' property is set, then we check for booleanness | 17:20 | ||
if not set, then we check the result of the closure and do a match at that point | |||
17:21
[synth] left
|
|||
bkeeler | TimToady: So should <{ @foo }> work as equivalent to interpolating @foo directly? Ie, if the closure returns a Parcel, interpolate as alternations? | 17:21 | |
pmichaud | S05 says that <{ ... }> returns a regex. | ||
TimToady | well, arguable, @foo is a regex :) | ||
it's just a funny looking alternation | |||
but we could certainly restrict it over the short term | 17:22 | ||
or require people to say <{ /@foo/ }> | 17:23 | ||
funny thing about <{...}> is that it's almost equiv to $foo where that contains a non-string | 17:24 | ||
and <$foo> | |||
17:24
Coke_ joined
|
|||
Coke_ | anyone know why openfoundry.org is sending me email? I heard a rumor that it's because of pugs. | 17:24 | |
TimToady | <{...}> is more like <$foo> in assuming a string should be treated as a regex | 17:25 | |
masak | Coke_: yeah, think so. | ||
pmichaud | right | ||
TimToady | Coke_: I get it too. | ||
bkeeler | Aaah, I handled it more like $foo | ||
pmichaud | so, if <{...}> returns a regex, we run it directly | ||
if it returns anything else, we stringify it and run it | |||
17:25
holli joined
|
|||
Coke_ | masak, TimToady : I send their contact address a message asking to please stop that, and it was held for several days and finally failed to deliver. | 17:25 | |
pmichaud | (stringify it, then regexify it, then match) | ||
bkeeler | Speaking of <$foo> I guess I should implement that too | 17:26 | |
masak | Coke_: I've never complained, because I kinda like traditional Chinese characters :P | ||
TimToady | as opposed to $( ... ), which stringifies anything that isn't a Regex, and matches the string directly | ||
I ignore so much email at the best of times that it's not much pain to ignore that one :) | 17:27 | ||
Coke_ | yah, I'm not sure why it finally bothered me. =-) | ||
17:27
holli is now known as pausenclown
|
|||
masak | Coke_: 目前已緊急暫停同步機制! | 17:28 | |
I mean, it's really sweet of them to tell us... :) | |||
diakopter | fuzzy wuzzy had no hair | ||
masak | diakopter: I'm half-expecting you to turn that into a Rakudo parse failure :P | 17:30 | |
Coke_ | masak: ... what? | ||
TimToady | std: 目前已緊急暫停同步機制 | 17:31 | |
p6eval | std 30169: OUTPUT«Undeclared routine: '目前已緊急暫停同步機制' used at line 1ok 00:01 107m» | ||
jnthn | rakudo: multi postfix:<!>($x) { }; 目前已緊急暫停同步機制! | ||
p6eval | rakudo 35f337: OUTPUT«Could not find non-existent sub &目前已緊急暫停同步機制current instr.: '_block21' pc 29 (EVAL_2:0)» | ||
jnthn | :-) | ||
pausenclown | whats the recommended way to package/publish/deploy a Perl6 module? | 17:32 | |
moritz_ | pausenclown: proto - see github.com/masak/proto/ | 17:33 | |
pmichaud | pausenclown: (1) draft a packaging specification, (2) get it reviewed and approved by language designers, (3) implement the packaging specification, (4) publish your module. :-) :-) | ||
or, see "proto" :-) | 17:34 | ||
moritz_ | pmichaud: it's not *that* bad :-) | 17:35 | |
17:36
REPLeffect joined
17:38
molaf joined
|
|||
masak | Coke_: apparently, the synchronization mechanism is currently suspended for emergency. | 17:39 | |
pausenclown | my XML parser is nearly ready. i've got a w3c grammar and several action classes (Test, SimpleDom, W3CDom, and Handler) in various stages of "completeness". | ||
moritz_ | pausenclown++ | 17:40 | |
bkeeler | pausenclown++ sweet | ||
pausenclown | ty =) | 17:41 | |
i still have a problem of how to name it. i think "XML::Parser" would be too hybrish | 17:42 | ||
masak | Also, Google Translate has 本次問題造成不便之處, 深感抱歉! as "The problems caused inconvenience is deeply sorry!" :) | ||
pausenclown: no, please go ahead. | |||
pausenclown | as it would pollute that namespace for most likely better solutions | ||
lue | hello all! | 17:43 | |
masak | pausenclown: if it's an XML parser , please call it XML::Parser. | ||
lue! \o/ | |||
bbkr | is there any way to check which tokens are available in $/ object? something like $/.keys ? | ||
masak | pausenclown: the hubris only applies in a situation where there's a CPAN. | ||
lue | pmichaud: I can has permission to close bugs on RT? | ||
masak | bbkr: that oughta work, yes. | ||
bbkr: or at least %($/).keys | 17:44 | ||
17:44
hatseflats joined
|
|||
moritz_ | bbkr: $/.caps and $/.chunks - implemented in alpha, but not yet in master | 17:44 | |
17:45
hatseflats left
|
|||
bbkr | masak: first one returns --Method 'keys' not found for invocant of class 'Regex;Match'--, second one returns --Method 'keys' not found for invocant of class 'Hash'-- which is just weird :) | 17:45 | |
17:45
hatseflats joined
|
|||
masak | bbkr: what moritz_++ said. | 17:45 | |
moritz_ | rakudo: 'ab' ~~ /(.)/; say $/.PARROT | 17:46 | |
17:46
ash_ left
|
|||
moritz_ | rakudo: 'ab' ~~ /(.)/; say %( $/ ).PARROT | 17:46 | |
masak | swimming & | ||
17:46
masak left
|
|||
lue | .oO(darn, just missed pmichaud it seems) |
17:46 | |
bye masak o/ | |||
p6eval | rakudo 35f337: OUTPUT«Method 'PARROT' not found for invocant of class 'Regex;Match'current instr.: '_block14' pc 29 (EVAL_1:0)» | ||
rakudo 35f337: OUTPUT«Method 'PARROT' not found for invocant of class 'Hash'current instr.: '_block14' pc 29 (EVAL_1:0)» | |||
moritz_ | rakudo: 'ab' ~~ /(.)/; say %( $/ ).WHAT | ||
p6eval | rakudo 35f337: OUTPUT«Method 'WHAT' not found for invocant of class 'Hash'current instr.: '_block14' pc 29 (EVAL_1:0)» | ||
bkeeler | I suspect it's a parrot Hash, not a rakudo Hash? | 17:47 | |
moritz_ suspsects too | 17:48 | ||
bbkr | ok, so I'll have to wait. I ran into a problem, that if I define token as { ( <a> | <b> )* } then ASTs provided by a and b make()s are available under $/[0]<a> or $/[0]<b> (don't know which one to call). | 17:50 | |
bkeeler | You could alias them to the same thing | 17:51 | |
bbkr | how can i do that? | ||
bkeeler | ( <a> | <a=b> ) | ||
bbkr | trying... | 17:52 | |
bkeeler | or ( <foo=a> | <foo=b> ) | ||
or you could just test $/[0]<a> for truthiness | |||
bbkr | nice, that aliasing works perfectly. HUGE thanks! | 17:53 | |
bkeeler | no problem | ||
moritz_ | bbkr: just work with $0<a> // $0<b> | ||
nqp: say(3) if 1 | 17:54 | ||
p6eval | nqp: OUTPUT«3» | ||
moritz_ | nqp: say(3) if 0 | ||
p6eval | nqp: ( no output ) | ||
lue | I didn't know we had nqp here! How many evalbots _do_ we have? | ||
moritz_ | it's all a single bot. And I don't know... you'd have to read the source to find out | 17:55 | |
pugs repo, misc/evalbot/evalbot.pl or so | |||
bkeeler | We need a luebot | 17:56 | |
moritz_ | we have one | ||
bkeeler | luebot: expand acronym DXPW | ||
moritz_ | it answers with "DON'T PANIC" most of the time :-) | ||
Coke_ | nqp: say("moritz++") if "awesome" #? | 17:59 | |
p6eval | nqp: OUTPUT«moritz++» | ||
lue | Never heard the acronym DXPW :) | 18:00 | |
18:00
eternaleye left
|
|||
lue | .oO(I guess I'm special now. My nick is suffixed with bot. Proof I'm special because of this: masakbot) |
18:01 | |
18:01
nihiliad joined,
eternaleye joined
18:05
synth left,
synth joined,
Psyche^ joined
18:09
Patterner left,
Psyche^ is now known as Patterner
|
|||
lue | Is there anything in dire need of fixing? | 18:10 | |
TimToady | Perl 5? | 18:11 | |
[particle] | sigh | 18:12 | |
lue | ha ha :) | 18:13 | |
.u pm | 18:14 | ||
phenny | U+33D8 SQUARE PM (㏘) | ||
lue | .u pl | ||
phenny | U+2647 PLUTO (♇) | ||
lue | .u ph | 18:15 | |
phenny | U+33D7 SQUARE PH (㏗) | ||
pmichaud | .u mickey | ||
phenny | pmichaud: Sorry, no results for 'mickey'. | ||
18:15
payload joined,
Chillance left
|
|||
pmichaud | (darn, if we have Pluto, we ought to have Mickey as well :-) | 18:15 | |
lue | pmichaud! I can has permission to close rakudobugs on RT | ||
(nice pun) | |||
18:16
ShaneC joined
18:21
ignacio_ left
|
|||
lue | pmichaud: ping | 18:22 | |
18:22
ash_ joined
|
|||
pmichaud | lue: pong | 18:23 | |
lue | Can you give me permission to close bugs on RT? (I can't find anyone who can) | 18:24 | |
pmichaud | you know the rules for closing bugs? | ||
lue | they have to be fixed? (I guess I don't) | ||
pmichaud | fixed, *and* there has to be a test for the bug in the suite. | ||
if there's no test, we assign to 'moritz' as a placeholder. | 18:25 | ||
lue | makes sense. | ||
moritz_ | or you can write a test yourself - preferred, actually | ||
ash_ | tests are good | ||
lue | yum! | 18:26 | |
TimToady | I wonder if we should break the symmetry of say, such that [email@hidden.address] puts a newline between automatically, but 'say @foo' doesn't | ||
moritz_ wouldn't like that | |||
pmichaud votes no. | |||
moritz_ | you can still say @foo>>.say if you want that | 18:27 | |
pmichaud | .say for @foo isn't so bad :-) | ||
TimToady | >>.say is going to be a werememe | ||
moritz_ | oh right | ||
pmichaud | moritz_: ordering | ||
moritz_ | pmichaud: you're right | ||
say @foo.join("\n") | |||
also not too long | |||
TimToady | also too long :) | ||
ash_ | (stealing from ruby) @foo.each.say | 18:28 | |
TimToady | what does .each return? | ||
colomon | I'm still inclined to think that the standard mode for >>.say should give you the elements in random order. | ||
pmichaud | colomon: yes, I'd like to actually see that implemented in rakudo. | 18:29 | |
lue | if $fixed and $hastest { close($bug); }; elsif $fixed and !$hastest { (make($test) | assign($moritz));}; | ||
ash_ | in ruby it would iterate the list | ||
pmichaud | I'd like the hyperops to at least do things out of sequence | ||
ash_ | like a hyperop sorta | ||
lue | that's the rules for closing a bug, right? | ||
pmichaud | @foo.map: *.say # perhaps? | ||
ash_ | yeah | ||
moritz_ | lue: yes | ||
ash_ | .each is really .map | ||
i just forgot about .map | |||
pmichaud | for is really .map | ||
ash_ | :-x | ||
TimToady | >>.say is an attractive nuisance | 18:30 | |
colomon | pmichaud: compiling.... | ||
pmichaud | I don't feel that the order has to be random, it just needs to be unexpected :-) | ||
lue | where is .map defined? I can't find Cartographer.pm :( | 18:31 | |
colomon | but random is so easy.... ;) | ||
TimToady | pugs: (1,2,3)>>.say | ||
p6eval | pugs: OUTPUT«231» | ||
pmichaud | colomon: yes, but slowish | ||
18:31
hicx174 left
|
|||
TimToady | pugs just does a rotate | 18:31 | |
pmichaud | rotate would be fine, sure | ||
I was even thinking of "all odds follow by all evens" | |||
moritz_ | not very cache friendly | 18:32 | |
pmichaud | or, second half of list followed by first half | ||
ash_ | std: (1, 2, 3).map: .say; # is that that ugly? (or long?) | ||
p6eval | std 30169: OUTPUT«ok 00:01 106m» | ||
lue | Wait, you want to _fake_ a random ordering of elements? xkcd.com/221/ | 18:33 | |
pmichaud | one could even do 1, 0, 3, 2, 5, 4, 7, 6, ... | ||
keeps localization but definitely makes someone say "huh?" | |||
18:33
pyrimidine joined
|
|||
moritz_ | ash_: won't work - either .map: { .say } or .map: *.say | 18:33 | |
ash_ | but, isn't it supposed to? | 18:34 | |
moritz_ | no | ||
18:34
Su-Shee joined
|
|||
moritz_ | .say is executed before being passed as an argument to map | 18:34 | |
colomon | rakudo: for 1, 2, 3 -> $x, $y { say $x; say $y; } | ||
p6eval | rakudo 35f337: OUTPUT«12StopIterationcurrent instr.: '_block14' pc 29 (EVAL_1:0)» | ||
colomon | interesting message. | ||
ash_ | moritz_: okay, thanks, i thought that would get passed for some reason | ||
moritz_ | ash_: you could use .map: &say of course | 18:35 | |
colomon | rakudo: for 1..5 -> $x, $y { say $x; say $y; } | ||
pmichaud | rakudo's 'for' still isn't implemented using .map | ||
p6eval | rakudo 35f337: OUTPUT«1234StopIterationcurrent instr.: '_block14' pc 29 (EVAL_1:0)» | ||
pmichaud | we need sink context first | ||
at which point it will complain about calling the block with two few params | |||
as in | |||
colomon | pmichaud: I know, I even came up with a one-liner to prove it. ;) | ||
pmichaud | (1..5).map( -> $x, $y { say $x; say $y; }) | ||
rakudo: (1..5).map( -> $x, $y { say $x; say $y; }) | |||
p6eval | rakudo 35f337: ( no output ) | ||
pmichaud | rakudo: (1..5).map( -> $x, $y { say $x; say $y; }).eager | 18:36 | |
p6eval | rakudo 35f337: OUTPUT«1234Not enough positional parameters passed; got 1 but expected 2current instr.: '_block48' pc 327 (EVAL_1:130)» | ||
colomon | rakudo: (1..5).map( -> $x, $y? { say $x; say $y; }).eager | ||
p6eval | rakudo 35f337: OUTPUT«12345Any()» | ||
colomon | okay, I can work with that. | ||
ash_ | what is $y supposed to be in that case? | ||
on the last iteration? | |||
moritz_ | an undefined value | ||
pmichaud | undef :-) | ||
TimToady | maybe say is just different from print, and always puts "\n" between elements | ||
ash_ | Mu? | ||
got ya | |||
TimToady | use 'say ~@foo' for the other | ||
pmichaud | say "I don't think", "we want", "that"; | 18:37 | |
moritz_ | but shouldn't it be Muu? | ||
*Mu | |||
18:37
ignacio_ joined
|
|||
moritz_ | block parameters default to Mu, not Any, after all | 18:37 | |
(or did that get changed?) | |||
TimToady | pmichaud: say cat "I think", "maybe", "we do" | ||
pmichaud | say "You received ", $a+$b, " coins."; | ||
TimToady | alternately, we need a serial hyper | 18:38 | |
pmichaud | would serial hyper be something like S>> ? | ||
TimToady | yes, but that's ugly :) | ||
pmichaud | then we need a better metachar for "serial" :-) | ||
moritz_ | @list\S>>.say ? | ||
>S> maybe? :-) | |||
not quit serious... | |||
colomon | @list S>>.say ? | ||
pmichaud | maybe semi, since it implies serialization anyway? @list;>>.say :-P | 18:39 | |
colomon | ugh. | ||
moritz_ | noooo | ||
jnthn | eww | ||
moritz_ | that means that after parsing @list; you need to look ahead if your statemnt is actually finished | ||
pmichaud | no, ltm takes care of that | ||
;>> would be longer token than ; | |||
TimToady | confusing to the eye though | ||
pmichaud | agreed, not a great suggestion | ||
moritz_ | pmichaud: parse mentally, I mean | 18:40 | |
pmichaud | moritz_: ah. | ||
TimToady | we were thinking of using ` and \ for R and S earlier | ||
moritz_ | does that work out well with interpolation? | ||
lue | ⌨>> maybe? (couldn't find a unicode character for serial...) | ||
colomon was very happy that R and S won out... | |||
pmichaud | anyway, "serial hyper" sounds to me like it wants a different token altogether | 18:41 | |
jnthn much prefers R and S | |||
moritz_ | say "foo @bar\>>bar()" | ||
pmichaud | too bad we can't easily make use of the | versus || meme here | ||
TimToady | @foo*>.say | ||
pmichaud | so that > would be parallel and >> would be serial | ||
colomon | jnthn: what function implements >> op ? hyper(&op, @arg) | ||
jnthn | colomon: Yup | ||
colomon: Same one for >> and << | |||
colomon: I figured it'd work out fine. | |||
colomon | right, it's just that I changed it and can't see any difference. :\ | 18:42 | |
moritz_ | forgot to save + recompile? :-) | ||
lue | When you say serial, I can't help but think of serial ports :) [:::::::] | ||
jnthn | Hm. :-/ | ||
PerlJam | lue: you serial port has far too many pins | ||
s/you/your | 18:43 | ||
jnthn | say all(@foo); # quite short :-) | ||
oh wait | |||
18:43
synth left
|
|||
jnthn | say takes many args | 18:43 | |
damm. | |||
18:43
synth joined
|
|||
lue | [:::::::::::::::::::::::::::] # <--- probably a printer port | 18:43 | |
pmichaud | maybe the solution is a different .say | ||
TimToady | another option is just .sayall | 18:44 | |
pmichaud | yeah, that. | ||
jnthn | yeah | ||
PerlJam | [:::;:] <-- bent pin | ||
TimToady | .say'em | ||
moritz_ was thinking about autovivification recently | |||
jnthn | I like that better than inventing a whole new meta-op. | ||
TimToady | well, unless it's a general problem that needs a general solutoin | ||
io | |||
moritz_ | how does my %h; %h<foo>.push: 1; know how to autovif to %h<foo> to Array? | 18:45 | |
possible answer: %h<foo> evaluates to a Cool type object | |||
colomon | rakudo: (1..10).pick(*).eager.perl.say | ||
p6eval | rakudo 35f337: OUTPUT«(10, 1, 2, 3, 8, 9, 4, 6, 5, 7)» | 18:46 | |
moritz_ | and Cool.push has an rw invocant, and generates a new Array and stores that in the invocant slot | ||
pmichaud | moritz_: %h<foo> evaluates to Any(), and Any() autovivifies into a hash when subscripted | ||
or otherwise treated like a hash | |||
jnthn | pmichaud: I'm guessing that's not in place...or? | 18:47 | |
moritz_ | so... there's a method Any.push that is called when you do %h<foo>.push('bar') | ||
pmichaud | moritz_: it's only available on the protoobject | ||
so it's not really Any.push | |||
moritz_ | ah | ||
pmichaud | (jnthn: correct, nyi) | ||
moritz_ | so how would you modify that from user space? | ||
jnthn | method push($self:U: ) { ... } | ||
moritz_ | oh | ||
is that implemented? | |||
pmichaud | nyi | ||
18:48
hicx174 joined
|
|||
jnthn | No, but I can do the :D/:U/:S/...yeah I need to read the spec...quite easily. :-) | 18:48 | |
TimToady | $self:!D :) | ||
jnthn | oh no...not really? | ||
:-P | |||
TimToady | no, not really, I like :U | ||
jnthn | phew | ||
:-) | |||
TimToady | to easy to misread :!D | ||
actually considered and reject that idea some time ago... | 18:49 | ||
*ed | |||
moritz_ | is :D considered to be part of the nominal type in multi dispatch? | ||
lue | Define them in Internet::Emotes :) | ||
TimToady | well, it's sort of a subset | ||
moritz_ | so "no" | ||
TimToady | so in theory, no, but we'd like those to run fast | 18:50 | |
moritz_ | and also when you call Any.new.push, you'll get a multi dispatch error, not a "no such method" error, right? | ||
a "no applicable candidate" error, I mean | 18:51 | ||
TimToady | btw, $self:U is no good, wants Any:U $self: | ||
or Cool:U, if we do it moritz's way | 18:52 | ||
pmichaud | please don't have %h<foo> return a Cool | ||
%h<foo> should be the same as my $foo; | |||
moritz_ | why? | ||
TimToady | but the subsettiness of it is probably not a big performancy issue, since Any/Cool is already nominally looser than Hash/Array | ||
performancy, I like that | |||
pmichaud | since my $foo is initialized to Any(), an undefined subscript of an aggregate should do the same | 18:53 | |
i.e., assuming that my %h; is the same as my Any %h; | |||
TimToady | ah, right | ||
maybe we should initialize to Cool instead. :) | |||
pmichaud | probably not, since Cool really is a restrictive subset | 18:54 | |
my %h; %h<foo> = UserType.new; # oops | |||
TimToady | yeah, Cool is mostly supposed to be interconversion of scalars | ||
pmichaud | if we put too much into Cool, it becomes Any | ||
TimToady | nodnod | ||
so that really does force the return of a WHENCE type object rather than a (defined) Proxy, if autoviv is mediated by :U | 18:56 | ||
pmichaud | correct. | ||
jnthn | I suspect my first cut will be to have :D and :U as syntactic sugar | ||
moritz_ is happy with Any:U $self | |||
jnthn | CAn look at optimizing them | ||
in the future. | |||
pmichaud | rakudo's Proxy is entirely intended to be a temporary stopgap. | ||
i.e., until we have WHENCE available | 18:57 | ||
jnthn | And yes, I meant Any:U - thinko'd. :-) | ||
TimToady | std: my $self; say $self:U | ||
p6eval | std 30169: OUTPUT«ok 00:01 108m» | ||
TimToady | hmm | 18:58 | |
pmichaud | .oO(adverb?) |
||
TimToady | that's...probably bogus | ||
certainly not | |||
colomon | Huh. I added some says, and hyper(&op, @arg) is definitely not being called when I say (1..10)>>.say. | ||
I did save, and I did recompile. :\ | |||
pmichaud | I wouldn't expect hyper method call to go through hyper(...) | ||
TimToady | I probably just hacked in :U at the wrong spot | ||
pmichaud | but perhaps I'm wrong about that. | ||
TimToady | unless we want to allow my $type = Any; $type:U, but that's using :U as a postfix, not a name extender | 18:59 | |
jnthn | pmichaud: They don't. | 19:00 | |
colomon: Oh. I didn't know you were trying to fiddle with parallel dispatch. :-) | |||
colomon: That's different. | |||
See src/glue/dispatch.pir. | |||
hyper(...) handles ops e.g. >>++ | 19:01 | ||
TimToady | you'd have to do something like my &temp = *.say; hyper(&temp, @arg) | ||
er, := | |||
jnthn | TimToady: Meh, no thanks. :-) | ||
19:01
jonasbn joined
|
|||
colomon | jnthn: ah, I see. | 19:01 | |
19:01
jonasbn left
|
|||
TimToady | jnthn: well, but that might be the correct way. | 19:02 | |
jnthn | TimToady: Probably not. | ||
TimToady | in terms of function composability | ||
probably so, I'd say | 19:03 | ||
jnthn | TimToady: *.perl probably comes out as * | ||
pmichaud can't remember the rt admin url | |||
jnthn | @foo>>.perl wocming out as * would kinda suck. :-) | ||
Anyway, I've done that bit, I'd rather spend time on stuff that doesn't work, not re-hashing dispatchy stuff I've already re-done several times. :-) | |||
19:03
molaf left
|
|||
pmichaud | ah, found it. | 19:03 | |
darn case-sensitive urls | |||
19:04
jmarti joined
|
|||
TimToady | just sayin' if you bypass hyper you might end up reinvent a lot of wheels as soon as someone tries to compose with other metaops | 19:05 | |
we don't have many unary metaops yet, but you never know | |||
substitute 'my &temp := { $_.say }' if it makes you happier | 19:06 | ||
to unify all postfixes including methods, you have to have some way of curring all the provided args without currying the invocant | 19:07 | ||
*currying | |||
curring: turning into a cur | |||
then you can use hyper() for methods too | |||
jnthn | It may work out that way, but you end up with a bunch of extra closure invocations. | ||
TimToady | now you're talking like an optimizer, possibly a premature one :P | 19:08 | |
jnthn | I'm too lazy to re-do it? :P | ||
Anyway, it probably can work out that way. It's just kinda a little lower on my list of stuff to do. | 19:09 | ||
TimToady | fine, it just feels like a kind of thing that would simplify your life in the long run | ||
19:10
jaldhar left
|
|||
jnthn | We'll almost certainly be re-visiting the hypers within the next six months anyway and re-doing them somewhat. | 19:14 | |
(Once the parallelism primitives are available.) | |||
lue | .u 26E3 | ||
phenny | U+26E3 (No name found) | ||
lue | .u 2683 | ||
phenny | U+2683 DIE FACE-4 (⚃) | ||
TimToady still wonders if we'll end up with a .each junction that represents bare serialization | 19:17 | ||
bkeeler | rakudo: say chr (0x26E0 .. 0x26E5).pick(1) | 19:18 | |
p6eval | rakudo 35f337: OUTPUT«⛤» | 19:19 | |
bkeeler | rakudo: say chr (0x2680 .. 0x2685).pick(1) | ||
p6eval | rakudo 35f337: OUTPUT«⚅» | ||
bkeeler | Yay, a six. I win! | ||
lue | rakudo: say chr (0x2680 .. 0x2685).pick(1) | 19:21 | |
ash_ | lol, unicdoe has a die face? | ||
p6eval | rakudo 35f337: OUTPUT«⚀» | ||
ash_ | thats kinda amusing | ||
jnthn | Unicode has everything. :-) | ||
lue | ash_: unicode comes with defense armor. See the backlogs from a few hours ago. | ||
We had a fun night of playing with unicode :) | |||
rakudo: say chr (0x2680 .. 0x2685).pick(1) | |||
p6eval | rakudo 35f337: OUTPUT«⚀» | ||
bkeeler | But heaven forbid it do Klingon | ||
lue | exactly :( | 19:22 | |
TimToady | if we had an each junction, then it's just @foo.each.say | ||
just because Ruby does it doesn't mean we shouldn't :) | |||
jnthn | $rubyometer++ | ||
;-) | |||
pmichaud | lue: ping | 19:23 | |
lue | pong | ||
pmichaud | what's your rt id? | ||
TimToady | jnthn: does each look like something that would be easy to autothread as a junction? | ||
19:23
lichtkind joined
|
|||
lue | is that a number? my nick is lue, and my email is [email@hidden.address] | 19:24 | |
pmichaud | nick is good | ||
lue | to conclude the unicode bit: You've got four astral planes (0x10FFFF), and you can't set aside ~20 for klingon? | ||
(the hex number is the # of spots for characters) | |||
TimToady | hardest trick might be to make each lazy, so you could say each(1..*) * 2 and end up with 2,4,6...* | 19:25 | |
ash_ | TimToady: would you want a symbol for it too? like if 5 == @a.each.foo { "foo returns 5" } | 19:26 | |
(i didn't use one, but it might make that more understandable maybe? | |||
TimToady | each would not be used in boolean context directly | ||
ash_ | ah | ||
19:26
payload left
|
|||
TimToady | or would have to assume all() in that case, perhaps | 19:26 | |
bkeeler | Someone needs to go crazy on the Unicode committee members with a Bat'leth, that's what I think | ||
19:27
payload joined
|
|||
TimToady | each would be an inside out map, really | 19:27 | |
each(1,2,3) + 5 is the same as (6,7,8) | |||
it could be done as a junction, or as some other similar type outside of Any | 19:28 | ||
lue | that's klingon for bludgeon (I guess?) | ||
19:28
PZt left
|
|||
bkeeler | en.wikipedia.org/wiki/List_of_weapo...Bat.27leth | 19:29 | |
lue | Unicode needs to stop being so...prissy about keeping space open. There's more then enough space for all the fake languages and their scripts. :) | ||
TimToady | and if junctions are currently autothreaded serially, then it's the same algorithm that is currently used; we'd just have to suppress parallization when that gets invented | ||
*llel | 19:30 | ||
Use the Private Use Area or I will kill you! | |||
19:31
payload left
|
|||
lue | "you" being...? (Unicode Consortim, hopefully?) | 19:31 | |
19:31
jmarti left,
synth left
|
|||
TimToady | the Unicode committee is actually run by Klingons, and they don't want us hacking into their systems with an iBook on Independence Day. | 19:31 | |
19:32
synth joined
|
|||
pmichaud | lue: you now have bugadmin privs (I think) | 19:32 | |
lue | I'll just wait for the Hitchhiker's Computer to come out. It comes with the ISLS (better than unicode) | ||
pmichaud: \o/ | |||
TimToady | little do they realize that Perl supports tr/// with Unicode characters | 19:33 | |
lue | tr/// ? that's not... | ||
TimToady | I am speaking of the Platonic Perl here... | ||
lue | ISLS: InterStellar Languages Standard. Unicode, prepare to die! :) | 19:34 | |
19:35
ignacio_ left
|
|||
lue | (Any decent encoding standard would have Larry Wall to find all languages ever invented and to make sure it's all in order :) ) | 19:36 | |
19:36
am0c left
19:37
am0c joined
|
|||
PerlJam | lue: they're hard at work cloning the TimToady consciousness right now ... all they need to do is find some suitable hardware to run him on. | 19:38 | |
lue | Pah! You'd need the Intel Camel processor, and that doesn't exist on Earth (yet) | ||
GLASS (Galactic Language Archive & Service Standard) | 19:40 | ||
ash_ | hmm, i don't wana be annoying about it, but since it seems more people might reading the irc channel now, IO::Socket::INET from alpha can be ported into master now, almost directly, there is 1 change to some pir code needed to get it to work | 19:41 | |
if anyone with commit access to rakduo wants to cp files :p | |||
TimToady | ISLS actually stands for "It Seems Larry Said", but don't tell anyone that. | 19:42 | |
lue | ISLS that there was no contradiction between STD.pm and the Synopses. | 19:43 | |
that works quite well :D | |||
ash_ | you need to add a .local pmc self and assign it a value in IO/Socket/INET.pm | ||
TimToady | I'd rather have no contradiction between STD.pm and the Synapses. | 19:46 | |
lue | My brain frequently contradicts reality :) | 19:47 | |
19:48
eiro joined
|
|||
lichtkind | jnthn: ping | 19:52 | |
19:52
iblechbot joined
19:55
eiro_ joined
19:56
quietfanatic left
19:57
mberends joined
|
|||
lue thinks the RT is a great way to find stuff to work on | 19:57 | ||
19:58
eiro left
|
|||
pmichaud | afk, kid and wife errands | 19:58 | |
19:58
eiro_ is now known as eiro
|
|||
colomon | \o | 19:59 | |
lue | bye o/ | ||
rakudo: use Test | |||
p6eval | rakudo 35f337: ( no output ) | ||
lue | rakudo: use Test; | ||
p6eval | rakudo 35f337: ( no output ) | ||
jnthn | ash_: I may get chance later today, but today is a tad crowded. :-/ | 20:00 | |
ash_ | no worries, just making sure you guys know its not hard to get working | 20:01 | |
lue | std: use Test; | 20:08 | |
diakopter | std: say ++ 3 | ||
p6eval | std 30169: OUTPUT«ok 00:01 104m» | ||
std 30169: OUTPUT«ok 00:01 106m» | |||
lue | std: use Test | ||
p6eval | std 30169: OUTPUT«ok 00:01 104m» | ||
diakopter | std: ++ ++ 3 | 20:09 | |
p6eval | std 30169: OUTPUT«ok 00:01 106m» | ||
lue | is it legal to leave off the semicolon? | ||
diakopter | I guess so, if it's the last statement in the block/compilation unit | ||
PerlJam | semicolons are statement separators. If there's nothing to separate, there's no need for a semicolon | ||
TimToady | std: use Testuse Test | 20:10 | |
p6eval | std 30169: OUTPUT«Illegally post-declared type: 'Test' used at line 2Undeclared routine: 'use' used at line 2ok 00:01 105m» | ||
TimToady | std: use Testmy $x = 1; | ||
p6eval | std 30169: OUTPUT«ok 00:01 106m» | ||
TimToady | hmm | ||
I guess that's legal expression | |||
will initialize $x at compile time though, I suspect | 20:11 | ||
lue | Ooh! STD return an error without a bunch of symbols! | ||
TimToady | and pass it as an argument to 'use Test' | ||
symbols? | |||
lue | STD: fail miserably | 20:12 | |
TimToady | you mean like the color codes? | ||
20:12
clintongormley left
|
|||
TimToady | std: 42 43 | 20:12 | |
p6eval | std 30169: OUTPUT«===SORRY!===Two terms in a row at /tmp/9R2uWux2GL line 1:------> 42 ⏏43 expecting any of: bracketed infix infix or meta-infix statement modifier loopFAILED 00:01 106m» | ||
TimToady | the === are red, the 42 is green, the 43 is red and the ⏏ is kinda yellowish | ||
lue | all those symbols! ,⏏, and | ||
TimToady | your client doesn't handle ANSI color then | 20:13 | |
lue | Is there any way I can parse those correctly in my irc client? | ||
TimToady | (irssi does) | ||
lue | would XChat? | ||
20:13
justatheory joined
|
|||
TimToady | ENOKLOO | 20:13 | |
lue | ECANTERRORLARRY (encountered when ESPELLING was attempted to be sent to TimToady) | 20:14 | |
20:14
molaf joined
|
|||
mberends | ash_: thanks for investigating IO/Socket/INET.pm, I'll probably get a round tuit in an hour or two | 20:14 | |
TimToady | interestingly, the logger handles the latter colors, but doesn't translate the red ==='s right. | 20:15 | |
the latest version of XChat supposedly handles ansi colors | 20:16 | ||
Coke_ | ah. I just realized that the std output looked much less verbose after switching irc clients. Guess that'd do it. =-) | ||
TimToady | might not be turned on by default, of course | ||
lue | lemme switch over quickly | ||
20:17
quietfanatic joined,
lichtkind left
20:19
lue left
|
|||
Tene | .u ⏏ | 20:19 | |
phenny | U+23CF EJECT SYMBOL (⏏) | ||
TimToady | EJECT as in "You're outta here!!!" | ||
20:20
frodwith joined
|
|||
ash_ | i'd alias die to ⏏ | 20:20 | |
TimToady | "Here is where I flipped your bozo bit." :) | ||
ash_ | ⏏ "you dun it wrong" | 20:21 | |
TimToady | ash_: we picked ⏏ to be something people *wouldn't* be likely to use in their program. :) | ||
and because it looks like a pointer, and because it has "mass" | |||
20:22
lue joined
|
|||
lue | std: fail | 20:22 | |
20:22
cdarroch left
|
|||
p6eval | std 30169: OUTPUT«ok 00:01 105m» | 20:22 | |
lue | ...of course :) | ||
TimToady | and, actually, it's in there becuase some people are red/green colorblind | ||
lue | std: raocow | ||
p6eval | std 30169: OUTPUT«Undeclared routine: 'raocow' used at line 1ok 00:01 105m» | ||
lue | std: 42 43 | ||
p6eval | std 30169: OUTPUT«===SORRY!===Two terms in a row at /tmp/4xqmWoaDX9 line 1:------> 42 ⏏43 expecting any of: bracketed infix infix or meta-infix statement modifier loopFAILED 00:01 106m» | ||
TimToady | std: say grep { $_ % 2 } 1..* | 20:23 | |
p6eval | std 30169: OUTPUT«===SORRY!===Missing punctuation (semicolon or comma?) after block at /tmp/e15EpNwccR line 1:------> say grep { $_ % 2 }⏏ 1..* expecting any of: bracketed infix infix or meta-infix statement modifier loopFAILED 00:01 107m» | ||
TimToady | I had to work to get the pointer after the } rather than before the 1 | 20:24 | |
lue | color codes didn't parse :/ ah well, at least I see a bunch of 001B's | 20:25 | |
TimToady | std: say grep { $_ % 2 } #`[could be a comment here] 1..* | ||
p6eval | std 30169: OUTPUT«ok 00:01 107m» | ||
lue | .u 001B | ||
phenny | U+001B (No name found) | ||
TimToady | hmm | ||
stdbug | |||
PerlJam | std: say grep { $_ % 2 } | 20:27 | |
p6eval | std 30169: OUTPUT«ok 00:01 106m» | ||
[particle] | bugs are one size fits all | ||
PerlJam | looks like it might be mis-parsing the comment | ||
lue | what does #` do? | 20:28 | |
PerlJam | lue: introduces a "long" comment delimited by the bracketing chars | 20:29 | |
20:29
plobsing joined
|
|||
PerlJam | lue: possibly multi-line | 20:29 | |
20:30
bkeeler_ joined
|
|||
lue thinks of getting a Perl script for XChat that parses ANSI color codes... | 20:30 | ||
TimToady | std: say grep { $_ % 2 } #`[could be a comment here] 42 43 | 20:31 | |
p6eval | std 30169: OUTPUT«ok 00:01 107m» | ||
TimToady | yes, must be misparsing as line-end | ||
std: say grep { $_ % 2 } #`[could be a comment here]42 43 | 20:32 | ||
p6eval | std 30169: OUTPUT«===SORRY!===Two terms in a row at /tmp/ilKbdPmQ5W line 2:------> 42 ⏏43 expecting any of: bracketed infix infix or meta-infix statement modifier loopFAILED 00:01 106m» | ||
TimToady | yup | ||
PerlJam | std: say grep { $_ % 2 } #`[could be a comment here] 1..* | 20:33 | |
p6eval | std 30169: OUTPUT«ok 00:01 106m» | ||
PerlJam | std: say grep { $_ % 2 } #`[could be a comment here]1..* | ||
TimToady | separate statement though | ||
p6eval | std 30169: OUTPUT«ok 00:01 106m» | ||
PerlJam | oh | ||
TimToady | the } terminates the previous | 20:34 | |
std: say grep { $_ % 2 } #`(could be a comment here) 42 43 | |||
p6eval | std 30169: OUTPUT«ok 00:01 107m» | ||
TimToady | std: say grep { $_ % 2 } #`<> 42 43 | 20:35 | |
p6eval | std 30169: OUTPUT«ok 00:01 106m» | ||
TimToady | consistent, I'll give it that... | ||
lue | std: say grep { $_ % 2 } #'«hem» 42 43 | ||
p6eval | std 30169: OUTPUT«ok 00:01 106m» | ||
TimToady | std: say grep { $_ % 2 } #` 42 43 | ||
p6eval | std 30169: OUTPUT«===SORRY!===Opening bracket is required for #` comment at /tmp/Lk8jHgBUO6 line 1:------> say grep { $_ % 2 } #`⏏ 42 43FAILED 00:02 106m» | ||
PerlJam | std: say grep { $_ % 2 }#`<> 42 43 | ||
p6eval | std 30169: OUTPUT«===SORRY!===Two terms in a row at /tmp/icbn0x5QCl line 2:------> #`<> 42 ⏏43 expecting any of: bracketed infix infix or meta-infix statement modifier loopFAILED 00:01 106m» | ||
lue | ooh! | 20:36 | |
TimToady | again, } was at EOL, so terminated statement | ||
PerlJam | (just checking) | ||
(I'm sometimes stubborn that way :) | 20:37 | ||
TimToady | well, time to run a trace | ||
ah, it's the } eol checker that's bypassing the comment somehow | 20:38 | ||
std: #`<> 42 43 | |||
p6eval | std 30169: OUTPUT«===SORRY!===Two terms in a row at /tmp/a0ip6CLDr5 line 1:------> #`<> 42 ⏏43 expecting any of: bracketed infix infix or meta-infix statement modifier loopFAILED 00:01 106m» | ||
TimToady | std: {} #`<> 42 43 | ||
p6eval | std 30169: OUTPUT«ok 00:01 105m» | ||
lue | rakudo: grep { $_ % 2 } #`<hi> 42 43 | 20:39 | |
20:39
kaare_ joined
|
|||
p6eval | rakudo 35f337: OUTPUT«Not enough positional parameters passed; got 1 but expected 2current instr.: 'grep' pc 279505 (src/gen/core.pir:8713)» | 20:39 | |
20:39
bkeeler_ left
|
|||
lue | .u s-shaped | 20:40 | |
phenny | U+27C5 LEFT S-SHAPED BAG DELIMITER (⟅) | ||
lue | .u right s-shaped | ||
phenny | U+27C6 RIGHT S-SHAPED BAG DELIMITER (⟆) | ||
lue | std: {} #`⟅harumph⟆ 42 43 | ||
p6eval | std 30169: OUTPUT«ok 00:01 106m» | ||
PerlJam | lue: I think that rakudo doesn't grok #`() comments yet | 20:41 | |
20:42
kaare_ left
|
|||
lue | rakudo: #`<comment> | 20:42 | |
p6eval | rakudo 35f337: ( no output ) | ||
lue | it does, apparently | ||
PerlJam | lue: everything to end of line is a comment | ||
lue | oh (duh) :) | ||
PerlJam | rakduo: # foosay "hi" | ||
rakudo: # foosay "hi" | |||
p6eval | rakudo 35f337: OUTPUT«hi» | 20:43 | |
PerlJam | rakudo: #`[foo] foosay "hi" | ||
p6eval | rakudo 35f337: OUTPUT«hi» | ||
PerlJam | rakudo: #`[foo] say "blah"say "hi" | ||
p6eval | rakudo 35f337: OUTPUT«hi» | ||
lue | std: #`<hellothere> | ||
p6eval | std 30169: OUTPUT«ok 00:01 105m» | ||
lue | rakudo: #`<hellothere> | ||
p6eval | rakudo 35f337: OUTPUT«Confused at line 12, near "there>"current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)» | ||
lue | you're right, it doesn't. | ||
PerlJam | If I ever make a fork of rakudo for my own nefarious purposes, I'm going to name it rakduo since that seems to be a pattern my fingers like to type | 20:44 | |
lue | is #67124 on RT this multicomment bug? | 20:45 | |
PerlJam | no | 20:48 | |
lue submits rakudobug | |||
PerlJam | though I suspect that now, the snippet that worked no longer does so. | 20:49 | |
rakudo: say "foo" ~~ / fo #[ comment here! ] o / | |||
p6eval | rakudo 35f337: OUTPUT«Confused at line 11, near "say \"foo\" "current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)» | ||
lue is embarrased to admit, but can't find the new ticket button :/ | 20:50 | ||
PerlJam | just email [email@hidden.address] | ||
lue | that's boring :( | 20:51 | |
moritz_ | std: say "foo" ~~ / fo #[ comment here! ] o / | 20:52 | |
p6eval | std 30169: OUTPUT«===SORRY!===Regex missing terminator at /tmp/v81CF8Znar line 1 (EOF):------> say "foo" ~~ / fo #[ comment here! ] o /⏏<EOL>Other potential difficulties: Embedded comment without backtick is deprecated at /tmp/v81CF8Znar line 1:------> | ||
..[32… | |||
TimToady | the #` code didn't commit to that match, so it ended up backtracking to the # code | ||
moritz_ | std: say "foo" ~~ / fo #`[ comment here! ] o / | 20:53 | |
p6eval | std 30169: OUTPUT«ok 00:01 107m» | ||
PerlJam | rakudo: say "foo" ~~ / fo #`[ comment here! ] o / # for completeness | ||
p6eval | rakudo 35f337: OUTPUT«Confused at line 11, near "say \"foo\" "current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)» | ||
TimToady | but the backtracking is caused by curlycheck, so doesn't happen in regex | 20:54 | |
testing a fix | |||
testing a different fix :/ | 20:58 | ||
testing a third fix :( | 21:01 | ||
maybe I should fix the underlying bug... | |||
lue | Failed Initiative of eXtermination (FIX) | 21:02 | |
21:03
molaf_ joined
|
|||
lue | (back in a flash) | 21:03 | |
21:03
lue left
|
|||
TimToady | maybe I should just take a nap... | 21:04 | |
zzz & | |||
Trashlord | yeah | 21:05 | |
some food and sleep will do me good too | |||
21:06
molaf left
21:11
nihiliad left
21:12
lue joined,
nihiliad joined
|
|||
lue | did I miss anything? | 21:13 | |
colomon | You missed TimToady's grand declaration that he's moving on to Perl 7 now... | 21:15 | |
21:16
rv2733 joined
|
|||
moritz_ | wait, is it April 1st already? | 21:16 | |
lue | What? And let me guess, he stopped irclog.perlgeek.de from logging before he announced that :) | ||
colomon | He set up an S.E.P. | 21:17 | |
;) | |||
moritz_ | in theory, lines beginning with [OFF] should not be recorded by the IRC logs | ||
lue | Somebody Else's Problem ? | ||
colomon | lue: yes. | ||
moritz_: handy, that. | 21:18 | ||
lue | (please oh please let that not show up on record) | ||
colomon | jnthn: everyone knew that alreadyt. | ||
jnthn | Damm, everyone knows all my secrets! | 21:19 | |
21:19
wallberg joined
|
|||
colomon | rakudo: my @a = -1, 4, -16, 3; @a.sort({.abs}).perl.say | 21:20 | |
p6eval | rakudo 35f337: OUTPUT«(-1, 3, 4, -16)» | ||
21:21
mssm left
|
|||
lue | If there are ever | 21:23 | |
then someone used [OFF]. | |||
rakudo: role A {}; multi sub infix:<==>(A $a, A $b) {}; 42 == 42 | 21:25 | ||
p6eval | rakudo 35f337: ( no output ) | ||
21:26
Su-Shee left
|
|||
lue | rakudo: multi sub infix:<+> ($l,$r) { $l ~ $r }; say( 1 + 2 ) | 21:27 | |
p6eval | rakudo 35f337: OUTPUT«12» | ||
moritz_ | I'm surprised there's no tighter candidate | 21:28 | |
lue | you added a test for this bug a while ago (#66552). It seems resolved, but I'm not sure... | ||
pugssvn | r30170 | lwall++ | [STD] workaround fact that :: doesn't correctly suppress relexing of multi tokens | 21:29 | |
moritz_ | lue: does rakudo actually run the test file? | ||
lue | let's see... | ||
dalek | kudo: db0f857 | moritz++ | t/spectest.data: run more teest files |
||
jnthn | moritz_: Lexical multis are kinda not done yet. :-) | ||
colomon | oooo, moritz_++ | 21:30 | |
moritz_ | jnthn: so... the inner lexical wins, even though it's not tighter? | ||
lue | still open, then? | ||
jnthn | moritz_: at the moment | ||
moritz_: It's a NYI/bug. | |||
moritz_ | lue: as long as the test file is not run, yes | 21:31 | |
21:33
jaldhar joined
|
|||
lue | and it doesn't seem like it would atm | 21:34 | |
moritz_ | even if I fudge out the tests that don't compile, I get a strange error without any location info | 21:35 | |
dalek | kudo: 5886ef7 | moritz++ | (4 files): enable build on parrot after pcc_hackathon_6Mar10 merge |
||
21:35
riffraff left
|
|||
moritz_ | Method 'set_candidates' not found for invocant of class 'Sub' | 21:35 | |
current instr.: '' pc -1 ((unknown file):-1) | |||
21:35
uniejo left
|
|||
moritz_ hates error messages without location info | 21:37 | ||
colomon | anything cool from the parrot merge? | 21:41 | |
moritz_ | something that helps sorear++ with blizkost, iirc | ||
21:42
pyrimidine left
|
|||
moritz_ | MyGrammar.parse doesn't seem to set $/ :( | 21:42 | |
bkeeler | correct, it does not | 21:44 | |
jnthn | moritz_: Does that just enable the build or does it pass the tests too? :-) | ||
moritz_ | jnthn: it passes the tests too | ||
jnthn | moritz_: er, how? :-/ | ||
moritz_ doesn't understand the question | 21:45 | ||
jnthn | moritz_: Well | ||
Parrot_ext_call(interp, dispatcher, "PP->P", sub, $1, &junc_result); | |||
YOu can't just go deleting the code that does something with junc_result! | |||
lue | parrot: say "hello" | 21:46 | |
jnthn | ...unless it's working...by accident. :-/ | ||
Which is even more scary. | |||
moritz_ | jnthn: I didn't come up with that - bacek did. And afaict it all works | ||
bkeeler | But that result is clearly a pile of junc | ||
jnthn | It looks like bull to me, but I'll check into it later. | 21:47 | |
I can't imagine how, other than some strange bit of luck, the return value is getting propogated. | 21:48 | ||
moritz_ says "strange bit of luck" | |||
jnthn | Well, maybe it is, but it's crappy API design too. | ||
Looks like, "Here's the return value from the thing you called...but hey don't worry, you don't need to say you want it as the return value for the current sub too, we just leave that pointer around." :-/ | 21:49 | ||
moritz_ redirects jnthn to #parrot | 21:51 | ||
jnthn kinda can't be bothered. | |||
lue | A redirect to #parrot is only recommend for those who own Norweigan Blues | 21:53 | |
pugssvn | r30171 | moritz++ | [t/spec] basic tests for proto regexes, including some action methods | 21:54 | |
jnthn | \o/ | 21:55 | |
moritz_: Do those pass too?! :-) | |||
moritz_ | aye :-) | ||
jnthn | \o/ | ||
One roadmap item down. :-) | |||
lue | (I vote we use HTTP status codes as part of the #perl6 code. See en.wikipedia.org/wiki/List_of_HTTP_status_codes) | ||
moritz_ | I'd appreciate a second pair of eyes on them, though | ||
lue | moritz_++ | ||
418! 418! | 21:57 | ||
dalek | kudo: eae8b29 | moritz++ | t/spectest.data: we pass some basic protoregex tests |
21:58 | |
lue | .oO(status code 501 is rakudo's motto almost) |
21:59 | |
bkeeler | Looks fine to me | ||
moritz_ | thanks bkeeler... what *should* I write into the body of the proto token? | 22:00 | |
bkeeler | Whatever you want it to match | 22:01 | |
Oh, you mean the <...> thing | |||
jnthn | <...> is the only thing you can write in the proto token itself. | ||
bkeeler | I believe it has to be <...> though I'm not sure why | ||
jnthn | I think i'ts like the regex version of ... | 22:02 | |
Kinda declaring a stub | |||
ish. :-) | |||
STD uses it heavily too. | |||
22:04
ruoso left
|
|||
bkeeler | S05 doesn't spec it though | 22:04 | |
The example there has proto token sigil { } | 22:05 | ||
moritz_ | I'll use <...> in the test; can't be that wrong :-) | ||
bkeeler | May as well | 22:06 | |
jnthn | I think it's correct. | ||
lue | afk (and in the meantime drafting the SubEtha-Net Protocol, The Hitchhiker's Computer, and a new character encoding) | ||
pugssvn | r30172 | moritz++ | [t/spec] use <...> in proto regex defintion, as per jnthn++ and bkeeler++ | ||
22:07
lichtkind joined
22:08
justatheory left
22:10
PZt joined
|
|||
moritz_ | www.perlmonks.org/?node_id=830168 anyone wants to give a Perl 6 answer? :-) | 22:13 | |
jnthn | Rat. :-) | 22:15 | |
22:16
riffraff joined
|
|||
moritz_ just writes it up | 22:17 | ||
22:21
jaldhar left,
jaldhar joined,
jaldhar left,
jaldhar joined
22:36
Coke_ left
22:37
meteorjay left
22:41
SmokeMachine left
22:43
meteorjay joined
22:47
wknight8111 joined
|
|||
jnthn yawns | 22:48 | ||
Not sure I'm going to get much Perl 6 stuff done today :-( | 22:49 | ||
22:49
nihiliad left
|
|||
jnthn | EDAYJOB :-) | 22:49 | |
22:50
xomas joined
22:51
iblechbot left
22:54
synth left
23:09
wallberg left
23:11
rgrau` left,
jaldhar left
23:16
riffraff left
23:17
ash_ left
23:22
vamped joined
23:29
lichtkind left
23:51
ruoso joined
|