»ö« 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.
00:00 cognominal joined
jnthn sleep & 00:03
00:03 replore joined, replore left 00:05 Psyche^ joined 00:09 Patterner left, Psyche^ is now known as Patterner
grondilu I wrote a small example on irrational numbers in Perl5: perlmonks.org/?node_id=1009200. One of these days, I'll write a full class in Perl6. 00:19
00:22 hash_table joined 00:25 replore joined 00:30 replore left 00:34 robinsmidsrod left 00:39 sivoais is now known as _sivoais 00:40 robinsmidsrod joined 00:43 cognominal_ joined 00:44 cognominal left 00:59 benabik joined 01:02 NACLKVD joined 01:07 anuby joined 01:13 anuby_ joined, cognominal_ left 01:15 atrodo left 01:16 anuby left 01:20 Pleiades` left 01:24 cognominal joined 01:27 Pleiades` joined 01:31 anuby_ left 01:34 anuby joined 01:41 pmurias left, whiteknight left 01:43 thou joined
[Coke] fetch stage failed for Term::ANSIColor: Failed cloning the repo 01:46
01:46 benabik left
[Coke] seen tadzik 01:50
aloha tadzik was last seen in #perl6 5 hours 14 mins ago saying "/o\".
[Coke] phenny: tell tadzik that the ecosystem has the wrong git URL for Term::ANSIColor (:: vs. - confusion)
phenny [Coke]: I'll pass that on when tadzik is around.
flussence tried to reproduce that, but I just get «===SORRY!===␤No object at index 164» for every panda command... *sigh* 01:51
[Coke] sadly, that means I can't install the debugger right now. :| 01:54
japhb_ flussence, I'm getting the same sort of thing.
I swear I saw panda bootstrap properly though (I have a script that builds a new rakudo then run's panda's reboostrap.pl) 01:55
s/run\'s/runs/
[Coke], re irclog.perlgeek.de/perl6/2012-12-17#i_6250713 , my local PM (Sonoma.pm) has never been used, IIRC. 01:56
flussence yeah, I use a similar script... it's been working fine for months but recently things have started breaking in subtle ways (panda seems to lose its installed package list each update) 01:57
02:02 grondilu left 02:03 FROGGS_ joined, bowtie left
japhb_ [Coke], flussence, here's my current script: gist.github.com/4324368 02:06
[Coke] I wonder if it would be helpful to be able to do something like "panda install git://github.com/tadzik/perl6-Term-ANSIColor.git"
japhb_ It's probably worth merging the good ideas from each of our rebuild/reinstall scripts
02:06 FROGGS left
japhb_ I should note that for my script, there's an assumption that ~/git/rakudo-current/ is a symlink to the rakudo clone I'm currently hacking in, and ~/git/rakudo-current-lib/ is a symlink that abstracts the current perl6 install lib so that I don't have to keep hacking my PATH. 02:08
diakopter [Coke]: do you code on Windows or *n*x?
(mac counts as *n*x) 02:09
flussence FROGGS_: my one is at github.com/flussence/p6-misc/blob/.../rakudo.sh - I haven't updated it in a while, maybe it broke when the library directories all got moved 02:10
[Coke] diakopter: intel osx
flussence whoops, I meant japhb_: there 02:11
[Coke] I was going to debug my t1 solution a bit, but instead I will go read how to win at PLO/8
g'night, #p6.
diakopter o/
japhb_ o/
flussence
.oO( my brain must've mistabbed from the wrong end of the string... )
02:12
japhb_ flussence, ah, interesting. 02:13
japhb_ has to decommute now, but will take a look later ....
02:14 japhb_ left 02:16 bruges left, bruges joined 02:17 cognominal left 02:19 s1n joined 02:20 benabik joined 02:22 cognominal joined 02:29 anuby_ joined 02:30 erkan left, erkan joined, erkan left, erkan joined 02:31 thou left, anuby left 02:32 integral left, integral joined, integral left, integral joined 02:35 s1n left 03:04 cognominal left, fgomez left 03:11 cognominal joined 03:24 araujo left 03:26 Kharec left 03:27 takesako_ joined 03:29 takesako left 03:33 Kharec joined 03:36 araujo joined, geekosaur left, geekosaur joined 03:41 geekosaur left 03:42 geekosaur joined 03:43 Kharec left 03:44 Kharec joined 04:05 hash_table left 04:22 noggle joined 04:26 am0c joined 04:30 stevan_ joined 04:40 eternaleye left 04:45 arkydo joined 04:51 sjohnson joined 04:54 popl joined 04:59 hypolin joined 05:10 DarthGandalf left 05:21 rindolf joined 05:28 DarthGandalf joined 05:46 noggle left, Pleiades` left 05:48 kurahaupo left 05:49 noggle joined 05:53 Pleiades` joined, birdwindupbird joined
moritz good morning 06:16
06:20 arkydo left
japhb o/ 06:20
06:20 am0c left
dalek kudo/nom: a045381 | moritz++ | docs/release_guide.pod:
release name suggestion: Sonoma.pm
06:22
japhb s/japphb/japhb/ 06:25
moritz did I manage to misspell again :(
sorry
dalek kudo/nom: 0b96624 | moritz++ | docs/ (2 files):
fix typo, japhb++
japhb No worries. :-) 06:26
popl moritz doesn't care about japphb :(
(it was a very subtle joke, sorry) 06:27
06:27 SamuraiJack joined
dalek kudo/nom: 9fcbcb6 | moritz++ | docs/deprecations:
deprecation notice for sink context
06:30
moritz isn't quite awake enough for subtleties :-)
06:32 FROGGS_ left 06:35 am0c joined 06:48 CooL joined 06:49 lawrmcfa joined 06:59 Khisanth left 07:01 kaleem joined 07:06 Kharec left 07:10 arkydo joined 07:13 Kharec joined, Khisanth joined, bapa left 07:16 bapa joined 07:23 LV joined, LordV left 07:32 Kharec left 07:36 FROGGS joined 07:40 CooL left
FROGGS morning 07:48
popl Hello.
07:50 Kharec joined 07:55 cognominal left 07:57 cognominal joined 08:07 arkydo left, fgomez joined
popl Is discussing Perl5 in #perl6 verboten? 08:09
bonsaikitten it's usually offtopic
popl Oh. OK. 08:10
moritz well, asking for Perl 5 help here is frowned upon. Discussing the language is done quite often here 08:12
popl Ok. I wasn't going to ask for help. 08:16
In approximately eight hours and 10 minutes Perl will be ~25 years old. :) 08:17
bonsaikitten awesome 08:18
popl I suppose it is arbitrary and as meaningful as any other anniversary. 08:19
08:21 REPLeffect joined 08:22 kresike joined
kresike good morning everyone 08:22
FROGGS cool, someone should make a medal "Perl 5\n25th anniversary " and give it to Larry 08:23
morning kresike
popl FROGGS: A cake, at the very least.
kresike FROGGS, o/
popl That's what people do for birthdays.
FROGGS kresike: I almost didn't recognized you, you said something else than usual :P 08:24
kresike is not too happy today :(
FROGGS popl: but sending a cake from germany to CA is not option I guess
kresike: ohh, why?
popl: shortbread would work though 08:25
kresike bad weather, sleepy, need more coffee, that sort of stuff ...
popl FROGGS: Shortbread is good.
I wish I had some now.
FROGGS kresike: ohh, except the coffee nothin' serious 08:27
kresike no, nothing serious :) 08:28
japhb Happy Birthday, Perl! 08:30
Now I'm going to bed. ;-)
FROGGS gnight japhb
japhb: when do you have time to talk a bit?
(about S11 versioning)
japhb I might be able to spare some time in ~9 hours. Not sure. 08:31
sorear FROGGS: I think larry is allergic to wheat
FROGGS: best not to send any kind of bread without discussing plans first
japhb Is he allergic to chocolate? Because flourless chocolate torte is often a winning choice ....
FROGGS sorear: hehe, k ;o) 08:32
japhb Anyway, afk for real.
popl for realz
FROGGS I guess the best is not to send food at all 08:33
popl bah, wheat allergy
FROGGS ya, I'm glad that I'm not
08:38 cognominal left 08:44 cognominal joined
REPLeffect anyone else having trouble accessing any linode-hosted domain (including linode.com)? 08:44
08:45 eternaleye joined
benabik REPLeffect: Not here, also: www.isup.me/linode.com 08:46
moritz REPLeffect: works fline here
REPLeffect interesting -- I've tried on 2 separate networks I have access to
benabik Local DNS/connectivity issue? 08:47
08:47 FROGGS left
REPLeffect no, the 2nd network I access via a vpn, and it has a different dns/etc 08:47
moritz same continent? :-)
REPLeffect might be regional, both in the same state 08:48
08:48 FROGGS joined 08:57 am0c left 09:01 Kharec left 09:03 Kharec joined 09:04 am0c joined 09:21 fhelmberger joined 09:25 dakkar joined 09:34 am0c left 09:41 rindolf left
jnthn morning o/ 09:46
FROGGS hi jnthn 09:47
dalek kudo/nom: 47b8766 | jnthn++ | docs/deprecations:
Deprecations update.
09:51
09:59 brrt joined 10:01 arkydo joined, hypolin left
brrt hi! what with perl being 25 years old today, i'd thought i'd come by and congratulate 10:01
congratulations perl and TimToady++ 10:02
10:05 SmokeMachine joined 10:06 kst` joined, popl left
brrt now, i have also a serious question for the nqp folks 10:06
in short, parrot more-or-less needs to update its IO system 10:07
i need parrot to update its IO system
one of the changes will likely entail splittings file handles and pipe handles 10:08
10:08 kst left
brrt i don't need that; i need a user handle 10:08
(that is to say, i need an IO handle that is defined within parrot)
well, that will mean breaking changes again
what do you think? could you be persuaded to parrot changing this stuff? 10:09
10:10 arkydo left
benabik brrt: whiteknight's started work on just such a thing, although I believe his tuit supply is unsteady github.com/parrot/parrot/commit/5b...aad0619c8b 10:10
Hm. Newer branch: github.com/parrot/parrot/commits/w...userhandle 10:11
brrt benabik, yes that is exactly the branch i'm talking about
whiteknight has not nearly any resources
but the point is 10:12
we need to break some stuff for it to work
10:19 kst` is now known as kst, sqirrel joined
benabik What does it break other than splitting Pipe from FileHandle? 10:21
brrt that 10:23
:-)
and it unbreaks - hopefully - having user supplied filehandles
and mod_parrot desperately needs those
jnthn perl6advent.wordpress.com/2012/12/.../#comments - somebody spotted a spec/Rakudo inconsistency. I commented; arguments either way welcome. 10:24
10:24 hoelzro|away is now known as hoelzro
benabik is a big fan of for and map acting identically. :-) 10:26
jnthn benabik: Oh, that bit's not in question. 10:28
benabik: If we change the semantics of the NEXT phaser for one, it'll change for the other.
brrt: What will it mean at an API level? 10:30
brrt: At the moment, though, NQP does little abstraction of Parrot's IO stuff
That will have to change in the next couple of months.
brrt well, if that changes... 10:31
for one thing
opening a pipe is now opening a file with the 'p' modifier
so fortune would be: f = new FileHandle('/usr/bin/fortune', 'p')
that would become: f = new PipeHandle('/usr/bin/fortune') 10:32
jnthn Will FileHandle and PipeHandle have the same API?
brrt afaik, that is a change we could make nearly automatically
benabik jnthn: Ah, I misread your comment a tad. LEAVE then NEXT seems to make sense to me. Leaving the block seems to happen before you decide to go to the next iteration. Although I'm somewhat surprised NEXT triggers immediately before LAST.
brrt yes
bbkr hi/ i'm not exactly sure what this sink deprecation means in github.com/rakudo/rakudo/commit/9f...cd2715fe11 . does "such code is now run after the block" applies to return statement or whole loop? can someone please give simplest example that is working now and will stop working in next release?
brrt most of the tricky bits of the api is in the buffering; they will share that
so readline() etc will still work
whiteknight++ did a pretty good job in abstracting api use from implementation 10:33
jnthn brrt: OK, in which case none of this keeps us from having it done with :p at the Perl 6 level.
brrt no
jnthn My main concern is "can we still reasonably provide the same Perl 6 API on top of the change without it being a huge effort to do so"
And it seems we'll be able to, in which case I'm not too worried. 10:34
brrt good :-) 10:35
do you use (as i have done) user-supplied io handles for rakudo?
moritz brrt: (re deprecation notice) consider sub a { try { for ^42 { die 'oh noez' if $_ % 5 } } } 10:36
now if you call that sub, it returns a lazy list
brrt moritz, wasn't my question, it was bbkr's :-) 10:37
benabik moritz: s/brrt/bbkr
moritz oh sorry, bbkr
so
jnthn brrt: What do you mean by "user-supplied"?
moritz once that list is reified, it'll die, because there's a die() call
but it's not inside the dynamic scope of the try block
so the exception isn't caught
surprise, suprise
brrt jnhtn, basically, to define an object that works as a handle (like StringHandle, for example), and then replace the stdio handles with it 10:38
jnthn brrt: Ah, no, I don't think we do that.
brrt so that say "foo" will say foo to that handle
jnthn Just use the standard ones Parrot provides.
brrt well, i could have guessed, otherwise io_cleanup1 would never have merged
good 10:39
so that can never be a breaking change
moritz my $*OUT = (class { method say() { do whatever you want here } }).new
brrt yeah, that is never going to work as-is 10:40
(not knowing to what it compiles, though)
benabik It wouldn't work at a Parrot level, but if you only do I/O through HLL methods, there's no problem.
jnthn brrt: We *never* give out Parrot filehandles to Perl 6 userspace. 10:41
brrt uhuh, and that is exactly what doesn't work now ;-)
hmm
jnthn They're always hidden inside a proper object.
brrt ok, i guess that is fair
bbkr moritz: thanks for explanation. this change will be confusing :( most people think in "if it's between the brackets then it's in the scope" way
benabik brrt: No, what doesn't work right now is redirecting low-level I/O operations back up to a HLL object.
brrt that, too
i guess you are right 10:42
moritz brrt: yes, it will be confusing
brrt bbkr :-)
moritz the same problem already exists though
r: sub f { <a b c>.map { return if /b/; .uc } }; say f
p6eval rakudo 47b876: OUTPUT«===SORRY!===␤Two terms in a row␤at /tmp/DOFqTdX0S8:1␤------> sub f { <a b c>.map ⏏{ return if /b/; .uc } }; say f␤ expecting any of:␤ method arguments␤ postfix␤ infix or meta-infix␤ infix stopper␤ …
benabik try functions on dynamic scope, not lexical? fun
moritz r: sub f { <a b c>.map: { return if /b/; .uc } }; say f
p6eval rakudo 47b876: OUTPUT«Attempt to return outside of any Routine␤ in block at src/gen/CORE.setting:466␤ in block at /tmp/Yuho07XwiF:1␤␤»
moritz that's what I meant 10:43
here the map is lazy, so the return happens after the routine has completed
jnthn benabik: It's what you normally expect :)
try { some-function-call() } # I hope this catches anything that call throws :)
moritz benabik: otherwise sub a() { die "foo" }; try a() wouldn't catch the exception
benabik I somewhat expect exceptions to flow up lexically, then dynamically. 10:45
brrt basically, having different object systems between parrot and rakudo is hurting a lot
benabik Although that may be because my brain's been warped by continuations and I sometimes translate throw($ex) to $exception_handler($ex) 10:46
moritz having parrot's object system is also hurting a lot
brrt no arguing there 10:47
benabik I'm pretty much a fan of punting Parrot's OO from Parrot. But that's not a small project.
brrt we have… three object systems all in all
- PMC
- Parrot classes
- rakudo classes
(rakudo = 6model) 10:48
benabik PMC != Parrot class ?
brrt nooooo
a PMC is a MAGIC class, you see
a pmc (defined in C) can do stuff a 'regular' parrot / winxed class just can't do
such as much about with pointers
benabik Given that it has access to the C guts of parrot, that's not terribly surprising. 10:49
brrt parrot classes are built out of pmcs, but they are not the same
benabik But AFAIK, it uses the same basic object system.
10:53 bbkr__ joined, bbkr left
benabik In order for NEXT to occur before LEAVE, wouldn't you have to decide to continue to iterate before leaving the loop's block? That seems odd to me. 10:55
jnthn benabik: No, NEXT fires whether we're going to go around again or not.
Otherwise the example I did with finding the max score would not work if the max score was the final score in the list. 10:56
To do it I think we'd have to compile a block with a NEXT to have a call to the next as well as an exception handler that saw next control exceptions and passed them on.
benabik "at loop continuation time"?
jnthn r: my $a; { $a; my $a } 10:57
p6eval rakudo 47b876: ( no output )
jnthn std: my $a; { $a; my $a }
p6eval std a8bc48f: OUTPUT«===SORRY!===␤Lexical symbol '$a' is already bound to an outer symbol (see line 1);␤ the implicit outer binding at line 1 must be rewritten as OUTER::<$a>␤ before you can unambiguously declare a new '$a' in this scope at /tmp/q53pu8pPeN line 1:␤---…
jnthn moritz: I'm spectesting a patch that gives us the STD behavior here. I don't expect it to bite any real-world code, but I guess there's a risk. Do you think it's OK to go in this release? 10:58
benabik NEXT is KEEP unless last is called? 10:59
moritz jnthn: I'd wait
jnthn moritz: hm, ok
moritz the real world is always messier than expected :-)
jnthn guess I put it in a branch then
I'd already decided to put off the unused warnings until next time. 11:00
which means I can put off implementing them too :)
benabik: I would have to check the spec on that one.
benabik Hm. I had thought NEXT would be like a separator (which is a useful thing to have, IMHO). But it appears to be something like LEAVE but skip if $! && $! !~~ Next. 11:04
11:04 anuby_ left
dalek kudo/outer-bound: 0199241 | jnthn++ | src/ (2 files):
Make "my $a; { $a; my $a } an error.

This commit doesn't break any tests and actually makes a TODO test pass. However, it's a bit close to release to include it now, so it goes in a branch for now and can be merged afterwards.
11:04
11:06 Su-Shee_ joined
benabik Does KEEP fire if you leave a block due to control exception? 11:06
dalek kudo/nom: 7794edf | jnthn++ | docs/deprecations:
Mention future "my $a; { $a; my $a }" error.
11:07
benabik rn: for ^1 { last; LEAVE say 'hi' }
p6eval rakudo 47b876: ( no output )
..niecza v24-12-g8e50362: OUTPUT«hi␤»
jnthn Um. That LEAVE shoulda fired there.
benabik That's what I thought...
11:08 brrt left
jnthn Don't expect a quick fix. The whole exception stuff is quite horrible due to mis-match between Perl 6's needs and what Parrot does. 11:08
Once, a certain mls++ figured it all out and fixed many of the things. 11:09
tadzik [Coke]: aye, I think panda has a ticket for that (panda install git://...)
phenny tadzik: 01:50Z <[Coke]> tell tadzik that the ecosystem has the wrong git URL for Term::ANSIColor (:: vs. - confusion)
tadzik (hello #perl6)
11:09 Su-Shee left
jnthn Which was awesome, but I still only sorta grok the code he gave us. 11:09
benabik jnthn: Fair enough. Was just wondering what the expected behavior there was.
jnthn Yeah, Rakudo gets it wrong for sure here. 11:10
o/ tadzik
tadzik [Coke]: that url doesn't seem wrong to me :?
jnthn: o/
benabik I'd offer to help sort out exceptions, but I don't think I'm going to have enough time between finals and next semester. :-D 11:11
jnthn looks back through the year's change log to see exactly what happened in Rakudo in 2012 :) 11:14
moritz lots of stuff, it seems :-) 11:15
oh right, we had a 2012.04.1 release 11:16
after the Oslo hackathon, for the star release
or something
jnthn yeah, think that was it 11:18
Some months have had loads of awesome stuff, and every month had something noteworthy :) 11:23
11:30 Su-Shee_ is now known as Su-Shee 11:32 rindolf joined
timotimo so, LTA error is "less than awesome" and LTE error is "less than expected"? (i.e. no error when an error was expected or something) 11:40
jnthn I...don't think I've seen LTE :) 11:46
afk for a bit
benabik I see LTE all the time on my phon.e 11:47
timotimo rt.perl.org/rt3/Ticket/Display.html?id=83512 - looking at this old bug, it's changed quite dramatically: for example, rakudo now complains about undeclared &prefix:<|> in the last evaluation. has the spec changed or something?
jnthn: rt.perl.org/rt3/Ticket/Display.html?id=77786 - you were the one who wrote LTE! :)
benabik I think that's spelled something like :(:@even, :@odd) := \(classify ...) now 11:48
moritz looks like a typo
timotimo replacing the | with a \ will now give the positional parameters error, so nothing much changed i guess 11:50
don't really know why i expect old bugs to have been fixed without being marked as fixed :P
benabik r: my @list = 1..4; my (@even, @odd); :(:@even, :@odd) := classify { $_ % 2 ?? 'odd' !! 'even' }, @list; say @even, @odd 11:52
p6eval rakudo 7794ed: OUTPUT«2 41 3␤»
timotimo oh, it works now? feel like updating that ticket? 11:54
benabik I don't know if I have write access into RT and I'm already taking too much time away from the paper I stayed up all night writing... 11:56
timotimo OK 11:57
i believe the core of the ticket is, that "my (@even, @odd)" and ":(:@even, :@odd) := …" are two separate statements, maybe it won't work as one. i'll try before i touch the ticket. 11:59
r: my @list = 1..4; my :(:@even, :@odd) := classify { $_ % 2 ?? 'odd' !! 'even' }, @list; say @even, @odd
p6eval rakudo 7794ed: OUTPUT«===SORRY!===␤Malformed my␤at /tmp/_wF7XmTkZa:1␤------> my @list = 1..4; my ⏏:(:@even, :@odd) := classify { $_ % 2 ??␤ expecting any of:␤ scoped declarator␤»
timotimo r: my @list = 1..4; my (:@even, :@odd) := classify { $_ % 2 ?? 'odd' !! 'even' }, @list; say @even, @odd
p6eval rakudo 7794ed: OUTPUT«2 41 3␤»
timotimo there we have it.
std: my @list = 1..4; my (:@even, :@odd) := classify { $_ % 2 ?? 'odd' !! 'even' }, @list; say @even, @odd 12:00
p6eval std a8bc48f: OUTPUT«ok 00:00 46m␤»
12:09 brrt joined
dalek ast: 817476a | (Timo Paulssen)++ | S02-names-vars/signature.t:
test for RT #83512 - siglist binding with hash.
12:11
timotimo at a rate of about 1 bug per day, i'll be done going through currently old "new" bugs in under half a year! 12:14
FROGGS timotimo++ 12:20
;o)
12:23 daxim joined 12:27 lichtkind joined
moritz rakudo: / : / 12:29
p6eval rakudo 7794ed: ( no output ) 12:30
timotimo moritz: would this be a reason to update the ticket and still leave it "new"? 12:40
moritz timotimo: if there's still a bug, leave it open, yes 12:42
(and comment)
if the original bug is fixed, and there's a new problem, it's probably better to open a new issue for the new bug 12:43
and close the old one
maybe add a comment pointing to the new report
(we've had tickets where the actual subject changed three times during the course of the ticket; such tickets are very tedious to review)
timotimo moritz: excuse me, i meant to say "new" rather than "open" 12:44
moritz: rt.perl.org/rt3/Ticket/Display.html?id=67064 - would "say [X] [<a b c>] xx 3" make a decent test case for this bug? i'm pretty sure it's testable by now, but i may not realise what's involved here. 12:46
a quick grep over the spectests show there's not a single mention of [X], which surprises me quite a bit 12:47
(well, there are mentions, but they are all in perl5 regex tests 12:48
12:48 am0c joined
timotimo excuse the unbalanced parens) - the number of resolved to non-resolved tickets would be a good measure for project progress if there were not a hundred two-year-old bugs that have not been looked at for a *long* time :p 12:51
12:51 benabik left
moritz timotimo: once you replied to a ticket, it's always "open", never "new" 12:52
but that's OK
12:52 cognominal left, bowtie joined
moritz and you should avoid say() in tests 12:52
rather put the result in a variable and test that 12:53
timotimo OK. the calculation is suitable, though? would you say S03-metaops/reduce.t is a good place for the test? 12:55
12:56 cognominal joined
moritz the test file is good, yes 12:57
let me think for a while
r: say ([X~] <a b>).perl
p6eval rakudo 7794ed: OUTPUT«("ab",).list␤» 12:58
moritz r: say ([X~] <a b> xx 2).perl
p6eval rakudo 7794ed: OUTPUT«("abab",).list␤»
moritz r: say ([X~] [<a b>] xx 2).perl
p6eval rakudo 7794ed: OUTPUT«("aa", "ab", "ba", "bb").list␤»
moritz I kinda suspect it should work without the [] too
timotimo r: say [X] <a b c> xx 3 12:59
p6eval rakudo 7794ed: OUTPUT«a b c a b c a b c␤»
timotimo r: say [X] [<a b c>] xx 3 13:00
p6eval rakudo 7794ed: OUTPUT«a a a a a b a a c a b a a b b a b c a c a a c b a c c b a a b a b b a c b b a b b b b b c b c a b c b b c c c a a c a b c a c c b a c b b c b c c c a c c b c c c␤»
timotimo huh.
so, precedence difference?
moritz no, but say() + stringification flattens it all out 13:02
r: say ([X] [<a b c>] xx 3).perl
p6eval rakudo 7794ed: OUTPUT«(("a", "a", "a"), ("a", "a", "b"), ("a", "a", "c"), ("a", "b", "a"), ("a", "b", "b"), ("a", "b", "c"), ("a", "c", "a"), ("a", "c", "b"), ("a", "c", "c"), ("b", "a", "a"), ("b", "a", "b"), ("b", "a", "c"), ("b", "b", "a"), ("b", "b", "b"), ("b", "b", "c"), ("b", "c"…
timotimo ah, i see.
moritz note that I used xx 2, and only 2 symbols
and X~ instead of X to reduce the number of list elements
just to make the output more managable :-)
timotimo what exactly causes the difference between [X~] [<a b>] xx 2 and [X~] <a b> xx 2? 13:03
arnsholt [< ... >] and < ... > have different flattening semantics at least 13:04
The [] case might appear as a single item list to the reduce
timotimo ah, that makes some sense. 13:05
this may be the difference right here: 13:06
r: say [<a b c>] xx 2; say <a b c> xx 2; 13:07
p6eval rakudo 7794ed: OUTPUT«a b c a b c␤a b c a b c␤»
timotimo er, hah
r: say ([<a b c>] xx 2).perl; say (<a b c> xx 2).perl;
p6eval rakudo 7794ed: OUTPUT«(["a", "b", "c"], ["a", "b", "c"]).list␤(("a", "b", "c"), ("a", "b", "c")).list␤»
timotimo i can see how the right one would flatten into one list
and the left one would be treated as two items, each one being a list
13:07 pmichaud joined
moritz r: say ['a', 'b', 'c'] 13:07
p6eval rakudo 7794ed: OUTPUT«a b c␤»
moritz r: say ['a', 'b', 'c'].Str 13:08
p6eval rakudo 7794ed: OUTPUT«a b c␤»
pmichaud good morning, #perl6
moritz \o pmichaud
moritz is happy to report that rakudo will get sink context right after the release
pmichaud \o/ 13:09
I've seen the commit log messages (but not the patches themselves) -- excellent work
moritz thanks; as usual, jnthn++ did some of the triaging and patching too
timotimo that's very cool, moritz++ jnthn++ 13:10
pmichaud I'll brb -- errand
13:14 cognominal left 13:20 cognominal joined
dalek ast: cdca426 | (Timo Paulssen)++ | S03-metaops/reduce.t:
add a test for [X] (RT #67064)
13:20
13:23 hoelzro is now known as hoelzro|away
timotimo errs a runnand 13:24
13:24 _jaldhar_ left 13:26 kivutar joined
pmichaud back again 13:27
FROGGS hi pmichaud 13:28
13:29 skids left
pmichaud we need to set up a login for people to upload tarballs to the rakudo.org server, I think 13:30
moritz indeed
13:32 att__ joined 13:42 Kharec left
[Coke] tadzik: the url IN the ecosystem is fine. when I try to install it, though, it tries to clone something with a "::" in it. 14:00
14:00 am0c left 14:01 kivutar left
moritz then probably the URL in the meta.info file is wrong 14:01
tadzik I think I checked that one too. Hrm 14:02
feather.perl6.nl:3000/ doesn't work though 14:03
Su-Shee so, will there a birthday release today? :) 14:04
moritz yes, masak++ will do it 14:05
Su-Shee \o/ then I will do a birthday compilation and installation. :)
14:09 FROGGS left
timotimo is the exact time of birth known? 14:10
14:11 atrodo joined 14:12 PacoAir joined
moritz erm, wait 14:14
rakudo release is in two days
parrot release is today
moritz all confused
sorry :(
[Coke] moritz: no, that seemed correct, also.
it was just at install time that it got confused. 14:15
tadzik: is there a ticket for panda to use the perl6 that invoked it rather than the perl6 in the path?
(and is that desirable? I would prefer it, but I haven't had to deal with the install hell of multiply installed perls, I just use perlbrew) 14:16
tadzik [Coke]: if there's none, please create it :) 14:17
[Coke] tadzik: done. 14:21
tadzik great, thanks 14:23
[Coke] I can't really test out the failure I was seeing while at work. I'll do it tonight and open a proper ticket. 14:24
(if I try to install the debugger now it complains that it can't talk to github.)
moritz iirc star already does that for the panda it installs
[Coke] moritz: if I just want an installed bundle to work with, how hard would it be to build a star candidate and install it every time instead of hand rolling an installing? 14:28
*install
jnthn is back 14:29
14:29 GlitchMr joined
moritz [Coke]: probably not hard at all 14:31
14:32 kevin99 joined 14:37 kevin99 left 14:41 lawrmcfa left 14:46 sbox joined
[Coke] :q 14:51
hugme hugs [Coke], good vi(m) user!
GlitchMr :w 14:58
oh right, [Coke] already left vim
15:00 stopbit joined 15:03 kaare_ joined
dalek ast: c50e4ea | (Timo Paulssen)++ | S02-magicals/args.t:
add tests for RT #74478
15:03
[Coke] timotimo++
15:04 bowtie left
timotimo those "testneeded" tickets are quite nice :] 15:04
15:04 skids joined 15:05 am0c joined 15:07 cognominal_ joined 15:08 cognominal left 15:09 birdwindupbird left
brrt perl6 advent calendar is impressive as usual 15:10
sjn agrees 15:11
15:13 FROGGS joined 15:14 TheAthlete joined
PerlJam irclog.perlgeek.de/perl6/2012-11-30#i_6201034 15:14
That's where we were at on Nov 30. 15:15
#perl6++
15:15 TheAthlete left
tadzik so, anyone wants to review my post for tomorrow? :) 15:15
I'll schedule it once I get back home 15:16
brrt sure
tadzik gist.github.com/4280548 it is
brrt „I know!”, a gemstone-fascinated person would say, „We can monkey-patch IO::Socket::INET”. And then we have two problems. No, we'll go the other way, and follow the glorious path of Dependency Injection. - nice :-) 15:17
PerlJam tadzik: "If you look at how Perl 5's AnyEvent::HTTP,..." probably shouldn't have "how" (or there's another word missing)
tadzik PerlJam: indeed, corrected 15:19
felher cedrvint++ #todays blog post. Nice one. :) 15:20
15:21 kivutar joined
timotimo new structured exceptions go in src/core/Exception.pm, yes? 15:21
moritz timotimo: yes 15:22
PerlJam tadzik: another minor typo: "general ideas" ~~ s/ideas/idea/
tadzik++ that article is quite neat!
timotimo thanks. i'm going to add a structured exception, throw it and test for it for rt.perl.org/rt3/Ticket/Display.html?id=73184 15:23
brrt yes, tadzik++, although it took a while for me to get it
15:23 cognominal_ left
tadzik brrt: same here :) 15:24
PerlJam: thanks and thanks :)
brrt it does seem a bit hacky, but it is clever though 15:25
moritz tadzik++ # very nice post
PerlJam tadzik: I seem to recall dngor saying something like "Perl 6 won't need POE" (and utlimately I think that's right), but ... you've got the essentials to making a POE-a-like there :)
tadzik that's what MuEvent is :) 15:26
I now wonder if IRC::Bot did ever have to be made MuEvent-friendly
15:29 isBEKaml joined
[Coke] ISTR it hung a lot when I tried to use it for CJbot. 15:32
15:34 mattp_ joined
isBEKaml [Coke]: Is CJBot the same one that pulled in tweets from times so long ago? (count years) :) 15:36
(OHHAI, #perl6!)
GlitchMr hi 15:39
tadzik yeah, it was imperfect 15:41
isBEKaml tadzik: (about your gist of today's draft) - You supply a public member attribute but refer it as private? I can see what's going on, but readers may be confused. 15:42
We'll add an attribute to LWP::Simple, let's call it $!socketclass
tadzik $!socketclass is the name of an attribute
$.socketclass is a syntax that says "make and attribute $!socketclass and a public method socketclass()" 15:43
isBEKaml I'm enjoying it, tadzik++
Hmm, flaky memory. $.attribute creates accessors. 15:44
tadzik ayes
but I understand the way of thinking "$. means public, $! means private"
I used to think that way too, the C++ legacy's still on the back of my brains :)
[Coke] isBEKaml: yes, that was cjbot.
tadzik the front of brains now thinks "there can be no public attributes, nonono" 15:45
isBEKaml tadzik: yeah, that's what C++ does. :)
PerlJam tadzik: you might add a parenthetical statement to the effect of what you just said "make an attribute $!socketclass and a public method socketclass()" some where around there to possibly avert any potential confusion 15:46
plus that would re-enforce "right thinking" about Perl 6 OOP :) 15:47
Su-Shee there is a right thinking? ;)
isBEKaml *reinforce :D
moritz s/right/recommended/ :-)
PerlJam Su-Shee: if you get your head on straight, Perl 6 makes alot more sense than otherwise 15:48
isBEKaml Su-Shee: it's all off the left field. :P
timotimo wow, what have i done? my @a = 1..*; try { @a[Inf] = "dog"; }; say $!.item.perl; - this timeouts/endlessloops >_<
Su-Shee PerlJam: I'm irritated by "there is a right way of thinking now?" ;)
timotimo oh, haha, it's not supposed to be $!.item, it's supposed to be $!.index 15:50
isBEKaml Oh, wow - Perl is 25 today and I see references to grey beards on reddit and HN. 15:52
Su-Shee I don't even have a beard... 15:53
tadzik I'd be surprised if you had one at age 75 :) 15:54
isBEKaml I don't know if it's an insult or compliment to say that most of the people who use perl are grey beards.
FROGGS ha, shame on you! (in case you are a man)
tadzik I'm not even 25 :}
FROGGS bah -.-
I'm not even two :P 15:55
isBEKaml heh. I'm an year old! :P
PerlJam I have a little bit of grey in my beard. But it's mostly black.
dalek ast: f4ba686 | (Timo Paulssen)++ | S02-types/array.t:
test for @a[Inf] and @a[NaN] -> X::Item.
timotimo t.h8.lv/0001-throw-X-Item-for-a-NaN-or-Inf.patch - this is the corresponding patch for rakudo. 15:56
15:56 kresike left 15:57 MayDaniel joined
moritz looks good to me 15:57
jnthn Whiteness in beard does NOT imply old :P :P
moritz tests locally
[Coke] timotimo: isn't there a test function for "dies by throwing this type of exception" ? 15:58
FROGGS there is
timotimo i thought there was something called "dies_like", but ack told me i was hallucinating
FROGGS throws_like or so
timotimo or misremembering
oh, well, that would explain it. i'll change the test then.
isBEKaml moritz, timotimo: does that patch mean that rakudo now barks for using potentially NaN or Inf producing code?
15:59 kivutar_ joined, kivutar left
FROGGS timotimo: see this example github.com/perl6/roast/commit/98bd...f789282182 15:59
timotimo found one locally, thanks :)
FROGGS timotimo: but you need that too: github.com/perl6/roast/blob/98bd34...sc.t#L3-L4 16:00
jnthn throws_like in in a module, iirc
FROGGS since throws_like is not in Test.pm
jnthn ah, FROGGS++ beat me to it :)
FROGGS ;o)
[Coke] can we just make throws_like canon? 16:01
timotimo :)
FROGGS jnthn: it's hard to be faster than you actually
[Coke] timotimo: and while you're at it, go rewrite all the tests I wrote a few weeks ago that didn't use that. ;)
jnthn
.oO( just make throws_like trebuchet )
16:01 kaleem left
timotimo [Coke]: sure, i can do that. have a commit range for me or something, though? 16:02
[Coke] ahahah. no, I was kind of kidding. 16:03
moritz :-)
[Coke] checking, though.
dalek ast: 741266b | (Timo Paulssen)++ | S02-types/array.t:
use throws_like instead of ad-hoc DIY solution.
16:04
16:04 thou joined 16:05 kivutar_ left
timotimo isBEKaml: "rakudo now barks for using potentially NaN or Inf producing code" - do you have a test case? i don't really know what you're asking. 16:05
dalek kudo/nom: 358f486 | (Timo Paulssen)++ | src/core/ (2 files):
throw X::Item for @a[NaN] or Inf.

