»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by sorear on 25 June 2013.
00:11 leont left 00:14 Rotwang left 00:31 FROGGS joined 00:38 xenoterracide joined 00:46 xenoterracide left 00:48 xenoterracide joined 01:05 xenoterracide left 01:06 hypolin joined
[Coke] util++ 01:08
01:10 fgomez joined, fgomez left, fgomez joined 01:13 itz joined 01:14 ggoebel joined 01:15 FROGGS left 01:21 Aww is now known as AWW, AWW is now known as Aww 01:23 btyler joined, aindilis left 01:24 raiph left 01:25 ssutch joined 01:28 pdurbin joined, btyler left 01:31 benabik left 01:33 logie left 01:38 benabik joined 01:41 prevost joined 01:43 xenoterracide joined 01:49 btyler joined 01:52 prevost left
[Coke] Aww Yaaah. 02:06
Aww yaaah. 02:07
02:07 FROGGS joined
[Coke] Aww++ 02:07
02:34 FROGGS left
BenGoldberg rpn: say gather {}[0] 02:40
camelia niecza v24-88-g1f87209: OUTPUT«(Any)␤»
..rakudo 42758c: OUTPUT«Nil␤»
..pugs: OUTPUT«␤»
BenGoldberg rn: say 1...90 02:41
camelia rakudo 42758c: OUTPUT«1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90␤»
..niecza v24-88-g1f87209: OUTPUT«1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 8…
labster rn: say 1..88
camelia rakudo 42758c, niecza v24-88-g1f87209: OUTPUT«1..88␤»
BenGoldberg :)
labster rn: say 1...88 # use moar dots 02:42
camelia niecza v24-88-g1f87209: OUTPUT«1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88␤»…
..rakudo 42758c: OUTPUT«1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88␤»
BenGoldberg If truncation happens, camelia always seems to think the outputs are different 02:43
labster the top one isn't even truncated, that's an edge bug.
02:55 orafu left, colomon left 03:02 slavik joined 03:11 wtw_ joined, itz left 03:13 wtw left 03:15 itz joined 03:25 _jaldhar joined 03:32 _jaldhar is now known as jaldhar 03:36 fridim_ joined 03:38 preflex_ joined, ChanServ sets mode: +v preflex_, preflex left, preflex_ is now known as preflex 03:56 kaleem joined 03:59 thou left 04:02 fridim_ left 04:12 kaleem left 04:15 btyler left 04:39 itz_ joined 04:40 xinming left 04:41 itz left, birdwindupbird joined 04:42 xinming joined 04:52 BenGoldberg left 05:13 raiph joined
raiph This looks like pretty cutting edge concurrency / parallelism: 05:14
"Executing Time Warp on 1,966,080 Cores"
www.cs.rpi.edu/~chrisc/COURSES/PARA...s-2013.pdf
"direct simulation of planetary-scale discrete event models are now, in principle 05:18
at least, within reach.
diakopter .. 05:19
planetary scale, but to what granularity 05:20
basketball? 05:23
kilonewton>
?
JimmyZ what 05:25
05:42 jaldhar left 05:46 jaldhar joined 06:10 daxim joined 06:14 FROGGS joined 06:18 Tene left, djanatyn left 06:26 dmol joined, _daniel-s__ joined 06:28 FROGGS left 06:30 daniel-s__ left 06:33 fgomez left 06:38 Mouq left, Mouq joined 06:39 rindolf joined
Mouq hugme hug camelia 06:39
hugme hugs camelia
06:49 crab2313 joined 06:55 domidumont joined 07:00 FROGGS joined 07:03 domidumont left 07:04 domidumont joined
FROGGS timotimo: how can I render these nice graphs? 07:16
timotimo FROGGS: ./bench --outfile=moarvm_nqp.html --format=html_plot compare moarvm/3fc3fa2 nqp-jvm/0b93372 nqp/0b93372 07:17
FROGGS thanks!
timotimo yw :) 07:18
07:19 xinming left 07:20 itz_ left, xinming joined
FROGGS timotimo: zero and hello look a bit differently here froggs.de/perl6/moarvm_nqp.html (compared to t.h8.lv/p6bench/moarvm_nqp_2013-08-07.html) 07:27
timotimo: note that this isnt using the crosscompiler 07:28
JimmyZ would like to see p5 too there
FROGGS yeah, was my first test run, after fudging the test environment to play nicely with .moarvm-files
I need to figure out while_empty only shows a dot here 07:29
for moarvm
timotimo sprinkle prints all over timeall :) 07:31
07:32 leont joined
FROGGS ahh 07:34
I think it lies
if you move over the first dot of nqp/HEAD for the while_empty test, it says that nqp/HEAD is 670 times slower than faster, which only could be moarvm/HEAD 07:35
I dont believe that chart
timotimo no 07:36
that's nqp-jvm
the "fastest" is not restricted to the same column
it's a global number
FROGGS ahh, so it compares to the peak always
timotimo yep
FROGGS k
07:41 domidumont left
FROGGS hmmm, it works when running it by hand 07:41
07:44 sqirrel joined
masak mornin', #perl6 07:47
wow, Util++
07:49 xinming left
FROGGS morning masak 07:49
lizmat morning #perl6!
yoleaux 06:54Z <diakopter> lizmat: I have some corrections for your syllabus for the rakudo/nqp workshop.. you forgot to s/Day/Week/g
preflex yoleaux: you have 2 new messages. '/msg preflex messages' to read them.
FROGGS morning lizmat
07:50 xinming joined
lizmat .tell diakopter if you can't stand the heat, don't go into the kitchen! 07:50
yoleaux lizmat: I'll pass your message to diakopter.
masak hehe, s/Day/Week/g -- Edument courses are intense, we told you that. 07:51
07:51 iSlug joined
masak lizmat: I read that as "if you can't stand the heat, go back into the kitchen with you!" :P 07:51
lizmat :-)
masak .oO( "make me a sandwich, diakopter" ) 07:52
lizmat of course, if you realize that Edument was started by a guy called Tor, it's only a small step to Torment :-)
masak haha
two guys, actually.
but the second one is called "Acke", so... point taken. :)
lizmat yeah, good cop, bad cop, I know the drill :-)
masak more like "the techie and the marketer", but yeah. 07:53
07:55 wtw_ is now known as wtw
lizmat www.jugendherberge-frankfurt.de/en/ was suggested as a location for the RaNIW 07:57
the Dutch Perl workshop has been held at a youth hostel many times, and I have fond memories of that 07:58
I think jnthn was even at one of them
It would certainly make the boarding of the particpants a lot easier
tadzik lizmat: 14-15 august? 08:02
lizmat 14/15 September
tadzik I assume september
sounds perfect
lizmat cool!
tadzik I'm excited too Y( 08:03
:)
lizmat loves it when a plan comes together :-)
tadzik but that doesn't change the fact that I was supposed to be at work an hour ago
and I woke up 20 minutes ago
tadzik runs
FROGGS attached multithreaded legs at tadzik's body so he can run while he runs 08:04
tadzik but still, the sleep was worth it :D
FROGGS *g* 08:06
lizmat fitness& 08:07
08:10 avuserow left 08:11 avuserow joined 08:13 dakkar joined
masak FROGGS: clearly, you should read "The multithreaded leg-marathon" by Terry Xzibit 08:16
08:29 crab2313 left
FROGGS ohh, okay 08:31
diakopter masak: multiple marathon legs at once? but where would you stand to pass out water? 08:33
yoleaux 07:50Z <lizmat> diakopter: if you can't stand the heat, don't go into the kitchen!
diakopter "stay out of the .." 08:36
(better alliteration)
FROGGS timotimo: should timo_command measure the exec time including compile time? 08:40
timotimo i think so. not sure. 08:41
FROGGS because the cross compiler takes ages on moarvm... like 3s or so 08:42
timotimo but the benchmark system sutracts the startup time
nwc10 lizmat: www.perl-workshop.de/en/2009/index.html and conferences.yapceurope.org/gpw2011/ 08:43
labster good morning #perl6 08:58
masak labster! \o/ 08:59
FROGGS hi labster
labster this perl 6 compiler hacking workshop sounds exciting 09:00
I'm tempted to go, but worried about concepts going way over my head. 09:01
Anyway, I've decided that I should work on Bailador. The only problem being that I don't know Dancer to begin with, so I've been playing around with it today. 09:03
masak it won't be as head-spinning as, say, reverse grammars ;)
JimmyZ or mojo 09:04
09:06 berekuk joined 09:13 crab2313 joined, Rotwang joined
masak crazy. github.com/seliopou/typo 09:16
09:17 pecastro left
tadzik labster: oh, awesome :) 09:18
09:18 nyuszika7h left
tadzik oh gods: osrc.dfm.io/tadzik 09:18
it scares me how accurate that is 09:19
09:19 pecastro joined
labster oh wow, that is scary accurate for me too. 09:20
09:20 rindolf left
JimmyZ somebody said mojo::lite is like dancer 09:20
09:21 berekuk left
labster Although it's not so much that I work best late at night, it's just that the darn things finally pass tests then. 09:22
or I just give up and commit the partially working code before sleep. 09:23
09:23 hypolin left 09:24 hypolin joined
masak Perl... and C#? osrc.dfm.io/timtoady 09:24
oh, because Niecza.
"In particular, Larry is a serious Perl expert." -- :D
09:25 hypolin left, hypolin joined, hypolin left
labster facebook should ask him if he's read the camel book. 09:25
masak also, audreyt and ingydotnet are really language omnivores -- it's utterly clear from their report cards. 09:26
09:31 nyuszika7h joined 09:32 iSlug left 09:33 xenoterracide left
moritz just acquires a macbook from 2007 so that he has any laptop at the hackathon at all 09:34
JimmyZ masak: we're a late-week deadliner 09:35
nwc10 moritz: that might be the same generation hardware as mine
mine is a "late 2007" macbook bought in Feb 2008 about 2 weeks before an unexpected refresh 09:36
moritz: which OS version?
09:37 Exodist joined, Teratogen joined, Teratogen left, Teratogen joined
Ulti Util++ wow thanks, I'll makesure I get on with it ;) I dont even recognise those perl5 regexp modules 09:37
09:37 Teratogen left 09:38 Teratogen joined, Teratogen left, Teratogen joined, Teratogen left, Teratogen joined, Teratogen left
moritz nwc10: I'm just upgrading to 10.7.4 09:39
09:39 Teratogen joined, Teratogen left
FROGGS wow, that site is awesome: osrc.dfm.io/ 09:39
09:39 Teratogen joined
nwc10 10.7.4 is most recent Leopard? 09:39
09:39 odoacre_ left
moritz nwc10: I'm not sure; I have no idea of Mac OS X 09:40
09:40 odoacre_ joined
moritz nwc10: I'm just using it because it's preinstalled, and the owner would kill me if I installed a linux instead :-) 09:40
nwc10 I don't have a good idea. Mine reports 10.8.0
and it's Snow Leopard
timotimo image the hard drive? 09:41
tadzik moritz: do you want my old ThinkPad?
moritz tadzik: what characteristics does it have?
09:42 ssutch left, iSlug joined
moritz tadzik: but most certainly "yes" ;-) 09:42
tadzik moritz: it's core 2 duo, 4 gigs of ram. It's also heavy (almost 4kg), and battery lasts like 30 minutes :)
09:42 berekuk joined
tadzik oh, and the keyboard is in a bad shape :( 09:42
but only the windows key
nwc10 ssh into that one from the other.
tadzik hehe
moritz tadzik: sounds great, in comparison to what I have now
nwc10 4 gigs of RAM should help compilation 09:43
tadzik it used to have an SSD, but I sold it
moritz once I have network access, I can also ssh to another server and compile rakudo there
tadzik I can arrange a 320gig hdd for it, probably
moritz I can also bring my old laptop's hdd 09:44
and hope they are compatible :-)
tadzik this one was 9mm wide, or such
like "the regular laptop width" :)
masak emotions in various github communities: geeksta.net/geeklog/exploring-expre...-messages/ 09:46
nwc10 I can bring a USB housing for a laptop drive (but probably not the screwdriver needed to get into it) but I'd rather not unless it's useful and no-one else has one 09:47
tadzik I have one too 09:48
but I'd rather not bring it :)
moritz I'll just bring my own laptop HDD along, and we'll be fine (hopefully :-) 09:49
tadzik sounds good :)
crowd-ware 09:50
moritz feels so c[lr]o[wu]dy 09:51
09:51 berekuk left 09:52 xenoterracide joined
mathw masak: I like the quoted message "regexes are fun and pleasant to work with, in the same way that oranges are purple" 10:01
timotimo thankfully, perl6 changes that in a big way 10:02
nwc10 the oranges are chartreuse? 10:03
mathw I tend to think that if you get to that level of frustration with regexes then you either haven't bothered to actually learn regexes, or you're trying to do something that's past what I consider the sane complexity limit for a plain regex
there's a point where you're sometimes far better off doing it in several steps, because then you've got a chance of understanding the code next year when you have to change it 10:04
FROGGS mathw++ # true
masak right. if the tool frustrates you, then do something about that. 10:07
either learn more about the tool, or change your expectations, or change tools.
diakopter oh noes jnthn quit Perl 6
dalek ecs: a888b08 | (Elizabeth Mattijsen)++ | S12-objects.pod:
First attempt at speccing "samewith"
10:08
10:08 raiph left
mathw timotimo is right of course, Perl 6 moves the goalposts quite substantially on the complexity barrier, because they're not regexes anymore... I do see a lot of people trying to do things with regexes that you really need a grammar engine for, and Perl 6 should help them a lot. 10:09
10:09 lee_ joined
dalek p: f68cb4f | (Pawel Murias)++ | t/nqp/18-associative.t:
convert test to using ok instead of say, add a test for a nqp-js bug
10:09
mathw admittedly, regexes themselves won't be substantially more powerful - but having grammars built in is really nice
10:09 pmurias joined, sqirrel left 10:10 berekuk joined, jnthn joined
pmurias mathw: I think being able to easily import regex subparts from CPAN will be a huge benefit (increase in power) 10:10
masak mathw: regexes became "not regexes anymore" long before Perl 6 took the Perl 5 regexes and added grammars.
timotimo oh yen
mathw I'm now very much in the camp that a good language should have either good parsing abilities or the kind of extensibility that lets you add them without going mad 10:11
masak: yeah I'm using 'regexes' more to mean Perl 5 ones, not the proper regular expressions which are far more limited
pmurias: that, definitely that.
masak .oO( "Perl 6 regexes are not even the Perl 5 regexes that are not even real regexes anymore, anymore!" ) :P 10:13
10:15 woosley left 10:17 berekuk left
Ulti Util's regex translator looks to be quite solid at least for this use case :) 10:18
masak Util and Ulti: I think you two have started interacting just to mess with the rest of us. :P 10:19
Ulti >:D
I dont have jakudo on my work laptop so can't hammer this out now... also my thesis is now dragging well into *no funding* time 10:20
10:20 iSlug left 10:21 arnsholt left
mathw masak: I like the convention of "regex" meaning superpowered ones like Perl 5's, and "regular expression" meaning what the parsing theorists think about 10:22
and that I learned about in the G51MAL module at uni :)
Ulti I'll try and get this done and submit a patch to the bioperl6 repo since I think it would be quite neat if in my paper I can name drop Perl6
mathw probably the best module in the first year, that one, especially when one day the lecturer demanded of a late arrival "YOU! What is your favourite regular language?"
Ulti yeah I think regex usually implies perl5 wizz4rdry 10:23
mathw So the poor guy said "umm... a^n b^n?"
"NO! That is not a regular language! Sit down!"
masak :D 10:24
mathw: yes, that's a good convention. I remember that being discussed/decided on p6l. 10:25
mathw: also, Perl 6 people consistently say "regex", whereas many Perl 5 people say "regexp".
rn: say Regex.^name
camelia rakudo 42758c, niecza v24-88-g1f87209: OUTPUT«Regex␤»
Ulti mathw: isn't it regular if you bound how many repeats then it becomes finite and thus regular (thats what I would have thrown back at the lecturer) 10:26
masak r: say Regexp
camelia rakudo 42758c: OUTPUT«===SORRY!=== Error while compiling /tmp/MX_jgSPSFT␤Undeclared name:␤ Regexp used at line 1. Did you mean 'Regex'?␤␤»
masak rakudo++
10:26 iSlug joined
Ulti nice 10:26
masak Ulti: that's changing the problem, which is usually considered "cheating".
Ulti thats the sort of cheat I am 10:27
masak Ulti: the fact remains that a^nb^n isn't a regular language.
it is, however, in the next level of hopelessness: a context-free language.
that is, you need to endow your FSM with a pushdown stack. 10:28
mathw absolutely 10:31
this was a point that had been made in the previous lecture
I found that course very interesting indeed. It turned parsing from something strange and scary into something merely complicated 10:32
masak :) 10:33
mathw: I have a talk at YAPC::EU where I will try to get some of these points across.
a very small subset of these points, in fact.
the summary of the talk is something like "NFAs are cool stuff". 10:34
Ulti {a^nb^n | 0 > n < 10} is a finite language so is regular is what I meant, I'd have hastily added on the bound to show the lecturer I knew the requirements for a regular language even if I was wrong to begin with 10:35
mathw yeah, but you know what the requirements for a regular language are 10:36
Ulti regular expressions are just unions of all the words which is finite, its horrible but regular.. its only when its an infinite space of words its not regular because you have to recurse to express it 10:37
masak r: say set ($_ % 10 for 1, 2, 4 ... 65536)
camelia rakudo 42758c: OUTPUT«set(1, 2, 4, 8, 6)␤»
Ulti also our lecturer for that stuff didnt care enough to attempt to catch anyone out :'(
masak r: say set ($_ % 100 for 1, 2, 4 ... 65536)
camelia rakudo 42758c: OUTPUT«set(1, 2, 4, 8, 16, 32, 64, 28, 56, 12, 24, 48, 96, 92, 84, 68, 36)␤»
masak Ulti: not exactly. the kleene star also creates an infinite space of words. but it's still regular. 10:38
Ulti: as in, a^n with no limit on n is still regular, for example.
Ulti: the impossibility of a^nb^n is that the state machine cannot "remember" the n going from a to b. 10:39
Ulti I'd have gotten caught out then ;) 10:40
mathw indeed
Ulti also we didn't have any parser/compiler theory on our CS course 10:42
masak o.O
Ulti the language theory stuff was two lectures as part of a foundation maths module
I learn regex when I had to do stuff in Perl and PHP in my first job, they didnt even cover practical "regular" expressions 10:44
*learnt
10:46 crab2313 left
mathw :( 10:59
we had a whole module on 'machines and their languages', which was basically about how to parse things
very handy for the second year when we did a module on compilers :) 11:00
11:14 crab2313 joined 11:21 ggoebel left
lizmat r: my Int @a; @a[0]="foo" # wonders where the $v comes from 11:23
camelia rakudo 42758c: OUTPUT«Type check failed in assignment to '$v'; expected 'Int' but got 'Str'␤ in block at /tmp/coPrjEV8J6:1␤␤»
lizmat cycling&
11:31 crab2313 left, crab2313 joined
masak because Python doesn't declare variables (all your variables are implicit locals), you can see an outer lexical from an inner scope, but you cannot write to it, because assigning to a variable in the inner scope creates a new inner lexical that shadows the outer one. 11:49
11:50 dmol left
FROGGS masak: is that a response to someone? 11:51
11:51 dmol joined
FROGGS I mean, it is interesting to know, and makes python feel even more weird 11:52
Juerd masak: Hm, that explains the foo = foo I saw and didn't understand yesterday :)
masak Juerd: yup. but that was probably a parameter default. 11:54
FROGGS: no, I'm just discovering things as I go.
FROGGS: some of which are weird. 11:55
FROGGS right :o)
FROGGS subscribes to masak's feed
masak Juerd: Python has the same problem as Moose does with defaults. they are evaluated at declaration-time, not at call-time or instantiation-time.
Juerd: so 'foo = foo' means "I have this parameter foo. its default value is whatever's in (the surrounding environment's lexical variable) foo *at function declaration time*" 11:56
12:03 pdurbin left 12:15 benabik left 12:16 skids left 12:19 benabik joined 12:21 g0r joined 12:23 arnsholt joined 12:32 daxim left 12:38 domidumont joined
FROGGS I wonder why nqp@moarvm is so equal to nqp@parrot... froggs.de/perl6/moarvm_nqp.html 12:39
mebbe I'm benching it wrong
[Coke] or it could be that moarvm is slower than parrot for non-MOP thins 12:42
*things
12:49 domidumont left 12:55 g0r left 12:56 iSlug left
JimmyZ FROGGS: Did you with --optimize :P 12:57
FROGGS JimmyZ: I did
JimmyZ what? zero is so high in moarvm? :) 12:58
FROGGS I just wonder because it is in many cases *identical* to nqp@parrot, and that is odd
13:00 slavik left 13:01 berekuk joined 13:02 sqirrel joined, sqirrel left
moritz masak: but Moose allows you to pass closures for defaults 13:23
13:24 thou joined, rindolf joined
moritz managed to compile a rakudo on "his" laptop 13:25
just 6 minutes to parse the setting 13:26
tadzik not that bad
moritz it doesn't make rakudo hacking very practical, but maybe I can hack on modules 13:27
FROGGS that was what I was thinking *g* 13:28
5min for stage parse means you'll become the next famous module hacker :P 13:29
masak moritz: yes, and I don't really see why the parameter defaults in Python couldn't all be thunks. but they're not. 13:32
moritz: Moose even forbids [] and {} without the surrounding sub ref. 13:33
tadzik FROGGS: ...or the next successful gsoc student :P 13:35
FROGGS tadzik: well, at least we are too old for beeing gsoc students :o) 13:36
tadzik I don't think you can be too old :)
13:39 ajr joined, btyler joined, ajr is now known as Guest55702, Guest55702 is now known as ajr_
crab2313 ls 13:39
13:40 crab2313 left, marshyon joined 13:41 skids joined
mathw wonders if moritz might instead become the reason why Rakudo at in May 2014 can be compiled in less than pi seconds 13:41
pmurias what's taking so long? parsing? 13:49
arnsholt Well, the parse stage of the compilation includes the generation of the full AST, as well as executing any code that has to be run at compile-time (traits, BEGIN blocks, etc) 13:51
pmurias arnsholt: and what's the bottleneck? 13:52
jnthn: what should "foo".WHAT return?
arnsholt I'm not sure if there's anything in particular that's slowing it down
moritz pmurias: the Str type object 13:53
arnsholt The setting is just massive
moritz mathw: if I had any idea on how to do that, I'd have done it by now
pmurias moritz: in nqp 13:55
masak rn: say "foo".WHAT === Str
camelia rakudo 42758c, niecza v24-88-g1f87209: OUTPUT«True␤»
masak nqp: say "foo".WHAT
camelia nqp: OUTPUT«Confused at line 2, near "say \"foo\"."␤current instr.: 'panic' pc 14721 (src/stage2/gen/NQPHLL.pir:5232) (src/stage2/gen/NQPHLL.nqp:279)␤»
masak nqp: say("foo".WHAT)
camelia nqp: OUTPUT«Can only use get_what on a SixModelObject␤current instr.: '' pc 43 ((file unknown):164815216) (/tmp/rb5XP_N8vy:1)␤»
masak pmurias: seems "you can't do that" 13:56
13:56 bluescreen10 joined 13:59 mtk left 14:01 isBEKaml joined, konundra joined, logie joined 14:03 mtk joined
mathw moritz: it's easy - just invent a really really fast computer :P 14:03
14:04 marshyon left
pmurias masak: on parrot you can't on jvm you can 14:05
masak: what_or_null is #ifdef'ed on parrot
14:06 crab2313 joined
masak pmurias: what does it return on the JVM? 14:09
14:09 kaare_ joined
pmurias masak: some internal package I guess, I would have to check the source 14:09
14:11 logie left
timotimo moritz: if i buy a new laptop by the time the workshop happens, and i attend the course, i could bring my x200s along with the new laptop to the course 14:11
it does stage parse in about 3 minutes i think... 14:13
but i still do all my rakudo hacking on my desktop via ssh if i can
dalek rlito: 8b345b3 | (Flavio S. Glock)++ | / (5 files):
Perlito5 - grammar - new module Perlito5::Grammar::Map
14:16
14:20 jaldhar left, logie joined 14:23 isBEKaml left, Timbus left 14:24 ponbiki left, Timbus joined
diakopter the cover of my new passport is so thick, there must be a computer inside 14:30
oh wait, it even admits there is. nm. 14:32
tadzik haha 14:33
14:34 colomon joined 14:38 Psyche^_ joined 14:41 ponbiki joined, ponbiki is now known as Guest37797 14:42 Psyche^ left
dalek kudo-js: c51e407 | (Pawel Murias)++ | / (3 files):
Stub nqp::multicachefind. Fix QAST::VarWithFallback.
14:44
kudo-js: b9bdecb | (Pawel Murias)++ | / (3 files):
Implement basic multis. Pass test 51.

Implement nqp::invokewithcapture. Stub nqp::multicacheadd. Make nqp::what return null for non objects. Fix dependencies in the Makefile.
14:45 sqirrel joined
cognominal pommed? 14:58
15:00 birdwindupbird left
mathw diakopter: can you run rakudo on it? 15:01
15:02 domidumont joined 15:04 berekuk left
dalek rlito: 7bf2dc3 | (Flavio S. Glock)++ | / (4 files):
Perlito5 - grammar - placeholder for sort() special cases
15:09
15:13 FROGGS left
[Coke] wishes we could do more about spam on blogs.perl.org. :| 15:21
masak comments or no spam. pick any 1. 15:24
15:25 colomon left
mathw masak: you can have no spam and comments, if you employ a horde of moderators to approve every post before it appears 15:27
and train them perfectly 15:28
[Coke] masak: it's not comment spam. it's new-acccount-first-post-spam. 15:29
masak [Coke]: oh :/ 15:36
mathw: while that is definitely a solution, under my definition that doesn't count as "no spam". :) 15:37
15:37 FROGGS joined
masak only "no spam reaches the reader". 15:37
15:37 ajr_ left 15:38 ajr joined, ajr is now known as Guest47564
mathw masak: good point. In that case you're quite correct that the only way to prevent spam is to disallow comments entirely. 15:41
moritz somhow my default perl in $PATH is a 5.8.9 :/ 15:43
mathw hmm 15:44
15:50 Guest47564 is now known as ajr_
moritz perlbrew to the rescue, I hope 15:51
16:10 ajr_ left 16:19 sqirrel left 16:26 konundra left 16:28 ssutch joined 16:34 Tene joined
dalek p: 5d3cfd5 | (Pawel Murias)++ | t/nqp/18-associative.t:
Add testing for access of missing keys to test 18.
16:45
kudo-js: 925254e | (Pawel Murias)++ | / (3 files):
Pass newly added test 76.

