»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
sorear o/ Radvendii 00:11
lichtkind good night 00:45
o/
Util (when the time comes) how do I post my day's article to perl6advent ? 01:10
sorear: what kind of questions? Maybe me. 01:11
sorear Util: I'm not sure what the capturing behavior of <~~0> is supposed to be 01:19
dalek ecza: b8a5ff0 | sorear++ | / (5 files):
Treat quantifiers as partially declarative whenever at all possible
01:44
dalek ecza: 45041d2 | sorear++ | / (5 files):
Implement $() @() %() special forms, make $/.ast default to undef
02:26
Radvendii are there plans for making perl-style graphics? 03:10
colomon what is "perl-style graphics"? 03:14
nom: say ~(1..5) 03:15
p6eval nom 06bbaa: OUTPUT«1 2 3 4 5␤»
colomon niecza: say ~(1..5)
p6eval niecza v12-40-g45041d2: OUTPUT«1..5␤»
colomon sorear: mind if I change Range.Str to conform to nom/spec?
sorear colomon: no 03:18
colomon nom: say (1..5).perl 03:19
p6eval nom 06bbaa: OUTPUT«1..5␤»
colomon niecza: say ~(1, 3, 5, 10) 03:20
p6eval niecza v12-40-g45041d2: OUTPUT«1 3 5 10␤»
dalek ast: 94e7168 | (Solomon Foster)++ | S03-operators/range-int.t:
Change .munch(N) to .[^N].
03:24
colomon sorear: okay, my next commit will have ~480 additional working tests for niecza. ;) 03:26
errr... assuming I didn't break something? 03:32
sorear I may have broken a thing or two; I don't spectest continuously
If I broke things, they're probably in regexes 03:33
colomon no, it's me. 03:34
colomon it's range.t, it was massively fudged for niecza, but in the case I'm looking at, it was TODO'd when it needs to be skipped. easy enough to fix 03:35
dalek ecza: af8d58a | (Solomon Foster)++ | lib/CORE.setting:
Make Range.Str conform to the spec.
03:52
ecza: 86bc474 | (Solomon Foster)++ | t/spectest.data:
Turn on S03-operators/range-int.t.
ast: 2311165 | (Solomon Foster)++ | S03-operators/range.t:
Refudge for niecza.
03:53
colomon with the new fudging on range.t, it ought to be 500+ new passing tests.
colomon sorear: Unhandled exception: Autoloading NYI 04:15
any idea how I might have triggered that?
dalek ast: 7b0eeb3 | (Solomon Foster)++ | S05-mass/rx.t:
Refudge for niecza.
04:16
sorear colomon: :P5 04:17
abercrombie Hi all, why .* in a regex in rakudo doesn't backtrack? 04:18
sorear abercrombie: Because you put parentheses around it.
abercrombie but niecza does it?
sorear colomon: that error message is kind of a fossil; when I was first trranslating niecza into Perl 6, :Perl5 relied on "require" to work, which wasn't implemented 04:19
abercrombie: Backtracking/parentheses is a bug which gets reported here pretty much daily.
colomon looks like that might be it
sorear abercrombie: sadly, the Rakudo regex engine currently has a bus number of 0
abercrombie ok. So currently is there a way to make rakudo does backtrack even .* in parenthese? Or should I add some thing? I 04:20
sorear I am not aware of any workaround 04:21
abercrombie Then which way is the standard? I mean (.*), according to standard, it should or not backtrack? 04:22
sorear abercrombie: Should.
abercrombie Thanks!
moritz the presence of parens should have no influence on backtracking
abercrombie ok, I got it. Thank you, experts. 04:23
dalek ecza: 886540f | sorear++ | / (5 files):
Implement $var in regexes using Regex objects as subregexes (fixes #77)
04:47
colomon sorear: working on epic refudge of rx.t 04:49
going to have to quite halfway through and go to sleep
sorear colomon: how much was rx.t fudged before? 04:50
colomon might not have been fudged at all for niecza
it's very heavily fudged for pugs and rakudo
we're going to have to skip or todo about 125 tests.
but that least us with nearly 600 working tests
dalek ast: 03a5b5c | (Solomon Foster)++ | S05-mass/rx.t:
Epic fudging for niecza, not yet complete.
04:51
sorear meanwhile, I'm trying to implement as much of S05 as I possibly can before the 26th
colomon hopefully having a mostly working rx.t will be a big help. :) 04:52
or at least, will be mildly useful.
afk # sleep 04:55
japhb Is the bus number of regex in nom 0 because it's currently too complex to understand without a tutor, or because no one wants to learn something that is "about to" change, or something else entirely ...?
g'night, colomon
sorear japhb: it's 0 because pmichaud's wife has cancer and there is a massive tuit shortage in the Michaud household 04:56
japhb sorear, I apologize, I was unclear. I knew about pmichaud's wife and the related issues. I meant, why has no one else picked it up yet? 04:57
sorear japhb: I can't speak for everyone. My personal reason for not picking up QRegex is that I have a regex engine of my own to deal with. 04:59
japhb Sure, understood. I guessed your reason, of course. I was asking the channel at large, to find out if there was a reason none of the other regulars picked it up. 05:01
moritz japhb: uhm, jnthn and diakopter did a fair bit of qregex hacking 05:03
japhb moritz, ISTR jnthn++ saying he felt only qualified to make minor changes ...? Or is that an out of date comment? 05:04
moritz japhb: seems out of date-ish 05:05
japhb Ah, that's good to hear!
moritz japhb: for example he added :i, and helped diakopter++ with the DFA creation and backslash escapes in char classes
japhb Ah good. Then we have at least bus number .5. ;-) 05:06
moritz tries to sleep once more
japhb sleep well
dalek ecza: 95e0703 | sorear++ | / (4 files):
Implement @var in regexes, incl. LTM and regex elements
06:16
dalek atures: ad5db4a | moritz++ | features.json:
nom has ObjAt
07:06
jnthn morning! 07:23
sorear hi jnthn 07:23
moritz \o jnthn, sorear 07:24
jnthn sorear, japhb: It's not that I can't hack on QRegex and figure it out, given time to do it; I've fixed and added various bits. It's only code. It is, however, much less familiar than most of Rakudo to me, and hard to just quickly throw patches in to. I could hack on it in Nov 'cus I ignored my $dayjob a lot. :-) This month I had to pay a bit more attention to it. :-) 07:27
dalek atures: 9886972 | moritz++ | features.json:
niecza interpolates arrays into regexes
07:28
dalek ecza: 854dc3f | sorear++ | / (3 files):
Less-insane implementation of regex_infix:<~>

