»ö« 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:05 slayer101_ joined 00:07 fgomez joined
jnthn 'night, #perl6 00:12
diakopter o/ 00:13
00:15 slayer101_ left 00:24 tomgj joined
tomgj Howdy. I've been having some trouble piecing together from public documents what kind of things it should be possible to declare in signatures using "returns" or --> 00:28
00:29 cognominal_ joined
tomgj This (admittedly marked out of date) describes it being very featureful www.dlugosz.com/Perl6/web/return.html 00:29
but all the examples in roast an in the synopses seem to be limited to a single typed value. 00:30
00:31 cognominal left 00:37 bowtie left 00:45 Juerd left, Juerd joined 00:50 thou left 00:54 benabik joined
[Coke] tadzik: tadzik 00:55
tadzik: it is no longer broken. I cannot reproduce the error. 00:56
01:03 cooper left 01:05 slayer101_ joined 01:07 benabik left 01:11 cognominal_ left 01:13 hypolin joined 01:16 anuby joined 01:27 benabik joined 01:28 slayer101_ left 01:33 slayer101_ joined 01:41 slayer101_ left
[Coke] me; 01:48
01:49 slayer101_ joined
colomon [Coke]: you; 01:56
01:57 sbox left 02:01 benabik left 02:11 benabik joined 02:13 hash_table joined 02:21 hash_table left
timotimo phenny: tell moritz that it'd be nice if you could click "summary" and then "previous page" in the irclog without having to re-click "summary" for every day 02:33
phenny timotimo: I'll pass that on when moritz is around.
timotimo also, it seems like the effort to summarise the perl6 channel talk has kind of died down. probably because it's too much work? 02:35
02:37 hash_table joined 02:45 WarmFemale joined, WarmFemale left 02:47 am0c joined 03:00 sftp joined 03:02 stopbit left 03:09 Targen joined 03:35 sftp left 03:46 Psyche^ joined, Psyche^ is now known as Patterner 03:48 grondilu_ joined 03:51 grondilu left 04:02 hash_table left 04:06 REPLeffect left 04:07 benabik left 04:19 REPLeffect joined 04:23 jaldhar joined 04:36 benabik joined 04:54 mikemol left, mikemol joined 04:56 yakshavr left 04:57 yakshavr joined 05:04 uvtc joined 05:07 jaldhar left 05:09 jaldhar joined
uvtc phenny: tell PerlJam thanks for the link to pmichaud's talk re. Lists and Parcels, though turns out that one was Part 2. I was looking for Part 1, which after a little bit of searching appears to be www.youtube.com/watch?v=mrfK1dtyD14 05:12
phenny uvtc: I'll pass that on when PerlJam is around.
05:13 benabik left, kurahaupo left 05:14 uvtc left, benabik joined 05:23 PerlPilot is now known as PerlJam
dalek : df6526c | (Herbert Breunung)++ | misc/perl6advent-2012/schedule:
Update misc/perl6advent-2012/schedule
05:24
05:30 slayer101_ left 05:32 slayer101_ joined 05:33 telex left 05:35 telex joined 05:38 sbox joined
PerlJam phenny: tell uvtc, ah. Thanks. :-) 05:39
phenny PerlJam: I'll pass that on when uvtc is around.
PerlJam: 05:12Z <uvtc> tell PerlJam thanks for the link to pmichaud's talk re. Lists and Parcels, though turns out that one was Part 2. I was looking for Part 1, which after a little bit of searching appears to be www.youtube.com/watch?v=mrfK1dtyD14
sbox hi. Any documentation on mutually recursive classes? 05:51
benabik It's a mistake, don't do it. ;-)
05:52 kurahaupo joined
sbox let me clarify - class A has a method calling class B's constructor, and vice versa 05:52
is that what you thought I meant?
benabik I thought I was being a small pain. I think what you're looking for is a stub class. class B {...}; class A { method foo() { B.new } }; class B { method bar { A.new } } (IIRC) 05:53
05:53 kaleem joined 05:55 thou joined
sbox ah cool. thanks :) 05:55
benabik: is that sort of thing regarded as bad practice? What did you mean by "mistake"? 05:56
benabik sbox: I mostly meant that I have a poor sense of humor. It's late. 05:57
sbox kk :P
benabik sbox: Although mutually dependent classes should be very carefully thought out. Can get confusing easily.
Stub classes, AFAIK, are just a useful kind of circularity saw not code smell. 05:58
moritz nr: say "I'm back (?)" 06:06
phenny moritz: 02:33Z <timotimo> tell moritz that it'd be nice if you could click "summary" and then "previous page" in the irclog without having to re-click "summary" for every day
p6eval rakudo 22518b, niecza v24-12-g8e50362: OUTPUT«I'm back (?)␤»
sorear mutually dependant classes are an excellent example of (code smell) \ (always wrong) 06:13
in particular it's hard to do anything in the setting without them 06:14
sbox what do you mean by "in the setting"? 06:19
moritz the setting is the the collection of built-in stuff (routines, classes, roles etc.) that live in an outer scope of your program
06:27 GlitchMr joined
jokar hello all 06:34
what is perl6 and what is difference between perl 5 and 6?
sorear hello jokar
jokar sorear: Hi
sorear: why Perl 6 have own web site but Perl 5 not? 06:35
sorear perl 6 is a comprehensive overhaul of perl 5, a new language from the same people intended to remove as many as possible of perl 5's warts
PerlJam jokar: They are different languages that have some superficial syntactic similarity, but the same deep philosophical underpinings
jokar: Perl 5 has perl.org and perl.com
jokar PerlJam: it is loke python 2 and 3? 06:36
like*
PerlJam: Python 3X is a new version of Python 2X
sorear like, but more so.
PerlJam jokar: no. The change differential is greater between Perl 5 and Perl 6 than between Python 2 and Python 3 06:37
sorear compared to p6, py3k is very conservative
jokar your mean is we have two version of perl
a line is Perl 5 and another line is Perl 6
PerlJam jokar: two languages that are similar but different.
jokar: Just like C and C++ (for instance)
slayer101_ would you say perl6 is a superset of perl5? O.o
PerlJam jokar: or Lisp and Scheme
jokar PerlJam: How can i find Perl 6 developer? 06:38
PerlJam slayer101_: no, I wouldn't say that.
jokar I have some question about Perl6.org
PerlJam jokar: this is the place to ask.
jokar PerlJam: Can i send PM?
sbox slayer101_: syntax for regexes, bitwise operators, loops and if statetments (to name a few) has changed from perl5. 06:39
sorear jokar: most of the people in this room are perl 6 developers
slayer101_ sbox: didnt know that
PerlJam jokar: you can, but I'll likely ignore it :) What's wrong with talking on channel?
06:40 dayangkun joined
slayer101_ how far along is perl6 these days? 06:40
PerlJam slayer101_: There are about 4 implementations in various stages of development. 06:45
slayer101_: the two most active ones are Rakudo and Niecza
06:46 adrian joined
PerlJam slayer101_: actually, after thinking about it some, I might say that Perl 6 is an ideological superset of Perl 5. Perl 6 has more useful ideas packed into the language. 06:46
06:46 adrian is now known as Guest15318
benabik PerlJam: + Pugs + ? 06:47
sorear jokar: try typing "/whois sorear" without quotes into irc
popl "/whois sorear" without quotes into irc
PerlJam benabik: perlito 06:48
jokar PerlJam: In your opinion we have not perl 7 in the next?
PerlJam jokar: parse error.
popl what does that even mean?
jokar PerlJam: How can i take a permission for reserve a perl6 domain for my country? 06:49
PerlJam er, what?
moritz jokar: just do it
sorear Ask someone from your country.
jokar If i reserve it, Is it illegal ?
sorear surely that depends on the laws of your country 06:50
as a general rule, though, governments have been amazingly slow at regulating the DNS
jokar sorear: in your opinion all Perl user move to perl 6?
popl sorear: They need to understand it first.
jokar Is Perl 5 rare in the next? 06:52
popl next what?
jokar in the next year
sorear I think jokar is asking if perl 6 is going to replace perl 5 i the long term
jokar: next year, perl 5 is pretty secure 06:53
popl jokar: I don't think it will.
PerlJam jokar: Are Scheme and Lisp both still around? Perl 5 and Perl 6 will continue to coexist just like Lisp and Scheme or C and C++ , etc.
06:53 kurahaupo left
sorear jokar: perl 6 is not likely to replace perl 5 for most users for 5-10 years yet 06:53
06:53 aloha left 06:54 aloha joined
jokar PerlJam: Perl 7? 06:54
PerlJam jokar: NST
sorear :L 06:55
PerlJam In 50 years or so I think Perl 6 will have replaced Perl 5 but mostly due to convergent evolution.
pmichaud good morning, #perl6
sorear (that was me attempting to exit vim and failing epically)
popl sorear: That word is obsolete. 06:56
It only shows up in Webster 1913. 06:57
sorear I use the words I want to use and they mean what I want them to mean.
popl What are you, Shakespeare?
PerlJam popl: Where's your implementation of Perl 6? ;> 06:58
sorear Worse. I'm a descriptive linguist.
pmichaud I believe it was the Queen of Hearts who said that. :-)
oh, wait, it was Humpty Dumpty 06:59
popl PerlJam: I haven't written it yet, duh. 07:00
sorear: neato
pmichaud: I didn't knwo Humpty Dumpty said anything at all.
sorear was Humpty Dumpty a Caroll character too? 07:01
pmichaud en.wikipedia.org/wiki/Humpty_Dumpty...king-Glass
popl OH
There
sorear I thought that was one of the English folk songs from time immemorial
I see
popl It is, sorear.
all the kings horses... 07:02
pmichaud: thanks
John Tenniel is great.
07:03 popl left 07:12 sbox_ joined 07:14 SamuraiJack joined 07:15 sbox left 07:19 GlitchMr left
sorear sbox_: hmm, do we need a P-box now? 07:19
sbox_ not sure why my name changed... 07:20
07:20 sbox_ is now known as sbox
sbox sorear: haha. Actually my alias came about before I knew what s-boxes were. 07:22
sorear sbox: normal IRC behavior. your connection was lost, so your client automatically reconnected under a different name. 07:27
07:28 jokar left
sbox ohnoes - my noobness is showing =/ :P 07:29
07:32 Patterner left
tadzik masak++ # nice post :) 07:34
good morning #perl6
07:34 am0c left
sorear hugs sbox 07:37
good morning tadzik
08:17 FROGGS joined 08:21 slayer101_ left, Guest15318 left
FROGGS morning 08:21
08:39 kresike joined
kresike hello all you happy perl6 people 08:39
08:39 rollerpig joined 08:40 rollerpig left
FROGGS hi kresike 08:41
08:42 kresike left, kresike joined
kresike FROGGS, o/ 08:42
ööö, note to self, Ctrl+w works different in xchat than it does in vim :) 08:43
moritz Ctrl+w traditionally closes windows :-) 08:45
kresike obviously I need more coffee ! 08:47
sorear hello all you kresikes
kresike sorear, o/ :)
08:48 hoelzro|away is now known as hoelzro
hoelzro o/ #perl6 08:48
FROGGS hello all you happy moritzes, sorears and hoelzros ;o) 08:56
hoelzro ahoy FROGGS
Su-Shee good morning everyone :) 08:58
FROGGS brb # christmas brunch at $work 08:59
moritz good Su-Shee, morning
hoelzro morgen Su-Shee 09:00
09:04 thou left 09:25 Kharec joined
jnthn god morgen, #perl6 :) 09:32
hoelzro morning
so I managed to get make install DESTDIR=$dir working with Rakudo * last night 09:34
\o/
but I've encountered a fun new issue...
jnthn yay, and uh-oh :) 09:35
hoelzro the PIR files generated from precompiling the modules have a bunch of .annotate statements in them pointing to the package staging directory instead of where they'll be residing on disk
and they have hardcoded paths to their dependency PIR files
ex. "/home/rob/packages/rakudo-star/pkg/usr/lib/parrot/4.6.0/languages/perl6/lib/NativeCall.pir" 09:36
(from DBD::mysql)
so I'm wondering what would be the best way to solve that
also, I think I'm going to have to make a few changes to NQP; namely, allowing a user to tell NQP where to find dynext files as well as library files
this was the solution I had to resort to: github.com/hoelzro/rakudo-star/com...c4e75f1414 09:37
Su-Shee tadzik: I'm getting an error when installing panda: No such method 'path' for invocant of type 'Any'
panda is still THE module installer, isn't it? ;) 09:38
moritz it is :-) 09:41
09:42 Kharec left 09:43 sbox left, Psyche^ joined, Psyche^ is now known as Patterner, Kharec joined
Su-Shee and it should work with any of the last let's say three rakudo stars? 09:43
moritz well, each rakudo star comes with its own panda 09:44
and the shipped panda should work with the star it came with
Su-Shee oh I already have panda!? ok.
jnthn hoelzro: The .annotate stuff probably doesn't keep things from working since it's just used for error reporting. Where are you seeing the dependency paths?
When I look at the compiled output for module loading it hasn't got hardcoded paths. 09:45
hoelzro jnthn: I'm on a different machine at the moment, but I'll try to reproduce 09:46
Su-Shee now that looks better: ==> Succesfully installed XML::Parser::Tiny
09:46 sbox joined
hoelzro huh. apparently my fix for Rakudo * doesn't work on OS X 09:47
because of the case insensitive FS 09:48
well, all the more reason to add that feature to NQP =)
09:49 dakkar joined
Su-Shee masak_: a little Text::CSV problem.. scsys.co.uk:8002/219706 09:50
09:54 d4l3k_ joined, anuby_ joined
Su-Shee hm. all modules but two failed so far to install :( 09:56
09:56 Woodi_ joined 09:57 tadzik1 joined 09:58 dakkar_ joined 10:01 hypolin left 10:02 dakkar left, dayangkun left, anuby left 10:03 skids left, tadzik left, p6eval left, hugme left, dalek left, Woodi left, rummik left, silug left, rurban left, d4l3k_ is now known as dalek
felher r: say "hello #perl6" 10:04
Hm, something's wrong.
sorear felher: p6eval is on the other side of the network
felher sorear: ah, okay :)
10:05 hugme joined, ChanServ sets mode: +v hugme, p6eval joined, ChanServ sets mode: +v p6eval 10:09 silug joined 10:10 skids joined
hoelzro jnthn: [11:08:48] rhoelz@Robs-MacBook-Pro.local /tmp/staging/tmp/parrot/lib/4.6.0/languages/perl6/lib/DBDish $ grep /tmp/staging mysql.pir | grep -v annotate cur_sc."set_description"("/tmp/staging/tmp/parrot/lib/4.6.0/languages/perl6/lib/DBDish/mysql.pm6") 10:12
push $P5003, "/tmp/staging/tmp/parrot/lib/4.6.0/languages/perl6/lib/NativeCall.pm6"
oops
dammit, I *tried* to paste a link!
10:13 dayangkun joined
hoelzro scsys.co.uk:8002/219708 10:13
jnthn: that's for you
an example of hardcoded paths in PIR
I know that .annotate probably won't break anything, but I'd like to fix that if possible
jnthn push $P5003, "/tmp/staging/tmp/parrot/lib/4.6.0/languages/perl6/lib/NativeCall.pm6" 10:14
That's just pushing onto the string heap
And the set_description is also just error reporting data, I believe. 10:15
As in, I don't think they actually are used for lookup
Since the PIR is text you can always post-process the paths :P
I'm not immediately sure of a good solution
10:16 SmokeMachine joined, rindolf joined 10:19 rindolf left 10:20 rindolf joined 10:22 Gruber joined 10:23 SamuraiJack_ joined, Timbus|Away joined, scottp_ joined 10:24 flussence_ joined, risou_ joined, jrockway_ joined 10:25 jtpalmer joined, sbox_ joined, nuba_ joined 10:26 diakopte1 joined, fhelmberger joined 10:29 flussence left, risou left, kresike left, Celelibi left, diakopter left, cotto left, sjn left, Grrrr left, scottp left, renormalist left, kresike joined, jrockway left, Timbus left, sbox left, SamuraiJack left, hoelzro left, jtpalmer_ left, nuba left, hoelzro joined, Celelibi_ joined, Timbus|Away is now known as Timbus, cotto joined 10:32 anuby joined 10:33 anuby_ left, bapa left 10:34 sjn joined 10:35 bapa joined 10:38 anuby left 10:40 anuby joined 10:45 Gruber is now known as Grrrr 10:48 Patterner left, grondilu_ left 10:49 Psyche^ joined 10:50 Psyche^ is now known as Patterner 10:51 Su-Shee left 10:52 dayangkun left 11:03 Patterner left 11:04 Psyche^ joined, Psyche^ is now known as Patterner, dakkar_ is now known as dakkar 11:13 Patterner left, Psyche^ joined, Psyche^ is now known as Patterner 11:16 mtk left 11:23 sbox_ left
hoelzro so I have an array of hashes (my @AoH) 11:24
and I'd like to extract the value of a particular key from each hash
@AoH>>.<id> doesn't seem to do the trick; why is that?
11:24 anuby left
sorear hoelzro: the iteration recurses into the hash and applies .<id> to the individual values 11:29
hoelzro oh, I see
it basically applies *.<id> to the flattened structure? 11:30
sorear yes 11:31
(this is actually a bug, but a very long-standing one)
hoelzro oh, seriously? so what I wrote *should* work?
jnthn Yeah
Well, the full story is: we had it that way, then the spec changed to say it should recurse into things. 11:32
So Rakudo implemented that spec.
Then it was realized that this appraoch does indeed suck, so the spec changed AGAIN.
hoelzro heh
well, at least you guys realized that the approach isn't very good!
jnthn So yeah, now things need updating in Rakudo again, and nobody got to it yet. 11:33
timotimo this jokar person totally was a SEO expert, judging from his quit message 11:37
12:09 bbkr__ left, bbkr__ joined 12:11 att__ left
jnthn many errands & 12:15
12:17 att__ joined, tadzik1 is now known as tadzik 12:20 Kharec left 12:23 sftp joined 12:26 Kharec joined 12:31 SmokeMachine left 12:34 SmokeMachine joined 12:37 gfldex left 12:38 gfldex joined 13:07 mtk joined 13:40 rummik joined 13:43 Pleiades` left 13:46 benabik left 13:47 benabik joined 13:48 skids left 13:49 Pleiades` joined 13:51 fgomez left, BooK_ is now known as BooK
jnthn back 13:56
13:57 bot48 joined
colomon phenny: tell sorear Big sale on dotTrace profiler today. www.jetbrains.com/profiler/index.html Should I get it for Niecza development? (Should I get one for you for Niecza development?) 14:00
phenny colomon: I'll pass that on when sorear is around.
14:12 jfried left 14:14 PacoAir joined 14:21 cognominal joined 14:24 cognominal left, cognominal joined 14:27 GlitchMr joined 14:36 jfried joined 14:44 pmurias joined 14:54 jfried left 15:00 stopbit joined 15:02 benabik left, benabik joined 15:03 cognominal left, SamuraiJack__ joined
pmichaud good morning, #perl6 15:03
15:03 SamuraiJack_ left
jnthn morning, pmichaud o/ 15:04
15:09 Kharec left 15:17 fhelmberger left 15:18 cognominal joined 15:19 sqirrel joined 15:22 skids joined 15:23 cognominal left 15:25 stopbit left 15:27 cognominal joined 15:28 stopbit joined
hoelzro what exactly does {} <infixish> mean in a grammar? 15:31
what's the {} for?
jnthn Terminating LTM
hoelzro sorry, LTM? 15:32
jnthn Longest Token Matching
hoelzro ah ha
jnthn Means that the <infixish> will not be considered when computing the longest prefix.
15:32 cognominal left
hoelzro I see 15:32
but only <infixish>, rather than the rest of the pattern? 15:33
jnthn Well, the current scope
If it's in an alternation, it just means "the rest of the branch", for example
hoelzro ok
jnthn LTM works on alternation level and rule level
r: say 'abcd' ~~ / 'abc' | 'a' \w+ / 15:34
p6eval rakudo 22518b: OUTPUT«「abcd」␤␤»
jnthn r: say 'abcd' ~~ / 'abc' | 'a' {} \w+ /
p6eval rakudo 22518b: OUTPUT«「abc」␤␤»
jnthn There's probably the simplest example to show the difference it makes.
hoelzro oh 15:35
does that mean that | means the longest token?
s/token/alternation/
benabik How does LTM break ties?
hoelzro say 'abcd' ~~ / 'a' | 'ab' | 'abc' /
r: say 'abcd' ~~ / 'a' | 'ab' | 'abc' /
p6eval rakudo 22518b: OUTPUT«「abc」␤␤»
hoelzro interesting...I always thought it was first match 15:36
benabik It was in P5. || is first match in P6
hoelzro ah
that explains things
FROGGS r: say 'abcd' ~~ / 'a' || 'ab' || 'abc' / 15:39
p6eval rakudo 22518b: OUTPUT«「a」␤␤»
hoelzro I take that if an enthusiastic developer wanted to try and fix hyper operators wrt flattening, he/she should look at make_hyperop? 15:40
FROGGS || just matches the first thing it matches, || tries all things, and returns the longest one
err
s/^||/|/
jnthn hoelzro: More likely the code that needs to change is in src/core/metaops.pm
15:40 cognominal joined
hoelzro I see... 15:41
thanks for the tip
FROGGS I'm talking crap, ignore me ;o)
jnthn hoelzro: The "real work" is implemented in Perl 6, the stuff at AST level is just turning operators into calls and closures.
hoelzro jnthn: Actions.pm *just* generates the AST, right?
benabik FROGGS: Thankfully | is smarter than try everything, thanks to LTM. It only tries the things that are most likely to work. 15:42
jnthn hoelzro: "just", yes :) 15:43
FROGGS benabik: then I have to re-read the calender-post about that :o) 15:44
benabik It just does the hard work. ;-)
jnthn In short, it analyzes the declarative prefixes and builds an NFA that can order the options and trim away the ones that won't work efficiently. 15:46
hoelzro jnthn: ok =) and then something walks the AST to generate the code, right? what class does the walking? and instead of generating PIR directly, it makes calls to NQP stuff, right?
jnthn These days, those NFAs are built at compile time and serialized
hoelzro: The AST => PIR step lives in the NQP repository, in a class called QAST::Compiler
There's another class called QAST::Operations which handles compiling/mapping all the QAST::Op things. 15:47
There's a small intermediate layer between QAST and PIR called PIRT
hoelzro ok
jnthn Which makes QAST::Compiler just a tiny bit more pleasant to write.
Not sure if pmurias++'s work on JavaScript goes through an intermediate layer or if it just does QAST to JavaScript; think it may be the latter. 15:48
15:48 isBEKaml joined
hoelzro jnthn: thanks for taking the time to explain all this; I'll probably pick your brain some more later =) 15:48
jnthn np :)
The more people understand this stuff, the better. :)
hoelzro regarding that packaging issue, it looks like the /tmp/staging strings are pretty harmless. 15:49
benabik Increasing bus number good!
hoelzro I have a pull request for the packaging changes
so if someone wants to merge it, Rakudo * 2012.12 should be easier to build into an RPM =)
benabik hoelzro++ 15:50
jnthn pmichaud: I don't feel like the right person to look at the hoelzro++ pull request for ^^, if you have a moment to glance at it that'd be great. :)
pmichaud looking now
jnthn Thanks :)
pmichaud the first part of the request looked okay to me; I'm having to look deeper into the second commit 15:51
15:51 lichtkind joined
isBEKaml OHHAI, #perl6! 15:52
lichtkind isBEKaml: cheers
jnthn o/ isBEKaml 15:53
pmichaud 977ee04 won't work on Windows
isBEKaml hello, lichtkind, jnthn
pmichaud so I'd have to reject the request based on that alone.
lichtkind looked anyone into gist.github.com/4341223 ? 15:54
pmichaud 428f9a8 looks okay to me at first glance 15:56
jnthn pmichaud: oh, ouch, that's actually the makefile we ship rather than just the one for building the star distro ain't it...
pmichaud jnthn: yes.
jnthn got confused
I know that you can't do the release process on Windows, but yeah...this bit needs to work.
15:59 cognominal left
pmichaud anyway, I closed this pull request; reopen a new one when we have a better solution for the dynext stuff. 15:59
maybe need the equivalent of a -L option for nqp 16:01
(could even go into HLL::Compiler) 16:02
looks like NQP already has a --module-path option, perhaps that could resolve the Perl6 part of the patch 16:05
timotimo is rakudo startup time comparatively good? just 'perl' starts up in an unmeasurable time, but perl6 has the object system and a couple of other things already at startup, while you'd have to wait for those to get use'd when you pull in most interesting perl modules... 16:07
pmichaud timotimo: when I did a comparison in June for YAPC::NA, Rakudo's startup time was favorable when one considered equivalent modules 16:08
timotimo wow, that's surprising. do you have a link?
16:09 bowtie joined
pmichaud lightning talk video at pmthium.com/2012/09/a-rakudo-performance/ 16:09
timotimo thank you :)
pmichaud skip to 2:20 to see the startup stuff (but it makes more sense to view the whole take)
s/take/talk 16:10
I'm afk for a bit 16:12
timotimo i like that talk. but the video quality is horrible and the audio/video is desync, at least in my html5-video-firefox :| 16:17
kresike bye folks
16:18 kresike left
pmichaud yeah, the audio/video was out of sync. nothing I could do about it, short of trying to resync things. 16:21
on the other hand, given that all of the talk videos did finally make it onto the web.... that's a lot better than has been the case for most yapc's 16:22
so we should consider ourselves lucky that we have anything at all :)
16:24 odoacre left
timotimo :) 16:26
hoelzro =(
it's a valid reason for rejection, though
actually, I also think it won't work on OS X 16:27
16:27 odoacre joined
hoelzro maybe I'll add the necessary stuff to NQP and it will be ready by 2013.01 16:27
timotimo pmichaud: are you in theory able to re-upload that video? i might try my hand at kdenlive and put in less blurry slides, too
pmichaud timotimo: it's not my video
timotimo and move your head around a bit so it doesn't occlude text
in that case it may be an exercise in timewasting
oh well.
pmichaud Here's where I got the video from: www.youtube.com/watch?v=ILWrbvI8Qfg 16:28
all I did was trim out the part that was mine
timotimo ah, i see.
pmichaud it's possible I had some lossy conversion in the trimming... but I don't think there was much. 16:29
timotimo oh, it's on your youtube account, so you could, in theory, re-upload the trimmed version
pmichaud oh yes, I did upload the trimmed part
hmmmm
timotimo ha! i clicked into the timeline and found you immediately
pmichaud yeah, you'd have more success quality-wise to grab the original from the yapcna account and trim from there than to have me do it and re-upload 16:31
afk for a bit
16:37 hash_table joined 16:40 hoelzro is now known as hoelzro|away, slavik1 joined 16:41 kaleem left 16:43 spider-mario joined 16:44 steven___ left, FROGGS left, steven__ joined, BinGOs left 16:45 BinGOs joined 16:46 isBEKaml left
timotimo rt.perl.org/rt3//Ticket/Display.html?id=75640 - what exactly is the test supposed to test? that the code errors out when using nextsame? that {*} works in this case? 16:50
also wondering how to test 75710. i guess a basic regression test would require an eval (because it's a parse error, right?) of basically what's in the last reply to the ticket? 16:53
pmichaud gone for a while -- on way to airport 16:57
moritz timotimo: yes. eval_lives_ok is your friend 17:00
(but leave out the say() in the code, it'll confuse the test harness)
timotimo sure
thank you :)
oh, interesting 17:03
17:03 thou joined
timotimo there is a test case here in S02-names/identifier.t that checks for "sub order" which could fail if rakudo confuses it with "or" - it says "identifiers whos prefix is an alphanumeric infix operator" and x belongs in that category, doesn't it? 17:04
dalek ast: 8625fc2 | (Timo Paulssen)++ | S06-multi/proto.t:
test #76298: same-name proto/has.
17:09
ast: f0fb59d | (Timo Paulssen)++ | S02-names/identifier.t:
test #75710: methods starting with x didn't work.
17:12 xinming_ joined 17:14 fgomez joined 17:15 xinming left, kaare_ joined 17:18 kaleem joined, MayDaniel joined 17:19 Celelibi_ is now known as Celelibi 17:26 am0c joined 17:27 Chillance joined 17:29 FROGGS joined 17:42 SamuraiJack joined
FROGGS jnthn: how do I iterate over hashes in nqp and print key/value? 17:43
17:43 SamuraiJack__ left
jnthn nqp: my %h := nqp::hash(a => 1, b => 2); for %h { say($_.key ~ " = " ~ $_.value) } 17:51
p6eval nqp: OUTPUT«1 = 2␤»
jnthn oops
nqp: my %h := nqp::hash('a', 1, 'b', 2); for %h { say($_.key ~ " = " ~ $_.value) }
p6eval nqp: OUTPUT«a = 1␤b = 2␤»
jnthn Iteration was correct, got nqp::hash wrong :)
FROGGS thanks! 17:52
so le debugging continues ;o) 17:55
17:58 dakkar left
dalek kudo-js: fa84a4e | (Paweł Murias)++ | / (2 files):
extract rakudo-js leftovers
18:19
kudo-js: ae8195c | (Paweł Murias)++ | runtime.js:
Add nqp::isinvokable, pass the newest test 11.
kudo-js: 26c410e | (Paweł Murias)++ | / (2 files):
[nqp] refactor to give contexts and exceptions unique names
18:20 SamuraiJack left, SamuraiJack_ joined
masak_ 'lo, #perl6 18:24
18:25 japhb_ joined, masak_ is now known as masak
japhb_ o/ masak 18:25
timotimo evening 18:26
FROGGS hi masak, japhb, timotimo
timotimo how does one get from creating test cases to improving rakudo run speed or fixing crazy semantics bugs or implementing missing features like .= on attributes?
japhb_ o/ 18:27
timotimo, I'd go for an intermediate level of making improvements to the setting. 18:28
I'm currently at the boundary -- the changes I next need to make in the setting require some guts work.
masak rn: sub outer(&block) { my @*piles; &block() }; sub inner { say @*piles; CATCH { when /Dynamic/ { die "You can only use &inner in &outer" } } }; inner
p6eval rakudo 22518b: OUTPUT«You can only use &inner in &outer␤ in block at /tmp/k0rKXNUqDv:1␤ in method gist at src/gen/CORE.setting:10302␤ in sub say at src/gen/CORE.setting:7488␤ in sub inner at /tmp/k0rKXNUqDv:1␤ in block at /tmp/k0rKXNUqDv:1␤␤»
..niecza v24-12-g8e50362: OUTPUT«Any()␤»
masak \o/ 18:29
timotimo can you provide some examples for inbetween work? what improvements can still go into the setting?
masak rakudo++
sorear: that doesn't seem quite right.
sorear: shall I submit a nieczue?
jnthn o/ masak, japhb_
timotimo: Well, I recommend beer... :)
japhb_ timotimo: well for example, I have a long-standing spare-time project to get val() into Rakudo. That involves both some work in the setting (some of which I've already done, like improving Str.Numeric), and other parts require some minor guts work (making a single variable that can box and unbox a string and some other value at the same time) 18:30
18:31 pat_js joined
jnthn timotimo: Probably the best thing to do is pick a task that interests you, then try and get somebody with a betting understanding to tell you how hard it actually is and give you ocme pointers. 18:32
japhb_ timotimo, also, you can add tests to perl6-bench to help find out-of-whack performance problems, and then profile rakudo, niecza, etc. to figure out what is burning CPU.
timotimo at this point i don't even know enough about perl6 to know what interests me :|
that seems interesting.
doy jnthn: by the way, is there a todo list or road map or anything for nqp? 18:33
timotimo is finding performance problems an intuition thing or pure luck?
japhb_ I'm soon going to be moving perl6-bench from my personal account to the perl6 org on github, but until that happens just fork and submit pull requests, if that's what you'd like to help with. :-) 18:34
timotimo, Some is just testing lots of combinations of basic things, some is people mentioning "Gosh, this should have been quick by any reasonable mental model, but DANG it was slow in practice."
timotimo i don't think i have a proper intuition for such speed things, unless they are really "DAYUM!" kind of deals. which i guess is what we're aiming for? 18:35
japhb_ Some is taking a slow-performing smallish script (like the rc-forest-fire test scripts in perl6-bench), and drilling down on pieces of it trying to find exactly what is causing the severe slowness. 18:36
That's how I found that ^100 X ^100 is very slow in Rakudo
timotimo right. i think i remember something about junctions being super slow compared to equivalent if statements (i had $x & $y == -1|0|1 back then, which was ridiculously slow compared to if -1 <= $x <= 1 etc etc) 18:37
i may benchmark that to see if jnthns recent improvement to junctions changed that or if it was fixed in the mean time
japhb_ Also, comparing the performance envelope of Rakudo and Niecza has been very informative -- places where normally one or the other is slower by 2-5x, suddenly you find something where one is slower by 30x
There is only one junction test in perl6-bench, many more welcome. :-) 18:38
Also, you can just play at the command line with little one-liners, and notice when you find some variant that changes a 2 second operation into a 2 minute operation.
timotimo hah, that would be lucky indeed 18:39
japhb_ Right now there are still enough areas where one or both implementations were in "correct now, fast later" mode that you'd be surprised. :-)
Especially things that you think from a theoretical point of view should be equivalent turn out not to be -- different ways of looping the same number of times. 18:40
(for example)
timotimo is there a good pattern for doing one thing three different ways and timing them that is more lightweight than a benchmark framework? 18:41
like checking argv for "a", "b" or "c" and going a different route and calling shell-time on it?
japhb_ or times when your intuition tells you one thing, but it turns out to be the opposite (or different for Niecza and Rakudo, like concat-in-a-loop versus push-in-a-loop-and-join-at-the-end)
You can certainly do that. 18:42
Make sure your test cases are large enough that whatever overhead you introduce is down in the noise of timing the actual test case.
(And small enough that you don't swap your box -- I was reminded of that one rather spectacularly a few days ago.) 18:43
18:45 kaleem left
japhb_ Also, one of the things I added to perl6-bench not too long ago was the ability to specify running only particular tests out of the whole suite. 18:45
That made a HUGE difference for my productivity when working out new test cases.
Especially since some of the tests on some compilers are REALLY SLOW.
WTH? I'm trying to nail down a problem with panda not bootstrapping properly after a Rakudo rebuild (which takes a LONG time on this old box), and I swear it's almost random. 18:48
japhb_ wonders if it's actually hitting an OOM somewhere and it depends on what else I'm running at the time.
Hmmm ...
moritz r: class A { has $.x = "abc"; method set { $!x .= uc } }; say A.new.set 18:49
p6eval rakudo 22518b: OUTPUT«ABC␤»
moritz timotimo: .= seems to work on attributes
japhb_ launches a couple more memory-hungry apps and rebuilds again
timotimo oh, no i meant something more like this:
r: class B {}; class A { has A $.x .= new }; A.new; 18:50
p6eval rakudo 22518b: OUTPUT«===SORRY!===␤Cannot use .= to initialize an attribute␤at /tmp/o4Dycyg8yd:1␤------> class B {}; class A { has A $.x .= new⏏ }; A.new;␤ expecting any of:␤ method arguments␤»
18:50 pmurias left
timotimo so, my @coords = -50..50 X -50..50 isn't lazy? 18:50
moritz no, assignment to arrays is only lazy when they are infinite 18:51
japhb_ timotimo, if you bind it with := it should be
timotimo oh, i see
moritz timotimo: then it's a three-stop process: 1) look at what ordinary attribute initialization does 2) find out where the error message comes from 3) apply 1) to the location of 2)
timotimo now i'm getting a use of uninitialized variable $a but i have no mention of $a anywhere o_O 18:52
moritz then it's use of an undfined value, where it's picking up the wrong variable name 18:53
either we need to fix it, or drop the reporting of the variable name
it's rather confusing when it goes wrong
timotimo should i try to golf it? 18:55
18:55 cognominal joined
timotimo r: my @the-list = 1..2; my $the-val = @the-list[10]; given $the-val { when 10 { say "oops" } }; 18:57
moritz no
p6eval rakudo 22518b: OUTPUT«use of uninitialized variable $a of type Any in numeric context in block at /tmp/cGBOCgY3na:1␤␤»
moritz there many know instances of that error 18:58
18:58 hash_table left
jnthn argh, internet fail... 18:59
jnthn back now
masak welcome back, jnthn's internet 19:00
jnthn doy: Not for NQP at this point, no. For better or worse, NQP and the various things in the compiler toolchain improve as Rakudo needs them to improve. 19:01
19:02 diakopte1 is now known as diakopter
jnthn doy: I'd love for NQP to get emphasis/tuits to make it a strong product in its own right; it's just a resource issue really. 19:02
Or resource allocation, anyways...
doy jnthn: you had mentioned things about making nqp backend-independent and such
jnthn doy: Yes, that's one of the "we want it for Rakudo" things :)
doy i'm interested in doing things with nqp, but less interested in being tied to parrot 19:03
jnthn *nod*
I'm fairly optimistic we'll get to an NQP on JVM within the next couple of months. 19:04
19:06 cognominal_ joined
doy that would be pretty sweet 19:06
19:06 cognominal left
doy are there plans for a c backend? 19:07
diakopter I'm sure someone's working on one somewhere
jnthn heh :)
FROGGS that would be sweet (and fast, and a lot more work)
jnthn What FROGGS said :) 19:08
diakopter MOAR WORK
moritz parrot kinda is a C backend for NQP
jnthn JVM first. Going from 1 to 2 is the biggest step.
doy jnthn: true enough
jnthn 2 to 3 will be work but less
timotimo oh, i was thinking "this is actually quite fast!" but i was just measuring the startup time >_> 19:09
jnthn timotimo: as a general note, working on trying to improve speed can be tricky in so far as it's easy to make things wronger as well as faster. 19:10
moritz it's easier to focus on features first 19:11
doy jnthn: so, i guess what i was originally asking is, if i'm interested in getting these sorts of things working, what can i do to help?
(:
timotimo so, $x & $y == -1|0|1 and $x & $y ~~ -1..1 are about the same speed (60 seconds vs 52 seconds), but if statements are way faster (8.5 seconds both) 19:12
the if statements being if -1 <= $x <= 1 and -1 <= $y <= 1
is this a valuable find?
jnthn doy: Well, I wrote github.com/jnthn/nqp-jvm-prep/blob...ocs/LHF.md for providing some easy jumping in points on the JVM stuff. 19:13
19:13 djanatyn joined
masak djanatyn! \o/ 19:15
timotimo mildly unsurprisingly, if -1 <= ($a & $b) <= 1 is about 35 seconds, so in between
o/ djanatyn
FROGGS timotimo: what you propose might be the job of the optimizer: convert these checks to faster forms in bolean context... (you still need to create ranges if you want to store -1..1 in an array) 19:16
djanatyn masak: hey! :) 19:17
timotimo: hello!
moritz masak: how's the rakudo release coming along?
timotimo FROGGS: i don't think i understand what you mean with "to store -1..1 in an array"? 19:18
moritz my @a = -1 .. 1; # you can't optimize out the Range the same way that you could for $x ~~ -1 .. 1
FROGGS right
timotimo ah, OK 19:19
19:19 cognominal_ left
masak moritz: I'm gonna do some $dayjob, then I'll enter us into releng mode. 19:20
19:20 cognominal joined
FROGGS fiddling with the optimizer might be a nice job, had no time to have a closer look at it 19:20
timotimo in jnthn++'s talk about optimizing rakudo performance it seemed like "fun" :) 19:21
FROGGS ya, jnthn is a hacker by heart, thats all fun to him I suppose *gg*
timotimo :D
moritz last I looked, the optimizer wasn't trivial code, but it wasn't opaque either 19:22
timotimo so jnthn had PIR code of what he was optimizing on the slides. is there an easy way to obtain such code from any random rakudo run?
jnthn Also, there's not a huge amount of optimizer code at the moment.
timotimo: Well, the PIR code isn't what gets transformed, it's more that I was showing the results of the optimization on the output 19:23
--target=pir shows you the output
timotimo oh, ok
is that a good thing to look at, though?
jnthn But it's transforming at AST level
timotimo or should i do --target=past instead? 19:24
jnthn --target=pir is probably less verbose
to be honest, I only look at those two as fairly last resorts when fixing things
19:25 SamuraiJack_ left
jnthn But for learning what is going on, they can be handy I think 19:25
timotimo thank you :)
19:26 cognominal left 19:33 cognominal joined
diakopter wait, did the world end yet 19:33
jnthn diakopter: No, be patient.
masak diakopter: I hear it's already started to end in Asia. 19:34
FROGGS in which timezone will that happen?
masak it's an incremental roll-out.
FROGGS alright
hehe
jnthn Gee, I bet Samoa are regretting their time zone change now. They would had a whole extra day of world if they hadn't done that. :P 19:35
timotimo hm, so actually this is two different things. one is turning $x ~~ -1..1 into -1 <= $x <= 1 in boolean context and the other is doing autothreading at compile-time. does the latter make sense?
FROGGS jnthn: well, they would have christmas one day early, thats not that bad 19:36
timotimo er, not even "in boolean context", that already is boolean context
jnthn -1 <= $x <= 1 doesn't involve auto-threading
There's no junctions there.
timotimo jnthn: yes, but $x & $y ~~ -1..1 does
jnthn That's a chained comparision.
Oh, in that case there's a junction, yes.
19:37 silug left
timotimo would probably be a job better suited for the autothreader? 19:38
jnthn That will hit auto-threading at some point, yes 19:39
To see what "the autothreader" actually means, look in src/core/Junction.pm :)
colomon surely the world must be ending on Mayan Standard Time? 19:40
19:42 hash_table joined
timotimo jnthn: consult this helpful table of measurements: t.h8.lv/table.txt 19:43
jnthn timotimo: Is that a Rakudo from before or after I optimized the auto-threader? :)
timotimo after, it's been compiled yesterday i think. 19:44
jnthn ok
timotimo This is perl6 version 2012.11-88-g22518b8 built on parrot 4.10.0 revision RELEASE_4_10_0
jnthn The top case used to be WAY slower
I think part of the problem is that the sheer overhead of calling the auto-threader is what pushes up the time here.
timotimo do you think it's sensible to try to use the optimiser to go from the 34s line to the 24s one automatically? 19:45
19:46 Pleiades` left
jnthn I think if we're going to do things where we reduce simple junctions, we want to just rewrite the junctions away altogether. 19:48
timotimo so you're suggesting if it's known that the junction object doesn't "escape" to transform the AST into a big blown up logical statement? 19:49
jnthn $x == -1|0|1 ==> $x == -1 || $x == 0 || $x == 1
19:49 SmokeMachine left 19:50 hash_table left, cognominal left
jnthn I think that's likely to get the biggest win and be most realistic to implement. 19:50
timotimo is there a way to prototype this transformation in perl6 with actual data before going at the real optimizer code?
19:50 SmokeMachine joined
timotimo compile cycles on this laptop are quite drawn-out and i'm looking to try to do this on a train ride tomorrow :) 19:51
jnthn timotimo: I can't think of anything quite close enough to give a very useful indication... 19:54
19:55 SmokeMachine left, cognominal joined, Pleiades` joined
timotimo hm, maybe this would be an interesting project for me. a past (qast? what's the difference?) transformation playground. seems quite gutsy (and guts-y, too), though for a beginner 19:55
doy jnthn: haha, just noticed that you had just written that LHF.md document about an hour before i asked about it(: 19:56
benabik timotimo: QAST is a re-write of PAST.
moritz when we talk about past, we mostly mean qast
timotimo benabik: so when i tell rakudo to --target=past, what i get is actually a QAST? 19:57
OK
jnthn doy: Aye...timing win :)
timotimo: It's easy to remember: "PAST is the QAST of the past"
timotimo that's cute :)
so, since it seems like i can pir::regcomp__something('perl6') and do .eval on the object i get, can i tell that to eval something into a past and later give it a past to execute?
benabik When I talk about PAST, I mostly mean PAST. But I often tinker around in pure parrot land.
19:59 cognominal left 20:01 silug joined
timotimo oh? the "edit summary" mode from the irclog has been made non-public? 20:01
ah, NoScript 20:02
need to get used to that some day
jnthn timotimo: hm, good question... 20:04
timotimo: You really need to write the transform in NQP 20:06
But that's not really a show-stopper...
Gimme a moment to try something.
20:06 am0c left 20:10 cognominal joined
timotimo i tried my hand at summarizing today's happenings so far 20:10
jnthn ok, a few moments... :) 20:11
20:21 sftp left 20:22 cooper_ joined 20:23 cognominal left 20:24 spider-mario left 20:25 flussence_ is now known as flussence 20:29 cognominal joined, bruges_ joined 20:30 sftp joined, bruges left 20:32 s1n joined 20:33 s1n left
jnthn timotimo: gist.github.com/4348324 20:34
This lets you basically get what Perl6::Optimizer gets and do something instead. 20:35
timotimo ooooh, that is *great*
jnthn++
jnthn You write the Perl 6 code to try compiling in the say 42, then you write your NQP code to do the transforming inside a sub
oh, and wait... 20:36
masak running spectests. getting big free()-related blowup on t/spec/S02-types/bool.t -- is this an oldie-but-goodie?
jnthn yeah
20:36 pat_js left
jnthn well, but not very good :P 20:37
dalek p: ba37573 | jnthn++ | src/NQP/Compiler.pm:
Make NQP compreg when loaded as a module.
jnthn timotimo: You need ^ too :)
moritz: you may also find gist.github.com/4348324 of interest, or disgust :)
timotimo it amazes me how fast that was. 20:38
jnthn returns to packing stuff for his UK trip tomorrow :) 20:41
timotimo jnthn: you should totally make that gist more public 20:42
masak summary of "I'm <mood> to present" phrases in Rakudo's release announcements: "pleased" for ages. changed to "happy" by [Coke] for 2010.07. changed to "glad" by tadzik for 2012.05. changed to "thrilled" by pmichaud for 2012.09. changed to "please" by masak for 2012.12.
pleased* 20:43
jnthn How...lagom. 20:44
colomon what's the name of the ?? !! operator?
20:44 hoelzro|away is now known as hoelzro
colomon is deep into tomorrow's Advent post now. 20:45
timotimo i know it as "the ternary operator"
flussence interrobang ternary? :)
colomon timotimo++ flussence++
tadzik :) 20:46
hello hello
colomon \o 20:47
masak tadziku! \o/ 20:48
japhb_ Bah, I can't get "panda install after rakudo rebuild" to fail again. I don't know whether to be happy or annoyed at that ....
masak tadzik: whenever you rez on the channel saying "hello hello", it's as if I can hear you saying it. makes me smile.
tadzik (: 20:50
20:51 kurahaupo joined
tadzik whoa: github.com/jnthn/nqp-jvm-prep 20:51
stuff's happening :) 20:52
just when we got threads on parrot ;P 20:53
colomon tadzik: the more the merrier!
20:53 skids left
tadzik :) 20:54
masak "Now you've got two VMs with threads." 20:55
tadzik :D
oN woy'uevg tot owV sMw ti hhterda.s
20:56 cotto left 20:57 cotto joined, kurahaupo left
masak \/o 20:58
hoelzro jnthn++ # Perl 6 on the JVM
masak more like "NQP prep on the JVM" so far, but still :)
jnthn++
humans and gentlebots. 20:59
let's begin tonight's release engineering of Rakudo.
jnthn Yes, there's still a good bit of work before Rakudo runs there :)
masak pushes the big "thumping party beat" button 21:00
doy does rakudo have any non-nqp dependencies?
tadzik ack pir:: rakudo
yep :)
hoelzro jnthn, masak: still, a start is great!
tadzik++ # for using ack
21:00 sjohnson left
tadzik ackwesome 21:00
jnthn yeah, those, and also some C code that does some bits with Parrot
But still, it's a small percentage.
tadzik we'll slowly build awesome and get there 21:01
jnthn The majority of Rakudo is in NQP and Perl 6 :)
Aye :)
dalek kudo/nom: 4423b87 | masak++ | docs/announce/2012.12:
[docs/announce/2012.12] added
masak all hands on deck, please to review, kthx. 21:02
masak looks cute, in order to attract more attention for the announcement review :>
21:02 sjohnson joined
FROGGS hehe 21:03
tadzik oh, Warszawa
jnthn reviews, but tbh has seen cuter :P
diakopter command after (tadzik)
er.
comma
tadzik and it mentions me. I'm flattered
masak will fix. thank you. 21:04
tadzik and 2012 wasn't very active on my side :(
jnthn
.oO( la mafia comma after tadzik! )
timotimo i'd change "more accurate and more information given" to a full sentence: "they are more accurate and more information is given" if that isn't too long
dalek kudo/nom: ab1ff9c | masak++ | docs/announce/2012.12:
[docs/announce/2012.12] comma fix

  diakopter++ noticed.
masak timotimo: oki. 21:05
jnthn masak: yeah, what timotimo++ said
Also may be worth mentioning the auto-threader speedup, since it was a common complaint.
masak jnthn: oh, good idea. 21:06
timotimo oh yes!
dalek kudo/nom: f015670 | masak++ | docs/announce/2012.12:
[docs/announce/2012.12] wording fix

  timotimo++ suggested.
jnthn "assuming the world doesn't end today," :P
Whoever makes next month's relesae is gonna be in for a surprise if they copy-paste last month's announce without watching too closely :P
FROGGS masak: I can't complain about nothing...
jnthn FROGGS: So...what can you complain about? :P 21:07
masak jnthn: provided there is a next month... :P
21:07 GlitchMr left
FROGGS :P 21:07
dalek kudo/nom: 2c7c338 | masak++ | docs/announce/2012.12:
[docs/announce/2012.12] autothreding improvement

  jnthn++ is right; an order-of-magnitude faster is massive
and should have a mention.
21:08
timotimo jnthn: isn't there at least one world-ends-today theory for each day of each year? 21:09
tadzik but this one is The One
FROGGS ya, the one one 21:10
tadzik hide yo kids, hide yo wife
21:10 sizz left
masak tools/update-tai-utc.pl is spewing infinitely many 'Use of uninitialized value $lines[0] in pattern match (m//)' warnings here. 21:11
can someone reproduce this? 21:12
perl tools/update-tai-utc.pl src/core/tai-utc.pm # in the rakudo directory
tadzik nope
jnthn Can't locate Time/y2038.pm in @INC
tadzik works for me
masak tadzik: does it update the leap seconds for you? 21:13
tadzik Updated.
This program should next be run in February.
git diff doesn't agree though :)
masak ok, it was a null update, then :)
proceeding.
tadzik :)
masak tadzik++
tadzik masak++
FROGGS masak: I thought it is like perl tools/update-tai-utc.pl > src/core/tai-utc.pm
tadzik . o O ( ping - pong )
Na
$ARGV[0] ||= 'src/core/tai-utc.pm'; 21:14
dalek kudo/nom: 927e71c | masak++ | docs/release_guide.pod:
[docs/release_guide.pod] upcoming release ascends
21:16
masak according to the NQP release guide, I should *not* bump NQP's Parrot release to 4.11. 21:23
tomgj Am I right in thinking that in signatures of routines you can only declare a single typed return value, and the situation is not nearly as generalised as whatever this doc was targeted at: www.dlugosz.com/Perl6/web/return.html 21:26
dalek p: 6d4973f | masak++ | VERSION:
bump VERSION to 2012.12
timotimo tomgj: i think you can specify a junction as return value, like --> Bool|Int 21:27
tadzik masak: do so anyway
jnthn tomgj: I think several things in that article are a bit off.
tadzik then Threads.pm will be certified to work on 2012.12 :)
timotimo oh, you mean something different 21:28
tomgj timotimo: ah, thanks, that is certainly a good start
jnthn tomgj: You certainly can return multiple values.
masak tadzik: the NQP release process just came to a screeching halt. if I am to contravene the release guide, I want independent confirmation from a core Rakudo/nqp developer.
jnthn? :)
timotimo r: sub what_type($a --> Bool|Int) { given $a { when 1 { return True }; when "foo" { return 100 } } }; say what_type(1).perl; say what_type("foo").perl; 21:29
p6eval rakudo f01567: OUTPUT«===SORRY!===␤Missing block␤at /tmp/HGcz8qjWzl:1␤------> sub what_type($a --> Bool⏏|Int) { given $a { when 1 { return True ␤ expecting any of:␤ statement list␤ prefix or term␤ prefix or meta-prefix␤ …
tomgj jnthn: sure, but there seems to be a bit of a disconnect between what you can return, and what you can promise the return will be in the signature of a method / subroutine
timotimo std: sub what_type($a --> Bool|Int) { given $a { when 1 { return True }; when "foo" { return 100 } } }; say what_type(1).perl; say what_type("foo").perl;
p6eval std a8bc48f: OUTPUT«ok 00:00 45m␤»
timotimo seems like rakudo doesn't parse that yet
jnthn tomgj: I think at the moment returns explicitly expects to parse a type name.
timotimo: Pass it to STD also
timotimo r: sub what_type($a) returns Bool|Int { given $a { when 1 { return True }; when "foo" { return 100 } } }; say what_type(1).perl; say what_type("foo").perl;
p6eval rakudo f01567: OUTPUT«===SORRY!===␤Missing block␤at /tmp/hf5QyOwamE:1␤------> sub what_type($a) returns Bool⏏|Int { given $a { when 1 { return True }␤ expecting any of:␤ statement list␤ prefix or term␤ prefix or meta-prefix␤ …
jnthn timotimo: that was r again :P
timotimo i passed it to std, it said "ok" 21:30
jnthn timotimo: oh, I missed that
timotimo ;)
jnthn Hm
OK, my next question is what on earth does STD actually parse that as :) 21:31
masak jnthn: should I bump NQP to use Parrot 4.11? NQP release guide says no, tadzik says do it anyway.
jnthn masak: What's the issue?
masak see above :)
tadzik THREADS 21:32
erem
jnthn masak: But at the moment it's already 4_10_0
tadzik you need to build parrot --without-threads anyway
masak aye.
tadzik so, mebbe it doesn't really matter :)
jnthn masak: moment
tadzik let it stay underground, wooooo
masak ok, going ahead with doing nothing.
jnthn moritz++ bumped it to 4.10.0 to fix a sockets issue 21:33
masak I am doing all of this on a train, by the way.
jnthn That was since the last release.
masak will this be the first train-based Rakudo release? :D
timotimo rakudo on rails, i see.
tadzik :D
21:33 tomgj left
jnthn masak: yes, and that's gonna be a pain to one-up, but Norwegian do wi-fi on their planes, so... ;) 21:34
masak jnthn: CHALLENGE ACCEPTED.
timotimo i'd like to see a rakudo release from a hot weather balloon or a blimp
jnthn OK, but it's my turn to have the window seat :P
timotimo maybe a zeppelin, or even a quadcopter
masak just need to book a Norwegian flight on a release day... :)
jnthn masak: On the bump...hmm 21:35
I think that advice dates back to when Parrot had broken readline.
That is now fixed.
masak let's put it this way.
is there any overwhelming reason to upgrade Parrot? 21:36
jnthn And I'm fairly comfortable it must be because everyone who's had HEAD since 29th Nov woulda seen the breakage if it was there...
masak can we look into changing our release guide at some other point of the month? :)
jnthn masak: Well, what will you relesae with it as?
masak jnthn: parse error on your question.
I will release according to the current release guide. 21:37
Parrot 4.10.
jnthn masak: OK, but that bump took place during this month. That's all I'm saying
But yes, that's fine.
We know it works sufficiently well...
masak ok, good.
benabik Readline has been fixed, as far as #parrot knows. :-)
21:39 tomgj joined
benabik Or, at least, as far as I know from hanging around #parrot. 21:40
jnthn tomgj: I've checked, the returns trait expects to parse a typename, and a typename is more restrictive than specifying, say, a signature
tomgj: That doesn't mean you can't declare a subset type that checks the thing being returned against a signature, mind.
masak "Upload the release tarball to Github's download area at L<github.com/perl6/nqp/downloads>." -- "We've recently deprecated this downloads section (manually uploaded files). Please read the blog post for more information." github.com/perl6/nqp/downloads 21:41
:( :( :(
dalek osystem: b80c908 | (Timothy Totten)++ | META.list:
Added Text::Table::List
masak this was what moritz tweeted about... :(
NQP release process aborted due to abruptly changing reality. masak close to tears.
*sniff* 21:42
also, this train is heavily delayed.
tomgj jnthn: ah, okay, thanks. I may have been using the term "signature" wrongly. Is it not correct to say that the returns part is part of the signature?
lichtkind cheers masak
masak lichtkind: ahoj!
tomgj the question may apply to traits in general if returns is a trait
masak reads the bloody blog post in question 21:43
lichtkind masak: looked into my gist?
tomgj (this is a bit of a tangent - but thought I'd just check up on the vocab)
jnthn tomgj: Yes, it's a trait.
masak lichtkind: no...
jnthn You can write it within the signature also though
masak lichtkind: url?
jnthn And actually the information lives in the signature.
masak: For the Rakudo release, pmichaud++ set up rakudo.org to host them
masak: I sent him a public key yesterday, I guess you didn't see about that in the backlog... 21:44
lichtkind gist.github.com/4341223
masak jnthn: no, I missed that. 21:45
diakopter suggests perl6.org or perl6.com for the NQP release, on privmsg.
jnthn: any objections or alternative suggestions?
should we put the NQP release on rakudo.org too? 21:46
jnthn masak: We could...
pmichaud: ping?
masak lichtkind: aha, an advent post.
jnthn masak: Mostly we need it somewhere for the Star release
masak lichtkind: good job on writing one. a quick glance make it seem like it needs some editing. 21:47
lichtkind masak: your a genious
21:47 MikeFair___ left
lichtkind feel free 21:47
masak lichtkind: but I'm kinda busy right now...
lichtkind but i ealready gone over it most rough edges are already gone
masak o rly? ok, then.
jnthn masak: So we can always delay uploading the NQP tarball.
lichtkind masak: jeah pperljam helped 21:48
masak jnthn: ok. fine. as long as we don't forget it.
jnthn email it to myself and Pm perhaps; one of us will figure something out :)
masak lichtkind: something about it makes it not look ready for publishing. but I don't have time right now.
jnthn: doing that now.
lichtkind: thanks for thinking of me, though. I'm generally happy to look through people's articles. :)
masak re-focuses on NQP and Rakudo 21:49
jnthn Pm set up the rakudo.org access with keys so I can't just give you the pssword... :/
masak nodnod
lichtkind masak: i also wanted to show you in case i am awy tomorrow the hole day you know where it is 21:50
21:50 icebattle joined
FROGGS we all will be away in some sense... 21:51
... gone I mean
masak :)
...and today is "the hole day" :P
lichtkind FROGGS: common not even ufo magazins did panic in the last years
and btw it was topic for the last 30 years
masak .oO( and those guys are craaazy )
lichtkind its kinda burned hype 21:52
masak lichtkind: you're implying that the world won't actually end in the very near future?
lichtkind masak: especially the ones who deny the phenomena
masak "nqp-2012.12.tar.gz contains an executable file. For security reasons, Gmail does not allow you to send this type of file." -- oh ffs 21:53
lichtkind masak: i spoke with god and he didnt ordered any of that
masak hosts the file on his server and sends a link
FROGGS masak: zip it with a passwd like 1234? 21:54
masak FROGGS: that's the combination to my luggage!
jnthn masak: Yes, I've hit that gmail restriction too. Bloody nuisance.
FROGGS ha! $FROGGS haz now access to masak's secret underpants!
jnthn ...er, what? :) 21:55
masak de gustibus non est disputandum. 21:56
jnthn gustibus...is that they the bus drives past and a gust sweeps you off your feet?
colomon Hey, all, I've got a complete first draft on tomorrow's Advent post, and would appreciate comments and (if anyone is so inclined) additional scripts. perl6advent.wordpress.com/?p=1790&a...eview=true 21:57
dalek kudo/nom: 1dd2a00 | masak++ | tools/build/NQP_REVISION:
[release] bump NQP revision
kudo/nom: 8a1836b | masak++ | VERSION:
[release] bump VERSION
colomon (the link probably won't work unless you've permission to edit the Advent calendar posts, sorry.) 21:58
masak colomon: any particular reason you have the second (redundant) condition in { when * %% 2 { $_ / 2 }; when * !%% 2 { 3 * $_ + 1 }; } ? 22:03
colomon masak: that was literally my first thought implementing it. it goes away later in the post. 22:04
masak ok :)
also, % is shorter than !%%
but I'll read the rest of the post.
colomon (And the timing difference between the second when and a simple default is addressed.)
masak nice. 22:05
colomon++ # good post
hm, I won't be able to run these stresstests before the train arrives. 22:08
colomon danke.
bot48 good blog colomon
masak will need to detrain and then finish the release process when I'm home.
bot48 sorry hi all o/ 22:09
hoelzro do you guys and gals think that pygments should hilight MAIN like a keyword?
masak hi, bot48.
hoelzro or should I leave it as normal text?
jnthn hoelzro: It's just a sub name 22:10
hoelzro it's a slightly special one, though
masak not special enough.
hoelzro ok, cool
jnthn The uppercase already carries the specialness
masak thanks for checking :)
hoelzro ticks one thing off his TODO list for this
22:11 silug left
masak & 22:11
22:13 sqirrel left
hoelzro how can I get the length of a ResizableStringArray in NQP? 22:16
jnthn nqp::elems(...)
hoelzro ah ha 22:17
22:23 gdey joined 22:29 silug joined
[Coke] yawns from a "wait-for-the-kid-to-finish-his-extracurricular" wifi spot. 22:32
pmichaud good afternoon, #perl6 (from 30,000 feet) 22:35
arggg, looks like I just missed masak++ 22:37
hoelzro ahoy pmichaud
hey, there's that plane with wifi needed for the release =P 22:38
pmichaud I can't handle the tarball upload from here, but I can handle it from my hotel room when I get there and have some free time
or if someone else wants to get to it, that works too. 22:39
jnthn pmichaud: masak will be back
sorear good * #perl6
phenny sorear: 14:00Z <colomon> tell sorear Big sale on dotTrace profiler today. www.jetbrains.com/profiler/index.html Should I get it for Niecza development? (Should I get one for you for Niecza development?)
jnthn o/ sorear 22:40
pmichaud I could use a publickey for masak++ :-)
masak is back
jnthn right :)
masak \o/
jnthn masak: Quick! A key! A public key! :P
sorear so how are we doing tarball uploads now, and can I get in on it?
masak now, where was I?
colomon \o sorear
jnthn sorear: Hosting them at rakudo.org
masak ah yes, start the stresstests.
pmichaud: you require a public SSH key from me? 22:41
jnthn pmichaud: Will we put nqp there also?
pmichaud jnthn: yes, I think it makes sense to put nqp there also
jnthn wfm
pmichaud just create downloads/nqp, methinks
jnthn *nod* 22:42
pmichaud masak: with a publickey I can get you ssh/scp/sftp access to the rakudo.org server
or any of the other ringleaders that have access could do the upload
(yes, the fact that github is removing the downloads feature is a real pain)
(I really liked github's downloads option.) 22:43
jnthn yeah, it's a pity
22:43 PacoAir left
pmichaud connecting from airplane wifi feels like being on a 300 baud modem again :-) 22:43
sorear would it make any sense at all for niecza to use rakudo's download infrastructure? 22:44
pmichaud sorear: I don't have a problem with that
if you'd like to use rakudo's infrastructure for that, I'll be glad to set it up. We could even create a separate niecza domain/site if you want. 22:45
jnthn pmichaud: Yeah, the latency is quite something...if it's anything like what we have on the flights here in Europe anyway :)
jnthn guesses his flight tomorrow probably doesn't have wifi :( 22:48
Hm, probably worth a general note that I'm not gonna be about tomorrow probably at all, and not that much in the next several days.
pmichaud masak++ # nqp release now at rakudo.org/downloads/nqp 22:57
hoelzro masak: did you just remove all the extra options from src/NQP/Compiler.pm? 22:58
pmichaud ooooh, nice view of grand canyon outside plane's window :)
jnthn ooh, nice :) 22:59
pmichaud ...nqp tarball is 1.2MB? that seems... largish
hoelzro oh, that was jnthn's fault.
22:59 rindolf left
dalek kudo/nom: 55dbc07 | masak++ | docs/announce/2012.12:
[docs/announce/2012.12] new download URLs