Fix the passing of positionals to nqp::invokewithcapture(). Update nqp submodule.
  "Implement" just enough of nqp::getcomp to determine the backend name.
16:47
p: 465c0ac | (Pawel Murias)++ | t/nqp/76-capture.t:
Add new test 76.
timotimo that sounds good! 16:49
16:49 census left
benabik Why is `sub savecapture` so complex? 16:50
16:53 vk_ joined 16:58 nebuchadnezzar left 17:00 spider-mario joined
pmurias benabik: you mean why it wrap the return value in an array? 17:01
benabik pmurias: Also, why store the result in $x
pmurias debugging leftovers... 17:02
17:04 dakkar left, nebuchadnezzar joined
dalek p: 80104a9 | (Pawel Murias)++ | t/nqp/76-capture.t:
Simplify test.
17:05
17:05 cooper left 17:07 sqirrel joined 17:08 ajr_ joined
pmurias jnthn: closures can have different code objects? 17:25
17:28 konundra joined
masak pmurias: that sounds... unlikely. assuming I understand you correctly. 17:31
pmurias masak: that seems to be true 17:34
masak: pastie.org/8219245 17:35
jnthn evening, #perl7 17:36
yoleaux 06:54Z <diakopter> jnthn: I have some corrections for your syllabus for the rakudo/nqp workshop.. you forgot to s/Day/Week/g
jnthn oh f*8k
FROGGS jnthn: O.o
jnthn evneing, #perl6
...laggy train wifi
FROGGS just claims that jnthn is drunk :o)
jnthn I wish!
FROGGS sure, it is the wifi
:P 17:37
jnthn pmurias: s/can/must/ :)
lizmat some of my history: medium.com/p/13392e324814
what the article doesn't mention, is that PLATO Notes was badly reimagined later as Lotus Notes 17:38
ah, the days of the orange glow :-)
17:39 sqirrel left
FROGGS lizmat: you worked for that company? 17:41
lizmat I was a PLATO user, I worked for the University of Amsterdam 17:42
PerlJam ./foo 17:43
lizmat but I do know some of the people mentioned in the article personally :-)
jnthn: given @a, how do I get at its ContainerDescriptor ? 17:45
jnthn lizmat: nqp::getattr(...) ? :) 17:49
17:49 cooper joined
FROGGS core/Array.pm should have examples, right? 17:50
pmurias jnthn: what I'm trying to figure out is how does a serialized closure in test 55 get it's code object 17:52
jnthn pmurias: iirc, the code object index is stored in the closrues table 17:53
moritz does ContainerDescriptor live at compile or at run time?
pmurias jnthn: thanks 17:54
FROGGS I'd guess at compile time
(that is my guess, not the time when I guess fwiw)
lizmat r: my @a is default(42); say @a[0] # trying to fix things like this 17:55
camelia rakudo 42758c: OUTPUT«This type does not support elems␤ in method REIFY at src/gen/CORE.setting:7465␤ in method REIFY at src/gen/CORE.setting:7742␤ in method reify at src/gen/CORE.setting:6691␤ in method gimme at src/gen/CORE.setting:7111␤ in method exists at src/gen/CORE.setting:7…
FROGGS because I've seen calls to install_lexical_container when generating the ast
lizmat r: my @a of Int; say @a[0] # and this 17:56
camelia rakudo 42758c: OUTPUT«(Any)␤»
lizmat src/core/Variable is setting these as expected at line 37 and 55 17:57
and it works fine for scalars, but not for arrays and hashes
so it feels to me the wrong descriptor is being set there
or some special handling for @ and % is needed there 17:58
jnthn Made at compile time
slava I wonder, can grammars be used with binary data? 17:59
like for data packets coming across the network, and using grammars to classify/decode packets 18:00
FROGGS slava: sure 18:01
slava nice ^_^
FROGGS one problem I see is that you cant process data this way while still streaming it 18:03
you would have to receive the the block of data first in order to parse it
lizmat unless we had a binary Cat 18:05
FROGGS while grammars can be used as a switch/case replacement they come handy at the point where data is nested and has repetitions
I have 10 cats 18:06
lizmat I hope they like each other 18:07
jnthn I have and haven't a cat
FROGGS jnthn: but a box?
jnthn
.oO( It's my cat in a box, girl... )
18:08
jnthn sets about a big refactor of the NQP/Rakudo on JVM IO 18:09
diakopter jnthn: wat 18:24
you cursed at my message to you? I was tongue-in-cheek
masak diakopter: jnthn cursed at slow conn. 18:25
diakopter oh
masak is a #perl6 backlog historian! :P 18:26
jnthn Actually, at writing #perl7 :P
masak because of slow conn.
jnthn: don't try to claim you know your intentions better! :P
[Coke] hopes jnthn is planning to include all these updates in the class! ;) 18:27
woolfy Just want to mention that the place where the Perl 6 hackathon this sunday will take place in Kiev, well, it's gorgeous, lovely, magnificent! www.dniprohotel.ua/en/confercehalls...ntium-hall
jnthn Yes, it's beautiful, like much in Kiev! :D 18:28
masak it's decadent!
diakopter wat.
do I need to reserve a space at that table, and how much does it cost
masak how can we hack when there are plates and cutlery all over the table!?
woolfy Is it the most lovely beautiful place ever where a Perl 6 hackathon was held?
masak woolfy: my kitchen isn't half-bad either :P 18:29
18:29 iSlug joined
jnthn masak: Your kitchen isn't that decorated :P 18:29
masak it has a... raw beauty.
diakopter seriously though, will there be room for me there on Sunday
woolfy masak, thank you for volunteering your kitchen for the next Perl 6 hackathon. Nice. So, one more todo done.
lizmat diakopter: the question is more: will you be in any shape arriving at 3am?
masak woolfy: people are welcome to use my kitchen for Perl 6 hackathoning!
jnthn Best thing about hackathons in masak's kitchen is the port :P 18:30
diakopter lizmat: hey, that's 4 pm my time or something
5 pm
woolfy masak: that's nice, maybe we will take you up on that, the next time we're in Malmoooo
lizmat maybe you should just stick to your time zone :-)
18:31 zwut00 joined, zwut00 left
diakopter question is will I be up for waking up for the day at 8 pm my time 18:31
I have body clock adjustment tools
i'll be ok
masak woolfy: I'd be delighted. 18:32
woolfy masak: ditto
diakopter miraculously got super-cheap upgrade to businessFirst on united for the 11-hour flight to frankfurt
18:32 zwut00 joined
diakopter seriously, miraculously 18:32
so, probably won't bring my eternal battery 18:33
erm.
*external
lizmat
.oO( there would be a market for an eternal battery )
masak I would be seriously jealous of anyone who had an eternal battery. 18:34
[Coke] wonders why the opcode is named "nqp::jvmisnull" and not "nqp::isnull" ?
diakopter I invented free energy last night, but then entropy made me forget it.
jnthn [Coke]: There's an nqp::isnull already 18:37
[Coke]: nqp::jvmisnull is for checking if you have a Java object reference that is null
[Coke] hokay 18:39
18:39 raiph joined 18:40 sqirrel joined 18:44 iSlug left
dalek kudo/nom: 26f33e2 | (Elizabeth Mattijsen)++ | src/core/ (2 files):
Make .of work on scalar values
18:46
lizmat r: my Int $a = 1; say $a.of
camelia rakudo 42758c: OUTPUT«No such method 'of' for invocant of type 'Int'␤ in block at /tmp/DiKJfPygA0:1␤␤»
lizmat should be fixed now 18:47
jnthn um 18:50
No, that shouldn't work
You should write $a.VAR.of, which I think already worked
benabik r: my Int $a; say $a.VAR.of
camelia rakudo 42758c: OUTPUT«No such method 'of' for invocant of type 'Scalar'␤ in block at /tmp/ZCYEWREB7c:1␤␤»
jnthn OK, that's the one that should work :)
dalek kudo-js: 52d4615 | (Pawel Murias)++ | nqp:
Update submodule.
18:51
kudo-js: aa06f2c | (Pawel Murias)++ | run (2 files):
Set the code object on deserialized closures.