Signed-off-by: Moritz Lenz [email@hidden.address]
moritz timotimo: re your last roast commit: please only use Test::Util in a single block where you put all the throws_like calls
timotimo: that way it's much easier for [Coke]++ et al to fudge for rakudo
isBEKaml timotimo: I was referring to your patch. 16:06
timotimo oh, yes, sure.
moritz and use 'use lib "t/spec/packages";' instead of that ugly @*INC hackery
(I know many tests use that, but use lib is cleaner)
timotimo isBEKaml: @a[maybe_nan] = 5; => Cannot index Array with NaN; @a[maybe_nan] = 5; => 5
16:06 Kharec joined
moritz rr: say <a b c>[Inf] 16:07
rm: say <a b c>[Inf]
rn: say <a b c>[Inf]
p6eval rakudo 7794ed: OUTPUT«Cannot coerce Inf to an Int␤ in method Numeric at src/gen/CORE.setting:10290␤ in sub infix:<+> at src/gen/CORE.setting:2761␤ in method exists at src/gen/CORE.setting:5764␤ in method at_pos at src/gen/CORE.setting:5744␤ in method postcircumfix:<[ ]> at src/gen/…
..niecza v24-12-g8e50362: OUTPUT«Any()␤»
moritz has a hard time typing today
rn: say <a b c>[-Inf]
p6eval rakudo 7794ed: OUTPUT«Cannot use negative index -Inf on List␤ in method gist at src/gen/CORE.setting:10292␤ in sub say at src/gen/CORE.setting:7483␤ in block at /tmp/UtUyWmUwtT:1␤␤»
..niecza v24-12-g8e50362: OUTPUT«Any()␤»
moritz rn: say <a b c>[NaN]
p6eval rakudo 7794ed: OUTPUT«a␤»
..niecza v24-12-g8e50362: OUTPUT«Any()␤»
isBEKaml timotimo: Yes, that's what I figured, but couldn't say much about Inf conditions.
moritz nr: say so NaN 16:08
p6eval rakudo 7794ed, niecza v24-12-g8e50362: OUTPUT«True␤»
moritz maybe that should be false
since a NaN is kinda like undefined
isBEKaml rn: say so "a" 16:09
p6eval rakudo 7794ed, niecza v24-12-g8e50362: OUTPUT«True␤»
dalek ast: 4aa7777 | (Timo Paulssen)++ | S02-types/array.t:
use Test::Util only locally.
timotimo i think this should be satisfactory now :)
moritz: want me to hunt&fix a few of the @*INC using test files? 16:10
[Coke] timotimo: 69076df (check for type instead of text?) ff9539f (use throws_like) 16:11
timotimo: yes that would be helpful. 16:12
moritz though writing new tests is better use of time
[Coke] (the inC cleanup)
moritz n: use lib 'lib'; say 'alive';
p6eval niecza v24-12-g8e50362: OUTPUT«alive␤»
moritz ok, niecza also supports use lib
then, +1
16:12 kresike joined
[Coke] pugs: use lib 'lib'; say "dead" 16:13
p6eval pugs: OUTPUT«pugs: *** Unsafe function 'use' called under safe mode␤ at /tmp/VOJEQPFtEc line 1, column 1␤»
timotimo i wonder if i can speed the process up reliably by doing a sed search&replace ...
moritz pugs: BEGIN { @*INC.push: 'foo' };
p6eval pugs: OUTPUT«pugs: *** Can't modify constant item: VUndef␤ at /tmp/deDI4EuUF9 line 1, column 9-27␤ /tmp/deDI4EuUF9 line 1, column 9-27␤»
[Coke] sadly, pugs still can't build on feather.
moritz but it also dies on the alternative :-) 16:14
isBEKaml timotimo: Like moritz said, adding new tests is a better use of your time. Of course, you can fix up those wherever & whenever you see one. :) 16:15
timotimo [Coke]: so for 69076df should i create a structured exception? because currently it throws X::AdHoc. 16:16
i suppose i could try adding more tests rather than fixing old ones
moritz timotimo: yes, 69076df needs a typed exception 16:17
timotimo sure can do.
16:18 kaleem joined
dalek ast: e76e8b9 | (Timo Paulssen)++ | S12-introspection/meta-class.t:
changed up ad-hoc $! test to use throws_like.
16:19
timotimo it could be a X::Syntax::Missing, though. 16:22
moritz yes
[Coke] timotimo++
moritz (I haven't said it needs a *new* typed exception :-)
[Coke] I did the bare minimum on that one. 16:23
there's probably tons of tests like that that need updating.
timotimo is '"while" or "until"' an acceptable value for X::Syntax::Missing.what? 16:25
16:27 kivutar joined
moritz yes 16:27
16:29 brrt left 16:30 benabik joined 16:31 hoelzro|away is now known as hoelzro 16:32 thou left
dalek ast: db9ed20 | (Timo Paulssen)++ | S04-statements/repeat.t:
enhance 114432 test case with typed exception.
16:32
timotimo t.h8.lv/0001-throw-Missing-on-repea...ntil.patch - and this is the rakudo patch 16:34
16:34 kaleem left
timotimo hum, that should have read RT #114432 :\ 16:34
16:36 kaleem joined 16:37 thou joined
timotimo t.h8.lv/0002-replace-.panic-missing...sing.patch - this, too :) 16:41
dalek kudo/nom: 1e37817 | (Timo Paulssen)++ | src/Perl6/Grammar.pm:
throw Missing on repeat without while/until.