Because GitHub has de-provided their upload function.
22:59
pmichaud I guess that's on the order of what it's been, but it still seems big. 23:00
jnthn hoelzro: I just moved some stuff from MAIN to the mainline
hoelzro: So taht if you load_language nqp, compreg happens.
23:00 silug left
hoelzro jnthn: I saw; no biggie, but I just had merge conflicts =( 23:00
masak pmichaud: I created the tarball according to the release guide ;)
hoelzro jnthn: I defer to your expertise =)
pmichaud masak: yeah, I'll look at it later and see if I can figure out why it's so big. 23:01
jnthn hoelzro: Well, I hope there was no functional changes from waht I did. But yeah, if you had changes in MAIN you'll get conflicts.
pmichaud okay, plane is starting to descend now
hoelzro jnthn: there shouldn't be; I'll try compiling
pmichaud catch you all later -- perhaps several days later (depends on what else is happening during my trip) 23:02
hoelzro just submitted my first pull request for NQP! \o/
pmichaud hoelzro++ # pull requests
jnthn pmichaud: have a nice trip!
hoelzro indeed! enjoy!
pmichaud jnthn: enjoy your vacations as well. be back in a few days 23:03
jnthn pmichaud: thanks, will do :) o/
masak pmichaud: happy descent!
hoelzro huh, I just realized that I can push to nqp's repo directly. 23:04
oh well, I think that the user review of my change would be good =)
colomon pmichaud: have a good trip! 23:05
hoelzro aaaand updated pull request for Rakudo * 23:06
no symlinks required!
\o\
/o/
\o/
23:09 cognominal left
[Coke] (github downloads) what if we pay, I wonder. 23:10
benabik [Coke]: github seems to suggest you pay Amazon for S3 instead.
23:10 kaare_ left
masak Rakudo 2012.12 tagged and uploaded to rakudo.org/downloads/rakudo/ 23:11
jnthn \o/
masak++
hoelzro \o/ 23:12
jnthn The Rakudo release with the best parse errors ever :)
* Until next months... ;)
flussence "New feature: More errors!"
23:13 cognominal joined
masak p6c email sent. 23:13
[Coke] OH. Has anyone thought to ask TPF?
23:13 MayDaniel left
masak ask TPF what? 23:14
what release date do I put on the Wikipedia article? where I'm at, it's past midnight, so it's 2012-12-21. 23:15
OTOH, by UTC, it's still before midnight.
masak is leaning towards 2012-12-20 because that's what the release guide says and he can rationalize it using UTC 23:16
hoelzro good night p6 folk
masak I convinced me. let's go with 2012-12-20.
[Coke] masak: if they have infrastructure we could use to replace github for downloads. 23:17
23:17 hoelzro is now known as hoelzro|away
dalek rl6-bench: 1725416 | (Geoffrey Broadwell)++ | components.json:
Add repo info for Perlito, NQP-JS, and perl5 components (can't build them yet, though)
23:17
rl6-bench: 5ce74ce | (Geoffrey Broadwell)++ | README:
Add section on NETWORK TRAFFIC to README; add a mini-TOC at the top so people know where to look for quick info
masak Wikipedia article updated. both places. 23:18
standing down release mode.
folks, the eagle has shipped. 23:19
jnthn masak++
Go have a beer!
PerlJam masak++
masak celebrates with a really dark imperial stout
[Coke] needs to find a wifi leech point with beer instead of big macs.
colomon masak++ 23:20
jnthn Ok, I gotta get up in 5 hours or so to head to the airport so...guess I should sleep a little :) 23:21
Probably be back in a day or so...we'll see :)
'night
dalek rl6-bench: 82f0eb4 | (Geoffrey Broadwell)++ | README:
Update README to suggest benchmarking new 2012.12 releases of NQP and Rakudo, masak++
23:22
sorear pmichaud: well, I'm definitely interested.
colomon: I do not have a pressing need for a new profiler
masak yum, this beer. 23:23
japhb_ Good night, jnthn
benabik :n
ww
colomon sorear: okay. 23:24
23:24 cognominal left
masak what's the right window for ':n'? #vimonirc? :) 23:25
benabik The gVim window instead of my IRC client? Although even there I would have gotten a "No write since last change" 23:26
masak ah, of course. that's what I should've answered. 23:29
23:29 cognominal joined
japhb_ sorear, when are you planning to release v25? 23:33
sorear japhb_: this month or never
japhb_ *snirk* 23:34
[Coke] adds Perl 6 to his resume.
japhb_ Fair enough
benabik v26 Release Notes: There was no v25.
sorear benabik: there was no v23 23:35
23:36 cognominal left 23:46 cognominal joined 23:49 stopbit left