Pass test 55.
lizmat well, that's one part of the patch: adding .of to Scalar
jnthn OK, but a plain $foo.of should not work
18:51 crab2313 left
jnthn Unless the thing in the container has a method of. 18:51
lizmat why not? A plain $a[0] also works 18:52
pmurias jnthn: re code object, setting it makes the multi method test pass ;)
jnthn pmurias: yay :)
lizmat jnthn: why shouldn't a plain $a.of not always work ?
jnthn lizmat: I fail to see the connection.
lizmat: Operations on scalar containers always see through the container 18:53
lizmat: $a[0] works becuase it does .postcircumfix<[ ]>(0) on the thing inside of the container.
lizmat so given a $a of unknown type, how will you be able to tell you can call .of on it ?
if you pass $a to a sub, and it expects an array, you can still do [0] on it, even if it was a scalar 18:54
jnthn is very confused :/
lizmat I'm saying: you don't need to look at what you have, you can always do [0] on it
jnthn Yes, because the thing *inside* the scalar is an array 18:55
lizmat but before my patch, that was not true for calling .of on something
jnthn It's like saying $a.name should return $a
uh, '$a'
It shoudln't
That's confusing container and value.
lizmat I may be confused then 18:56
jnthn I think so.
lizmat but from an API point of view, having .of bomb depending on the object, is not a good thing 18:57
jnthn Note that
my Array $a = [1,2,3];
say $a.of # Mu
say $a.VAR.of # Array
Those should be the correct answers. 18:58
pmurias hmm the slurp test relies on being in the nqp directory, is there a way to avoid that?
like get the path of the currently executing script? 18:59
lizmat well, the latter definitely did not work before my patch
r: my $a; say $a.VAR.of
camelia rakudo 42758c: OUTPUT«No such method 'of' for invocant of type 'Scalar'␤ in block at /tmp/BzJpgAHU5m:1␤␤»
jnthn Right. Adding Scalar.of is fine. Making .of work on anything at all is not.
The reliable way to ask the question is .VAR.of
lizmat ok 19:00
r: my @a; say @a.VAR.of # expecting Any here
camelia rakudo 42758c: OUTPUT«(Mu)␤»
lizmat r: my Int @a; say @a.VAR.of # expecting Int here
camelia rakudo 42758c: OUTPUT«(Int)␤»
pmurias jnthn: do you have any ideas how could we avoid assuming the current directory while running the nqp slurp test? 19:01
jnthn pmurias: No, why do we need to do that?
pmurias I'm loading things stuff from my nqp-js'y current directory 19:02
dalek kudo/nom: 81eec1b | (Elizabeth Mattijsen)++ | src/core/Mu.pm:
Returning .of on anything is wrong, according to jnthn++
pmurias s/things//
19:02 rindolf left
lizmat jnthn: I guess the @a.VAR.of saying Mu is another symptom of "my @a of Int" not working 19:02
pmurias jnthn: and I keep the nqp submodule in nqp/t 19:03
lizmat r: my Int @a; say @a.VAR # expecting Array here ?
camelia rakudo 42758c: OUTPUT«␤»
jnthn pmurias: Ah...not got a good answer on that one...
pmurias: Various Rakudo tests assume the wame...
pmurias wame?
jnthn *same
lizmat: .VAR returns the Scalar container for scalars, or identity for anything else.
pmurias well assuming the current directory in nqp-js is a serious limitation that should be removed 19:04
lizmat r: my @a; say @a.VAR # jnthn: so the empty string here is correct ?
camelia rakudo 42758c: OUTPUT«␤»
timotimo r: my @a; say @a.VAR === @a;
camelia rakudo 42758c: OUTPUT«True␤» 19:05
jnthn lizmat: You've doing the same as say @a there
lizmat aaaaahhhh ok
jnthn forgets which synopses .VAR is spec'd in...
lizmat r: my @a is default(42); say @a[0] # then what's wrong here ? 19:06
camelia rakudo 42758c: OUTPUT«This type does not support elems␤ in method REIFY at src/gen/CORE.setting:7465␤ in method REIFY at src/gen/CORE.setting:7742␤ in method reify at src/gen/CORE.setting:6691␤ in method gimme at src/gen/CORE.setting:7111␤ in method exists at src/gen/CORE.setting:7…
lizmat I would expect 42 there
jnthn Me too...is "is default" implemented on arrays?
lizmat nqp::getattr($v.var, $v.var.VAR.WHAT, '$!descriptor').set_default($default); 19:07
is my naive implementation of "multi trait_mod:<is>(Variable:D $v, :$default!) {"
apparently, it's missing something there 19:08
r: my @a is default(42)=1; say @a[1] # better example 19:09
camelia rakudo 42758c: OUTPUT«(Any)␤»
19:10 domidumont left
lizmat apparently REIFY needs some check for $!items still being Mu 19:11
jnthn: working on a fix src/core/Variable 19:24
19:26 Rotwang left 19:30 sqirrel left
pmurias jnthn: if node.js has primitives for slurp and spew how should I expose them? Or should I just handle it later when emitting optimized code? 19:31
19:33 Rotwang joined
jnthn pmurias: I'd just go with implementing the existing nqp:: ops for now 19:44
19:49 leont left
masak in Python, you can .pop hash keys out of the hash. 19:49
masak , reporting from a strange land of subtle differences
lizmat I bet the order of keys is also determined ? 19:50
masak no, it seems to be as indeterminate as in Perl.
lizmat: you dict.pop('my key')
lizmat Ah, like %h.delete 19:51
masak yes.
lizmat of better: %a{@slice}:delete
masak oh, unless you .popitem(), which just picks one seemingly at random.
Mouq I think S28 is wrong. In section "Perl5 to Perl6 ..." $1,$2,$3 should be $0,$1,$2 in the Perl6 column 19:57
dalek rl6-roast-data: ca32f97 | coke++ | / (3 files):
today (automated commit)
19:58
kudo-star-daily: 19db7d9 | coke++ | log/ (5 files):
today (automated commit)
19:58 berekuk joined
FROGGS Mouq: sounds right, can you edit it or make a pul request? 20:04
pull*
masak Mouq++
20:08 kaare_ left
dalek kudo/nom: eea1906 | (Elizabeth Mattijsen)++ | src/core/ (3 files):
Implement ($@%&)foo.VAR.default

Although I don't think this is formally specced, it seems logical that we can introspect this at runtime using .VAR
20:08
lizmat if anything, it helps me debugging :-) 20:09
20:09 sqirrel joined 20:11 Mouq left, Mouq joined
masak lizmat++ 20:12
FROGGS well, we can ask objects for its methods, so asking a variable for its default makes absolutely sense 20:15
masak today's non sequitur, sponsored by FROGGS! :P 20:16
in other news, it absolutely makes sense to ask a method call for its line number.
FROGGS of course :P 20:17
masak or an environment variable for its favorite value.
(it's always "blue")
FROGGS gah
20:18 Rotwang left
lizmat r: my %*ENV is default("blue"); say %*ENV<foo> # alas :-( 20:19
camelia rakudo 81eec1: OUTPUT«===SORRY!=== Error while compiling /tmp/QF3uXgj6TR␤Odd number of elements found where hash expected␤at /tmp/QF3uXgj6TR:1␤------> ␤»
lizmat ah, that should be fixed shortly :-) 20:20
FROGGS lizmat++ # :o)
dalek kudo/nom: 1f57da5 | (Elizabeth Mattijsen)++ | src/core/Variable.pm:
Make sure we only assign the default value for Scalars
20:22
20:24 Rotwang joined
dalek p/io-refactor: fbf9be3 | jonathan++ | / (5 files):
Start stubbing in new IO bits.
20:31
p/io-refactor: 57188a8 | jonathan++ | src/vm/jvm/runtime/org/perl6/nqp/io/ (3 files):
Fill out a little more of file I/O.
p/io-refactor: 3397641 | jonathan++ | src/vm/jvm/runtime/org/perl6/nqp/ (2 files):
Start updating ops to use new IO scheme.