Signed-off-by: Moritz Lenz [email@hidden.address]
16:43
kudo/nom: 22518b8 | (Timo Paulssen)++ | src/Perl6/Grammar.pm:
replace .panic: "missing..." with .missing: ...

Signed-off-by: Moritz Lenz [email@hidden.address]
timotimo thank you :) 16:44
although just mending some paper cuts, i feel like i'm contributing <3
moritz you do 16:45
(nearly) everybody starts small
I certainly did
t/spec/S12-introspection/meta-class.rakudo (Wstat: 0 Tests: 13 Failed: 1) Failed test: 13 Parse errors: Bad plan. You planned 12 tests but ran 13.
jnthn timotimo++ # patching Rakudo and tests 16:46
timotimo oh? whoopsie. that was me, wasn't it :) 16:47
moritz timotimo: I suspect so
timotimo will be fixed in just a second
kresike bye folks 16:48
16:48 kresike left
dalek ast: 60f15db | (Timo Paulssen)++ | S12-introspection/meta-class.t:
bump up the plan properly.
16:48
16:49 grondilu joined
grondilu the day 18 about measure seems cool. Anybody working on a full module International System of measures? 16:50
16:51 Kharec left
grondilu I mean a module for this: en.wikipedia.org/wiki/Internationa...m_of_Units 16:51
16:53 thou left 16:55 Kharec joined 17:14 stanley left 17:15 thou joined 17:17 kivutar left
bbkr__ README for Rakudo Star mentions --parrot-config param while "Configure.pl --help" shows no such thing, only '--with-parrot' is available. which one is correct? 17:17
[Coke] Might be a copy over from rakudo compiler's optinos. 17:21
bbkr__ i'll fill an issue 17:22
also it's not clear if --prefix is propagated to NQP/Parrot when --gen-* options are used 17:31
17:36 lawrmcfa joined 17:37 dakkar left
TimToady diakopter++ showed up here at the Wall Nuthouse with a birthday cake for Perl! 17:40
timotimo bon appetit~ 17:41
japhb Awesome! 17:44
hoelzro how nice =)
japhb TimToady, OOC which is older, Perl or your (human) children? 17:45
TimToady Perl is Geneva's younger twin(ish) sister
so older than Lewis
er, quietfanatic
huf some of your kids are here too? 17:46
japhb A quarter century of TimToady children, some human, some not. ;-)
huf (btw has anyone else noticed how parents feel _much_ younger and entirely unparentish on irc?)
my dad gtalks like a 20something year old 17:47
japhb tries to draw himself up to his full stature of parenthood, fails utterly
TimToady wall.org/~larry/Perl25th.jpg # diakopter, Timtoady, quietfanatic, markb (maternal uncle of Perl)
moritz diakopter++
japhb Akpth, upside down 17:48
huf quirky
japhb And ... uh, I think we're slamming your server.
huf wouldnt feel right if it was right side up :D
i wonder which one is your son.. :)
diakopter it's ritht side up for me in Chrome
japhb Wow, quietfanatic looks very much the mini-you
PerlJam funy how that happens. :) 17:49
er, funny even
huf he looks more like you upside down
which is quite surprising
japhb This box has an ancient browser ... I'm guessing not new enough to respect metadata image rotations, or somesuch. 17:50
17:50 benabik left
huf i have a fairly recent firefox and it didnt do it right either 17:50
masak diakopter++ # cake not a lie
moritz moritz.faui2k3.org/tmp/perl-cake.jpeg # totated
PerlJam What are the sticks with string in the background? 17:51
diakopter wall art? 17:52
PerlJam huf: btw, why is it surprising that they look more alike upside down?
isBEKaml quirky bows.
TimToady geneva made that out of leftovers from our yard 17:53
rindolf Is the guy to the right of TimToady RAFL? 17:54
masak wonderful picture.
17:54 Chillance joined
rindolf The shortest one I mean. 17:54
moritz no
masak wow, that's the first time I see quietfanatic's photo. 17:55
moritz www.flickr.com/photos/sartak/3909252367/ # that's rafl
rindolf moritz: I met RAFL.
isBEKaml nice picture, quirky bows or not. :)
rindolf moritz: once.
PerlJam huf: or .. my explaination: human brains are geared towards facial recognition, but when you turn a picture upside down we no longer tend to focus on "faces" as much as we focus on "shapes". Since TimToady and quietfan1tic have very similar angles and shapes, they tend to look "more alike" when viewed upside down. :-) 17:57
hoelzro so I'm starting to work on a Perl6 lexer for pygments 17:58
and I was wondering which set of extensions I should consider for Perl 6 17:59
so far, I have .pl .pm .p6 .nqp
should I add anything to or remove anything from that list?
flussence .p[lm]6 maybe
tadzik hoelzro++ 18:00
hoelzro oh, also! what MIME type should I use? I currently have text/x-perl6 and application/x-perl6 18:01
isBEKaml pygments? for github? 18:02
hoelzro isBEKaml: yes! 18:04
huf PerlJam: yeah, that was my guess too
moritz \o/
huf PerlJam: i'd just never noticed _this_ particular thing before
hoelzro well, I'll have to modify linguist too, but that's the easy part*
*for some value of 'easy'
isBEKaml hoelzro: awesome! hoelzro++ # we have poor support on github, WBNI we see that on editors too.
hoelzro looks at vim-perl for Perl 6 keywords 18:05
18:06 hash_table joined 18:11 kivutar joined
hoelzro finds it funny that he'll be spending Perl 6 tuits writing Python =P 18:12
tadzik If you know yourself, but not the enemy, for every victory gained, you will also suffer a defeat 18:13
or something like that
PerlJam wonders who "the enemy" is in this scenario
18:16 thou left 18:23 bowtie joined
[Coke] wonders if he'll get bonus points on t2 if he ends up adding a module to the ecosystem. 18:25
. o O (Don't answer that question!)
18:25 thou joined 18:26 Kharec left 18:27 isBEKaml left
sorear good * #perl6 18:42
timotimo hm, my desktop does Stage parse in 95 seconds, my laptop does in 150. i should seriously move my rakudo hacking over to my desktop! 18:43
pmichaud hello, happy birthday Perl -- but why isn't the cake falling? 18:45
btw, I suspect this is close to Rakudo's 5th birthday, then.
diakopter fg 18:46
[Coke] pmichaud: Guten Morgen! 18:47
jnthn pmichaud: ooh :) 18:51
pmichaud: Wait, how many years have I been hacking on this? 5?!
PerlJam pmichaud: See commit 2dceda54f6bc225a3d0924db15dc28d01a739add :-)
pmichaud December 2007 was release #0 18:52
PerlJam jnthn: commit bf6fe0dc4ab0c90be49ddde722b4fcf719dd409d for you :)
Su-Shee "that doesn't look like a date to me" ;) 18:54
pmichaud commit bf6fe0dc was 2007-12-16
18:55 grondilu left
Su-Shee wow, seems shorter than 5 years... 18:56
jnthn Aye
tadzik advent post scheduled for tomorrow 18:57
pmichaud tadzik++
tadzik also, my threads.nqp thing, which used to segfault, now works 18:58
(on green threads)
let's see it rakudo works as well
PerlJam pmichaud: you know ... Dec 24 is still open on the advent schedule. Care to write something?
19:00 kivutar left
pmichaud PerlJam: I think I'm likely to be unreliable for that this year :-/ 19:03
or, anything I write would be sub-standard
(for me, at least)
afk, bank 19:05
PerlJam TimToady: would you be willing/able to contribute a Dec 24 advent post? 19:07
pmichaud (I'm out of town 12/20-12/23, and in the days before/after those I'm entertaining family visitors) 19:11
19:18 bowtie_ joined 19:19 bowtie_ left 19:21 popl joined 19:22 Kharec joined
tadzik gist.github.com is acting funny, so here are threads in Rakudo: wklej.org/id/901046/txt/ 19:23
works for just 'async &count' too
kthakore hi friends 19:25
PerlJam tadzik: must you have a newest version of parrot/nqp/rakudo to use it? Or tadzik's-local-patches?
kthakore: greetings!
tadzik PerlJam: parrot HEAD, but.... 19:26
build with using --without-threads :D
native threads still don't work for nqp, --without-threads makes them green threads, which work alright
kthakore PerlJam: how is it going?
PerlJam tadzik: ok 19:27
kthakore is waiting on FROGGS :|
19:27 kaleem left
PerlJam kthakore: It's going good. Are you still hacking on SDL? 19:27
tadzik jnthn: how can I has non-perl6 attribute in a class?
19:28 leont joined
kthakore PerlJam: yeah I have been out of it for a while cause I have been working on 2 startups and my masters 19:28
PerlJam: but FROGGS took over SDL6 and I am going to help where I can when I get a break
The passing of the torch and all that. 19:29
Perl5 SDL and Alien::SDL are on Debian and about as stable as it can get
How about you PerlJam ?
tadzik or specifically: how do I pass a non-perl6 value to a sub? 19:31
PerlJam kthakore: I've lots of ideas and very little time apparently. 19:32
FROGGS kthakore: gist.github.com/4321746
diakopter tadzik: a non-6model object? 19:33
tadzik Mu \foo greets me with Unmarshallable foreign language value passed for parameter 'foo'
diakopter: yes
hmm
I can workaround it, actually
popl why did I read unmarshmallowable?
:(
FROGGS popl: hungry?
PerlJam popl: heh
popl FROGGS: maybe 19:35
jnthn tadzik: Passing them to subs is tricky. Attributes - work out fine but use nqp::getattr and nqp::bindattr to deal with them.
popl PerlJam: Your handle is the first to tab-complete when I try to talk to perlbot. :P 19:36
tadzik yeah, I worked around it a bit
lazy-bound the attributes :)
19:36 FROGGS_ joined
tadzik having wklej.org/id/901067/ now 19:36
19:37 leont left
tadzik ideally one wouldn't have to call .schedule to assign $!task 19:37
Ulti now has an Erdos number of 4
popl Ulti: \o/ 19:38
19:38 SamuraiJack left
popl Ulti: What did you write? 19:39
Ulti a journal paper with my supervisor ;) who has an Erdos number of 3
19:39 bowtie left
[Coke] Ulti: hurm. I have a Bacon number of 4 if you squint properly. 19:39
popl What was the topic of the paper?
moritz Ulti++ 19:40
[Coke] Ulti++ #yours is better. :)
Ulti popl it was a bout a database I built for predictions of a specific aspect of protein structure
sorear no, no
popl Oh neat.
sorear Ulti min= 4
Ulti true
lol my supervisor has gone crazy, he's worked out we are in the direct lineage of PhDs from Galileo (somehow) 19:41
surely most of western science is 19:42
popl crazy?
Ulti yeah he is now trying to work out our Darwin numbers
popl :)
Woodi hallo everyone :) 19:43
Ulti hi .0/
popl Is that how many times removed from apes we are?
Ulti lol almost 19:44
only takes 9th cousins for you to be related to all of humanity 19:45
iirc
19:45 MikeFair joined
Woodi for me Perl have gravity :) you trying to write in other language but you got distracted for a moment or two and then you see you are floating down the gravity well :) 19:46
popl I wish you wouldn't bring up my estranged relatives. I don't talk to them for a reason, you know. They always double-dip at the family reunions. :P
GlitchMr github.com/tadzik/Threads 19:47
Threads :-)
tadzik Yep. Threads :) 19:49
dalek osystem: eb3b8df | tadzik++ | META.list:
And so it has come to this... add Threads
19:50
19:51 kivutar joined
GlitchMr 'built with 19:51
--without-threads'
Makes sense...
19:53 xinming left
tadzik I'll now use it for ALL THE THINGS 19:53
seen nine 19:54
aloha nine was last seen in #parrot 67 days 9 hours ago joining the channel.
[Coke] tadzik++
nine++
rurban++
Woodi cedrvint++ # for kΩ ± % ¥€$ and rest :) 19:55
and tadzik++ :)
19:55 xinming joined
flussence I spent way too long thinking about writing a measurements DSL/whatever, but it never actually went anywhere useful. I think I had half of a grammar for parsing values from strings somewhere... 19:56
Woodi cedrvint: do in '($resistance ~~ 4.7kΩ ± 5%)' '~~' can be replaced by '=' somehow ? 19:57
TimToady no, because the right side is a pattern 19:58
hoelzro this pygments lexer is actually coming along pretty easily: hoelz.ro/files/perl6-pygments.png
at least, until I get to the "fun" stuff ;)
bbkr_ awesome advent post!
tadzik whee
Woodi flussence: I was writing Money 'class' in C and cedrvint++ outdated my sweatings :)
tadzik hoelzro++ # gooood stuff :) 19:59
hoelzro it's a start!
20:03 SmokeMachine left 20:05 kurahaupo joined
tadzik it's a good start too 20:10
20:11 FROGGS_ left
FROGGS hoelzro: are you going to supply a patch for github? 20:11
hoelzro FROGGS: when it's ready, I shall 20:12
FROGGS awesome!!
hoelzro but that's the idea =)
FROGGS ++hoelzro
hoelzro it'll be interesting when I start doing the more complicated bits
but it's programming in Python, doing some parsing stuff, with revision control in Mercurial 20:13
20:13 pawanPandey joined
hoelzro three things I'm not accustomed to =) 20:13
FROGGS ya, it would be more fun in Perl 6 with grammars in git ;o)
hoelzro probably, but I like stretching my brain a bit! 20:14
FROGGS sure, no doubt 20:15
(Perl 6 and grammars do the trick for me)
I'm currently writing a grammar to parse Perl 6 code...
hoelzro oh, nice! 20:16
FROGGS so I would be able to get the classes and modules and whatever it defines
it gets top level stuff so far, and skipps stuff in pod blocks
20:18 fhelmberger left
dalek rl6-bench: 64f1831 | (Geoffrey Broadwell)++ | README:
Several README improvements, including significantly more clarity about prereqs
20:20
tadzik bah, there's no rosettacode.org/wiki/Dining_philosophers for Perl 6 20:21
diakopter I'll be impressed...
tadzik diakopter: img.izismile.com/img/img5/20120224/...640_03.jpg 20:22
I'm putting semaphores together
pmichaud back again briefly 20:25
[Coke] o/ pmichaud 20:30
pmichaud o/ Coke
jnthn r: say "Hey Pm" "My errors suck less now" 20:32
p6eval rakudo 22518b: OUTPUT«===SORRY!===␤Two terms in a row␤at /tmp/bVIs3kZETO:1␤------> say "Hey Pm" ⏏"My errors suck less now"␤ expecting any of:␤ postfix␤ infix or meta-infix␤ infix stopper␤ statement end␤ statement…
pmichaud yes, I've noticed the high-water mark work. Excellent job. 20:33
tadzik r: sub foo { has $.a; method b {} } 20:34
p6eval rakudo 22518b: OUTPUT«===SORRY!===␤You cannot declare attribute '$.a' here; maybe you'd like a class or a role?␤at /tmp/MEvjn6GzqW:1␤------> sub foo { has $.a⏏; method b {} }␤ expecting any of:␤ scoped declarator␤ constraint␤»…
tadzik hrm
jnthn Yeah, it made things...vastly more accurate.
tadzik Error while compiling block : Error while compiling op call: Error while compiling block : Error while compiling block : Error while compiling block : Error while compiling block wait: Error while compiling block : Error while compiling op p6typecheckrv: Error while compiling op lexotic: Error while compiling op p6decontrv: Cannot infer type from '' 20:37
yeah... thanks...
GlitchMr github.com/tadzik/Threads/blob/mas...Threads.pm
Threads are... so easy?
tadzik GlitchMr: well, it took some effort to write that short, clear code, but yeah :)
[Coke] there is a lot of parrot heavy lifting you don't see there. 20:38
GlitchMr The shortest threads module I've ever seen.
[Coke] plus also tadzik is AWESOME
tadzik I'm also flattered :) 20:39
GlitchMr Too bad you had to use low-level NQP/Parrot calls that don't have to exist in full Perl 6 specification.
jnthn tadzik: On that error, most probably you have some pir op or so that returns void and have it last in a block or sub
GlitchMr But full Perl 6 implementation won't need it.
[Coke] method join!
GlitchMr And niecza already has Threads.
pmichaud afk, kid pickup
GlitchMr Also, join is a bad name for method. 20:40
diakopter GlitchMr: but it's the traditional name
[Coke] GlitchMr: Surely it's ok for your perl6 implementation to call out to your VM?
tadzik jnthn: ah, that'd be it, yes
jnthn Some things *have* to call down to the VM. Like, say, nativecall.
GlitchMr NativeCall should be part of Rakudo. 20:41
(not really)
[Coke] I wonder if we can somehow mark a module as for a particular impl.
GlitchMr For me, anything that uses cil::, nqp:: or pir:: isn't Perl 6.
[Coke] module threads :impl(Rakudo);
20:41 cogno joined
GlitchMr Or whatever Niecza used for Common Intermediate Language calls 20:42
[Coke] GlitchMr: it can't be elephants all the way down.
(should have said turtles! bad coke)
jnthn
.oO( At some point, you gotta hit the turtle... )
GlitchMr nqp::/pir:: is for implementation specific modules. 20:43
Except, implementation specific means it isn't Perl 6
Su-Shee *sniff* diakopter: the cake is so nice. *sniff* :) 20:44
GlitchMr It isn't Perl 5 with just one real implementation.
(I know, Perlito already works with Perl 5 well, but nobody actually uses it)
[Coke] GlitchMr: I think your distinction doesn't matter. I'm not running perl6, I'm running rakudo. 20:48
(or niecza. or pugs)
Ideally, yes, you hide those impl. specific stuff, and they're not part of the language, and you don't have to call them yourself, but SOMETHING is going to be using them. 20:49
(unless you're using yapsi)
Is this going to stop you from using Threads?
tadzik aahhh, shit 20:51
FROGGS if I wanna use NativeCall or tadzik Threads module I dont care what it does inside, and I wont care if there are different NativeCall modules shipped with niecza and rakudo, as long as the API is the same
tadzik wklej.org/id/901183/
spot a bug 20:52
I dare you
20:52 xinming_ joined
tadzik or at least I think it is so hard to spot 20:52
(and I did identify it correctly)
hmm, maybe I didn't 20:53
20:54 am0c left
[Coke] tadzik: "acquire" ? ;) 20:54
tadzik ahaha
yeah, that too :)
it shifts from an empty array somewhere
and it doesn't seem to be this sink context thing again
rurban talking as release manager of parrot-4.11.0: we will ship parrot 4.11.0 with native threads support enabled. nqp cannot call functions in threads(tasks) with access to lexicals outside yet. parrot --without-threads you can do, but we encourage you to fix nqp instead. see nqp branch gh67-threads.
20:55 xinming left
rurban nqp also needs to be updated to generate writer functions for shared variables automatically., read-only access works if you use parrot's lexpad.pmc 20:56
pmichaud I don't think we can use parrot's LexPad -- it's not quite advanced enough for us. 20:57
rurban see t/nqp/67-threads.t in my branch for a simple failing read-only testcase
This is a new experimental feature. I hope you'll like and embrace it. (hyper in full speed) 20:58
pmichaud we'd like to see an example of hyper in PIR first, I think.
rurban hyper in pir? ok, why not
hoelzro where is the list of legal characters for an identifier found?
pmichaud hoelzro: alphabetics, numerics, and underscore 20:59
hoelzro not dash?
pmichaud oh, and hyphen and apostrophe if followed by an alphabetic
hoelzro ok, thanks!
rurban 2nd problem I found was this: --without-icu nqp throws a parse-time error when encountering charnames
cannot this be made a run-time error instead?
pmichaud rurban: yeah, it's a known problem. There's not an easy fix that I know of.
21:00 GlitchMr left
rurban I tried to fix it but I found no good nqp support for it. 21:00
pmichaud if it's a compile-time error it's hard to make it runtime :)
besides, normally one wants to catch errors as early as possible -- that means moving runtime errors to compile-time, not vice-versa :) 21:01
dalek p-rx/rurban/find_codepoint-error: a352bfb | rurban++ | src/HLL/Actions.pm:
Failed attempt to fix find_codepoint errors

  --without-icu
