Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2013-08-08

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:31 FROGGS joined #perl6
00:38 xenoterracide joined #perl6
00:48 xenoterracide joined #perl6
01:06 hypolin joined #perl6
01:08 [Coke] util++
01:10 fgomez joined #perl6
01:10 fgomez joined #perl6
01:13 itz joined #perl6
01:14 ggoebel joined #perl6
01:23 btyler joined #perl6
01:25 ssutch joined #perl6
01:28 pdurbin joined #perl6
01:38 benabik joined #perl6
01:41 prevost joined #perl6
01:43 xenoterracide joined #perl6
01:49 btyler joined #perl6
02:06 [Coke] Aww Yaaah.
02:07 * Aww yaaah.
02:07 FROGGS joined #perl6
02:07 [Coke] Aww++
02:40 BenGoldberg rpn: say gather {}[0]
02:40 camelia niecza v24-88-g1f87209: OUTPUT«(Any)␤»
02:40 camelia ..rakudo 42758c: OUTPUT«Nil␤»
02:40 camelia ..pugs: OUTPUT«␤»
02:41 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␤»
02:41 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 8…
02:41 labster rn: say 1..88
02:41 camelia rakudo 42758c, niecza v24-88-g1f87209: OUTPUT«1..88␤»
02:41 BenGoldberg :)
02:42 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␤»…
02:42 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␤»
02:43 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.
03:02 slavik joined #perl6
03:11 wtw_ joined #perl6
03:15 itz joined #perl6
03:25 _jaldhar joined #perl6
03:36 fridim_ joined #perl6
03:38 preflex_ joined #perl6
03:56 kaleem joined #perl6
04:39 itz_ joined #perl6
04:41 birdwindupbird joined #perl6
04:42 xinming joined #perl6
05:13 raiph joined #perl6
05:14 raiph This looks like pretty cutting edge concurrency / parallelism:
05:14 raiph "Executing Time Warp on 1,966,080 Cores"
05:14 raiph http://www.cs.rpi.edu/~chrisc/COURSES/PARALLEL/SPRING-2013/papers/sequoia-ross-pads-2013.pdf
05:18 raiph "direct simulation of planetary-scale discrete event models are now, in principle
05:18 raiph at least, within reach.
05:19 diakopter ..
05:20 diakopter planetary scale, but to what granularity
05:23 diakopter basketball?
05:23 diakopter kilonewton>
05:23 diakopter ?
05:25 JimmyZ what
05:46 jaldhar joined #perl6
06:10 daxim joined #perl6
06:14 FROGGS joined #perl6
06:26 dmol joined #perl6
06:26 _daniel-s__ joined #perl6
06:38 Mouq joined #perl6
06:39 rindolf joined #perl6
06:39 Mouq hugme hug camelia
06:39 * hugme hugs camelia
06:49 crab2313 joined #perl6
06:55 domidumont joined #perl6
07:00 FROGGS joined #perl6
07:04 domidumont joined #perl6
07:16 FROGGS timotimo: how can I render these nice graphs?
07:17 timotimo FROGGS: ./bench --outfile=moarvm_nqp.html --format=html_plot compare moarvm/3fc3fa2 nqp-jvm/0b93372 nqp/0b93372
07:17 FROGGS thanks!
07:18 timotimo yw :)
07:20 xinming joined #perl6
07:27 FROGGS timotimo: zero and hello look a bit differently here http://froggs.de/perl6/moarvm_nqp.html (compared to http://t.h8.lv/p6bench/moarvm_nqp_2013-08-07.html)
07:28 FROGGS timotimo: note that this isnt using the crosscompiler
07:28 * JimmyZ would like to see p5 too there
07:28 FROGGS yeah, was my first test run, after fudging the test environment to play nicely with .moarvm-files
07:29 FROGGS I need to figure out while_empty only shows a dot here
07:29 FROGGS for moarvm
07:31 timotimo sprinkle prints all over timeall :)
07:32 leont joined #perl6
07:34 FROGGS ahh
07:34 FROGGS I think it lies
07:35 FROGGS 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 FROGGS I dont believe that chart
07:36 timotimo no
07:36 timotimo that's nqp-jvm
07:36 timotimo the "fastest" is not restricted to the same column
07:36 timotimo it's a global number
07:36 FROGGS ahh, so it compares to the peak always
07:36 timotimo yep
07:36 FROGGS k
07:41 FROGGS hmmm, it works when running it by hand
07:44 sqirrel joined #perl6
07:47 masak mornin', #perl6
07:47 masak wow, Util++
07:49 FROGGS morning masak
07:49 lizmat morning #perl6!
07:49 yoleaux 06:54Z <diakopter> lizmat: I have some corrections for your syllabus for the rakudo/nqp workshop.. you forgot to s/Day/Week/g
07:49 preflex yoleaux: you have 2 new messages. '/msg preflex messages' to read them.
07:49 FROGGS morning lizmat
07:50 xinming joined #perl6
07:50 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.
07:51 masak hehe, s/Day/Week/g -- Edument courses are intense, we told you that.
07:51 iSlug joined #perl6
07:51 masak lizmat: I read that as "if you can't stand the heat, go back into the kitchen with you!" :P
07:51 lizmat :-)
07:52 * 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  :-)
07:52 masak haha
07:52 masak two guys, actually.
07:52 masak but the second one is called "Acke", so... point taken. :)
07:52 lizmat yeah, good cop, bad cop, I know the drill  :-)
07:53 masak more like "the techie and the marketer", but yeah.
07:57 lizmat http://www.jugendherberge-frankfurt.de/en/ was suggested as a location for the RaNIW
07:58 lizmat the Dutch Perl workshop has been held at a youth hostel many times, and I have fond memories of that
07:58 lizmat I think jnthn was even at one of them
07:58 lizmat It would certainly make the boarding of the particpants a lot easier
08:02 tadzik lizmat: 14-15 august?
08:02 lizmat 14/15 September
08:02 tadzik I assume september
08:02 tadzik sounds perfect
08:02 lizmat cool!
08:03 tadzik I'm excited too Y(
08:03 tadzik :)
08:03 * lizmat loves it when a plan comes together  :-)
08:03 tadzik but that doesn't change the fact that I was supposed to be at work an hour ago
08:03 tadzik and I woke up 20 minutes ago
08:03 * tadzik runs
08:04 * 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
08:05 FROGGS *g*
08:07 lizmat fitness&
08:11 avuserow joined #perl6
08:13 dakkar joined #perl6
08:16 masak FROGGS: clearly, you should read "The multithreaded leg-marathon" by Terry Xzibit
08:31 FROGGS ohh, okay
08:33 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!
08:36 diakopter "stay out of the .."
08:36 diakopter (better alliteration)
08:40 FROGGS timotimo: should timo_command measure the exec time including compile time?
08:41 timotimo i think so. not sure.
08:42 FROGGS because the cross compiler takes ages on moarvm... like 3s or so
08:42 timotimo but the benchmark system sutracts the startup time
08:43 nwc10 lizmat: http://www.perl-workshop.de/en/2009/index.html and http://conferences.yapceurope.org/gpw2011/
08:58 labster good morning #perl6
08:59 masak labster! \o/
08:59 FROGGS hi labster
09:00 labster this perl 6 compiler hacking workshop sounds exciting
09:01 labster I'm tempted to go, but worried about concepts going way over my head.
09:03 labster 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 ;)
09:04 JimmyZ or mojo
09:06 berekuk joined #perl6
09:13 crab2313 joined #perl6
09:13 Rotwang joined #perl6
09:16 masak crazy. https://github.com/seliopou/typo
09:18 tadzik labster: oh, awesome :)
09:18 tadzik oh gods: http://osrc.dfm.io/tadzik
09:19 tadzik it scares me how accurate that is
09:19 pecastro joined #perl6
09:20 labster oh wow, that is scary accurate for me too.
09:20 JimmyZ somebody said mojo::lite is like dancer
09:22 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:23 labster or I just give up and commit the partially working code before sleep.
09:24 hypolin joined #perl6
09:24 masak Perl... and C#? http://osrc.dfm.io/timtoady
09:24 masak oh, because Niecza.
09:24 masak "In particular, Larry is a serious Perl expert." -- :D
09:25 hypolin joined #perl6
09:25 labster facebook should ask him if he's read the camel book.
09:26 masak also, audreyt and ingydotnet are really language omnivores -- it's utterly clear from their report cards.
09:31 nyuszika7h joined #perl6
09:34 * moritz just acquires a macbook from 2007 so that he has any laptop at the hackathon at all
09:35 JimmyZ masak: we're a late-week deadliner
09:35 nwc10 moritz: that might be the same generation hardware as mine
09:36 nwc10 mine is a "late 2007" macbook bought in Feb 2008 about 2 weeks before an unexpected refresh
09:36 nwc10 moritz: which OS version?
09:37 Exodist joined #perl6
09:37 Teratogen joined #perl6
09:37 Teratogen joined #perl6
09:37 Ulti Util++ wow thanks, I'll makesure I get on with it ;) I dont even recognise those perl5 regexp modules
09:38 Teratogen joined #perl6
09:38 Teratogen joined #perl6
09:38 Teratogen joined #perl6
09:39 moritz nwc10: I'm just upgrading to 10.7.4
09:39 Teratogen joined #perl6
09:39 FROGGS wow, that site is awesome: http://osrc.dfm.io/
09:39 Teratogen joined #perl6
09:39 nwc10 10.7.4 is most recent Leopard?
09:40 moritz nwc10: I'm not sure; I have no idea of Mac OS X
09:40 odoacre_ joined #perl6
09:40 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
09:40 nwc10 and it's Snow Leopard
09:41 timotimo image the hard drive?
09:41 tadzik moritz: do you want my old ThinkPad?
09:41 moritz tadzik: what characteristics does it have?
09:42 iSlug joined #perl6
09:42 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 #perl6
09:42 tadzik oh, and the keyboard is in a bad shape :(
09:42 tadzik but only the windows key
09:42 nwc10 ssh into that one from the other.
09:42 tadzik hehe
09:42 moritz tadzik: sounds great, in comparison to what I have now
09:43 nwc10 4 gigs of RAM should help compilation
09:43 tadzik it used to have an SSD, but I sold it
09:43 moritz once I have network access, I can also ssh to another server and compile rakudo there
09:43 tadzik I can arrange a 320gig hdd for it, probably
09:44 moritz I can also bring my old laptop's hdd
09:44 moritz and hope they are compatible :-)
09:44 tadzik this one was 9mm wide, or such
09:44 tadzik like "the regular laptop width" :)
09:46 masak emotions in various github communities: http://geeksta.net/geeklog/exploring-expressions-emotions-github-commit-messages/
09:47 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:48 tadzik I have one too
09:48 tadzik but I'd rather not bring it :)
09:49 moritz I'll just bring my own laptop HDD along, and we'll be fine (hopefully :-)
09:49 tadzik sounds good :)
09:50 tadzik crowd-ware
09:51 * moritz feels so c[lr]o[wu]dy
09:52 xenoterracide joined #perl6
10:01 mathw masak: I like the quoted message "regexes are fun and pleasant to work with, in the same way that oranges are purple"
10:02 timotimo thankfully, perl6 changes that in a big way
10:03 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
10:04 mathw 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
10:07 masak right. if the tool frustrates you, then do something about that.
10:07 masak either learn more about the tool, or change your expectations, or change tools.
10:07 diakopter oh noes jnthn quit Perl 6
10:08 dalek specs: a888b08 | (Elizabeth Mattijsen)++ | S12-objects.pod:
10:08 dalek specs: First attempt at speccing "samewith"
10:08 dalek specs: review: https://github.com/perl6/specs/commit/a888b089ab
10:09 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 lee_ joined #perl6
10:09 dalek nqp: f68cb4f | (Pawel Murias)++ | t/nqp/18-associative.t:
10:09 dalek nqp: convert test to using ok instead of say, add a test for a nqp-js bug
10:09 dalek nqp: review: https://github.com/perl6/nqp/commit/f68cb4f02b
10:09 mathw admittedly, regexes themselves won't be substantially more powerful - but having grammars built in is really nice
10:09 pmurias joined #perl6
10:10 berekuk joined #perl6
10:10 jnthn joined #perl6
10:10 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.
10:10 timotimo oh yen
10:11 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 mathw masak: yeah I'm using 'regexes' more to mean Perl 5 ones, not the proper regular expressions which are far more limited
10:11 mathw pmurias: that, definitely that.
10:13 * masak .oO( "Perl 6 regexes are not even the Perl 5 regexes that are not even real regexes anymore, anymore!" ) :P
10:15 woosley left #perl6
10:18 Ulti Util's regex translator looks to be quite solid at least for this use case :)
10:19 masak Util and Ulti: I think you two have started interacting just to mess with the rest of us. :P
10:19 Ulti >:D
10:20 Ulti 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:22 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 mathw and that I learned about in the G51MAL module at uni :)
10:22 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
10:22 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?"
10:23 Ulti yeah I think regex usually implies perl5 wizz4rdry
10:23 mathw So the poor guy said "umm... a^n b^n?"
10:23 mathw "NO! That is not a regular language! Sit down!"
10:24 masak :D
10:25 masak mathw: yes, that's a good convention. I remember that being discussed/decided on p6l.
10:25 masak mathw: also, Perl 6 people consistently say "regex", whereas many Perl 5 people say "regexp".
10:25 masak rn: say Regex.^name
10:25 camelia rakudo 42758c, niecza v24-88-g1f87209: OUTPUT«Regex␤»
10:26 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
10:26 camelia rakudo 42758c: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/MX_jgSPSFTâ�¤Undeclared name:â�¤    Regexp used at line 1. Did you mean 'Regex'?â�¤â�¤Â»
10:26 masak rakudo++
10:26 iSlug joined #perl6
10:26 Ulti nice
10:26 masak Ulti: that's changing the problem, which is usually considered "cheating".
10:27 Ulti thats the sort of cheat I am
10:27 masak Ulti: the fact remains that a^nb^n isn't a regular language.
10:27 masak it is, however, in the next level of hopelessness: a context-free language.
10:28 masak that is, you need to endow your FSM with a pushdown stack.
10:31 mathw absolutely
10:31 mathw this was a point that had been made in the previous lecture
10:32 mathw I found that course very interesting indeed. It turned parsing from something strange and scary into something merely complicated
10:33 masak :)
10:33 masak mathw: I have a talk at YAPC::EU where I will try to get some of these points across.
10:33 masak a very small subset of these points, in fact.
10:34 masak the summary of the talk is something like "NFAs are cool stuff".
10:35 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:36 mathw yeah, but you know what the requirements for a regular language are
10:37 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)
10:37 camelia rakudo 42758c: OUTPUT«set(1, 2, 4, 8, 6)␤»
10:37 Ulti also our lecturer for that stuff didnt care enough to attempt to catch anyone out :'(
10:37 masak r: say set ($_ % 100 for 1, 2, 4 ... 65536)
10:37 camelia rakudo 42758c: OUTPUT«set(1, 2, 4, 8, 16, 32, 64, 28, 56, 12, 24, 48, 96, 92, 84, 68, 36)␤»
10:38 masak Ulti: not exactly. the kleene star also creates an infinite space of words. but it's still regular.
10:38 masak Ulti: as in, a^n with no limit on n is still regular, for example.
10:39 masak Ulti: the impossibility of a^nb^n is that the state machine cannot "remember" the n going from a to b.
10:40 Ulti I'd have gotten caught out then ;)
10:40 mathw indeed
10:42 Ulti also we didn't have any parser/compiler theory on our CS course
10:42 masak o.O
10:42 Ulti the language theory stuff was two lectures as part of a foundation maths module
10:44 Ulti 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 Ulti *learnt
10:59 mathw :(
10:59 mathw we had a whole module on 'machines and their languages', which was basically about how to parse things
11:00 mathw very handy for the second year when we did a module on compilers :)
11:14 crab2313 joined #perl6
11:23 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␤␤»
11:23 lizmat cycling&
11:31 crab2313 joined #perl6
11:49 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:51 FROGGS masak: is that a response to someone?
11:51 dmol joined #perl6
11:52 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 :)
11:54 masak Juerd: yup. but that was probably a parameter default.
11:54 masak FROGGS: no, I'm just discovering things as I go.
11:55 masak FROGGS: some of which are weird.
11:55 FROGGS right :o)
11:55 * FROGGS subscribes to masak's feed
11:55 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.
11:56 masak 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*"
12:03 pdurbin left #perl6
12:19 benabik joined #perl6
12:21 g0r joined #perl6
12:23 arnsholt joined #perl6
12:38 domidumont joined #perl6
12:39 FROGGS I wonder why nqp@moarvm is so equal to nqp@parrot... http://froggs.de/perl6/moarvm_nqp.html
12:39 FROGGS mebbe I'm benching it wrong
12:42 [Coke] or it could be that moarvm is slower than parrot for non-MOP thins
12:42 [Coke] *things
12:57 JimmyZ FROGGS: Did you with  --optimize :P
12:57 FROGGS JimmyZ: I did
12:58 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:01 berekuk joined #perl6
13:02 sqirrel joined #perl6
13:23 moritz masak: but Moose allows you to pass closures for defaults
13:24 thou joined #perl6
13:24 rindolf joined #perl6
13:25 * moritz managed to compile a rakudo on "his" laptop
13:26 moritz just 6 minutes to parse the setting
13:26 tadzik not that bad
13:27 moritz it doesn't make rakudo hacking very practical, but maybe I can hack on modules
13:28 FROGGS that was what I was thinking *g*
13:29 FROGGS 5min for stage parse means you'll become the next famous module hacker :P
13:32 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:33 masak moritz: Moose even forbids [] and {} without the surrounding sub ref.
13:35 tadzik FROGGS: ...or the next successful gsoc student :P
13:36 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 #perl6
13:39 btyler joined #perl6
13:39 crab2313 ls
13:40 marshyon joined #perl6
13:41 skids joined #perl6
13:41 * mathw wonders if moritz might instead become the reason why Rakudo at in May 2014 can be compiled in less than pi seconds
13:49 pmurias what's taking so long? parsing?
13:51 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:52 pmurias arnsholt: and what's the bottleneck?
13:52 pmurias jnthn: what should "foo".WHAT return?
13:52 arnsholt I'm not sure if there's anything in particular that's slowing it down
13:53 moritz pmurias: the Str type object
13:53 arnsholt The setting is just massive
13:53 moritz mathw: if I had any idea on how to do that, I'd have done it by now
13:55 pmurias moritz: in nqp
13:55 masak rn: say "foo".WHAT === Str
13:55 camelia rakudo 42758c, niecza v24-88-g1f87209: OUTPUT«True␤»
13:55 masak nqp: say "foo".WHAT
13:55 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)␤»
13:55 masak nqp: say("foo".WHAT)
13:55 camelia nqp: OUTPUT«Can only use get_what on a SixModelObject␤current instr.: '' pc 43 ((file unknown):164815216) (/tmp/rb5XP_N8vy:1)␤»
13:56 masak pmurias: seems "you can't do that"
13:56 bluescreen10 joined #perl6
14:01 isBEKaml joined #perl6
14:01 konundra joined #perl6
14:01 logie joined #perl6
14:03 mtk joined #perl6
14:03 mathw moritz: it's easy - just invent a really really fast computer :P
14:05 pmurias masak: on parrot you can't on jvm you can
14:05 pmurias masak: what_or_null is #ifdef'ed on parrot
14:06 crab2313 joined #perl6
14:09 masak pmurias: what does it return on the JVM?
14:09 kaare_ joined #perl6
14:09 pmurias masak: some internal package I guess, I would have to check the source
14:11 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:13 timotimo it does stage parse in about 3 minutes i think...
14:13 timotimo but i still do all my rakudo hacking on my desktop via ssh if i can
14:16 dalek Perlito: 8b345b3 | (Flavio S. Glock)++ | / (5 files):
14:16 dalek Perlito: Perlito5 - grammar - new module Perlito5::Grammar::Map
14:16 dalek Perlito: review: https://github.com/fglock/Perlito/commit/8b345b316e
14:20 logie joined #perl6
14:24 Timbus joined #perl6
14:30 diakopter the cover of my new passport is so thick, there must be a computer inside
14:32 diakopter oh wait, it even admits there is. nm.
14:33 tadzik haha
14:34 colomon joined #perl6
14:38 Psyche^_ joined #perl6
14:41 ponbiki joined #perl6
14:44 dalek rakudo-js: c51e407 | (Pawel Murias)++ | / (3 files):
14:44 dalek rakudo-js: Stub nqp::multicachefind. Fix QAST::VarWithFallback.
14:44 dalek rakudo-js: review: https://github.com/pmurias/rakudo-js/commit/c51e407f1d
14:44 dalek rakudo-js: b9bdecb | (Pawel Murias)++ | / (3 files):
14:44 dalek rakudo-js: Implement basic multis. Pass test 51.
14:44 dalek rakudo-js:
14:44 dalek rakudo-js: Implement nqp::invokewithcapture.
14:44 dalek rakudo-js: Stub nqp::multicacheadd.
14:44 dalek rakudo-js: Make nqp::what return null for non objects.
14:44 dalek rakudo-js: Fix dependencies in the Makefile.
14:44 dalek rakudo-js: review: https://github.com/pmurias/rakudo-js/commit/b9bdecb2d8
14:45 sqirrel joined #perl6
14:58 cognominal pommed?
15:01 mathw diakopter: can you run rakudo on it?
15:02 domidumont joined #perl6
15:09 dalek Perlito: 7bf2dc3 | (Flavio S. Glock)++ | / (4 files):
15:09 dalek Perlito: Perlito5 - grammar - placeholder for sort() special cases
15:09 dalek Perlito: review: https://github.com/fglock/Perlito/commit/7bf2dc3304
15:21 * [Coke] wishes we could do more about spam on blogs.perl.org. :|
15:24 masak comments or no spam. pick any 1.
15:27 mathw masak: you can have no spam and comments, if you employ a horde of moderators to approve every post before it appears
15:28 mathw and train them perfectly
15:29 [Coke] masak: it's not comment spam. it's new-acccount-first-post-spam.
15:36 masak [Coke]: oh :/
15:37 masak mathw: while that is definitely a solution, under my definition that doesn't count as "no spam". :)
15:37 FROGGS joined #perl6
15:37 masak only "no spam reaches the reader".
15:38 ajr joined #perl6
15:41 mathw masak: good point. In that case you're quite correct that the only way to prevent spam is to disallow comments entirely.
15:43 moritz somhow my default perl in $PATH is a 5.8.9 :/
15:44 mathw hmm
15:51 moritz perlbrew to the rescue, I hope
16:28 ssutch joined #perl6
16:34 Tene joined #perl6
16:45 dalek nqp: 5d3cfd5 | (Pawel Murias)++ | t/nqp/18-associative.t:
16:45 dalek nqp: Add testing for access of missing keys to test 18.
16:45 dalek nqp: review: https://github.com/perl6/nqp/commit/5d3cfd5339
16:47 dalek rakudo-js: 925254e | (Pawel Murias)++ | / (3 files):
16:47 dalek rakudo-js: Pass newly added test 76.
16:47 dalek rakudo-js:
16:47 dalek rakudo-js: Fix the passing of positionals to nqp::invokewithcapture().
16:47 dalek rakudo-js: Update nqp submodule.
16:47 dalek rakudo-js: "Implement" just enough of nqp::getcomp to determine the backend name.
16:47 dalek rakudo-js: review: https://github.com/pmurias/rakudo-js/commit/925254e056
16:47 dalek nqp: 465c0ac | (Pawel Murias)++ | t/nqp/76-capture.t:
16:47 dalek nqp: Add new test 76.
16:47 dalek nqp: review: https://github.com/perl6/nqp/commit/465c0ace17
16:49 timotimo that sounds good!
16:50 benabik Why is `sub savecapture` so complex?
16:53 vk_ joined #perl6
17:00 spider-mario joined #perl6
17:01 pmurias benabik: you mean why it wrap the return value in an array?
17:01 benabik pmurias: Also, why store the result in $x
17:02 pmurias debugging leftovers...
17:04 nebuchadnezzar joined #perl6
17:05 dalek nqp: 80104a9 | (Pawel Murias)++ | t/nqp/76-capture.t:
17:05 dalek nqp: Simplify test.
17:05 dalek nqp: review: https://github.com/perl6/nqp/commit/80104a9697
17:07 sqirrel joined #perl6
17:08 ajr_ joined #perl6
17:25 pmurias jnthn: closures can have different code objects?
17:28 konundra joined #perl6
17:31 masak pmurias: that sounds... unlikely. assuming I understand you correctly.
17:34 pmurias masak: that seems to be true
17:35 pmurias masak: http://pastie.org/8219245
17:36 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
17:36 jnthn oh f*8k
17:36 FROGGS jnthn: O.o
17:36 jnthn evneing, #perl6
17:36 jnthn ...laggy train wifi
17:36 * FROGGS just claims that jnthn is drunk :o)
17:36 jnthn I wish!
17:36 FROGGS sure, it is the wifi
17:37 FROGGS :P
17:37 jnthn pmurias: s/can/must/ :)
17:37 lizmat some of my history: https://medium.com/p/13392e324814
17:38 lizmat what the article doesn't mention, is that PLATO Notes was badly reimagined later as Lotus Notes
17:38 lizmat ah, the days of the orange glow  :-)
17:41 FROGGS lizmat: you worked for that company?
17:42 lizmat I was a PLATO user, I worked for the University of Amsterdam
17:43 PerlJam ./foo
17:43 lizmat but I do know some of the people mentioned in the article personally  :-)
17:45 lizmat jnthn: given @a, how do I get at its ContainerDescriptor ?
17:49 jnthn lizmat: nqp::getattr(...) ? :)
17:49 cooper joined #perl6
17:50 FROGGS core/Array.pm should have examples, right?
17:52 pmurias jnthn: what I'm trying to figure out is how does a serialized closure in test 55 get it's code object
17:53 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?
17:54 pmurias jnthn: thanks
17:54 FROGGS I'd guess at compile time
17:54 FROGGS (that is my guess, not the time when I guess fwiw)
17:55 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…
17:55 FROGGS because I've seen calls to install_lexical_container when generating the ast
17:56 lizmat r: my @a of Int; say @a[0] # and this
17:56 camelia rakudo 42758c: OUTPUT«(Any)␤»
17:57 lizmat src/core/Variable is setting these as expected at line 37 and 55
17:57 lizmat and it works fine for scalars, but not for arrays and hashes
17:57 lizmat so it feels to me the wrong descriptor is being set there
17:58 lizmat or some special handling for @ and % is needed there
17:58 jnthn Made at compile time
17:59 slava I wonder, can grammars be used with binary data?
18:00 slava like for data packets coming across the network, and using grammars to classify/decode packets
18:01 FROGGS slava: sure
18:01 slava nice ^_^
18:03 FROGGS one problem I see is that you cant process data this way while still streaming it
18:03 FROGGS you would have to receive the the block of data first in order to parse it
18:05 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
18:06 FROGGS I have 10 cats
18:07 lizmat I hope they like each other
18:07 jnthn I have and haven't a cat
18:07 FROGGS jnthn: but a box?
18:08 jnthn .oO( It's my cat in a box, girl... )
18:09 * jnthn sets about a big refactor of the NQP/Rakudo on JVM IO
18:24 diakopter jnthn: wat
18:24 diakopter you cursed at my message to you? I was tongue-in-cheek
18:25 masak diakopter: jnthn cursed at slow conn.
18:25 diakopter oh
18:26 * masak is a #perl6 backlog historian! :P
18:26 jnthn Actually, at writing #perl7 :P
18:26 masak because of slow conn.
18:26 masak jnthn: don't try to claim you know your intentions better! :P
18:27 * [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!   http://www.dniprohotel.ua/en/confercehalls/byzantium-hall
18:28 jnthn Yes, it's beautiful, like much in Kiev! :D
18:28 masak it's decadent!
18:28 diakopter wat.
18:28 diakopter do I need to reserve a space at that table, and how much does it cost
18:28 masak how can we hack when there are plates and cutlery all over the table!?
18:28 woolfy Is it the most lovely beautiful place ever where a Perl 6 hackathon was held?
18:28 masak woolfy: my kitchen isn't half-bad either :P
18:29 iSlug joined #perl6
18:29 jnthn masak: Your kitchen isn't that decorated :P
18:29 masak it has a... raw beauty.
18:29 diakopter seriously though, will there be room for me there on Sunday
18:29 woolfy masak, thank you for volunteering your kitchen for the next Perl 6 hackathon.  Nice.  So, one more todo done.
18:29 lizmat diakopter: the question is more: will you be in any shape arriving at 3am?
18:29 masak woolfy: people are welcome to use my kitchen for Perl 6 hackathoning!
18:30 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
18:30 diakopter 5 pm
18:30 woolfy masak: that's nice, maybe we will take you up on that, the next time we're in Malmoooo
18:30 lizmat maybe you should just stick to your time zone  :-)
18:30 zwut00 joined #perl6
18:31 diakopter question is will I be up for waking up for the day at 8 pm my time
18:31 diakopter I have body clock adjustment tools
18:31 diakopter i'll be ok
18:32 masak woolfy: I'd be delighted.
18:32 woolfy masak: ditto
18:32 diakopter miraculously got super-cheap upgrade to businessFirst on united for the 11-hour flight to frankfurt
18:32 zwut00 joined #perl6
18:32 diakopter seriously, miraculously
18:33 diakopter so, probably won't bring my eternal battery
18:33 diakopter erm.
18:33 diakopter *external
18:33 lizmat .oO( there would be a market for an eternal battery )
18:34 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" ?
18:34 diakopter I invented free energy last night, but then entropy made me forget it.
18:37 jnthn [Coke]: There's an nqp::isnull already
18:37 jnthn [Coke]: nqp::jvmisnull is for checking if you have a Java object reference that is null
18:39 [Coke] hokay
18:39 raiph joined #perl6
18:40 sqirrel joined #perl6
18:46 dalek rakudo/nom: 26f33e2 | (Elizabeth Mattijsen)++ | src/core/ (2 files):
18:46 dalek rakudo/nom: Make .of work on scalar values
18:46 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/26f33e2e4a
18:46 lizmat r: my Int $a = 1; say $a.of
18:46 camelia rakudo 42758c: OUTPUT«No such method 'of' for invocant of type 'Int'␤  in block  at /tmp/DiKJfPygA0:1␤␤»
18:47 lizmat should be fixed now
18:50 jnthn um
18:50 jnthn No, that shouldn't work
18:50 jnthn You should write $a.VAR.of, which I think already worked
18:50 benabik r: my Int $a; say $a.VAR.of
18:50 camelia rakudo 42758c: OUTPUT«No such method 'of' for invocant of type 'Scalar'␤  in block  at /tmp/ZCYEWREB7c:1␤␤»
18:50 jnthn OK, that's the one that should work :)
18:51 dalek rakudo-js: 52d4615 | (Pawel Murias)++ | nqp:
18:51 dalek rakudo-js: Update submodule.
18:51 dalek rakudo-js: review: https://github.com/pmurias/rakudo-js/commit/52d46153a7
18:51 dalek rakudo-js: aa06f2c | (Pawel Murias)++ | run (2 files):
18:51 dalek rakudo-js: Set the code object on deserialized closures.
18:51 dalek rakudo-js:
18:51 dalek rakudo-js: Pass test 55.
18:51 dalek rakudo-js: review: https://github.com/pmurias/rakudo-js/commit/aa06f2cdda
18:51 lizmat well, that's one part of the patch: adding .of to Scalar
18:51 jnthn OK, but a plain $foo.of should not work
18:51 jnthn Unless the thing in the container has a method of.
18:52 lizmat why not?   A plain $a[0] also works
18:52 pmurias jnthn: re code object, setting it makes the multi method test pass ;)
18:52 jnthn pmurias: yay :)
18:52 lizmat jnthn: why shouldn't a plain $a.of not always work ?
18:52 jnthn lizmat: I fail to see the connection.
18:53 jnthn lizmat: Operations on scalar containers always see through the container
18:53 jnthn lizmat: $a[0] works becuase it does .postcircumfix<[ ]>(0) on the thing inside of the container.
18:53 lizmat so given a $a of unknown type, how will you be able to tell you can call .of on it ?
18:54 lizmat 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 :/
18:54 lizmat I'm saying: you don't need to look at what you have, you can always do [0] on it
18:55 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
18:55 jnthn It's like saying $a.name should return $a
18:55 jnthn uh, '$a'
18:55 jnthn It shoudln't
18:55 jnthn That's confusing container and value.
18:56 lizmat I may be confused then
18:56 jnthn I think so.
18:57 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
18:57 jnthn my Array $a = [1,2,3];
18:57 jnthn say $a.of # Mu
18:57 jnthn say $a.VAR.of # Array
18:58 jnthn 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?
18:59 pmurias like get the path of the currently executing script?
18:59 lizmat well, the latter definitely did not work before my patch
18:59 lizmat r: my $a; say $a.VAR.of
18:59 camelia rakudo 42758c: OUTPUT«No such method 'of' for invocant of type 'Scalar'␤  in block  at /tmp/BzJpgAHU5m:1␤␤»
18:59 jnthn Right. Adding Scalar.of is fine. Making .of work on anything at all is not.
18:59 jnthn The reliable way to ask the question is .VAR.of
19:00 lizmat ok
19:00 lizmat r: my @a; say @a.VAR.of  # expecting Any here
19:00 camelia rakudo 42758c: OUTPUT«(Mu)␤»
19:00 lizmat r: my Int @a; say @a.VAR.of  # expecting Int here
19:00 camelia rakudo 42758c: OUTPUT«(Int)␤»
19:01 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?
19:02 pmurias I'm loading things stuff from my nqp-js'y current directory
19:02 dalek rakudo/nom: 81eec1b | (Elizabeth Mattijsen)++ | src/core/Mu.pm:
19:02 dalek rakudo/nom: Returning .of on anything is wrong, according to jnthn++
19:02 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/81eec1b7ec
19:02 pmurias s/things//
19:02 lizmat jnthn: I guess the @a.VAR.of saying Mu is another symptom of "my @a of Int" not working
19:03 pmurias jnthn: and I keep the nqp submodule in nqp/t
19:03 lizmat r: my Int @a; say @a.VAR  # expecting Array here ?
19:03 camelia rakudo 42758c: OUTPUT«␤»
19:03 jnthn pmurias: Ah...not got a good answer on that one...
19:03 jnthn pmurias: Various Rakudo tests assume the wame...
19:03 pmurias wame?
19:03 jnthn *same
19:03 jnthn lizmat: .VAR returns the Scalar container for scalars, or identity for anything else.
19:04 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 ?
19:04 camelia rakudo 42758c: OUTPUT«␤»
19:04 timotimo r: my @a; say @a.VAR === @a;
19:04 camelia rakudo 42758c: OUTPUT«True␤»
19:05 jnthn lizmat: You've doing the same as say @a there
19:05 lizmat aaaaahhhh ok
19:05 * jnthn forgets which synopses .VAR is spec'd in...
19:06 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…
19:06 lizmat I would expect 42 there
19:06 jnthn Me too...is "is default" implemented on arrays?
19:07 lizmat nqp::getattr($v.var, $v.var.VAR.WHAT, '$!descriptor').set_default($default);
19:07 lizmat is my naive implementation of "multi trait_mod:<is>(Variable:D $v, :$default!) {"
19:08 lizmat apparently, it's missing something there
19:09 lizmat r: my @a is default(42)=1; say @a[1]   # better example
19:09 camelia rakudo 42758c: OUTPUT«(Any)␤»
19:11 lizmat apparently REIFY needs some check for $!items still being Mu
19:24 lizmat jnthn: working on a fix src/core/Variable
19:31 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:33 Rotwang joined #perl6
19:44 jnthn pmurias: I'd just go with implementing the existing nqp:: ops for now
19:49 masak in Python, you can .pop hash keys out of the hash.
19:49 * masak , reporting from a strange land of subtle differences
19:50 lizmat I bet the order of keys is also determined ?
19:50 masak no, it seems to be as indeterminate as in Perl.
19:50 masak lizmat: you dict.pop('my key')
19:51 lizmat Ah, like %h.delete
19:51 masak yes.
19:51 lizmat of better: %a{@slice}:delete
19:51 masak oh, unless you .popitem(), which just picks one seemingly at random.
19:57 Mouq I think S28 is wrong. In section "Perl5 to Perl6 ..." $1,$2,$3 should be $0,$1,$2 in the Perl6 column
19:58 dalek perl6-roast-data: ca32f97 | coke++ | / (3 files):
19:58 dalek perl6-roast-data: today (automated commit)
19:58 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/ca32f97204
19:58 dalek rakudo-star-daily: 19db7d9 | coke++ | log/ (5 files):
19:58 dalek rakudo-star-daily: today (automated commit)
19:58 dalek rakudo-star-daily: review: https://github.com/coke/rakudo-star-daily/commit/19db7d9dab
19:58 berekuk joined #perl6
20:04 FROGGS Mouq: sounds right, can you edit it or make a pul request?
20:04 FROGGS pull*
20:04 masak Mouq++
20:08 dalek rakudo/nom: eea1906 | (Elizabeth Mattijsen)++ | src/core/ (3 files):
20:08 dalek rakudo/nom: Implement ($@%&)foo.VAR.default
20:08 dalek rakudo/nom:
20:08 dalek rakudo/nom: Although I don't think this is formally specced, it seems logical that we can
20:08 dalek rakudo/nom: introspect this at runtime using .VAR
20:08 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/eea1906d65
20:09 lizmat if anything, it helps me debugging  :-)
20:09 sqirrel joined #perl6
20:11 Mouq joined #perl6
20:12 masak lizmat++
20:14 FROGGS well, we can ask objects for its methods, so asking a variable for its default makes absolutely sense
20:16 masak today's non sequitur, sponsored by FROGGS! :P
20:16 masak in other news, it absolutely makes sense to ask a method call for its line number.
20:17 FROGGS of course :P
20:17 masak or an environment variable for its favorite value.
20:17 masak (it's always "blue")
20:17 FROGGS gah
20:19 lizmat r: my %*ENV is default("blue"); say %*ENV<foo>   # alas   :-(
20:19 camelia rakudo 81eec1: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/QF3uXgj6TR�Odd number of elements found where hash expected�at /tmp/QF3uXgj6TR:1�------> �»
20:20 lizmat ah, that should be fixed shortly  :-)
20:20 FROGGS lizmat++ # :o)
20:22 dalek rakudo/nom: 1f57da5 | (Elizabeth Mattijsen)++ | src/core/Variable.pm:
20:22 dalek rakudo/nom: Make sure we only assign the default value for Scalars
20:22 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1f57da5881
20:24 Rotwang joined #perl6
20:31 dalek nqp/io-refactor: fbf9be3 | jonathan++ | / (5 files):
20:31 dalek nqp/io-refactor: Start stubbing in new IO bits.
20:31 dalek nqp/io-refactor: review: https://github.com/perl6/nqp/commit/fbf9be3b96
20:31 dalek nqp/io-refactor: 57188a8 | jonathan++ | src/vm/jvm/runtime/org/perl6/nqp/io/ (3 files):
20:31 dalek nqp/io-refactor: Fill out a little more of file I/O.
20:31 dalek nqp/io-refactor: review: https://github.com/perl6/nqp/commit/57188a83bb
20:31 dalek nqp/io-refactor: 3397641 | jonathan++ | src/vm/jvm/runtime/org/perl6/nqp/ (2 files):
20:31 dalek nqp/io-refactor: Start updating ops to use new IO scheme.
20:31 dalek nqp/io-refactor:
20:31 dalek nqp/io-refactor: Not everything is moved over or implemented yet, so this breaks
20:31 dalek nqp/io-refactor: things massively.
20:31 dalek nqp/io-refactor: review: https://github.com/perl6/nqp/commit/3397641548
20:34 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?
20:34 slava yes
20:34 slava is that exactly it?
20:35 slava jnthn: I am thinking along the lines when compilers say "expect blah, got glah" type of messages
20:36 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:37 slava going to try some :D
20:37 slava thanks
20:37 slava jnthn: if I ever meet you, can I touch your beard? ^_^
20:40 FROGGS hehe
20:40 * jnthn blushes
20:40 FROGGS jnthn has his first groupie *g*
20:40 jnthn I...I guess. :P
20:41 BenGoldberg joined #perl6
20:41 slava $object.perl ... best thing since git/perl
20:41 slava :P
20:41 dalek specs: 2d47c89 | (Alex Moquin)++ | S28-special-names.pod:
20:41 dalek specs: Match vars begin at $0 in Perl 6
20:41 dalek specs: review: https://github.com/perl6/specs/commit/2d47c89bbb
20:41 dalek specs: ac105c2 | (Brent Laabs)++ | S28-special-names.pod:
20:41 dalek specs: Merge pull request #59 from Mouq/matchvars
20:41 dalek specs:
20:41 dalek specs: Match vars begin at $0 in Perl 6
20:41 dalek specs: Looks good to me :)
20:41 dalek specs: review: https://github.com/perl6/specs/commit/ac105c28ca
20:43 jnthn woo, almost home...
20:43 * jnthn is glad the train is only 10 minutes late this time, not 3 hours late...
20:44 jnthn detrain, bbiab &
20:56 [Coke] ~~
20:56 FROGGS hi [Coke]
20:58 colomon joined #perl6
20:58 pecastro_ joined #perl6
21:02 jnthn yay home
21:02 jnthn I'll be here all of...30 hours. :)
21:02 FROGGS \o/
21:03 btyler_ joined #perl6
21:03 lizmat jnthn++
21:04 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:05 FROGGS my hyper op can handle bigints now too, and it takes 8.5s (26.7s cpu, 4 cores)
21:06 FROGGS 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 :/
21:08 nwc10 $
21:09 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:15 slava FROGGS: what is that?
21:15 slava the numbers part
21:17 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:18 slava what do the >> and << mean?
21:18 FROGGS to concat all it would be: >>~<<
21:18 FROGGS reduction IIRC
21:18 slava are they just flows to the operator?
21:18 slava I see
21:18 slava ^100_000 ???
21:19 slava what does that mean?
21:19 BenGoldberg The ^ is the iota operator
21:19 BenGoldberg Stolen from APL :)
21:19 FROGGS if you have an array on one side and an element on the other, it could be @a >>+ $b
21:19 BenGoldberg r: print ^10, "\n"
21:19 camelia rakudo 1f57da: OUTPUT«0123456789␤»
21:19 slava ahh, add $b to every element of @a
21:19 FROGGS right
21:19 slava BenGoldberg: ty
21:20 BenGoldberg yw :)
21:20 slava r: say ^10 >>+ 1;
21:20 camelia rakudo 1f57da: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/zrWAt1tlJ6â�¤Missing << or >>â�¤at /tmp/zrWAt1tlJ6:1â�¤------> [32msay ^10 >>+[33mâ��[31m 1;[0mâ�¤    expecting any of:â�¤        postfixâ�¤        infix stopperâ�¤        infix or meta-infixâ�¤Â»
21:20 slava :(
21:20 FROGGS slava: and you can have underscores in numbers whereever you like
21:20 FROGGS hmmm
21:20 slava oh, cool, I think
21:20 slava r: say (^10 >>+ 1);
21:20 camelia rakudo 1f57da: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/7deWTbY3lTâ�¤Missing << or >>â�¤at /tmp/7deWTbY3lT:1â�¤------> [32msay (^10 >>+[33mâ��[31m 1);[0mâ�¤    expecting any of:â�¤        postfixâ�¤        infix stopperâ�¤        infix or meta-infixâ�¤Â»
21:20 BenGoldberg r: say ^10 >>+<< 1
21:20 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 …
21:20 slava :(
21:20 BenGoldberg r: say ^10 >>+<< (1 x 10)
21:20 diakopter Mouq: you want a commit bit?
21:21 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 …
21:21 BenGoldberg r: say ^10 >>+<< (1 xx 10)
21:21 camelia rakudo 1f57da: OUTPUT«1 2 3 4 5 6 7 8 9 10␤»
21:21 BenGoldberg r: say ^10 >>*<< (2 xx 10)
21:21 camelia rakudo 1f57da: OUTPUT«0 2 4 6 8 10 12 14 16 18␤»
21:21 jnthn rr: say ^10 >>+>> 1
21:21 jnthn r: say ^10 >>+>> 1
21:21 camelia rakudo 1f57da: OUTPUT«1 2 3 4 5 6 7 8 9 10␤»
21:21 FROGGS ahh, there we go
21:21 slava nice
21:21 jnthn Point at an undersized side to upgrade it
21:21 slava jnthn++ ^_^
21:22 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
21:22 camelia rakudo 1f57da: OUTPUT«0 2 4 3 5 7 6 8 10 9␤»
21:22 slava nice
21:22 FROGGS jnthn: do you have a hint for about returning QRPA?
21:23 diakopter Mouq: I added you
21:23 jnthn FROGGS: What do you want to do?
21:23 jnthn FROGGS: Wrap a QRPA into something?
21:23 jnthn nqp::p6parcel may help
21:23 FROGGS I have an  QRPA in pir code, and want to return it as an array/list
21:23 jnthn Well, p6parcel will make a Parcel at least
21:24 jnthn 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
21:24 jnthn oh...
21:24 FROGGS that is not the case anymore fwiw
21:25 FROGGS No such method 'list' for invocant of type 'QRPA'
21:25 FROGGS k, will try p6parcel
21:25 Chat3488 joined #perl6
21:25 Chat3488 Hey
21:25 Mouq Buhbye
21:25 BenGoldberg r: (^5).DUMP.say
21:25 camelia rakudo 1f57da: OUTPUT«Range<1>(␤    :min(▶0),␤    :max(▶5),␤    :excludes_min(▶False),␤    :excludes_max(▶True)␤)␤»
21:25 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?)
21:26 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)␤)␤»
21:26 diakopter Mouq++
21:26 BenGoldberg Hyper operators reify lazy lists?
21:26 FROGGS slava: wrong, pm6 and pm are Perl6 code
21:26 FROGGS .pir is pir, .nqp is nqp and so on
21:27 FROGGS and scripts have .pl
21:28 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"'
21:29 FROGGS Unmarshallable foreign language value passed for parameter ''
21:29 FROGGS :/
21:30 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
21:30 camelia niecza v24-88-g1f87209: OUTPUT«foo␤2␤»
21:30 BenGoldberg p: (1 <<+<< gather { .take for 1..3; say 'foo' }).[0].say
21:30 camelia pugs: OUTPUT«*** ␤    Unexpected "<+<<"␤    expecting operator␤    at /tmp/OvG9g8xZgQ line 1, column 5␤»
21:31 FROGGS masak: do they have +x on windows too?
21:31 masak FROGGS: how shall I put this? who cares? :)
21:31 FROGGS hehe
21:31 BenGoldberg FROGGS: If I recall correctly, if it has the right .extention, it's executable
21:31 masak I tend to program on Unix-like operating systems.
21:31 raiph joined #perl6
21:32 masak because that's what doesn't drive me insane.
21:32 BenGoldberg masak: What about cgywin? :)
21:33 masak BenGoldberg: from what little I know about it, I think it falls under "would drive me insane".
21:33 masak BenGoldberg: PuTTY, however, is a blessing.
21:34 diakopter vmware is a blessing
21:35 dalek roast: 3bfd5ea | (Elizabeth Mattijsen)++ | S02-names/is_default.t:
21:35 dalek roast: Added more "is default" related tests
21:35 dalek roast: review: https://github.com/perl6/roast/commit/3bfd5ea9d2
21:36 geekosaur cygwin is, if anything, even nuttier. because it's unixlike right up until it isn't
21:36 geekosaur and you whack into an unexpected brick wall at full tilt
21:36 lizmat r: my @a; my Int @b; say @a.WHAT; say @b.WHAT # is there a way to get from (Hash+{TypedHash}) to (Hash) ?
21:36 camelia rakudo 1f57da: OUTPUT«(Array)␤(Array+{TypedArray})␤»
21:36 Khisanth joined #perl6
21:36 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})␤»
21:37 lizmat r: my Int %a; say %a.WHAT.^mro[1]  # would that be the way?
21:37 camelia rakudo 1f57da: OUTPUT«(Hash)␤»
21:37 masak diakopter: oh yes, that too. I'm writing this inside of vmware. I hardly even think about the emulation layer anymore.
21:37 diakopter hah.
21:37 diakopter yeah it's essentially unnoticeable except for the occasional key mapping discrepancy
21:39 masak Alt-Tab becomes non-symmetric when the VM captures the keyboard.
21:39 masak but that's a minor kvetch, all things considered.
21:39 slava FROGGS: ty
21:40 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:42 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 masak (just as I once was)
21:42 masak BenGoldberg: yes, but I don't care about the script working on Windows.
21:42 woolfy left #perl6
21:43 BenGoldberg Well in that case, nevermind ;)
21:43 jnthn masak: Feel free to write a correctional post :)
21:43 masak jnthn: ok.
21:46 masak sent.
21:51 lizmat r: my Int %a is default(42); say %a.VAR.default  # just checking
21:51 camelia rakudo 1f57da: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/IQaLUhaffn�Null attribute map for P6opaque in class 'Hash+{TypedHash}'�at /tmp/IQaLUhaffn:1�------> �»
21:51 lizmat r: my Int @a is default(42); say @a.VAR.default # just checking again
21:51 camelia rakudo 1f57da: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/e2qfebUgXP�Null attribute map for P6opaque in class 'Array+{TypedArray}'�at /tmp/e2qfebUgXP:1�------> �»
21:53 BenGoldberg rn: (1 <<+<< 1..5).say
21:53 camelia niecza v24-88-g1f87209: OUTPUT«2..5␤»
21:53 camelia ..rakudo 1f57da: OUTPUT«(2,).list.item..5␤»
21:53 dalek rakudo/nom: 6edd19d | (Elizabeth Mattijsen)++ | src/core/Variable.pm:
21:53 dalek rakudo/nom: Make (%@)a is default(42) no longer die
21:53 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6edd19dd97
21:53 lizmat and now for ~4 hours sleep before commuting to Kiev
21:53 lizmat sleep&
21:54 BenGoldberg rn: (1 <<+<< 1..5).print
21:54 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…
21:54 camelia ..niecza v24-88-g1f87209: OUTPUT«2 3 4 5»
21:54 timotimo rn: (1 <<+<< (1..5)).print
21:54 camelia niecza v24-88-g1f87209: OUTPUT«2 3 4 5 6»
21:54 camelia ..rakudo 1f57da: OUTPUT«23456»
21:55 BenGoldberg rn: print (1 <<+<< (1..5))
21:55 camelia rakudo 1f57da, niecza v24-88-g1f87209: OUTPUT«23456»
21:56 BenGoldberg rn: (2..5).say
21:56 camelia rakudo 1f57da, niecza v24-88-g1f87209: OUTPUT«2..5␤»
21:56 BenGoldberg rn: print (1 <<+<< (1..5)).DUMP
21:56 camelia rakudo 1f57da: OUTPUT«List<1>(␤    :$!flattens(Mu),␤    :$!items(QRPA<3>(␤        2,␤        3,␤        4,␤        5,␤        6␤    )),␤    :$!nextiter(▶Mu)␤)»
21:56 camelia ..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…
21:58 BenGoldberg Why aren't hyperoperators lazy?
21:59 BenGoldberg ENOTUITS ?
21:59 jnthn No, hyper *means* non-lazy
22:00 jnthn And potentially parallel
22:00 jnthn Use the zip meta-op to do things pairwise lazily
22:01 BenGoldberg r: say (1 Z+ (1..5))
22:01 camelia rakudo 1f57da: OUTPUT«2␤»
22:01 BenGoldberg r: say (1 [+] (1..5))
22:01 camelia rakudo 1f57da: OUTPUT«6␤»
22:02 Mouq r: say (1 xx * Z+ (1..5))
22:02 camelia rakudo 1f57da: OUTPUT«2 3 4 5 6␤»
22:02 BenGoldberg r: (1 xx * Z+ (1..5))[0].say
22:02 camelia rakudo 1f57da: OUTPUT«2␤»
22:03 BenGoldberg r: (1 xx * Z+ gather {.take for 1..5; say 'foo'})[0].say
22:03 camelia rakudo 1f57da: OUTPUT«2␤»
22:03 BenGoldberg r: (1 xx * Z+ gather {.take for 1..5; say 'foo'})[5].say
22:03 camelia rakudo 1f57da: OUTPUT«foo␤Nil␤»
22:03 BenGoldberg r: (1 xx * Z+ gather {.take for 1..5; say 'foo'})[4].say
22:03 camelia rakudo 1f57da: OUTPUT«6␤»
22:03 BenGoldberg :)
22:04 masak hyper is one of the things that mean non-lazy, yes.
22:04 timotimo it's even less lazy than normal
22:04 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:05 BenGoldberg rnp: for(gather {.take for 1..5;say 'foo'}) { .say; last }
22:05 camelia pugs: OUTPUT«foo␤1␤»
22:05 camelia ..rakudo 1f57da: OUTPUT«[31m===[0mSORRY![31m===[0m�Word 'for' interpreted as 'for()' function call; please use whitespace instead of parens�at /tmp/hoygyMDxgf:1�------> [32mfor[33m�[31m(gather {.take for 1..5;say 'foo'}) { .s[0m�Unexpected block in infix position (two terms in a r…
22:05 camelia ..niecza v24-88-g1f87209: OUTPUT«[31m===[0mSORRY![31m===[0m��Word 'for' interpreted as 'for()' function call; please use whitespace instead of parens at /tmp/LvD0fSMl2L line 1:�------> [32mfor[33m�[31m(gather {.take for 1..5;say 'foo'}) { .s[0m�Unexpected block in infix position (…
22:05 BenGoldberg rnp: for (gather {.take for 1..5;say 'foo'}) { .say; last }
22:05 camelia niecza v24-88-g1f87209: OUTPUT«1␤»
22:05 camelia ..rakudo 1f57da, pugs: OUTPUT«foo␤1␤»
22:06 BenGoldberg :(
22:07 BenGoldberg rn: for (gather {.take for 1..Inf}) { .say; last }
22:07 camelia rakudo 1f57da: OUTPUT«(timeout)»
22:07 camelia ..niecza v24-88-g1f87209: OUTPUT«1␤»
22:09 timotimo currently, for is calling ".eager" on the thing it gets passed
22:10 ilogger2_ joined #perl6
22:17 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␤»
22:17 camelia ..rakudo 6edd19, niecza v24-88-g1f87209: OUTPUT«so(Like)True␤»
22:17 labster totally.
22:18 labster dang, looks like I'm going to have to backport some of the file path stuff I wrote to Perl 5.
22:21 timotimo because it's better than anything perl5 has? ;)
22:23 labster yep.  of course, it's just another example of perl 6 ruining perl 5 innovation
22:25 timotimo yup
22:25 timotimo perl6 is killing perl5 so hard
22:26 masak (attention lurkers and backlogarchaeologists: they are joking)
22:26 masak 'night, #perl6
22:26 dalek nqp/io-refactor: e96a23f | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/io/FileHandle.java:
22:26 dalek nqp/io-refactor: Add missing interface implementation.
22:26 dalek nqp/io-refactor: review: https://github.com/perl6/nqp/commit/e96a23f599
22:26 dalek nqp/io-refactor: 1f83dea | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/ (2 files):
22:26 dalek nqp/io-refactor: Get stdout/stderr using new IO approach.
22:26 dalek nqp/io-refactor: review: https://github.com/perl6/nqp/commit/1f83deab79
22:26 dalek nqp/io-refactor: 4204202 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/io/FileHandle.java:
22:26 dalek nqp/io-refactor: Fix a thinko in slurp.
22:26 dalek nqp/io-refactor:
22:26 dalek nqp/io-refactor: With this, all NQP tests pass, though there's still some notable bits
22:26 dalek nqp/io-refactor: still to do.
22:26 dalek nqp/io-refactor: review: https://github.com/perl6/nqp/commit/420420221b
22:27 Mouq night masak
22:27 FROGGS jnthn: I added a file-io.t to moarvm a few minutes ago
22:45 benabik joined #perl6
22:45 census_ joined #perl6
23:00 skids joined #perl6
23:24 slavik joined #perl6
23:38 raiph joined #perl6
23:52 FROGGS joined #perl6
23:56 dalek nqp/io-refactor: 35ebaea | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/io/FileHandle.java:
23:56 dalek nqp/io-refactor: Implement FileHandle.readline.
23:56 dalek nqp/io-refactor: review: https://github.com/perl6/nqp/commit/35ebaeabff
23:56 dalek nqp/io-refactor: 756f91b | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/ (3 files):
23:56 dalek nqp/io-refactor: Get stdin and readline interactive using new IO.
23:56 dalek nqp/io-refactor: review: https://github.com/perl6/nqp/commit/756f91b166
23:56 dalek nqp/io-refactor: d86cade | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/reprs/IOHandleInstance.java:
23:56 dalek nqp/io-refactor: Cleanup old IO leftovers.
23:56 dalek nqp/io-refactor: review: https://github.com/perl6/nqp/commit/d86cade000

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo