»ö« | 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
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
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?)
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 11␤current 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
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
lue rakudo: pass 00:57
p6eval rakudo 53707f: OUTPUT«Could not find non-existent sub &pass␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
lue pass DOES work inside if's and such, right?
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 &a␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
lue rakudo: if 3==3 { pass; }
p6eval rakudo 53707f: OUTPUT«Could not find non-existent sub &pass␤current 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
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/
colomon o/ 01:13
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
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.
diakopter vps liveth 01:43
lue afk 01:45
colomon wishes he knew what the heck is going on with hyper.t. 02:34
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)
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
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
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
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
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
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
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
Teratogen isn't there Unicode for Klingon? 05:02
lue nope, it's not allowed (read wikipedia) 05:03
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 (ጷ)
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 (⌨)
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 58␤Confused 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
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
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 :) )
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 notation␤FAILED 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' :)
vamped lue: look at: search.cpan.org/~zoffix/POE-Compone...ode/UCD.pm 06:32
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 RONG␤in 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)
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
azawawi good morning 07:09
sorear hello
pugssvn r30169 | colomon++ | [t/spec] Fudge hyper.t for Rakudo. 07:12
mathw Good {localtime}, #perl6! 08:20
sjohnson yo 08:21
mathw hey sjohnson 08:25
sjohnson hi matt 08:25
jnthn morning, folks 08:33
moritz_ m\o/rning
moritz_ stretches 08:34
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
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
jnthn afk, boring bank stuff 09:52
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.
masak oh hai, #perl6 11:07
colomon o/
masak drops a pin 11:13
arnsholt *BONG*
=)
masak class Pin { method drop() { say '*BONG*' } } 11:16
mathw ow 11:19
mathw stepped on the pin
hejki class Band { method age() { ... } 11:21
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
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.
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++
Coke_ rakudo: 3 12:19
rakudo: 3.say 12:20
p6eval rakudo 35f337: ( no output )
rakudo 35f337: OUTPUT«3␤»
cognominal I concur : great post. jnthn++ # use.perl.org/~JonathanWorthington/journal/40258 12:36
moritz_ indeed it is 12:42
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
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
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.
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
masak with a twigil. 13:11
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 context␤current 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
Teratogen i want Perl 6 NOW! 13:42
I can't wait any longer!
jnthn Me too!
masak I also!
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...
:)
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? :-)
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
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 4␤b 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()␤»
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«1␤2␤11␤»
moritz_ rakudo: [1, 2]>>.say
p6eval rakudo 35f337: OUTPUT«1␤2␤»
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?
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
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.
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
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)␤»
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
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'.
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
jnthn masak: oh btw 14:26
jnthn rakudo: loop (my $a = 1, my $b = 2; $a < 5; $a++, $b++) { say "$a $b"; } 14:27
p6eval rakudo 35f337: OUTPUT«1 2␤2 3␤3 4␤4 5␤»
moritz_ \o/ item asignment 14:28
masak jnthn: nice!
jnthn Yeah, hacked it in last night
masak jnthn++
takadonet jnthn: WOW!
jnthn++
jnthn If anyone has time to get us some test coverage on it, we can move it to done section in ROADMAP 14:28
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
moritz_ oh 14:31
it's not just for modules, it's for all kind of packages
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 1␤ok 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
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
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
pmichaud I might be able to get the lowercase forms to work relatively quickly, though. 15:02
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. :)
mathw \o/ 15:13
ash_ i think the only change I had to make was adding a .local pmc self to INET 15:14
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
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
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
jnthn Parcel to? 15:58
ash_ the attribute?
jnthn But no, rw ones just hand back the container itself ATM
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
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
masak ponders writing up the class-attributes discussion into a blog post 16:31
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
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
masak hugs TimToady good morning o/ 16:40
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. :)
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
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
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
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
bkeeler It does 17:17
moritz_ nqp: grammar Foo { token TOP { <{ 1 + 2 } }
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 1␤current 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
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>
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
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. =-)
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 1␤ok 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
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
moritz_ bbkr: $/.caps and $/.chunks - implemented in alpha, but not yet in master 17:44
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
masak bbkr: what moritz_++ said. 17:45
moritz_ rakudo: 'ab' ~~ /(.)/; say $/.PARROT 17:46
moritz_ rakudo: 'ab' ~~ /(.)/; say %( $/ ).PARROT 17:46
masak swimming &
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
lue
.oO(I guess I'm special now. My nick is suffixed with bot. Proof I'm special because of this: masakbot)
18:01
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'.
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)
lue pmichaud: ping 18:22
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«2␤3␤1␤»
pmichaud colomon: yes, but slowish
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?"
moritz_ ash_: won't work - either .map: { .say } or .map: *.say 18:33
ash_ but, isn't it supposed to? 18:34
moritz_ no
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«1␤2␤StopIteration␤current 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«1␤2␤3␤4␤StopIteration␤current 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«1␤2␤3␤4␤Not enough positional parameters passed; got 1 but expected 2␤current instr.: '_block48' pc 327 (EVAL_1:130)␤»
colomon rakudo: (1..5).map( -> $x, $y? { say $x; say $y; }).eager
p6eval rakudo 35f337: OUTPUT«1␤2␤3␤4␤5␤Any()␤»
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
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
jnthn say takes many args 18:43
damm.
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
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. :-)
colomon jnthn: ah, I see. 19:01
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. :-)
pmichaud ah, found it. 19:03
darn case-sensitive urls
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
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?
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
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
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?)
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!
lue "you" being...? (Unicode Consortim, hopefully?) 19:31
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
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
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
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
lichtkind jnthn: ping 19:52
lue thinks the RT is a great way to find stuff to work on 19:57
pmichaud afk, kid and wife errands 19:58
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 Test␤use Test 20:10
p6eval std 30169: OUTPUT«Illegally post-declared type:␤ 'Test' used at line 2␤Undeclared routine:␤ 'use' used at line 2␤ok 00:01 105m␤»
TimToady std: use Test␤my $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?
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 loop␤FAILED 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?
TimToady ENOKLOO 20:13
lue ECANTERRORLARRY (encountered when ESPELLING was attempted to be sent to TimToady) 20:14
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
Tene .u ⏏ 20:19
phenny U+23CF EJECT SYMBOL (⏏)
TimToady EJECT as in "You're outta here!!!"
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"
lue std: fail 20:22
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 1␤ok 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 loop␤FAILED 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 loop␤FAILED 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
PerlJam lue: possibly multi-line 20:29
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 loop␤FAILED 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 43␤FAILED 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 loop␤FAILED 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 loop␤FAILED 00:01 106m␤»
TimToady std: {} #`<> 42 43
p6eval std 30169: OUTPUT«ok 00:01 105m␤»
lue rakudo: grep { $_ % 2 } #`<hi> 42 43 20:39
p6eval rakudo 35f337: OUTPUT«Not enough positional parameters passed; got 1 but expected 2␤current instr.: 'grep' pc 279505 (src/gen/core.pir:8713)␤» 20:39
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
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: # foo␤say "hi"
rakudo: # foo␤say "hi"
p6eval rakudo 35f337: OUTPUT«hi␤» 20:43
PerlJam rakudo: #`[foo] foo␤say "hi"
p6eval rakudo 35f337: OUTPUT«hi␤»
PerlJam rakudo: #`[foo] say "blah"␤say "hi"
p6eval rakudo 35f337: OUTPUT«hi␤»
lue std: #`<hello␤there>
p6eval std 30169: OUTPUT«ok 00:01 105m␤»
lue rakudo: #`<hello␤there>
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
lue (back in a flash) 21:03
TimToady maybe I should just take a nap... 21:04
zzz &
Trashlord yeah 21:05
some food and sleep will do me good too
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
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
colomon rakudo: my @a = -1, 4, -16, 3; @a.sort({.abs}).perl.say 21:20
p6eval rakudo 35f337: OUTPUT«(-1, 3, 4, -16)␤»
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 )
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
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
moritz_ Method 'set_candidates' not found for invocant of class 'Sub' 21:35
current instr.: '' pc -1 ((unknown file):-1)
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
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.
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++
moritz_ www.perlmonks.org/?node_id=830168 anyone wants to give a Perl 6 answer? :-) 22:13
jnthn Rat. :-) 22:15
moritz_ just writes it up 22:17
jnthn yawns 22:48
Not sure I'm going to get much Perl 6 stuff done today :-( 22:49
jnthn EDAYJOB :-) 22:49