21:02
rurban agreed. see my branch
It's only for the testsuite.
21:03 sqirrel left
pmichaud rurban: the problem is that find_codepoint throws an exception if ICU isn't loaded 21:04
rurban I tried to fix that part in libparrot, returning -1 instead
I should have documented it in the commit message. with current libparrot you have to catch the exception 21:05
pmichaud at any rate, anything that happens in HLL::Actions is liable to be compile-time
since that's what the Actions stuff does.
rurban I wanted to have a nice SKIP testmessage for this failing test
jnthn nqp: BEGIN { }
p6eval nqp: ( no output )
jnthn Could check it at BEGIN time before it hits the parse error 21:06
pmichaud SKIP seems a bit advanced for NQP, though.
NQP is supposed to remain simple/lightweight
jnthn aye
I was more thinking that you just use BEGIN to look at config
But then we make the test Parrot specific
When we're meant to be doing the exact opposite.
rurban ok, maybe print at the test header that --without-icu compile-time errors are expected 21:07
21:07 pawanPandey left 21:08 kivutar left
pmichaud for now, we could avoid the call to find_codepoint if icu isn't loaded. 21:09
but I'm not sure what to do with the string constant in that case.
i.e., if ICU isn't loaded, then what should NQP do with "\c[LATIN SMALL LETTER O]" . Leave it alone? Replace the character with some sort of "invalid character" placeholder? 21:11
seems to me that a compile-time error is the right response.
jnthn Aye.
jnthn ain't sure why we're spending time on trying to "fix" this... 21:12
pmichaud well, so that people who run "make test" on nqp when icu isn't present don't get strange errors, I think.
jnthn ah
But most end users don't do that. 21:13
As in, most NQP end users are actually Rakudo end users.
pmichaud depends on "end user" -- in this case, it's a parrot dev that wants to make sure a Parrot change hasn't broken nqp
jnthn Ah...
Well, the Parrot change to remove ICU from the Parrot repo *did*. :P
pmichaud which we ought not discourage parrot devs from testing changes against nqp :) 21:14
jnthn Aye
pmichaud well, removing icu from the parrot repo was a necessary thing, imo
21:14 cogno left
pmichaud otherwise distro packagers would be carping about parrot including icu 21:14
as in carping LOUDLY
anyway, the correct approach is likely to change the test file. Maybe turn the test into an eval statement of some sort. 21:16
at least, for now. 21:17
jnthn *nod* 21:19
Yeah, the \c[...] really should complain if it can't do anything sensible. 21:20
Well, there compiler is available through compreg
Which I expect we probably will want a backend-independent thing for. After all, it's basically just a hash... :)
pmichaud could be a nqp::op initially 21:21
jnthn yeah, I've been tempted to add it once or twice :)
pmichaud nqp::compiler('rakudo') or somesuch
jnthn ooh, nice name :)
pmichaud could also be $?COMPILER, which gets you to the current compiler and it knows how to locate others 21:22
21:23 sjohnson left, sjohnson joined
skids
.oO(on a tangent, maybe the versioning system could be tapped to deal with runtime testing for optional third-party libs. e.g. choosing pure-perl6 implementations when an NCI dependency is not installed.)
21:23
pmichaud well, more generally we have to figure out how we want to handle strings in NQP when faced with multiple backends -- that's where this problem falls. 21:25
jnthn pmichaud: Something like that may actually be better...as a problem with a global hash like compreg is things get messy in bootstrap situations...
pmichaud jnthn: yes, having method-based access was where I was headed with pir::compreg('Parrot') back in the PCT days 21:26
i.e., one could always ask for the generic compiler, then ask it to find the other compilers or help out with conversions
21:28 cogno joined 21:30 cognominal joined, abth joined 21:32 xilo_ joined 21:33 cogno left
masak 'night, #perl6 21:44
moritz knight, masak 21:45
tadzik good knight masak 21:46
moritz (notice that nobody calls masak a knave :-) 21:47
tadzik bah, no free slot to write about threads 21:48
next year theN :)
moritz or, you know, just blog :-)
or ask PerlJam if he actually has a topic for the 22th :-)
moritz -> sleep 21:49
tadzik good knight moritz
21:50 hoelzro is now known as hoelzro|away
pmichaud I'm afk for a while 21:50
[Coke] ~~
21:53 pmurias joined 21:55 thou left 21:58 Tyrannical_Shaun joined
Tyrannical_Shaun ... 21:58
hello...
21:58 Tyrannical_Shaun left
pmurias [Coke]: re marking for particular implementation maybe a 'use rakudo'? 21:59
[Coke] Hio.
22:01 thou joined 22:04 abth left
[Coke] use implementation <rakudo>, maybe? 22:04
22:05 kaare_ left
pmichaud converts rakudo's github account into an organization account. 22:08
it's taking a while...
jnthn saw the flurry of emails
er, well, 2 of them :)
22:09 skids left
pmichaud ...and I've added various accounts to the owners team 22:12
rurban nqp and rakudo pass all tests with parrot-4.11.0 threaded on linux 22:13
22:14 snearch joined
pmichaud well, the "transforming rakudo" page is still showing, but it appears to have been transformed already. 22:14
22:16 bowtie joined
lichtkind moritz: ping 22:18
22:19 MayDaniel left
lichtkind jnthn: do you have calendar access 22:26
timotimo rurban: what does threaded mean in this context? green threads? 22:27
colomon is on team rakudo! 22:28
timotimo i don't feel comfortable dismissing niecza just like that :|
lichtkind allright i will mail it moritz 22:29
tadzik timotimo: non-green I guess 22:30
green threads are Parrot built --without-threads
timotimo ah, OK.
so, does it use threading at all?
perhaps (perheaps?) a threaded GC? 22:31
22:31 gfldex left 22:33 grondilu joined
grondilu well, I have to say. I signed up for the 2012 coding context, but honestly I'm starting to have regrets. This thing is tough. 22:34
PerlJam tadzik: I'd happily let you write about threads on the 22nd (since I haven't evene decided on a topic yet) 22:36
pmichaud threads +1
tadzik there is not too much to write 22:37
PerlJam tadzik: also, the 24th currently seems empty. :)
colomon did a bunch of coding for the 21st "Collatz" post, but started thinking maybe a grand overview of p6's operator philosophy might be more appropriate after reading Hacker News today.
tadzik esp since green threads do block the entire interpreter on IO, which limits the usecases a bit
but it's cool nonetheless :)
[Coke] grondilu;eh. you don't ahve to finish them all, just do your best.
I only did one last year, and hit a wall. it was still a good experience, I think. 22:38
tadzik but maybe we can figure out some cool usage example 'til 22
rurban timotimo: green + native OS
grondilu [Coke]: that's the problem with "do your best". Everyone will know how much I suck :/
pmichaud a good post somewhere would be simply to identify all of the places where perl 6 enables parallelism to occur
or, at least, doesn't prevent it :)
rurban timotimo: see www.parrot.org/news/parrot-threads-...dar-day-11
tadzik hm, we could now write all those hyperops with parrot threads 22:39
it's just that we have to use green ones, as nqp doesn't support the native ones
pmichaud well, we also have to watch locking
rurban parrot threads are almost lock-free. 22:40
pmichaud I'd like to see an example first :)
(as in, a hyperop implemented in PIR)
PerlJam tadzik: remember what I said about POE before? Look at how successful POE has been even with all of its limitations. Maybe a post that re-implements some simple POE thingy would be useful? 22:41
rurban The GC needs some more locking though. (race when alloc in one thread and the other is doing mark&sweep)
tadzik PerlJam: I don't quite see the connection between POE and threads 22:42
PerlJam tadzik: What I'm saying is that you've got a simple threads implementation that isn't quite perfect. If you squint, that's very much like POE ;) So, if you could find a simple problem that POE solves, but is normally solved with threads, you could do that as an advent post. 22:44
rurban github.com/parrot/parrot/issues/889
22:45 hash_table left
[Coke] grondilu: eh, don't worry about it. everyone has different skills/time availability. I'm taking the contest as a challenge to learn more Perl 6. 22:45
PerlJam [Coke]++ I've been waffling about participating or not (same as I did last time) because I'm not sure I'll be able to devote enough time to it. But, this year, I think I'll participate and see what happens. 22:47
grondilu: then you won't have to worry so much about sucking because I'll be there with you :-)
pmichaud I'm afk -- bbt
tadzik PerlJam: true. I 22:49
'll think of something
22:53 PacoAir left 22:55 snearch left
timotimo so how long until we see a perl6 program being faster with threads enabled than without in rakudo? :] 22:56
22:57 Kharec left
timotimo special bonus if there's no explicit mention of threading in it, maybe some for loops, maps, hyperops, lazy eval, junction, ... being sped up behind the scenes 22:57
22:58 gfldex joined 23:00 thou left 23:11 pmurias left 23:13 stopbit left 23:16 thou joined 23:35 hash_table joined 23:39 skids joined 23:48 gfldex left, gfldex joined 23:50 Vlavv` joined 23:53 Vlavv left