The new implementation runs as a normal-ish quantifier, instead of creating a pseudo subrule. It uses the backtracking mechanism to set and reset $*GOAL as needed. Needs more tests.
07:33
kudo/nom: 8ea0b2b | moritz++ | src/core/ObjAt.pm:
ObjAt needs its own WHICH method, since it is a value type
07:35
atures: 8908da3 | sorear++ | features.json:
Niecza does conjunction too now
07:36
sorear -> sleep
jnthn phenny: tell kboga thanks for the feedback - fixed the bugs :) 07:37
phenny jnthn: I'll pass that on when kboga is around.
moritz szabgab: de.arxiv.org/abs/1112.3335 I didn't know you were into lithography :-) 09:59
niecza: constant x = (1, 2, 3); .say for x; 10:07
p6eval niecza v12-45-g854dc3f: OUTPUT«1␤2␤3␤» 10:08
moritz nom: constant x = (1, 2, 3); .say for x;
p6eval nom 8ea0b2: OUTPUT«===SORRY!===␤Cannot handle constant x with non-literal value yet at line 1, near "= (1, 2, 3"␤»
szabgab moritz: :) 10:10
moritz nom: do { die "foo"; CATCH default { } }; say $! 10:51
p6eval nom 8ea0b2: OUTPUT«===SORRY!===␤Missing block at line 1, near "default { "␤»
moritz nom: do { die "foo"; CATCH { default { } } }; say $!
p6eval nom 8ea0b2: OUTPUT«Exception.new()␤»
moritz nom: do { die "foo"; CATCH { default { } } }; say $!.Str
p6eval nom 8ea0b2: OUTPUT«foo␤»
flussence nom: say 'abc'.indent(4) 11:17
p6eval nom 8ea0b2: OUTPUT«Method 'indent' not found for invocant of class 'Str'␤ in block <anon> at /tmp/Cz3rzZIxa1:1␤ in <anon> at /tmp/Cz3rzZIxa1:1␤»
flussence I've got working code for that, if anyone wants it...
b: say 'abc'.indent(4)
p6eval b 1b7dd1: OUTPUT« abc␤»
flussence niecza: say 'abc'.indent(4)
p6eval niecza v12-45-g854dc3f: OUTPUT«Unhandled exception: Unable to resolve method indent in class Str␤ at /tmp/tsZ6hF77HW line 1 (mainline @ 1) ␤ at /home/p6eval/niecza/lib/CORE.setting line 2229 (ANON @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line 2230 (module-CORE @ 58) ␤ at /home…
flussence doesn't work on niecza, though :( 11:18
tadzik flussence: wasn't that you who implemented it in nom in the first place?
flussence I did the old version, I just remembered I'd fixed it up for nom too 11:19
moritz flussence: but you didn't submit a patch, did you?
flussence hm, probably not :)
(it's not in patch-ready form yet, I've done it as a bunch of subs) 11:20
moritz moritz.faui2k3.org/tmp/exceptions.pod proposed advent post for today 11:21
I'll probably leave for lunch in a few minutes, but will backlog for feedback
and then publish (unless the general feedback is "don't publish" :-) 11:22
tadzik haha, nice title ;)
moritz: t accesses an attribute that wasn't declare in class -- s/declare/declared/? 11:25
moritz aye 11:26
tadzik moritz: the last code snippet misses a } I think
method message() { "Permission denied: $.reason";
moritz thanks 11:27
moritz should actually test his code :-)
tadzik I very like it, and learned stuff from it. moritz++
erm, really like it
moritz \o/
ok, corrected, and actually works now 11:29
btw an exception class can chose not show the backtrace by overwriting .gist 11:30
if you write multi method gist(X::MyType:D) { $.message }
you get no backtrace by default
but somebody who catches the exception can still call .backtrace on the object to obtain it 11:31
but maybe there should be a boolean $.show-bt option or so, and the default .gist respects that, or so 11:32
tadzik or a dynvar 11:33
moritz I don't think that property belongs to a dynamic scope 11:34
I mean, there are typically two use cases for exceptions
one to signal an error to the user
tadzik possibly. I'm just throwing ideas around :)
moritz and one to bail out when an internal error is detected
so IMHO it would make sense to have two separate throw functions for that
tadzik why so? 11:35
moritz error 'You entered a bad number'; # surpressed backtrace by default, directed at the user
die 'OH NOEZ, something bad happened'; # internal error, directed at the programmer; should include a backtrace by default
tadzik I think in the second case you're unlikely to bother with the backtrace. You'll just read the type, and possibly the message... oh,the message prints backtrace by default?
moritz not the message, the outer-most exception handler 11:36
tadzik okay. I think if it's not something user-directed, it shouldn't probably be caught by the outer-most EH. I'll rather care about catching it and present it to a user in an appropriate way 11:37
moritz if it's not caught by the outer-most EH, the excpetion silently aborts the program 11:38
afk, lunch 11:39
tadzik mapofcpan.org/#/ 12:16
jnthn moritz++ # dat title 12:22
jnthn Rakudo switched to X::Comp objects - missing are 12:25
jnthn I don't like your nose either :P 12:25
moritz++ 12:26
tadzik :P 12:27
flussence funny thing is, PHP's had an entire exception class hierarchy like this for years... and it doesn't use it! 12:29
tadzik :) 12:30
dalek ast: aea2197 | (Solomon Foster)++ | S05-mass/rx.t:
Finish epic fudging for niecza.
12:32
moritz perl6advent.wordpress.com/2011/12/1...ceptional/ # now online 12:41
moritz submitted to news.ycombinator.com/item?id=3355907 too 12:44
Juerd I love exceptions in Perl 6. Thanks for reminding me that they're beautiful. 12:48
moritz you're welcome
colomon phenny: tell sorear rx.t is now fudged for niecza. There are something like 125 tests fudged, so it feels weird to add it to to spectest.data. On the other hand, there are 600 or so tests that pass, which would be good to test. Your opinion? 12:57
phenny colomon: I'll pass that on when sorear is around.
colomon phenny: tell sorear your latest patches have already broken my fudging! ;) 12:58
phenny colomon: I'll pass that on when sorear is around.
geekosaur heh 13:09
[Coke] jnthn++ pmichaud++ moritz++ sorear++ colomon++ 13:32
colomon: IMO, if the test runs, fudged, and has 1 passing test, all is well. 13:34
if ALL the tests are fudged, then maybe not.
moritz wow, >2k page views on the advent calendar today 13:54
[Coke] huh. looks like I now have booking.com's routing numbers!
moritz mostly due to jnthn++'s excellent posting on meta programming, coming from hacker news, reddit and twitter (in that order)
[Coke] (assuming checks in the EU work like checks in the US.) 13:55
jnthn moritz: oh, the meta-programming post got widespread? :) 14:10
nice :)
Happy it was liked.
Well. read. ;)
moritz jnthn: yep, 1.9k views on just that page 14:11
[Coke] jnthn++, nice article. 14:12
jnthn Hm. In front of a class doing stuff on the whiteboard is a bad time to discover you've no clue how to draw an &. :) 14:16
.oO( by h& )
moritz yes, that takes some practise :-) 14:17
jnthn Good job I don't teach C. :) 14:19
flussence & is an upside-down duck, more or less
huf it's benjamin franklin 14:20
pot-bellied dude in a... the long tailed coat
[Coke] do it "cursive". 3, reversed, with a | 14:25
colomon [Coke]: unfortunately, the file now has 0 tests passing, as it fails with a mysterious error it didn't get before sorear++'s latest changes.
jnthn I'm not sure cursing would have helped
oh, wait...you meant... :) 14:26
[Coke] colomon: well, that sucks.
colomon agreed
flussence jnthn: might help to remember that it's just a stylised "Et" ligature - it's supposed to be an unintelligible squiggle! 14:27
jnthn flussence: OH! That's where it came from! 14:27
colomon [Coke]: I mean, it's dying hard -- it never actually starts executing the file, as far as I can tell. 14:28
I think it must be dying while parsing the regexes
jnthn Die Hard with a Regex 14:29
[Coke] *snrk* 14:30
colomon now working on locating the problem using proof by intimidation. 14:35
moritz just found out that the ear plugs on his mp3 player are not free of side effects -- without them, radio receiving functionality doesn't work 14:36
seems it abuses the cables to ear plugs as an antenna. Clever.
colomon oh yeah, my old iRiver did something like that
flussence I think I had an old electronics set that did that :)
colomon but I never actually used the radio functionality... 14:37
colomon phenny: tell sorear the crash occurs in the following regex: 'abcdef' ~~ /<[dcb]>**{3}/ 14:42
phenny colomon: I'll pass that on when sorear is around.
colomon niecza: say 'abcdef' ~~ /<[dcb]>**{3}/
p6eval niecza v12-45-g854dc3f: OUTPUT«Unhandled exception: Unable to resolve method postcircumfix:<( )> in class Any␤ at /home/p6eval/niecza/src/RxOp.pm6 line 141 (Quantifier.code @ 15) ␤ at /home/p6eval/niecza/src/niecza line 66 (RegexBody.code @ 20) ␤ at /home/p6eval/niecza/src/Op.pm6 lin…
colomon there it is. 14:43
sjn nom: ("a".."p" X~ 1..24)».say 15:11
p6eval nom 8ea0b2: OUTPUT«m17␤a10␤d22␤c6␤p9␤e6␤a18␤m13␤f7␤m23␤k6␤g15␤f21␤l15␤d6␤p8␤d13␤e3␤p13␤f18␤m9␤o14␤p21␤e23␤k14␤b14␤n15␤b4␤k23␤d18␤n21␤j7␤j18␤n8␤l20␤e15␤d8␤f23␤p4␤j19␤c4␤h5␤g20␤m12␤c11␤e22␤g23␤f20␤m19␤h2␤l23␤n17␤i2␤n23␤m20␤m11␤c9␤m21␤o22␤l11␤e11␤m1␤h16␤b7␤j1␤i18␤o8␤m22␤h18␤g12␤j22␤c18􏿽xE2􏿽x90
sjn question... why isn't that list sorted in some way?
moritz sjn: >> is supposed to parallelize
sjn ooh
moritz sjn: so it's not intended for things that produce side effects
colomon nom: for ("a".."p" X~ 1..24) { .say } 15:12
p6eval nom 8ea0b2: OUTPUT«a1␤a2␤a3␤a4␤a5␤a6␤a7␤a8␤a9␤a10␤a11␤a12␤a13␤a14␤a15␤a16␤a17␤a18␤a19␤a20␤a21␤a22␤a23␤a24␤b1␤b2␤b3␤b4␤b5␤b6␤b7␤b8␤b9␤b10␤b11␤b12␤b13␤b14␤b15␤b16␤b17␤b18␤b19␤b20␤b21␤b22␤b23␤b24␤c1␤c2␤c3␤c4␤c5␤c6␤c7␤c8␤c9␤c10␤c11␤c12␤c13␤c14␤c15␤c16␤c17␤c18␤c19␤c20␤c21␤c22␤c23␤c24␤d1􏿽xE2
sjn ok
is there a non-parallelizing equivalent to »?
moritz .map 15:13
sjn equivalent, as in "can replace » directly in this example" 15:14
no matter 15:16
moritz: thanks anyway :) 15:18
btw
is there a way I could have found out this fact (» being parallelizing) using some introspection feature? 15:19
sjn (sorry about all the silly questions, hope I'm not being too annoying here) 15:22
moritz sjn: not really; it's a feature that the compiler implements directly, it's not done via introspectable objects 15:27
and no, not annoying; perl 6 questions are exactly what this channel is for :-) 15:28
jnthn nom: ("a".."p" X~ 1..24).map: *.say 15:29
p6eval nom 8ea0b2: ( no output )
jnthn oh heh, too lazy
nom: .say for "a".."p" X~ 1..24 # kinda clean
p6eval nom 8ea0b2: OUTPUT«a1␤a2␤a3␤a4␤a5␤a6␤a7␤a8␤a9␤a10␤a11␤a12␤a13␤a14␤a15␤a16␤a17␤a18␤a19␤a20␤a21␤a22␤a23␤a24␤b1␤b2␤b3␤b4␤b5␤b6␤b7␤b8␤b9␤b10␤b11␤b12␤b13␤b14␤b15␤b16␤b17␤b18␤b19␤b20␤b21␤b22␤b23␤b24␤c1␤c2␤c3␤c4␤c5␤c6␤c7␤c8␤c9␤c10␤c11␤c12␤c13␤c14␤c15␤c16␤c17␤c18␤c19␤c20␤c21␤c22␤c23␤c24␤d1􏿽xE2
moritz nom: sink ("a".."c" X~ 1..4).map: *.say
p6eval nom 8ea0b2: OUTPUT«a1␤a2␤a3␤a4␤b1␤b2␤b3␤b4␤c1␤c2␤c3␤c4␤»
flussence ooh, I've never seen "sink" before... 15:30
jnthn it should really sink itself there
flussence what's the difference between that and "eager"?
moritz flussence: "eager" keeps the values
flussence: "sink" knows it can discard them 15:31
flussence oh!
moritz nom: sink 1.map: &die 15:32
p6eval nom 8ea0b2: OUTPUT«1␤ in method reify at src/gen/CORE.setting:4346␤ in method reify at src/gen/CORE.setting:4253␤ in method reify at src/gen/CORE.setting:4253␤ in method gimme at src/gen/CORE.setting:4614␤ in method eager at src/gen/CORE.setting:4590␤ in method eager at src/gen/CO…
moritz though it doesn't seem to take advantage of that fact
jnthn Don't be so sure without checking the code. :-) I've seen :$sink parameters int eh list implementation :) 15:33
moritz just looked at the "eager" methods and thought "it takes the same code path"
ack -w sink src/core 15:34
finds only 3 matches
and statement_prefix:sym<sink> emits a call to &eager, without extra arguments 15:35
jnthn ugh 15:36
fail
Guess Pm never finishd that bit then.
moritz and it seems the :$sink argument is never passed 15:40
sorear good * #perl6 15:45
phenny sorear: 12:57Z <colomon> tell sorear rx.t is now fudged for niecza. There are something like 125 tests fudged, so it feels weird to add it to to spectest.data. On the other hand, there are 600 or so tests that pass, which would be good to test. Your opinion?
sorear: 12:58Z <colomon> tell sorear your latest patches have already broken my fudging! ;)
sorear: 14:42Z <colomon> tell sorear the crash occurs in the following regex: 'abcdef' ~~ /<[dcb]>**{3}/
dalek ecza: a50ac9b | sorear++ | src/RxOp.pm6:
Fix typo on RxOp.pm6:141 (colomon++)
15:49
sorear phenny: tell colomon ('abcdef' ~~ /<[dcb]>**{3}/) fixed. 15:55
phenny sorear: I'll pass that on when colomon is around.
sorear yay, rx.t passes now. 15:57
moritz finds that he doesn't understand ListIter at all 16:16
let me try to summarize... 16:22
List has an RPA called $!items that holds the items that have been reified already 16:23
it also a $!nextiter, which is presumably of type ListIter 16:24
or is it?
nom: say (1..*).list.WHAT
p6eval nom 8ea0b2: OUTPUT«List()␤»
moritz nom: say nqp::getattr((1..*).list, List, '$!nextiter').WHAT 16:25
p6eval nom 8ea0b2: OUTPUT«ListIter()␤»
moritz and when I call List.iterator, it generates a *new* ListIter, which gets both the reified elements and $!nextiter 16:27
and then it gets hairy, because I don't know what all the custom opcodes do, like perl6_shiftpush 16:30
sorear one of the important insights in Niecza's list implementation is that .iterator really has to return a _set_ of cursors
I think ListIter is Rakudo's equivalent concept?
moritz ListIter seems to be a linked list of some sorts 16:31
moritz hm, given a code like 16:33
sjn jnthn: I ended up with .say for "a".."p" X~ 1..24 too
moritz my @x = 1... $big_number; @x.sink; .say for @x
sjn btw
moritz what should the result be? 16:34
sjn I've been chatting with Damian lately, and he's coming to Oslo in April.. Would it be sensible to try and set up a weekend hackathon when he's here? 16:34
we're talking the weekend of april 20th-22nd 2012 16:35
venue is ready, and I might be able to find some partial funding for it (to help people get to Oslo) 16:36
comments, critique, please. :9
moritz +Inf from me :-)
colomon sorear++ 16:37
phenny colomon: 15:55Z <sorear> tell colomon ('abcdef' ~~ /<[dcb]>**{3}/) fixed.
sjn jnthn, masak, you guys are pretty close, what do you think? 16:38
moritz arnsholt might be interested too
colomon Damian is awesome. :) 16:39
sjn that's very cool :)
colomon sorear: Okay, I'm adding rx.t to spectest.data -- seems like this bug was a pretty good example of why it should be in the spectest now. :) 16:41
jnthn sjn: I can probably come, especially if I get a date. 16:48
er...misword :P
especially if you tell me the date...oh but you did :) 16:49
jnthn goes and adds it to the schedule so nobody books him for anything :)
moritz is kinda glad to see that even native speakers occasionally run into such accidental uses of ambiguous or compound words 16:50
jnthn gets scared when he looks at the $dayjob diary for as far away as April and there's already stuff in it.
sjn: Dates blocked out in my schedule. :)
sorear jnthn has worked at $dayjob in the future?
jnthn sorear: No, just bound to work at $dayjob in the future :P 16:51
My looks botheredly at how his January already looks like hard work. 16:52
er, /me 16:53
dalek ecza: 8bc4441 | (Solomon Foster)++ | t/spectest.data:
Turn on S05-mass/rx.t.
jnthn Yeah, I really should just go and eat nice curry tonight rather than do anything that matters. :)
[Coke] jnthn++ # enjoy the curry! 16:55
jnthn [Coke]: Will when I get there. Not quite hungry enough yet. :)
lichtkind o/ 16:57
jnthn hi lichtkind 17:00
lichtkind jnthn: i really hope to help you more next year, 17:01
i was excited to see niecze do gui
i compiled it
but still not tested
jnthn :) 17:02
lichtkind but id rather use rakudo
omn somer grammar stuff, plan talk about that in erlangen anyway
jnthn lichtkind: I will get callbacks in native call as soon as I get to tuits :)
lichtkind jnthn: you plan any talk for erlangen?
jnthn *the tuits
My English is very broken today :(
lichtkind: I didn't submit anything yet. Probably should. 17:03
lichtkind its march
jnthn lichtkind: Yeah, I already have the dates marked in my calendar :) 17:03
fsergot hi o/ !
jnthn o/ fsergot
lichtkind \o 17:04
lichtkind jnthn: i can hand over the topic if you wish but so you can concentrate on the more in depth stuff 17:04
jnthn General question: seems we still have holes in the advent calendar schedule. I can do one more post, though Saturday at earliest.
Shall I?
moritz yes 17:05
lichtkind jnthn: and on other side kephraXP is doing well only 3 good days more and you actually can use it for editing
jnthn lichtkind: Well, if I did talk about grammars right now it'd probably be about Grammar::Debugger
jnthn Since my meta-programming post got a good reply maybe I should give some talks on that. :) 17:05
lichtkind moritz: the reason why im here is to finish that
moritz finish what?
jnthn Perl 6!
lichtkind haha 17:06
moritz oh yeah, of course :-)
jnthn ++lichtkind ;-)
lichtkind no the calendar text 17:06
had $job and $grandma
just finishing nom now :) 17:07
jnthn: i dont mean your work :)
jnthn :P
lichtkind jnthn: so your fine with that work division in erlangen, i thought about talking abot hashes since i dindt did that part of the topic i promised, but grammars are really the blazing feature 17:09
moritz lichtkind: I'm sure that whatever Perl 6 talks you submit, jnthn, tadzik, mberends and me will find enough interesting Perl 6 topics to talk about :-) 17:10
[Coke] nom: say 9673/18374 17:11
p6eval nom 8ea0b2: OUTPUT«0.526450419070426␤»
[Coke] (from gist.github.com/1476841)
dalek ast: 02c4e6d | (Solomon Foster)++ | S02-types/range.t:
Unfudge tests niecza now passes.
17:12
moritz jnthn: oh, $obj."$meth"() emits code the calls the get_string vtable 17:13
find_lex $P10, "$meth" 17:14
$S100 = $P102."Stringy"()
jnthn D'oh. 17:15
dalek kudo/nom: b70ea99 | moritz++ | src/core/ListIter.pm:
missing unbox
17:17
moritz (that commit is unrelated) 17:18
[Coke] ponders doing the test_summary comparision on a synopsis granularity level. 17:20
[Coke] wonders if that would be helpful to, say, sorear.
sorear [Coke]: can't say. 17:25
[Coke] would get you a way to see how niecza compares to rakudo on, e.g. S05. 17:31
[Coke] finds a use for the ff operator. huh.
lichtkind [Coke]++ 17:35
moritz I might have a patch for the vtable codegen, spectesting 17:46
lichtkind it there a way to get exception (space dont sperate) in <> ? 17:53
sorear is cedric-vincent one of us?
moritz perl6: say <a\ b>.elems 17:58
p6eval pugs b927740, rakudo b70ea9, niecza v12-47-g8bc4441: OUTPUT«2␤» 17:59
moritz seems like "no"
dalek kudo/nom: 081cc0e | moritz++ | src/Perl6/Actions.pm:
fix codgen for ."$var"()

it used to call the get_string vtable, now uses an explicit unbox_s
17:59
dalek ecza: c1f4746 | sorear++ | / (2 files):
Less-insane implementation of $<foo>=[...]

No longer generates an anonymous subrule!
18:05
pyrimidine 'less insane' is always nice 18:06
[Coke] vaguely wishes he could write $foo{'rakudo'}[0][0] as $foo.rakudo.0.0 18:16
sorear ineeed
[Coke] maybe as $foo{rakudo.0.0} 18:18
PerlJam sounds like someone has been playing with template toolkit. 18:20
sjn btw, are there any meaningful mailing lists or similar that I should send a mail to about the April 20-22 hackathon?
sorear perl6-announce 18:21
sjn sorear: cool, thanks. any other places? :) 18:22
[Coke] which country was this in again? 18:23
sjn [Coke]: Oslo, Norway
also, since Damian is coming, are there any specific topics worth focusing on while he's in Oslo?
moritz sjn: [email@hidden.address]
not sure if non-members can post there
sjn joins 18:25
PerlJam wonders what mapofcpan.org would look like for the perl 6 modules we have so far 18:27
kboga moritz: Exceptional blogpost! (tiny CATCH s/can chose/can choose/) :)
phenny kboga: 07:37Z <jnthn> tell kboga thanks for the feedback - fixed the bugs :)
kboga np, thanks for blogging jnthn
[Coke] how to push an array of values (@foo) as a single element onto an AoA? (@bar) 18:28
PerlJam: like a very sad island of misfit toys?
moritz [Coke]: @bar.push: @foo.item 18:29
or @bar.push: $(@foo)
[Coke] \o/ 18:33
moritz++
[Coke] nom: mY @a = (1,2,3); say $a[0][0][0][0][0]; 18:35
p6eval nom 081cc0: OUTPUT«===SORRY!===␤Variable @a is not predeclared at line 1, near " = (1,2,3)"␤»
[Coke] nom: my @a = (1,2,3); say $a[0][0][0][0][0];
p6eval nom 081cc0: OUTPUT«===SORRY!===␤Variable $a is not predeclared at line 1, near "[0][0][0]["␤»
[Coke] nom: my @a = (1,2,3); say @a[0][0][0][0][0]; #5ism
p6eval nom 081cc0: OUTPUT«1␤»
[Coke] nom: say $(1)[0] 18:36
p6eval nom 081cc0: OUTPUT«1␤»
[Coke] is auto-flattening solving a problem? (I'm very surprised whenever I realize that's why I only have a 1-d list.) 18:54
[Coke] (how can one write a literal 2D array?) 18:56
moritz [Coke]: it's what makes it possible write for 0..9, 'a'..'z' { } which does seem rather need 18:57
my @a2d = [1, 2], [3, 4], [5, 6]
[Coke] ah, not parens. Danke.
[Coke] nom: my %foo; %foo{'a'}{'b'} = 3; 19:07
p6eval nom 081cc0: OUTPUT«Method 'at_key' not found for invocant of class 'Any'␤ in method postcircumfix:<{ }> at src/gen/CORE.setting:1155␤ in block <anon> at /tmp/6oG14d7nhm:1␤ in <anon> at /tmp/6oG14d7nhm:1␤»
PerlJam autoviv bug
[Coke] so that should work, then? 19:08
PerlJam It should, but never has to my knowledge
[Coke] ponders a .pretty, because .perl is too lumpy. 19:12
PerlJam [Coke]: +1 (I wanted that just yesterday)
moritz call it .gist 19:14
[Coke] looks like that's already taken! 19:15
(if the suggestion is to use gist instead of perl, it's still too ugly.)
PerlJam .gist isn't quite right anyway
moritz on what kind of object? 19:16
[Coke] hash of hash of list of list. or something like that. 19:18
(comes through a a single line of output, which is only slightly helpful.)
nom: '"hi","bye"'.split(',').map: { s:g/'"'//; $_}; 19:22
p6eval nom 081cc0: ( no output )
[Coke] nom: say '"hi","bye"'.split(',').map: { s:g/'"'//; $_} 19:23
p6eval nom 081cc0: OUTPUT«Cannot assign to a non-container␤ in sub infix:<=> at src/gen/CORE.setting:8305␤ in block <anon> at /tmp/HHc4J2__em:1␤ in method reify at src/gen/CORE.setting:4348␤ in method reify at src/gen/CORE.setting:4253␤ in method reify at src/gen/CORE.setting:4253␤ in me…
[Coke] I'm sure I'm anticipating something to work like perl5 here when it doesn't.
ah, the $_ is readonly in the map. bleargh. 19:25
is there a more sixian way to write that then copying $_ by hand in the map block? 19:26
benabik .subst(/'"'/, '', :g) ? 19:27
[Coke] that certainly works for this case. Danke. 19:28
moritz or .map: { (my $x = $_) ~~ s:g/'"'// }
benabik nom: say '"hi","bye"'.split(',').map: { (my $ = $_) ~~ s:g/'"'// } # I wonder…. 19:29
p6eval nom 081cc0: OUTPUT«True True␤»
moritz oh, it doesn't return the modified string 19:30
benabik Apparently not.
nom: say '"bye"'.subst(/\"/, '', :g)
p6eval nom 081cc0: OUTPUT«bye␤»
benabik But subst does.
[Coke] moritz: right. does perl6 have the new perl5 way to return the modifid string yet? 19:32
[Coke] forgets which modifier that is.
moritz /r iirc, but not sure
[Coke]: no
benabik :r means :ratchet in STD (although not in spec) 19:33
moritz not in spec? then we should add that quickly
(rakudo supports it too) 19:34
benabik I don't see it in S05 at least. 19:35
moritz it's not in there, right
benabik Maybe :f(:$functional) to make it return the value?
moritz we can always use :copy for the long form
but :c is already taken 19:36
benabik: hm, nice
benabik Although that's a long long form. :-D 19:36
PerlJam I seem to recall there was a table in A05 for both the long and short forms. Maybe it jsut needs to be copied (and updated) to S05
moritz niecza: say 'aaa' ~~ /:r a+ a/ 19:37
p6eval niecza v12-48-gc1f4746: OUTPUT«Match()␤»
moritz niecza: say 'aaa' ~~ / a+ a/
p6eval niecza v12-48-gc1f4746: OUTPUT«#<match from(0) to(3) text(aaa) pos([].list) named({}.hash)>␤»
dalek ecs: 9f731e5 | moritz++ | S05-regex.pod:
[S05] add :r alias for :ratchet

std, rakudo and niecza already support it anyway
19:38
moritz or maybe :k, :keep 19:41
tadzik 'evening, #perl6 20:57
moritz: I was actually thinking about talking about perl6 modules and stuff on GPW
thinking more like "let's imagine a world in which" rather than anything serious :)
dalek : 2a9d366 | jonathan++ | misc/perl6advent-2011/schedule:
I'll do one more on the 18th. Topic TBD.
21:01
jnthn I signed up for 18th in advent cal :)
oh...it gets reported here anyway :) 21:02
colomon :) 21:04
Radvendii is there any interest here in working on a perl programmer's keyboard layout? (so things like $ are more accessable) 23:05
Radvendii i take that as a no... 23:18
jlaire Radvendii: you might have better luck in a perl 5 channel, more people there 23:21
Radvendii ah. i meant more for perl 6, but i guess they would be pretty much the same
geekosaur p6 has a bit more need for accessible unicode though :) 23:22
jlaire true, that :)
to me, 'en_US' feels like heaven after using 'fi' for some years
$ [ ] { } are all behind AltGR on finnish layout
Radvendii aww... 23:23
yeah but still... shift-4 seems a bit much for something used so much... 23:24
jlaire some people just flip the number row, so that digits are shifted and symbols are default 23:25
Radvendii mhmm... 23:26