Not everything is moved over or implemented yet, so this breaks things massively.
slava is it possible to have a grammar output an error when a token doesn't match? 20:34
jnthn something like token foo { blah || <.panic: 'oh noes!!!'> } perhaps?
slava yes
is that exactly it?
jnthn: I am thinking along the lines when compilers say "expect blah, got glah" type of messages 20:35
jnthn Can't remember if you get a panic by default, but if not you can easily write a method panic($msg) { die $msg ~ ' at ' ~ self.pos() } or so 20:36
slava going to try some :D 20:37
thanks
jnthn: if I ever meet you, can I touch your beard? ^_^
20:38 ajr_ left
FROGGS hehe 20:40
jnthn blushes
FROGGS jnthn has his first groupie *g*
jnthn I...I guess. :P
20:41 BenGoldberg joined
slava $object.perl ... best thing since git/perl 20:41
:P
dalek ecs: 2d47c89 | (Alex Moquin)++ | S28-special-names.pod:
Match vars begin at $0 in Perl 6
ecs: ac105c2 | (Brent Laabs)++ | S28-special-names.pod:
Merge pull request #59 from Mouq/matchvars

Match vars begin at $0 in Perl 6 Looks good to me :)
jnthn woo, almost home... 20:43
jnthn is glad the train is only 10 minutes late this time, not 3 hours late...
detrain, bbiab & 20:44
20:52 Teratogen left 20:53 konundra left
[Coke] ~~ 20:56
FROGGS hi [Coke]
20:58 colomon joined, pecastro_ joined 20:59 pecastro left
jnthn yay home 21:02
I'll be here all of...30 hours. :)
FROGGS \o/
21:03 btyler_ joined
lizmat jnthn++ 21:03
FROGGS jnthn: btw, ^100_000 >>+<< ^100_000 takes almost the same time when using nqp_bigint_add for the elements as parrot's add takes 21:04
21:05 btyler left
FROGGS my hyper op can handle bigints now too, and it takes 8.5s (26.7s cpu, 4 cores) 21:06
now I'd just need to properly return the resulting list/array... I have a QRPA as it seems and have no idea what to do with it :/
nwc10 $ 21:08
21:08 sqirrel left
FROGGS I'd thought I have to call nqp::p6list on the result, but when trying it it tells me it is a non-Perl6 value 21:09
slava FROGGS: what is that? 21:15
the numbers part
21:17 bluescreen10 left
FROGGS slava: in Perl6 you can combine operators, and @c = @a >>+<< @b means that you add the elements, like: @c[0] = @a[0] + @b[0], for every element 21:17
slava what do the >> and << mean? 21:18
21:18 btyler_ left
FROGGS to concat all it would be: >>~<< 21:18
reduction IIRC
slava are they just flows to the operator?
I see
^100_000 ???
what does that mean? 21:19
BenGoldberg The ^ is the iota operator
Stolen from APL :)
FROGGS if you have an array on one side and an element on the other, it could be @a >>+ $b
BenGoldberg r: print ^10, "\n"
camelia rakudo 1f57da: OUTPUT«0123456789␤»
slava ahh, add $b to every element of @a
FROGGS right
slava BenGoldberg: ty
BenGoldberg yw :) 21:20
slava r: say ^10 >>+ 1;
camelia rakudo 1f57da: OUTPUT«===SORRY!=== Error while compiling /tmp/zrWAt1tlJ6␤Missing << or >>␤at /tmp/zrWAt1tlJ6:1␤------> say ^10 >>+⏏ 1;␤ expecting any of:␤ postfix␤ infix stopper␤ infix or meta-infix␤»
slava :(
FROGGS slava: and you can have underscores in numbers whereever you like
hmmm
slava oh, cool, I think
r: say (^10 >>+ 1);
camelia rakudo 1f57da: OUTPUT«===SORRY!=== Error while compiling /tmp/7deWTbY3lT␤Missing << or >>␤at /tmp/7deWTbY3lT:1␤------> say (^10 >>+⏏ 1);␤ expecting any of:␤ postfix␤ infix stopper␤ infix or meta-infix␤»
BenGoldberg r: say ^10 >>+<< 1
camelia rakudo 1f57da: OUTPUT«Lists on both side of non-dwimmy hyperop of infix:<+> are not of the same length␤left: 10 elements, right: 1 elements␤ in sub hyper at src/gen/CORE.setting:15373␤ in sub hyper at src/gen/CORE.setting:15361␤ in block at src/gen/CORE.setting:15352␤ in block at …
slava :(
BenGoldberg r: say ^10 >>+<< (1 x 10)
diakopter Mouq: you want a commit bit?
FROGGS maybe there is missing something on the right... never tried that bit, and I dont know the spec for it 21:21
camelia rakudo 1f57da: OUTPUT«Lists on both side of non-dwimmy hyperop of infix:<+> are not of the same length␤left: 10 elements, right: 1 elements␤ in sub hyper at src/gen/CORE.setting:15373␤ in sub hyper at src/gen/CORE.setting:15361␤ in block at src/gen/CORE.setting:15352␤ in block at …
BenGoldberg r: say ^10 >>+<< (1 xx 10)
camelia rakudo 1f57da: OUTPUT«1 2 3 4 5 6 7 8 9 10␤»
BenGoldberg r: say ^10 >>*<< (2 xx 10)
camelia rakudo 1f57da: OUTPUT«0 2 4 6 8 10 12 14 16 18␤»
jnthn rr: say ^10 >>+>> 1
r: say ^10 >>+>> 1
camelia rakudo 1f57da: OUTPUT«1 2 3 4 5 6 7 8 9 10␤»
FROGGS ahh, there we go
slava nice
jnthn Point at an undersized side to upgrade it
slava jnthn++ ^_^
FROGGS slava: and the cool thing: if you create a custom operator you can still have >> << around it for example 21:22
BenGoldberg r: say ^10 <<+>> ^3
camelia rakudo 1f57da: OUTPUT«0 2 4 3 5 7 6 8 10 9␤»
slava nice
FROGGS jnthn: do you have a hint for about returning QRPA?
21:22 Khisanth left
diakopter Mouq: I added you 21:23
jnthn FROGGS: What do you want to do?
FROGGS: Wrap a QRPA into something?
nqp::p6parcel may help
FROGGS I have an QRPA in pir code, and want to return it as an array/list
jnthn Well, p6parcel will make a Parcel at least
YOu can then .list that. 21:24
FROGGS okay, I had tried p6parcel before, but I think the elements of the QRPA were parrots ['Integer']'s
jnthn oh...
FROGGS that is not the case anymore fwiw
No such method 'list' for invocant of type 'QRPA' 21:25
k, will try p6parcel
21:25 Chat3488 joined
Chat3488 Hey 21:25
21:25 Chat3488 left
Mouq Buhbye 21:25
BenGoldberg r: (^5).DUMP.say
camelia rakudo 1f57da: OUTPUT«Range<1>(␤ :min(▶0),␤ :max(▶5),␤ :excludes_min(▶False),␤ :excludes_max(▶True)␤)␤»
slava hope I am not nagging, where can I read about the file extension conventions? I noticed thus far that pm6 is pure perl6 module, pm is pir, not sure about executables (is it p6? pl6?)
BenGoldberg r: (^5 >>+>> 5).DUMP.say 21:26
camelia rakudo 1f57da: OUTPUT«List<1>(␤ :$!flattens(Mu),␤ :$!items(QRPA<3>(␤ 5,␤ 6,␤ 7,␤ 8,␤ 9␤ )),␤ :$!nextiter(▶Mu)␤)␤»
diakopter Mouq++
BenGoldberg Hyper operators reify lazy lists?
FROGGS slava: wrong, pm6 and pm are Perl6 code
.pir is pir, .nqp is nqp and so on
and scripts have .pl 21:27
BenGoldberg r: (1 <<+<< gather { .take for 1..3; say 'foo' }).[0].say 21:28
camelia rakudo 1f57da: OUTPUT«foo␤2␤» 21:29
FROGGS time perl6 -e 'my @a = ^100001; say nqp::p6parcel(nqp::hyper_MT(@a, @a, Array, Int), Any); say "done"'
Unmarshallable foreign language value passed for parameter ''
:/
21:30 raiph left
masak FROGGS: my scripts usually don't have .pl -- I don't see why I should give them a file extension at all. they're executable scripts. 21:30
BenGoldberg n: (1 <<+<< gather { .take for 1..3; say 'foo' }).[0].say
camelia niecza v24-88-g1f87209: OUTPUT«foo␤2␤»
BenGoldberg p: (1 <<+<< gather { .take for 1..3; say 'foo' }).[0].say
camelia pugs: OUTPUT«*** ␤ Unexpected "<+<<"␤ expecting operator␤ at /tmp/OvG9g8xZgQ line 1, column 5␤»
FROGGS masak: do they have +x on windows too? 21:31
masak FROGGS: how shall I put this? who cares? :)
FROGGS hehe
BenGoldberg FROGGS: If I recall correctly, if it has the right .extention, it's executable
masak I tend to program on Unix-like operating systems.
21:31 raiph joined
masak because that's what doesn't drive me insane. 21:32
BenGoldberg masak: What about cgywin? :)
masak BenGoldberg: from what little I know about it, I think it falls under "would drive me insane". 21:33
BenGoldberg: PuTTY, however, is a blessing.
diakopter vmware is a blessing 21:34
dalek ast: 3bfd5ea | (Elizabeth Mattijsen)++ | S02-names/is_default.t:
Added more "is default" related tests
21:35
geekosaur cygwin is, if anything, even nuttier. because it's unixlike right up until it isn't 21:36
and you whack into an unexpected brick wall at full tilt
lizmat r: my @a; my Int @b; say @a.WHAT; say @b.WHAT # is there a way to get from (Hash+{TypedHash}) to (Hash) ?
camelia rakudo 1f57da: OUTPUT«(Array)␤(Array+{TypedArray})␤»
21:36 Khisanth joined
lizmat r: my @a; my Int @b; say @a.WHAT; say @b.WHAT # is there a way to get from (Array+{TypedHash}) to (Array) ? 21:36
camelia rakudo 1f57da: OUTPUT«(Array)␤(Array+{TypedArray})␤»
lizmat r: my Int %a; say %a.WHAT.^mro[1] # would that be the way? 21:37
camelia rakudo 1f57da: OUTPUT«(Hash)␤»
masak diakopter: oh yes, that too. I'm writing this inside of vmware. I hardly even think about the emulation layer anymore.
diakopter hah.
yeah it's essentially unnoticeable except for the occasional key mapping discrepancy
21:39 skids left
masak Alt-Tab becomes non-symmetric when the VM captures the keyboard. 21:39
but that's a minor kvetch, all things considered.
slava FROGGS: ty
FROGGS slava: yw 21:40
BenGoldberg masak: When you run an executable script on unix, the operating system opens the file, looks for a #! line, and if it sees one, it uses exec (based on that line) to start the appropriate script interpreter. If you want your script to also work on windows, you need to give it the right file extension (.pl for perl) because the OS does not look for a #! line.
21:40 spider-mario left
masak "One implementation of Rakudo runs on Parrot VM" -- dukeleto on parrot-dev seems to be under the impression that Rakudo exists in several implementations, one per VM. 21:42
(just as I once was)
BenGoldberg: yes, but I don't care about the script working on Windows.
21:42 woolfy left
BenGoldberg Well in that case, nevermind ;) 21:43
jnthn masak: Feel free to write a correctional post :)
masak jnthn: ok.
sent. 21:46
lizmat r: my Int %a is default(42); say %a.VAR.default # just checking 21:51
camelia rakudo 1f57da: OUTPUT«===SORRY!=== Error while compiling /tmp/IQaLUhaffn␤Null attribute map for P6opaque in class 'Hash+{TypedHash}'␤at /tmp/IQaLUhaffn:1␤------> ␤»
lizmat r: my Int @a is default(42); say @a.VAR.default # just checking again
camelia rakudo 1f57da: OUTPUT«===SORRY!=== Error while compiling /tmp/e2qfebUgXP␤Null attribute map for P6opaque in class 'Array+{TypedArray}'␤at /tmp/e2qfebUgXP:1␤------> ␤»
BenGoldberg rn: (1 <<+<< 1..5).say 21:53
camelia niecza v24-88-g1f87209: OUTPUT«2..5␤»
..rakudo 1f57da: OUTPUT«(2,).list.item..5␤»
dalek kudo/nom: 6edd19d | (Elizabeth Mattijsen)++ | src/core/Variable.pm:
Make (%@)a is default(42) no longer die
lizmat and now for ~4 hours sleep before commuting to Kiev
sleep& 21:54
BenGoldberg rn: (1 <<+<< 1..5).print
camelia rakudo 1f57da: OUTPUT«No such method 'succ' for invocant of type 'List'␤ in sub postfix:<++> at src/gen/CORE.setting:2183␤ in sub postfix:<++> at src/gen/CORE.setting:2182␤ in method reify at src/gen/CORE.setting:6557␤ in method reify at src/gen/CORE.setting:6687␤ in method gimme a…
..niecza v24-88-g1f87209: OUTPUT«2 3 4 5»
timotimo rn: (1 <<+<< (1..5)).print
camelia niecza v24-88-g1f87209: OUTPUT«2 3 4 5 6»
..rakudo 1f57da: OUTPUT«23456»
BenGoldberg rn: print (1 <<+<< (1..5)) 21:55
camelia rakudo 1f57da, niecza v24-88-g1f87209: OUTPUT«23456»
BenGoldberg rn: (2..5).say 21:56
camelia rakudo 1f57da, niecza v24-88-g1f87209: OUTPUT«2..5␤»
BenGoldberg rn: print (1 <<+<< (1..5)).DUMP
camelia rakudo 1f57da: OUTPUT«List<1>(␤ :$!flattens(Mu),␤ :$!items(QRPA<3>(␤ 2,␤ 3,␤ 4,␤ 5,␤ 6␤ )),␤ :$!nextiter(▶Mu)␤)»
..niecza v24-88-g1f87209: OUTPUT«Unhandled exception: Unable to resolve method DUMP in type Array␤ at /tmp/M8Pf2PdWNo line 1 (mainline @ 4) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4579 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4580 (module-CORE @ 576) ␤ at /home…
BenGoldberg Why aren't hyperoperators lazy? 21:58
ENOTUITS ? 21:59
jnthn No, hyper *means* non-lazy
And potentially parallel 22:00
Use the zip meta-op to do things pairwise lazily
BenGoldberg r: say (1 Z+ (1..5)) 22:01
camelia rakudo 1f57da: OUTPUT«2␤»
22:01 dmol left
BenGoldberg r: say (1 [+] (1..5)) 22:01
camelia rakudo 1f57da: OUTPUT«6␤»
Mouq r: say (1 xx * Z+ (1..5)) 22:02
camelia rakudo 1f57da: OUTPUT«2 3 4 5 6␤»
BenGoldberg r: (1 xx * Z+ (1..5))[0].say
camelia rakudo 1f57da: OUTPUT«2␤»
BenGoldberg r: (1 xx * Z+ gather {.take for 1..5; say 'foo'})[0].say 22:03
camelia rakudo 1f57da: OUTPUT«2␤»
BenGoldberg r: (1 xx * Z+ gather {.take for 1..5; say 'foo'})[5].say
camelia rakudo 1f57da: OUTPUT«foo␤Nil␤»
BenGoldberg r: (1 xx * Z+ gather {.take for 1..5; say 'foo'})[4].say
camelia rakudo 1f57da: OUTPUT«6␤»
BenGoldberg :)
masak hyper is one of the things that mean non-lazy, yes. 22:04
timotimo it's even less lazy than normal
masak you can't both throw yourself at a task in a possibly parallel manner, and be really cool about it, like the Dude from "The Big Lebowski"
22:10 ilogger2_ joined
Mouq rnp: class Like is Cool {}; say 'so', Like.gist, so not Cool 22:17
camelia pugs: OUTPUT«*** No such subroutine: "&Cool"␤ at /tmp/ra5pYDyCOq line 1, column 52 - line 2, column 1␤»
..rakudo 6edd19, niecza v24-88-g1f87209: OUTPUT«so(Like)True␤»
labster totally.
dang, looks like I'm going to have to backport some of the file path stuff I wrote to Perl 5. 22:18
timotimo because it's better than anything perl5 has? ;) 22:21
labster yep. of course, it's just another example of perl 6 ruining perl 5 innovation 22:23
timotimo yup 22:25
perl6 is killing perl5 so hard
masak (attention lurkers and backlogarchaeologists: they are joking) 22:26
'night, #perl6
dalek p/io-refactor: e96a23f | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/io/FileHandle.java:
Add missing interface implementation.
p/io-refactor: 1f83dea | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/ (2 files):
Get stdout/stderr using new IO approach.
p/io-refactor: 4204202 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/io/FileHandle.java:
Fix a thinko in slurp.

With this, all NQP tests pass, though there's still some notable bits still to do.
Mouq night masak 22:27
FROGGS jnthn: I added a file-io.t to moarvm a few minutes ago 22:28
22:45 benabik joined, census_ joined 23:00 skids joined 23:09 census_ left 23:24 slavik joined 23:38 raiph joined 23:52 FROGGS joined
dalek p/io-refactor: 35ebaea | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/io/FileHandle.java:
Implement FileHandle.readline.
23:56
p/io-refactor: 756f91b | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/ (3 files):
Get stdin and readline interactive using new IO.
p/io-refactor: d86cade | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/reprs/IOHandleInstance.java:
Cleanup old IO leftovers.