Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2014-10-29

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:05 jepeway well, i'm kinda torn between relying on the underlying OS's olson db & embedding one for p6.
00:07 chenryn joined #perl6
00:09 BenGoldberg How out of date (no pun intended) is the OS's database likely to be?
00:10 * BenGoldberg is trying to remember if his laptop, running XP, presently does daylight savings time on the correct date.
00:14 jepeway well, i'm thinking that vendor updates are kinda automated, so the likelihood is high-ish.  i can be persuaded otherwise, mind you.
00:14 BenGoldberg jepeway, You could do both -- have a backend which uses the OS's db, a backend with an embeded DB, and a frontend which uses one or the other based on some user setting.
00:15 jepeway XP support was over as of April this year, so yer likely OK.
00:15 raydiak XP did get an update to DST changes in like 07 or something
00:15 raydiak http://www.microsoft.com/en-us/download/details.aspx?id=23731
00:15 jepeway yeah, a mix-n-match that DWIM'ed.
00:16 * japhb is very happy now -- he has managed to make a simple stress test that causes Rakudo absolute conniptions.
00:16 jepeway japhb: say on.
00:16 japhb m: my \SCALE = 3; my \FANOUT = 2; sub divide-and-conquer($n, $depth) { say "$depth: $n" if 0; $depth <= 0 ?? $n !! [+] await do for ^FANOUT { start { divide-and-conquer($n / FANOUT, $depth - 1) } } }; say divide-and-conquer(1.0, SCALE);
00:16 camelia rakudo-moar 315ec6: OUTPUT«Memory allocation failed; could not allocate 8480 bytesMemory allocation failed; could not allocate 8480 bytes␤␤»
00:17 japhb That sucker will give all sorts of results, including 1 (the correct answer), 1.25 (WHAT?), the above error, 'Cannot invoke this object (REPR: Null)', locking up solid ....
00:17 japhb Really quite fun, actually.
00:18 japhb And hopefully short enough to actually help jnthn++ et al. to debug it finally.
00:18 * raydiak is still learning how to write his programs in way that *isn't* a stress test that causes rakudo absolute conniptions :)
00:19 japhb In fact, with SCALE = 5, it's pretty much guaranteed to lock up solid on my box.  SCALE = 1 or SCALE = 2 usually works.
00:19 japhb raydiak: I've been trying for a month or more to golf down my threading instabilities to something that can be easily tested and shows the problems.
00:20 BenGoldberg m: my \SCALE = 3; my \FANOUT = 2; sub divide-and-conquer($n, $depth) { say "$depth: $n" if 0; $depth <= 0 ?? $n !! [+] await do for ^FANOUT { start { divide-and-conquer($n / FANOUT, $depth - 1) } } }; say divide-and-conquer(1.0, SCALE);
00:20 camelia rakudo-moar 315ec6: OUTPUT«Memory allocation failed; could not allocate 8480 bytesCould not spawn thread: errorcode -1␤␤»
00:20 BenGoldberg m: my \SCALE = 3; my \FANOUT = 2; multi sub divide-and-conquer($n, 0) { say "done $n"; $n }; sub divide-and-conquer($n, $depth) { say "$depth: $n"; [+] await do for ^FANOUT { start { divide-and-conquer($n / FANOUT, $depth - 1) } } }; say divide-and-conquer(1.0, SCALE);
00:20 camelia rakudo-moar 315ec6: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/8xP1T2cBoXâ�¤Redeclaration of routine divide-and-conquerâ�¤at /tmp/8xP1T2cBoX:1â�¤------> [32md-conquer($n / FANOUT, $depth - 1) } } }[33mâ��[31m; say divide-and-conquer(1.0, SCALE);[0mâ�¤    ex…»
00:20 japhb Oooh, two errors for the price of one!
00:20 raydiak japhb: that makes me feel better that I haven't had much luck doing the same yet, though admittedly with far less than a month of total effort
00:21 BenGoldberg m: my \SCALE = 3; my \FANOUT = 2; multi divide-and-conquer($n, 0) { say "done $n"; $n }; multi divide-and-conquer($n, $depth) { say "$depth: $n"; [+] await do for ^FANOUT { start { divide-and-conquer($n / FANOUT, $depth - 1) } } }; say divide-and-conquer(1.0, SCALE);
00:21 camelia rakudo-moar 315ec6: OUTPUT«3: 1␤2: 0.5␤2: 0.5␤1: 0.25␤1: 0.25␤1: 0.25␤1: 0.25␤done 0.125␤Memory allocation failed; could not allocate 8480 bytes␤»
00:21 japhb Well, it's not like it's been my day job ... but definitely a free time hacking problem
00:22 japhb .tell jnthn Finally a short stress test for Rakudo threading that fails many different ways, relatively quickly: http://irclog.perlgeek.de/perl6/2014-10-29#i_9579979
00:22 yoleaux japhb: I'll pass your message to jnthn.
00:22 jepeway well, gotta go.  g'nite airbody.
00:23 raydiak good night jepeway
00:23 japhb o/ jepeway
00:23 masak good night jepeway
00:23 masak good night #perl6
00:23 japhb o/ masak
00:23 japhb Sleep well ...
00:24 raydiak g'night masak \o
00:24 BenGoldberg I got that code to say 'Cannot assign to a readonly variable or a value␤'
00:29 japhb BenGoldberg: Yeah, I keep getting different stuff the more I try it.  I can only assume heap corruption or somesuch.
00:34 japhb Although the lockup at SCALE >= 5 my guess is a problem with the way the scheduler manages the threadpool.
00:41 BenGoldberg Can moar be run using valgrind?  That would give a hint as to the location of the problem.
00:43 dalek perl6-bench/stress: 1a31fa5 | (Geoffrey Broadwell)++ | / (2 files):
00:43 dalek perl6-bench/stress: Add the first Perl 6 stress test: divide-and-conquer
00:43 dalek perl6-bench/stress: review: https://github.com/japhb/perl6-bench/commit/1a31fa51bc
00:46 japhb BenGoldberg: I believe nwc10++ has done that.
00:52 BenGoldberg m: my \SCALE = 10; my \FANOUT = 10; multi sub divide-and-conquer($n, 0) { $n }; multi divide-and-conquer($n, $depth) { [+] await do for ^FANOUT { start { divide-and-conquer($n / FANOUT, $depth - 1) } } }; say divide-and-conquer(1.0, SCALE);
00:52 camelia rakudo-moar 315ec6: OUTPUT«Memory allocation failed; could not allocate 8480 bytes␤»
00:57 japhb OK, that's some serious stress right there.
01:02 davido___ joined #perl6
01:03 immortal joined #perl6
01:05 japhb divide-and-conquer   ++++++++++,++++++++++,++++++++++,+++ØØ++≠+≠
01:06 japhb ^^ Diagnosis from perl6-bench stress of divide-and-conquer at increasing SCALE
01:06 japhb You can see where it starts to fall apart
01:16 dalek perl6-bench/stress: a33943f | (Geoffrey Broadwell)++ | timeall:
01:16 dalek perl6-bench/stress: Don't skip remaining runs of a test at a particular SCALE when a compiler starts to fail
01:16 dalek perl6-bench/stress: review: https://github.com/japhb/perl6-bench/commit/a33943faa1
01:16 dalek perl6-bench/stress: 9c8ef17 | (Geoffrey Broadwell)++ | bench:
01:16 dalek perl6-bench/stress: Default to 10 runs per compiler per test when doing stress testing
01:16 dalek perl6-bench/stress: review: https://github.com/japhb/perl6-bench/commit/9c8ef17fae
01:16 dalek perl6-bench/stress: 7ded32e | (Geoffrey Broadwell)++ | / (2 files):
01:16 dalek perl6-bench/stress: Add a --verbose option to analyze, and support it in bench
01:16 dalek perl6-bench/stress: review: https://github.com/japhb/perl6-bench/commit/7ded32e05e
01:31 eMBee joined #perl6
01:46 MilkmanDan Is there no site that gives a current status of Perl6 work that a non-guru could follow?
01:46 MilkmanDan Most of the hits under https://duckduckgo.com/?q=current+state+of+Perl6 are ca. 2010 and even http://perl6.org/compilers/features is close to two months old.
01:47 MilkmanDan So I'm clearly looking in the wrong places.
01:47 cxreg joined #perl6
01:47 peteretep MilkmanDan: Have you seen the table of supported features?
01:47 MilkmanDan peteretep: On the second link I pasted?
01:48 peteretep ah, yeah, that's the one
01:48 peteretep Sorry I didn't look closely enough
01:48 MilkmanDan No worries :)
01:48 peteretep That and the blog posts are the best I've seen
01:48 peteretep Although those are about Rakudo, but I tend to feel that's a reasonable proxy
01:48 peteretep (http://rakudo.org/)
01:48 MilkmanDan That's probably more useful for the deep hackers.  I'm more interested in something like http://stackoverflow.com/questions/1899639/how-can-i-get-started-with-perl-6?rq=1
01:49 MilkmanDan "closed as not constructive" is a but of a put-off though. :)
01:50 peteretep MilkmanDan: Over the years, I've tried to get a feel for it, and not found a good place
01:50 peteretep MilkmanDan: I feel like the best answer is "There's a usable alpha out"
01:51 MilkmanDan peteretep: That's the impression I get but I have a hard time getting much farther than that.  For example, "what exactly do I download to start learning, and why those bits instead of other bits?"
01:52 peteretep I think the one-off answer to that is: Rakudo
01:52 MilkmanDan I can see that there a gaggle of different, um, compilers and interpreters?
01:52 peteretep http://rakudo.org/how-to-get-rakudo/
01:52 MilkmanDan Rakudo is a frontend to some backend like a JVM that actually executes the code, yes?
01:53 peteretep I think it's more generally a release, that includes a workable back-end
01:53 * peteretep is making a not of these questions to write up a document
01:53 colomon MilkmanDan: I don't know that anything that would require a change to http://perl6.org/compilers/features has happened in the last two months.
01:53 peteretep I also don't know the answers definitive though
01:53 MilkmanDan colomon: Thanks, good to know.
01:54 colomon Rakudo is implemented in terms of NQP, and NQP currently runs on Parrot, JVM, and MoarVM.
01:54 colomon Unless you specifically want to use lots of threading stuff, the best choice is probably MoarVM.
01:54 peteretep colomon: I think that is a very accurate answer, but not necessarily a helpful one for people outside the know
01:55 MilkmanDan Yeah, this is the sort of stuff that I think needs a site to track the State of the 6 Onion.
01:55 MilkmanDan On6on?
01:56 peteretep heh
01:56 MilkmanDan Whichever.  A site that took a snapshot of the state every quarter or two would make it a lot easier for relative noobs to get up to speed and start learning things.
01:57 peteretep MilkmanDan: I have an ulterior motive for wanting to create such a thing, and am currently procrastinating about something else
01:57 * peteretep throws something together
01:57 MilkmanDan Or maybe I'm being overly optimistic about when things will be finalized enough for noobs to begin using it.
01:58 MilkmanDan That book on Github looks like it's mostly about 2-4 years old.
01:58 peteretep MilkmanDan: I think there's a real focus on producing working code at the moment, rather than documenting progress
01:59 peteretep Actually, I think that's been the case forever
01:59 MilkmanDan nod
01:59 peteretep Regardless, I would agree with what you've said
02:00 MilkmanDan Oh dear.  http://irclog.perlgeek.de/perl6book/ is a bit depressing.
02:00 MilkmanDan I think I better just lurk for another 6 months.
02:00 peteretep Which is a shame, as I think there's enough that you could fruitfully learn Perl 6 right now
02:01 peteretep Although it requires investment and archeology, which is a shame
02:01 * leont learned perl 6 mostly by doing, and by not being afraid to ask "stupid" questions here
02:01 colomon leont has the best way of it, indeed.
02:02 peteretep Amazing that now I have a commercial incentive in publicizing a Perl-related site, I am more willing to put together Perl content :-/
02:02 MilkmanDan leont: How did you get past the "which bits? etc" part?
02:03 MilkmanDan I'm still not entirely sure why I need to install a Java virtual machine to learn Perl (or that I should be forced to live in such a state of sin. :)
02:04 colomon MilkmanDan: you only need JVM if you want to use it.
02:04 MilkmanDan colomon: Use MoarVM instead?
02:05 leont Yeah
02:05 colomon I'd strongly recommend that.
02:05 MilkmanDan I very much like the of MOAR THINGS!  But that's about as far as my decision process would go.
02:06 dalek perl6-bench/stress: 80d904e | (Geoffrey Broadwell)++ | bench:
02:06 dalek perl6-bench/stress: Refactor quickstart command and add quickstress command
02:06 dalek perl6-bench/stress: review: https://github.com/japhb/perl6-bench/commit/80d904efa8
02:07 MilkmanDan So is Moar a weakly typed VM where the JVM is strongly typed?
02:07 peteretep Would this be a fair statement: "Rakudo Star implements enough of Perl 6 that it feels feature parity with Perl 5"?
02:07 rurban joined #perl6
02:07 colomon The key to Moar is that it was explicitly developed to support the current Rakudo.
02:08 MilkmanDan peteretep: That sounds great to me.
02:08 peteretep MilkmanDan: That may not be true :-)
02:08 peteretep MilkmanDan: I am asking to assertain its truthiness
02:08 colomon Eh, there certainly are some features of Perl 5 which Rakudo doesn't really handle yet
02:08 peteretep But I think it is true
02:08 colomon it's mostly there.
02:08 peteretep Unicode, complicated IO/threading
02:08 colomon and there are things there which are not in perl 5
02:08 peteretep I feel like those are the two biggies
02:09 MilkmanDan I can probably get by quite well without Unicode. :)
02:09 colomon as far as I know we don't have a decent pack / unpack facility yet
02:09 japhb Why would you think we are unicode impaired?
02:09 peteretep japhb: It says it on the Rakudo star website
02:10 peteretep well, rakudo website
02:10 japhb peteretep: link?
02:10 BenGoldberg The biggest thing that perl5 has that perl6 is barely starting on, is CPAN.  For any task that can possibly be done, there's a perl5 CPAN module out there which does it well.
02:10 peteretep japhb: http://rakudo.org/
02:10 peteretep BenGoldberg: I'm doing my dissertation on that, strangely enough
02:11 colomon Certainly basic Unicode stuff works fine in Rakudo.
02:11 MilkmanDan "This Star release includes release 2014.09 of the"
02:11 MilkmanDan Rakudo Perl 6 compiler, version 6.7.0 of the Parrot Virtual
02:11 MilkmanDan Machine, version 2014.09 of MoarVM, plus various modules,
02:11 MilkmanDan documentation, and other resources collected from the Perl 6
02:11 MilkmanDan community."
02:11 MilkmanDan Crap, that was supposed to be one line.
02:11 japhb peteretep: Ah, I see what you're looking at.  That's roughly saying "We're only doing *somewhat* better than Perl 5 at Unicode, instead of OMG A LOT"
02:11 MilkmanDan Anyway, why does Star include two different VMs?  Are they both used?
02:12 peteretep japhb: Hrmmmm
02:12 peteretep japhb: Now I come to think of it, actually Perl 6 promised a lot
02:12 peteretep japhb: Are the Unicode features that currently exist then very similar to what's in Perl 5?
02:12 japhb MilkmanDan: Star is a distro release (batteries included, basically), so it includes what you need to play around however you like.  We just can't include the JVM for obvious reasons
02:13 MilkmanDan japhb: Ah, right.  Java stinks.
02:13 * MilkmanDan nods solemnly.
02:13 japhb peteretep: In general, we pervasively do Unicode in strings.  And know when we're using strings and when we're using Blobs.
02:13 BenGoldberg It's not that java stinks, it's that java is huge.
02:13 MilkmanDan So both Parrot and Moar included for fun for the user.
02:13 BenGoldberg Well, JRE is relatively huge, anyway.
02:13 japhb BenGoldberg: And possibly encumbered in a not-Artistic-2.0 compatible way, I haven't looked recently.
02:13 MilkmanDan BenGoldberg: No, no, I've taken Java classes before.  It definitely stinks. :)
02:14 japhb MilkmanDan: Yes, fun for the user.
02:15 BenGoldberg MilkmanDan, JVMs take java *classes*, java students take java *courses*.  So unless you're a computer...
02:15 BenGoldberg :)
02:15 * colomon can't really comment on Rakudo Star, as he pretty much always uses rakudobrew to build rakudo these days.
02:15 MilkmanDan Haha
02:15 japhb m: say uniname('F')
02:15 camelia rakudo-moar 315ec6: OUTPUT«LATIN CAPITAL LETTER F␤»
02:16 MilkmanDan I'm not so much a computer as I am an entity created for a webcomic....
02:16 BenGoldberg Also, MilkmanDan, are you saying that that java programming language stinks, or that the java virtual machine stinks?
02:17 BenGoldberg Because the java backend of Rakudo produces class files directly from NQP, *without* using the java programming language.
02:17 MilkmanDan BenGoldberg: Seriously?  Well, when I studied Java I had previously done a bit of dabbling in various languages including Perl.  Java just felt all _wrong_ to me.
02:17 BenGoldberg So it's the language, not the vm.
02:17 MilkmanDan Yeah.
02:18 peteretep https://github.com/sheriff/perl6status/blob/master/README.md
02:18 peteretep I plan to "finish" this document in the next 90 minutes
02:18 peteretep By making it about 5 times the size
02:18 BenGoldberg You *do* realize that there's like, a dozen different languages which compile to .class files, which can run on the jvm.
02:18 peteretep I would very appreciate some extra eyes
02:18 BenGoldberg And many of them are completely and utterly unlike the java programming language.
02:18 MilkmanDan Although from reading (I think?) Perlmonks it seems that getting Perl to run in the JVM is a bit of a flawed hack because Java is completely typed and Perl has always been "that's cool, whatevs you want, bro".
02:18 peteretep MilkmanDan: My understanding is much as the VM has gotten a lot better, actually the language has improved a lot too
02:19 BenGoldberg I mean, consider lisp, and ironpython, as just two examples.
02:19 MilkmanDan Lisp I can understand, but Python running in the JVM sounds just as odd to me as Perl.
02:20 * BenGoldberg shrugs.
02:20 BenGoldberg And yet, it runs!
02:20 MilkmanDan But I'm no low level hacker.
02:20 MilkmanDan Yeah
02:20 MilkmanDan Nevertheless, it moves!
02:20 japhb MilkmanDan: Perl 6 has a much more interesting type system than Perl 5 does.
02:20 MilkmanDan japhb: Oh dear.  Is that analogous to "may you live in interesting times"?
02:21 japhb Well we hope not.  :-)
02:21 japhb Actually, it allows for a lot more intelligence in a lot of places, which makes using the language much freer of annoyances.
02:22 dayangkun joined #perl6
02:22 MilkmanDan I like the idea of asking Perl to tell you the [scalar] length of a hash and getting the number of elements in it because Perl and the programmer have an understanding that doing a scalar operation on a hash only makes sense in such a way.
02:23 peteretep MilkmanDan: heh. Context has always felt like the weakest part of Perl to me
02:23 MilkmanDan peteretep: Really?  I always thought it was brilliant.
02:24 MilkmanDan I liked it because it was like Perl telling me "this is brilliant but you can use it if you step up your game and try to be a little bit brilliant yourself."
02:24 MilkmanDan Humbling but inspiring at the same time.
02:25 peteretep Everyone: is there a particularly good or well-written Perl 6 module that should be highlighted as an example of how to write Perl 6?
02:27 rurban joined #perl6
02:28 rurban left #perl6
02:32 colomon nothing is jumping to mind.  There are beautiful short modules that jnthn has written.
02:32 colomon I've got my ABC, which is reasonably big and uses a lot of nice bits of Perl 6, but I wrote the bulk of it ages ago and would certainly not write it that way if I started over today.
02:33 colomon panda, maybe, but it's pretty specialized.
02:35 peteretep https://github.com/sheriff/perl6status/blob/master/README.md
02:35 peteretep MilkmanDan: ^^ does that answer most of the questions you came here with?
02:35 peteretep colomon: Is everything on that page I just posted true, as far as you know?
02:36 MilkmanDan peteretep: I'll look in a bit.  Thanks.
02:38 colomon peteretep: I'd wait around to get other opinions on truthiness.
02:39 colomon I don't know of any Unicode features missing from Rakudo-Moar, for instance.  (But that doesn't mean they don't excist.)
02:39 colomon *exist
02:40 colomon As far as I know, forms and pack/unpack are both still missing from rakudo.
02:40 peteretep forms?
02:40 colomon (Both of which are p5 features I've certainly relied on in the past.)
02:40 colomon sorry, formats
02:41 peteretep Like %02d?
02:41 colomon no, we've got sprintf etc.
02:41 colomon like @<<<<<<<<<     @>>>>>          @>>>>>
02:41 peteretep ah
02:42 colomon I vaguely remember something about a module to do that, but I don't know anything more than that about it.
02:45 colomon at the moment, the big not done part is the currently underway Great List Refactoring.
02:45 colomon as pmichaud++, etc try to get List handling more consistent and more efficient.
02:49 colomon but rakudo is perfectly suitable for doing a good bit of p6 development.  I use it pretty much every day for $work.
02:51 peteretep What do you do for work?
02:55 colomon CAD software library development
02:55 colomon all the CAD code is in C++
02:56 colomon but I've got a ton of support code in p5 and a growing amount in p6
03:01 chenryn joined #perl6
03:14 noganex_ joined #perl6
03:21 nebuchadnezzar joined #perl6
03:32 chenryn joined #perl6
03:35 wtw joined #perl6
03:35 fhelmberger joined #perl6
03:36 hagiri joined #perl6
03:39 hagiri TimToady, hello man
03:39 hagiri =)
04:00 peteretep http://perl6.guide/
04:20 kaleem joined #perl6
04:29 peteretep Is there any published or implicit roadmap for Rakudo?
04:31 mauke_ joined #perl6
04:32 lucs peteretep: Is that a domain of yours?
04:35 peteretep lucs: Yes
04:35 lucs Aha.
04:36 lucs (first time I see a .guide domain)
04:37 lucs D'oh! I should have read to the end of the page :)
04:40 peteretep I would like to improve that page to include a roadmap that is derived from various blog posts
04:45 xenoterracide joined #perl6
04:46 ggoebel111111116 joined #perl6
04:47 peteretep "I also announced that discussions would happen about what ought to be in Perl 6.0.0"
04:47 peteretep What does that actually /mean/?
04:47 peteretep Does that mean a Rakudo version that says it can support Perl 6.0.0?
04:48 peteretep Is that a tag on a certain set of the unit tests for Perl 6?
04:48 peteretep Presumably it needs to be the latter
04:48 peteretep Perl 6.0.0 is a set of tests that are canonicalized as "Perl 6.0.0"
04:49 peteretep And it being "released" is ... there's software somewhere that can compile it?
04:49 peteretep I note that the bullet points after that (http://p6weekly.wordpress.com/) talk about the Great List Refactor
04:49 peteretep Is GLR specifically a Rakudo-specific thing?
04:51 peteretep Or is there more work implied there in figuring out what the language itself should do?
04:51 peteretep Reading on there, it seems to be /both/
05:08 jack_rabbit joined #perl6
05:28 chenryn joined #perl6
05:49 yeahnoob joined #perl6
05:56 wtw joined #perl6
06:08 JimmyZ joined #perl6
06:09 JimmyZ peteretep: https://github.com/rakudo/rakudo/blob/nom/docs/ROADMAP
06:10 peteretep JimmyZ: That's something. Shame it's so out of date :(
06:10 peteretep (based on viewing it as: https://github.com/rakudo/rakudo/blame/nom/docs/ROADMAP)
06:11 JimmyZ peteretep: Last updated: 2014-09-14
06:11 peteretep JimmyZ: Don't believe everything people tell you - believe what the evidence shows you :-)
06:12 JimmyZ well. it's not out of date actually
06:14 peteretep JimmyZ: Do you think it's accurate?
06:14 kaare_ joined #perl6
06:15 JimmyZ peteretep: almost
06:16 peteretep JimmyZ: My understanding is that the most pressing issues are Unicode improvements, shaped arrays, and a general rewrite/refactor of list handling code
06:17 JimmyZ Unicode improvements, shaped arrays is  feature roadmap, and it's in the ROADMAP tooo
06:17 JimmyZ GLR is not feature roadmap
06:18 [Sno] joined #perl6
06:19 peteretep JimmyZ: So this is a roadmap of language features only?
06:19 JimmyZ yeah
06:19 peteretep It seems to me a brave explorer could go in and change the numbers next to the tasks to reflect that
06:20 JimmyZ or something longstanding performance roadmap
06:21 peteretep Wouldn't that include GLR?
06:21 peteretep "Longstanding performance"?
06:21 JimmyZ GLR is not longstanding
06:21 anaeem1_ joined #perl6
06:27 grep0r joined #perl6
06:32 kaleem joined #perl6
06:37 vivek_ joined #perl6
06:37 vivek_ hi
06:38 vivek_ hi camelia
06:38 vivek_ Is there anyone online now?
06:39 lucs Sure, but a lot are missing, sleeping I guess.
06:39 JimmyZ peteretep: rakudo start does have non-blocking IO, methinks
06:39 vivek_ I would like to contribute to this perl 6
06:40 JimmyZ and does  have a pack/unpack
06:40 vivek_ I have been working in Perl for more than 5 years
06:40 vivek_ I would like to know how could I start contributing?
06:40 JimmyZ vivek_: What would you like to do :P
06:41 yeahnoob joined #perl6
06:41 peteretep JimmyZ: My understanding is that the non-blocking IO is limited to certain back ends
06:41 vivek_ I think I am good at handling data structures in Perl
06:41 JimmyZ peteretep: yeah, but it does have :P
06:41 peteretep JimmyZ: Someone told me earlier pack/unpack were missing; can you point me to a passing test that shows otherwise? If so I'll update it
06:42 JimmyZ peteretep: it is not missing, just not as good as the perl 5 one
06:42 peteretep JimmyZ: It's generally better to under-promise and over-deliver, rather than the other way around, in this world
06:43 JimmyZ peteretep: consider java only has one  backend :P
06:43 JimmyZ and nodejs too
06:44 JimmyZ you can't say java has no non-blocking io because it limited to only JVM
06:45 peteretep JimmyZ: I understand your point completely. I disagree with the assertion that that means we should disagree with the person who last released Rakudo Star and say "actually it has it just fine"
06:46 JimmyZ peteretep: maybe the better way is that: it has, but only on XXX backends.
06:46 peteretep This is doubly true for a language with a(n unfair) reputation problem for being vapour-ware
06:47 peteretep JimmyZ: Perhaps, but the commenter who started off this whole discussion this morning was complaining that the various backends, and the different sets of functionality between them, was confusing
06:47 peteretep And I have sympathy for that position
06:47 JimmyZ but say no make people leaves :P
06:48 peteretep I didn't understand that sentence
06:48 JimmyZ complaining is better than no-complaining  ;)
06:48 lucs vivek_: Did you see this page?: http://rakudo.org/how-to-help/
06:49 peteretep JimmyZ: Ultimately, I think the message that "Perl 6 is usable right now, with these caveats" than anything more nuanced
06:49 JimmyZ things without complaining means noboyd use it:P
06:49 JimmyZ *nobody
06:49 chenryn Rakudo-MoarVM don't support non-blocking io?
06:49 JimmyZ it does support :P
06:50 JimmyZ and does have pack/unpack too
06:51 peteretep I suggest you ask Tobias Leich to update his last release note
06:51 lucs vivek_: This too:  http://perl6.org/about/
06:53 chenryn so, could we say only performance improve needed?
06:54 JimmyZ so to make rakudo having non-blocking IO, we just needs delete other two backends :P
06:55 JimmyZ and then no caveats
06:55 peteretep JimmyZ: Yes. While they're distributed as part of the official distribution, it turns out the person packaging the releases considers it to be "not quite there"
06:56 JimmyZ but it 's still there
06:58 kurahaupo joined #perl6
07:03 darutoko joined #perl6
07:03 anaeem1 joined #perl6
07:05 anaeem1 joined #perl6
07:12 mauke_ joined #perl6
07:19 avuserow joined #perl6
07:27 FROGGS joined #perl6
07:32 virtualsue joined #perl6
07:33 mauke_ joined #perl6
07:39 mauke joined #perl6
07:44 mauke_ joined #perl6
07:47 mauke joined #perl6
07:52 rindolf joined #perl6
07:56 grondilu I think http://rosettacode.org/wiki/Draw_a_sphere#Perl_6 is broken.  Can anyone confirm?
07:57 * FROGGS tries
07:58 FROGGS it infiniloops as it seems
07:59 grondilu it does not on my machine, but the resulting image does not look like a sphere at all.
07:59 FROGGS the result on my box is just:
07:59 FROGGS P5
07:59 FROGGS 255 255
07:59 FROGGS 255
08:00 grondilu you sure it's not still running?
08:00 grondilu because it's supposed to do everything in memory, and then finish write the file.
08:01 Tekk_ it fails to compile for me
08:01 Tekk_ on moar just built today
08:01 FROGGS but... is it meant to run longer than a minute?
08:01 FROGGS Tekk_: O.o
08:01 FROGGS how so?
08:01 grondilu it's quite slow indeed
08:01 grondilu several minutes on my machine.
08:01 FROGGS ohh, oaky
08:01 FROGGS okay*
08:01 Tekk_ expected a term but found infix .. instead at out.print( draw_sphere( ($x-1)/2, .9, ..⏏chrs );
08:02 lizmat good *, #perl6!
08:02 yoleaux 28 Oct 2014 22:02Z <FROGGS> lizmat: are you happy with IO::Handle.close-pipe?
08:02 lizmat FROGGS: will look later
08:02 peteretep FROGGS: I'd love any input you have on http://perl6.guide/
08:02 Tekk_ wait..
08:02 FROGGS Tekk_: copy&pasto... there is: ».chrs
08:02 moritz Tekk_: what is ..chars supposed to me?
08:02 Tekk_ yeah
08:02 FROGGS lizmat: thanks :o)
08:02 Tekk_ FROGGS: yeah, apparently that didn't copy right for some reason
08:02 moritz \o lizmat, FROGGS, Tekk_, *
08:03 FROGGS morning moritz
08:03 Tekk_ yep, there we go
08:03 Tekk_ hi moritz
08:03 FROGGS peteretep: will read
08:03 peteretep FROGGS: it's very very short :)
08:03 lizmat meanwhile, I would like to note that since I pullled late last night, I'm seeing a lot more flappy test files, that run fine by themselves
08:03 moritz Tekk_: you canuse >>.chrs if non-ASCII causes problems
08:03 lizmat but have nothing apparent to do with async
08:03 zakharyas joined #perl6
08:04 FROGGS peteretep: we have pack/unpack
08:04 peteretep FROGGS: You are the 3rd person to say that. I will correct it now.
08:04 FROGGS :P
08:05 FROGGS lizmat: it is unlikely to be my fault though
08:05 FROGGS because these code paths are unused in tests
08:05 moritz did the nqp revision bump change anything?
08:05 FROGGS moritz: hmmm, not sure about taht
08:06 FROGGS peteretep: rakudo (-m|-j) has threads and concurrency
08:06 * lizmat runs a third spectest run
08:06 peteretep FROGGS: I've changed the wording slightly there. The last release notes say it's "not quite done" and I think it's best not to over-rpromise
08:07 FROGGS okay, I can live with that :o)
08:07 dayangkun joined #perl6
08:07 peteretep I am hoping it gets some traction on hacker news
08:12 FROGGS peteretep++ # 've got nothing more to complaint about :o)
08:12 FROGGS I like it
08:13 FROGGS grondilu: aye, the sphere does not look like a sphere :o)
08:14 FROGGS it looks like that the lines are eithr too short or too long
08:14 FROGGS either*
08:14 grondilu it seems to work if I change the code to create a P2 (ASCII) image instead of P5
08:14 grondilu so I suspect there's somthing wrong with binary IO
08:15 grondilu maybe .chrs
08:15 grondilu btw chrs here is not necessary, chr should do.
08:17 * FROGGS tries
08:17 FROGGS I'll profile it this time...
08:19 rurban joined #perl6
08:19 rurban left #perl6
08:19 lizmat https://gist.github.com/lizmat/d5efe6e42efc59c94b17   # 3 runs of flappy tests, each of which runs fine by its own
08:19 lizmat *on
08:20 lizmat away to computer parts store&
08:20 moritz lizmat: I'm now spectesting 9022b0f to see if it's flappy too
08:20 moritz first run was fine (no fails)
08:21 rurban joined #perl6
08:23 FROGGS hmmm, if I had to guess I'd say it is a newly jitted op
08:23 moritz my plan is:
08:23 moritz 1) run three spectests on rakudo 9022b0f
08:23 moritz 2) if they are fine, update moar to master without updating NQP or Rakudo
08:25 moritz 3) if the spectests are still fine, update NQP
08:26 mauke_ joined #perl6
08:27 brrt joined #perl6
08:29 virtualsue joined #perl6
08:30 moritz This is perl6 version 2014.10-21-gb9deb95 built on MoarVM version 2014.10 => three spectests in a row are fine
08:30 moritz now trying with moar master
08:31 moritz uhm
08:31 moritz on moar master I get
08:31 moritz Unimplemented spesh ops hit at src/gen/m-CORE.setting:4755  (././CORE.setting.moarvm:Int:3)
08:33 moritz do I have to rebuild rakudo and/or nqp when I switch to a newer MoarVM version?
08:35 mauke joined #perl6
08:38 rurban yes, make clean and rm nqp-m
08:39 rurban rm install/bin/nqp-m
08:39 moritz rurban: thanks
08:45 mauke joined #perl6
08:48 denis_boyun_ joined #perl6
09:00 mauke joined #perl6
09:07 mauke_ joined #perl6
09:10 masak m'n'g, #perl6
09:10 ptc_p6 joined #perl6
09:10 raydiak \o masak
09:13 mauke joined #perl6
09:20 mauke joined #perl6
09:23 mauke_ joined #perl6
09:25 FROGGS joined #perl6
09:33 mauke_ joined #perl6
09:36 fhelmberger joined #perl6
09:46 n0body_ joined #perl6
09:51 rurban joined #perl6
09:52 colomon joined #perl6
09:55 FROGGS timotimo: do you have an idea why we don't get a report file for a --profile run when the profiled code calls exit?
09:57 [Tux] joined #perl6
09:59 pecastro joined #perl6
10:03 sqirrel__ joined #perl6
10:04 FROGGS grondilu: I think I just speed up Draw_a_sphere by 44%
10:08 kurahaupo joined #perl6
10:09 spider-mario joined #perl6
10:10 spider-mario joined #perl6
10:13 cibs joined #perl6
10:23 lizmat thanks to our friendly local computer store, we have mail and DNS again  :-)
10:24 lizmat *phew*
10:24 FROGGS ó.ò
10:32 timotimo FROGGS: we also don't get one when the user code exits with an exception :)
10:34 moritz and I find that pretty annoying
10:35 timotimo agreed, i can patch that, though
10:35 timotimo FROGGS: what's draw_a_sphere?
10:35 moritz because an exception or exit is usually the most convenient way to limit the scope of an otherwise too-long-running process
10:38 timotimo aye.
10:38 FROGGS timotimo: http://rosettacode.org/wiki/Draw_a_sphere#Perl_6
10:38 timotimo FROGGS: is the 44% faster code already there?
10:39 timotimo if not, what did you change? :)
10:39 FROGGS I want to profile a webservice, so I need to exit() at some point
10:39 FROGGS timotimo: not yet
10:39 FROGGS hold on
10:40 timotimo huh, why would you need to open :bin and then >>.chrs?
10:44 timotimo i think i can put an END phaser into the end queue that'd react to an exit
10:46 moritz m: END { say 'end' }; exit
10:46 camelia rakudo-moar 315ec6: OUTPUT«end␤»
10:51 timotimo i don't quite understand why that works, though
10:51 timotimo looking at the code, sub exit just calls nqp::exit($result_code) and nqp::exit is implemented with the regular exit function in moar
10:51 moritz lizmat: the flapping tests seem to be caused by moar; with moar 2014.10-10-gad5ce15 and rakudo/nom + nqp/master, all is fine here
10:52 dalek rakudo/nom: 7474012 | (Tobias Leich)++ | src/core/Any.pm:
10:52 dalek rakudo/nom: add two arg candidates to infix min and max
10:52 dalek rakudo/nom:
10:52 dalek rakudo/nom: This is about 30x faster for the idiom: c = a min b, because we do not
10:52 dalek rakudo/nom: have to allocate a slurpy array just to iterate over it.
10:52 dalek rakudo/nom: For http://rosettacode.org/wiki/Draw_a_sphere#Perl_6 it results in a total
10:52 dalek rakudo/nom: speedup of about 44%.
10:52 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/74740125db
10:52 timotimo oh wow
10:52 timotimo nice!
10:52 moritz now doing the cross-check with latest MoarVM to be sure
10:52 moritz FROGGS++
10:52 FROGGS profiler++
10:53 FROGGS I would not be able in a position to do that without that nice thingy
10:54 moritz FROGGS: sure, but you still deserve a FROGGS++ for actually doing it :-)
10:54 FROGGS ohh, I don't deny that *g*
10:54 moritz my Str.trans optimizations were also guided by the profiler
10:55 moritz FROGGS: btw, do you see a flame graph in the profile?
10:55 FROGGS yes
10:55 moritz last time I tried it, I didn't :(
10:55 moritz I should try again with a new-ish NQP, I think
10:56 FROGGS it is the first time I'd seen it though
10:56 anaeem___ joined #perl6
10:57 anaeem1_ joined #perl6
10:59 moritz lizmat: after cleaning out everything, I don't even get flapping tests with latest moar
10:59 FROGGS I also have no flapping tests btw
11:00 moritz I had them when I did the upgrade without cleaning everything
11:03 xenoterracide joined #perl6
11:05 FROGGS my rebuild scripts (real)clean at every run
11:11 lizmat moritz: what do you mean with "cleaning out everything" ?
11:11 lizmat ah, ok
11:11 * lizmat must still wake up
11:12 * masak has decided he should write a small metacircular evaluator
11:12 timotimo it's the metacircle of life~
11:12 anaeem1 joined #perl6
11:13 * masak .oO( o/~ and it evals us all o/~ )
11:13 * masak .oO( o/~ through syntax and semantics o/~ )
11:13 * masak .oO( o/~ through actions and world o/~ )
11:13 anaeem1_ joined #perl6
11:22 lizmat timotimo: $ perl6 -e 'END { say "last"; exit 43 }; END { say "first"; exit 42 }'; echo $?
11:22 lizmat first
11:22 lizmat last
11:22 lizmat 43
11:22 lizmat END blocka are executed lifo, with the exit code being the last exit() seen
11:23 lizmat I guess we need to make the last exit() value available as some variable so END blocks can react to it
11:23 lizmat moritz: back to one 1 flapper
11:26 * lizmat is going to catch up on some sleep
11:29 Alula joined #perl6
11:31 timotimo the perl6.guide site apparently made quite a splash on the twitterverse
11:38 Juerd There's a .guide tld now too? This madness will never end, will it? :(
11:39 fhelmberger joined #perl6
11:39 tadzik you can havy any tld these days, I think
11:40 fhelmberger_ joined #perl6
11:43 timotimo "gtld" is the name, right?
11:45 panchiniak joined #perl6
11:47 Juerd Yes, cctld's (2 letters) are still reserved for countries
11:47 Juerd For varying definitions of "country"
11:51 ugator joined #perl6
12:03 panchiniak left #perl6
12:05 masak huh, http://perl6.guide
12:05 masak did either of us here know about that?
12:08 woolfy Yes, since 34 minutes when timotimo mentioned it...  :-)
12:08 woolfy timotimo++
12:08 masak heh.
12:10 PerlJam perl6.guide?
12:11 * PerlJam looks
12:11 bartolin masak: peteretep brought it up earlier today: http://irclog.perlgeek.de/perl6/2014-10-29#i_9580764
12:11 PerlJam peteretep++
12:12 bartolin yes, peteretep++ :-)
12:13 JimmyZ joined #perl6
12:14 masak I'm just wondering if there's anyway we can establish some communication between the Perl 6 community/#perl6, and whoever made that site :)
12:14 masak any way*
12:15 PerlJam masak: peteretep says it's his.
12:15 Juerd masak: https://github.com/sheriff/perl6status/
12:16 Juerd A matter of opening issues or sending pull requests I think, even if you couldn't reach him on irc.
12:16 masak that's a good start.
12:16 masak if the channel has proposed changes, I can coordinate them in a gist, and send them off all at once
12:16 tadzik in other news, GCI registration period has opened
12:17 tadzik they only have slots for 12 or so orgs, so we'd have to really prepare well if we hope to participate
12:17 bartolin btw, FROGGS++ discussed the content with peteretep earlier today
12:21 FROGGS tadzik: I already asked mdk if we will try to participate, and he's going to ask dukeleto
12:22 tadzik awesome :)
12:23 colomon tadzik: GCI?
12:24 tadzik google codein
12:25 colomon tadzik: thank you
12:32 rmgk joined #perl6
12:33 FROGGS local deopt: <anon>
12:33 FROGGS src/gen/m-CORE.setting:19038
12:33 FROGGS 303669
12:33 FROGGS that's inside the loop in METAOP_ZIP... can we do something about taht?
12:36 dalek rakudo/nom: b36eb8c | usev6++ | src/core/Perl.pm:
12:36 dalek rakudo/nom: Add freebsd, openbsd and netbsd to $*PERL.DISTROnames for jvm
12:36 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b36eb8c471
12:36 dalek rakudo/nom: 06ef81e | (Tobias Leich)++ | src/core/Perl.pm:
12:36 dalek rakudo/nom: Merge pull request #326 from usev6/nom
12:36 dalek rakudo/nom:
12:36 dalek rakudo/nom: Add freebsd, openbsd and netbsd to $*PERL.DISTROnames for jvm
12:36 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/06ef81eac2
12:45 xtreak joined #perl6
12:46 xtreak perl6: say 3
12:46 camelia rakudo-{parrot,moar} 315ec6: OUTPUT«3␤»
12:51 xenoterracide joined #perl6
13:00 gr33n7007h joined #perl6
13:01 ka05 joined #perl6
13:04 bjz joined #perl6
13:21 guru joined #perl6
13:23 peteretep masak: I was going to update it every month or so
13:23 peteretep masak: You're welcome to just tell me here or do pull commits or whatever
13:24 masak peteretep: oh, that's you. cool!
13:24 kaleem joined #perl6
13:24 masak peteretep: well, first off: good work! peteretep++
13:24 masak peteretep: I'm glad it's someone we have an open channel to.
13:25 peteretep masak: http://blogs.perl.org/users/peter_sergeant/2014/10/perl-6-status.html
13:25 peteretep that was the inspiration
13:26 * peteretep & bed
13:26 masak excellent.
13:27 moritz peteretep: IWBN if your OO link went to http://doc.perl6.org/language/classtut
13:27 leont joined #perl6
13:28 moritz peteretep: and the Junction link to http://doc.perl6.org/type/Junction
13:29 thilp joined #perl6
13:55 xenoterracide joined #perl6
14:01 decafmainline joined #perl6
14:25 thou joined #perl6
14:26 [Coke] trying to build rakudo-moar this morning, it's hanging on "updating submodules"
14:26 * [Coke] was out sick yesterday, sorry I missed a run.
14:29 [Coke] ... after about 20m, it started going again. wtf?
14:32 Ven joined #perl6
14:32 Ven masak: just in case, your post got onto r/programming http://www.reddit.com/r/programming/comments/2kmbwv/goto_statement_considered_awesome/
14:34 brrt masak++ for putting that on youtube
14:35 Ven erm, yapc::eu++ for putting it on youtube :P
14:35 brrt also
14:37 prammer joined #perl6
14:42 chenryn joined #perl6
14:50 Ven oh wow, angularjs2 looks so terrible. I'm glad we started running away already :(
14:52 scumdog joined #perl6
14:52 scumdog left #perl6
14:52 Ven why is web dev. such a joke :(
14:54 thou joined #perl6
14:54 brrt Ven - what is so awful about it? i thought it was interesting
14:55 Ven brrt: I've been doing web dev since I'm, uh, 10, and it's the same (sorry) shitshow. It never stops. People can't stop creating "new hotness!" every two weeks.
14:55 Ven so now, angularjs2 will be written in AtScript which is a superset of TypeScript which is a superset of ES6 which is a superset of ES5.
14:56 Ven They changed every single syntax, so there's *no migration path*. you have to rewrite everything.
14:56 Ven Actually, I'm blaming the web, but it's the js community.
14:57 brrt i see
14:58 sqirrel__ joined #perl6
14:58 brrt i'd argue that the 'brand new thing' syndrome of the web is basically an effect of it's growth
14:58 brrt but that's a difficult argument of epistemology really
14:58 Ven The syndrome has been existing since, what, 1996? And existed in how many languages/communities before?
14:58 spider-mario joined #perl6
14:59 brrt it certainly existed in the perl community at one time
14:59 Ven I was doing "client-side dev" back in 2006/2007 with dhtml goodies. This is nowhere "new"...
14:59 masak I'm not sure why I decided to read those reddit comments. I actually know better than that.
14:59 masak anyway, they didn't seem to be about my talk :)
15:00 Ven masak: one guy is even talking about "I Robot" Oo
15:00 brrt basically, you get this whenever the growth of a community exceeds the knowledge dissemination capacity of a community
15:00 brrt it happens in life sciences just as well, for example, or in psychology
15:00 masak interesting take on it.
15:01 Ven It's definitely true.
15:01 Ven It's just that, as someone with (currently) a $dayjob, I'm tired of it ;-)
15:01 masak anyway. going back to writing my metacircular evaluator. :)
15:01 masak I just finished cons. lambda is up next.
15:02 brrt nice
15:02 masak has anyone done this in Perl 6 before?
15:02 * Ven still maintains a phpBB fork from 2007 and a cms from 2008...
15:02 Ven masak: you mean, a lisp :P?
15:02 masak I'd like to think this is the first metacircular Lisp written in Perl 6.
15:02 masak well, once I close the loop it will be.
15:03 guru joined #perl6
15:03 Ven #1=(masak . #1) :P
15:06 PerlJam masak: watching your talk and guessed Niklaus Wirth with absolutely no difficulty ;)
15:07 masak PerlJam: for some reason, when I think about it, I have you as someone who would know that.
15:08 PerlJam masak: Are you saying I'm old?!?  ;)
15:09 masak :P
15:09 masak I'm saying you seem to know your stuff.
15:09 * brrt misguessed to alan kay
15:09 * masak .oO( a developer Wirth his salt )
15:10 masak brrt: Alan Kay invented the term "Object Oriented", so that everyone could misunderstand it
15:10 PerlJam you know what's kinda sad?  I've been talking with the local University CS club lately and even the highly involved, smart programmer types had no idea who Dijkstra was, or Wirth, or even what the CACM is.
15:10 geekosaur a Wirthy developer?
15:10 masak PerlJam: that *is* sad.
15:10 PerlJam They also didn't know about GSoC even though I tend to mention it on the csclub mailing list every year.
15:10 Ven masak: yeah, well, to be fair, java stole it and rebranded it..
15:11 brrt that is said PerlJam
15:11 brrt ugh s/id/d/
15:11 masak Ven: Java carries much of the blame, but far from all of it, IIUC.
15:11 masak Ven: C++ had done its part at that point already.
15:12 Ven masak: sure. I just get the weird looks when I say "java isn't OO"
15:12 timotimo at least in c++ you can do stuff without classes :)
15:12 Ven masak: also, a lot of people think I'm a script kiddie when I say I don't like OO, like I've never tried it and I just use imperative functions
15:12 masak Ven: but the main thing I think is that there is a whole lot of ceremony that's (a) easy to explain/transmit/propagate, but that (b) isn't what OO is about.
15:13 brrt i tend to view java as oo
15:13 brrt but then, i tend to view oo as something of an extension of closures
15:13 brrt i.e. closures being really simple objects
15:13 * masak .oO( here's a nickel. go buy yourself a real programming language )
15:13 masak brrt: agree about OO and closures having a lot in common.
15:13 Ven brrt: java doesn't have closures
15:14 Ven or, at least, didn't have them for sooo long.
15:14 masak Ven: it does now.
15:14 Ven ^
15:14 masak as of Java 8, as of this year.
15:14 Ven which is what said my last message, basically :P
15:14 masak but that's beside the point.
15:14 brrt java can't have 'real' closures due to the stackmachine architecture they shoehorned themselves into
15:14 Ven yeah, the jvm is terrible and is giving them a hard time to implement stuff now :P
15:14 masak the point is that there's an isomorphism between objects and closures.
15:15 Ven The whole reason java has factories is because it doesn't have closures...
15:16 Ven Java has static properties. Java has arrays. Java has primitives. Java has overloading. Java didn't have closures (/as first-class values) for 20 years.
15:16 Ven Java is early-bound. Java is... not oo.
15:18 masak I've never thought about it like this before, but when we write 'x in Lisp, that's kind of like using barewords in Perl.
15:19 masak so Lisp has a "sigil" for barewords, whereas it uses variables sigilless. the opposite of what Perl does.
15:20 PerlJam masak++ thanks for sharing; I'd never thought of it that way before either :)
15:20 [Coke] rakudo-moar-jit failed 1056 tests today; nojit? failed 1
15:20 geekosaur ...and you're emulating that with \foo
15:21 * masak still has not started using foo at all
15:21 * masak is a bit of a late adopter to some Perl 6 newnesses
15:21 timotimo damn ... what did i do wrong this time, [Coke]? :(
15:22 Ven \foo?
15:22 ajr joined #perl6
15:22 timotimo m: my \foo = 10; say foo; foo = 120; say foo;
15:22 camelia rakudo-moar 315ec6: OUTPUT«10␤Cannot modify an immutable Int␤  in block <unit> at /tmp/RogLsHZ4G9:1␤␤»
15:22 Ven oh, that one.
15:22 timotimo ^- has no scalar
15:22 PerlJam btw, at some point in your goto talk you talked about composability and black boxes.  Wouldn't it be neat if, in some distant future, CS education is mostly about manipulating high-level constructs and that they'd have a class that breaks them down into low-level components to finally reveal "goto"  (much like physicists broke apart atoms to reveal protons/electrons and then finally quarks)
15:23 PerlJam masak: ^^^
15:23 Ven masak: I don't know perl5, but 'a and "a" have different types
15:25 [Coke] parrot is just failing S19-command-line/dash-e.t 2,3 - need a ticket for this and have them fudged for os x.
15:27 [Coke] nqp: f54c1a1; moarvm: ad5ce15
15:27 camelia nqp-{moarvm,parrot}: ( no output )
15:27 camelia ..nqp-jvm: OUTPUT«(signal ABRT)»
15:27 masak PerlJam: I think you would really appreciate the http://nand2tetris.org/ project.
15:27 [Coke] ^^ Probably shouldn't ABORT, no?
15:28 bartolin [Coke]: there is already RT #111572 for failures in S19-command-line/dash-e.t with rakudo.parrot on Mac OS X
15:28 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=111572
15:29 [Coke] bartolin: then we need to fudge those tests for OS X.
15:29 [Coke] er, osx/parrot
15:29 bartolin [Coke]: but we don't have a way to fudge for a specific OS, do we?
15:31 kjs_ joined #perl6
15:34 [Coke] fudge, no, but you can still todo tests the old fashioned way. need to combine the parrot-only fudge with a "if ~$*DISTRO eq "macosx" to get the todo. PITA.
15:35 bartolin [Coke]: I see. if only we could use parrot 6.9.0; the failures should go away with that version
15:36 [Coke] why can't wwe?
15:36 gtodd joined #perl6
15:36 [Coke] here's a sample with a skip: https://github.com/perl6/roast/blob/master/S32-io/IO-Socket-Async.t#L12
15:36 treehug88 joined #perl6
15:37 [Coke] but if it's something where we can bump the parrot requirement and get a fix, let's do that instead.
15:37 moritz [Coke]: because parrot 6.9 introduces some GC bugs that make have of the spectests segfault
15:37 [Coke] is rurban aware?
15:38 moritz [Coke]: yes
15:38 bartolin btw, my daily spectests on a freebsd box don't show any problems with moar-jit: https://github.com/usev6/perl6-roast-data/blob/master/perl6_pass_rates.csv
15:38 [Coke] could very well be os x only issues.
15:39 bartolin [Coke]: I have the GC bugs on linux with parrot 6.9.0
15:40 [Coke] Ok, then we'll need to fudge those tests, since we'll probably have to wait for 6.10
15:41 bartolin I could do that later today (hopefully)
15:41 [Coke] bartolin++
15:44 * Ven is doing some ios-c# code and is feeling a bit mixed...
15:46 Ven erm, I can't english. sorry.
15:48 FROGGS joined #perl6
16:00 masak I'm pretty sure I found something in http://lib.store.yahoo.net/lib/paulgraham/jmc.ps that doesn't actually work.
16:01 masak that is, an expression given among the examples that the metacircular evaluator on page 8 won't know how to deal with.
16:02 masak hm, no. wait. I'm wrong.
16:02 masak gee, this is gnarly. :)
16:03 dalek cpandatesters.perl6.org: 11f02bb | (Tobias Leich)++ | app.pl:
16:03 dalek cpandatesters.perl6.org: only (dis)connect once to mysql
16:03 dalek cpandatesters.perl6.org: review: https://github.com/perl6/cpandatesters.perl6.org/commit/11f02bb004
16:03 masak but beautiful.
16:03 timotimo FROGGS: bug y u mysql? :(
16:03 masak yes, I take it back. it works out. pg++
16:04 FROGGS timotimo: humm?
16:04 xenoterracide joined #perl6
16:04 timotimo er
16:04 timotimo but y u mysql
16:05 FROGGS it... works
16:05 timotimo but not as good as postgres does
16:05 zakharyas1 joined #perl6
16:05 timotimo don't proliferate mysql usage as the default! :(
16:05 FROGGS well, it is "my" service that probably I am the only one caring about... so I can choose what I want :o)
16:06 timotimo HOSTILE TAKEOVER! :P
16:06 FROGGS :P
16:07 guru joined #perl6
16:08 anaeem1 joined #perl6
16:11 * masak just got bitten by flattening :/
16:13 MilkmanDan joined #perl6
16:14 moritz masak: bite back!
16:15 masak I was defining a function called `evlis` (just as in the .ps above). implementation was simple: just map over the elements and eval() them. some of the results came back as arrays. they were promptly flattened.
16:15 masak so I should've written eval().item
16:15 ajr joined #perl6
16:16 ajr joined #perl6
16:18 ajr_ joined #perl6
16:19 MilkmanDan joined #perl6
16:23 * japhb tries to imagine what 'HOSTILE'
16:23 japhb ... looks like in #perl6
16:24 japhb Maybe it's like feeding magwai after midnight
16:32 timotimo http://homeopathycenter.org/news/ebola-crisis-homeopathic-community - just what?
16:46 kaleem joined #perl6
16:57 ajr_ joined #perl6
16:59 thou joined #perl6
17:01 ajr_ joined #perl6
17:06 gfldex joined #perl6
17:07 dwarring joined #perl6
17:08 anaeem1_ joined #perl6
17:17 sqirrel__ joined #perl6
17:17 * grondilu notices compilation is painful today
17:19 rurban joined #perl6
17:23 anaeem1 joined #perl6
17:32 guru joined #perl6
17:33 dalek perl6-roast-data: e697800 | coke++ | / (5 files):
17:33 dalek perl6-roast-data: today (automated commit)
17:33 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/e697800e8c
17:38 molaf joined #perl6
17:39 TimToady grondilu: doesn't look notably slower to me...background tasks?
17:39 TimToady also, have a working sphere now
17:42 grondilu yeah, maybe background tasks.  It usually does not matter that much, though.
17:43 timotimo i'd like to discuss what would be necessary to ship farabi6 with rakudo star
17:46 dalek Perlito: e8398b1 | (Flavio S. Glock)++ | / (3 files):
17:46 dalek Perlito: Perlito5 - parser - tweak qr() AST
17:46 dalek Perlito: review: https://github.com/fglock/Perlito/commit/e8398b1c1b
17:49 sqirrel_ joined #perl6
17:49 FROGGS_ joined #perl6
17:52 jack_rabbit joined #perl6
17:59 bjz joined #perl6
18:05 timotimo https://github.com/timo/SDL2_raw-p6 - what do i have to change to make this build properly? it complains about not being able to merge globals together, failing at TIMER, which is just the very first symbol, i believe
18:05 timotimo do i have to put "package blah;" at the beginning of every file to make it work better?
18:06 timotimo i know i could make it work by putting everything into a single file, but i'd prefer to keep stuff separated here
18:08 timotimo actually, SDL_DisplayMode or SDL_Window ought to come earlier
18:15 [particle]1 joined #perl6
18:20 TimToady grondilu: fixed your sphere
18:27 timotimo sphere? is that about the rosettacode thingie?
18:28 timotimo oh, also: with the cairo and gtk simple modules, a whole lot more tasks should be implementable on rosettacode now
18:28 timotimo (not volunteering right now ...)
18:30 timotimo would anyone check out my sdl2 binding module please?
18:32 grondilu oh yeah, using a Blob.  I should have thought about that.
18:36 Sqirrel joined #perl6
18:45 grondilu I still can't install NativeCall on my 32bit machine.  Because of 'int' being considered 64 bits by default.  So in the test files things go wrong unless I change them to 'int32'
18:47 Sir_Ragnarok joined #perl6
18:48 Sir_Ragnarok Spellings mistake on http://www.perlfoundation.org/perl6/index.cgi?perl_6_tutorial_part_1 s/promt/prompt/
18:49 Sir_Ragnarok that page looks a bit like a wiki. Can I edit it if I register?
18:50 nine_ timotimo: reading homeopaths talk about "empirical" and "clinical trials" really freaks me out...
18:52 zjmarlow joined #perl6
18:52 zjmarlow left #perl6
18:52 NotJack joined #perl6
18:52 timotimo it's kinda weird, aye
18:52 NotJack So I was looking at the Email::Simpler::Header module
18:53 NotJack and I saw     loop (my $x=0;$x < +$headers;$x+=2) { @folded-headers.push([$headers[$x], $headers[$x+1]]);  }
18:53 timotimo weren't we looking to kill off the perlfoundation.org/perl6 wiki?
18:53 vendethiel timotimo: I think so
18:53 NotJack Is there no supercool Perl5 idiom to turn an array into a hash?
18:53 NotJack or at least some kind of terse implicit loop?
18:53 timotimo there is
18:53 NotJack Perl6 I meant
18:53 vendethiel Sir_Ragnarok: this tutorial is incredibly outdated. 2005 or so
18:53 timotimo yeah, i meant that, too :)
18:53 vendethiel I can tell from the prefix:<=> operator :)
18:54 timotimo m: my @headers = <foo bar baz quux>; say %(@headers).perl;
18:54 camelia rakudo-moar 315ec6: OUTPUT«("baz" => "quux", "foo" => "bar").hash␤»
18:54 timotimo easy as that
18:54 NotJack Cool.
18:54 NotJack Is there a reason that the loop is explicit in that module, or just plain old muscle memory?
18:54 timotimo no idea
18:54 timotimo i don't know who wrote that
18:54 colomon NotJack: looks like antique code to me.
18:55 timotimo also, that thing makes a list of lists
18:55 timotimo rather than a hash
18:55 nine_ NotJack: headers can occur more than once
18:55 Sir_Ragnarok vendethiel: seems like it yes. This one seems more upt to date: http://perl6maven.com/tutorial/toc
18:55 NotJack ahhh .. maybe that's what I was missing
18:55 vendethiel Sir_Ragnarok: self-plug: learnxinyminutes.com/docs/perl6
18:55 NotJack nine_: yeah, I think I'm just misunderstanding the purpose of the code
18:55 NotJack Let me go back and re-read it. Just stuck out at me.
18:55 timotimo NotJack: but even then, that code would look better like this:
18:56 colomon JSON::Tiny failed this morning in the smoke test?
18:56 timotimo m: my @stuff = <foo bar baz quux a b c d>; my @lol = do for @stuff -> $a, $b { [$a, $b] }; say @stuff.perl
18:56 camelia rakudo-moar 315ec6: OUTPUT«Array.new("foo", "bar", "baz", "quux", "a", "b", "c", "d")␤»
18:56 timotimo er, huh?
18:56 Sir_Ragnarok vendethiel: oh are you the person behind that website? Nice work.
18:56 vendethiel Sir_Ragnarok: not the website itself
18:56 timotimo m: my @stuff = <foo bar baz quux a b c d>; my @lol = do for @stuff -> $a, $b { $($a, $b) }; say @stuff.perl
18:56 camelia rakudo-moar 315ec6: OUTPUT«Array.new("foo", "bar", "baz", "quux", "a", "b", "c", "d")␤»
18:57 NotJack timotimo: :you want @lol.perl
18:57 timotimo haha
18:57 Sir_Ragnarok but the perl6 page?
18:57 timotimo yes :)
18:57 timotimo m: my @stuff = <foo bar baz quux a b c d>; my @lol = do for @stuff -> $a, $b { [$a, $b] }; say @lol.perl
18:57 camelia rakudo-moar 315ec6: OUTPUT«Array.new(["foo", "bar"], ["baz", "quux"], ["a", "b"], ["c", "d"])␤»
18:57 timotimo there we go.
18:57 timotimo another way to do it:
18:57 timotimo m: my @stuff = <foo bar baz quux a b c d>; my @lol = @stuff.rotor(2, 0).lol; say @lol.perl
18:57 camelia rakudo-moar 315ec6: OUTPUT«Array.new(ListIter.new())␤»
18:57 timotimo m: my @stuff = <foo bar baz quux a b c d>; my @lol = @stuff.rotor(2, 0).lol; say @lol.list.perl
18:57 camelia rakudo-moar 315ec6: OUTPUT«Array.new(ListIter.new())␤»
18:57 timotimo derp.
18:58 timotimo m: my @stuff = <foo bar baz quux a b c d>; my @lol = @stuff.rotor(2, 0); .perl.say for @lol
18:58 camelia rakudo-moar 315ec6: OUTPUT«$("foo", "bar")␤$("baz", "quux")␤$("a", "b")␤$("c", "d")␤»
18:58 timotimo there.
18:58 vendethiel Sir_Ragnarok: yes, I did the perl 6 page.
18:58 vendethiel Sir_Ragnarok: also a few others, and I review every single french tutorial :P
18:58 davido_ joined #perl6
19:00 Sir_Ragnarok vendethiel: Good work nonetheless, it looks nice. Je l'aime.
19:00 vendethiel Sir_Ragnarok: merci beaucoup!
19:00 Sir_Ragnarok :-)
19:01 vendethiel .oO( are there so many french idioms in this you feel the need to speak french with me? )
19:02 * colomon is very puzzled whiy Email::Simple::Header.new has Array $headers as an argument instead of, you know, @headers
19:02 * FROGGS_ .oO( $feaux %bar @baz - it's all in there )
19:05 treehug8_ joined #perl6
19:08 tony-o joined #perl6
19:10 FROGGS[mobile] joined #perl6
19:11 thou joined #perl6
19:15 timotimo well, who administers the perlfoundation.org perl6 wiki?
19:17 xenoterracide joined #perl6
19:20 xenoterracide_ joined #perl6
19:22 timotimo http://rosettacode.org/wiki/Hello_world/Graphical#Perl_6 ← should be very easy to implement this with GTK::Simple
19:26 * colomon wonders if he try to install GTK again on his Mac
19:26 colomon try again to install GTK, I mean
19:27 timotimo colomon: if that doesn't work, why not try something easier ... like helping me with my SDL2_raw module? :S
19:28 colomon link?  ;)
19:28 * colomon really should work, but is at least curious….
19:29 virtualsue joined #perl6
19:32 fhelmberger joined #perl6
19:32 Ulti ok.... so my tests now take 8s instead of 32s!!!
19:33 Ulti everyone++
19:36 masak does anyone have a catchy name to go with my metacircular Lisp evaluator written in Perl 6?
19:38 ivanshmakov joined #perl6
19:41 PerlJam masak: mele
19:41 vendethiel masak: Eppsil
19:41 masak hm... :)
19:42 vendethiel Circalingua
19:43 PerlJam vendethiel: oh, I like that one if only it could be made palindromic or something.
19:43 geekosaur ellispe?
19:45 * masak toys with the names "coLisp" and "Yoneda"
19:45 vendethiel masak: yoneda is already taken! :P
19:45 masak dang.
19:45 masak shoulda known.
19:45 vendethiel yonedas are cool!
19:45 * masak .oO( Yoneda be faster if you want a good name )
19:45 * vendethiel 's getting a t-shirt a "I <3 isomorphisms"
19:46 masak vendethiel: yonedas are the best. so represent.
19:46 vendethiel much morphisms
19:46 masak very universality
19:46 PerlJam masak: "adenoy" then
19:47 masak "ipso" ain't that bad
19:50 zakharyas joined #perl6
19:51 anaeem1 joined #perl6
19:52 * NotJack is back
19:52 timotimo Ulti: what kind of thing is that that's so much faster now?
19:52 NotJack timotimo: thanks
19:53 timotimo colomon: https://github.com/timo/SDL2_raw-p6
19:54 NotJack FYI, Email::Header::Simple is advertised by https://github.com/sheriff/perl6status/ as an exemplar of the modules already available for p6
19:54 NotJack might be worhtwhile making it as impressive / idiomatic as possible
19:55 * lizmat logs back
19:55 NotJack it has the old-style loop, some uncertainty expressed in comments, et
19:55 NotJack c
19:56 masak or maybe pick some other exemplars :)
19:56 masak JSON::Tiny is quite nice, for example
19:57 NotJack That's a good candidate
19:57 NotJack any exemplars picked should have names which indicate the time/effort commitment to review them is small
19:57 NotJack (which is why I picked Email::Simple::Headers)
19:58 Ulti timotimo: not sure I will do a benchmark to compare to the one I ran a while ago
19:58 Ulti I imagine it will be something listy
19:58 anaeem1 joined #perl6
19:59 xenoterracide joined #perl6
20:01 Ulti *profile :P
20:02 Sir_Ragnarok perl ./Configure.pl --gen-parrot --gen-parrot-option=--optimize should be
20:02 Sir_Ragnarok perl ./Configure.pl --gen-parrot --parrot-option=--optimize
20:02 Sir_Ragnarok ^ on http://rakudo.org/how-to-get-rakudo/
20:03 Ulti timotimo http://mattoates.co.uk/files/perl6/ those are all the exact same code
20:03 Sir_Ragnarok small mistake there. Also no matther what the Configure.pl script fails for me.
20:03 [Sno] joined #perl6
20:03 Sir_Ragnarok "compilation failed with 'cc'"
20:04 Sir_Ragnarok gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1)
20:05 lizmat m: say (1,2,3,4,5) min 4   # huh??
20:05 camelia rakudo-moar 315ec6: OUTPUT«1␤»
20:05 Ulti timotimo: so there are 10% more JIT'd frames
20:05 lizmat $ 6 'say (1,2,3,4,5) min 4'
20:05 lizmat 1 2 3 4 5
20:06 lizmat something changed here with FROGGS++ min / max changes
20:06 lizmat not sure if they are for the better?
20:06 rindolf joined #perl6
20:09 Ulti well an extra 10% of the code is JIT'd more specifically
20:09 lizmat .tell pmichaud re http://irclog.perlgeek.de/perl6/2014-10-28#i_9577937 , I think that would be an excellent plan
20:09 yoleaux lizmat: I'll pass your message to pmichaud.
20:12 timotimo Ulti: ah, the bioinformatics thing, i remember that now
20:12 dalek roast: 640aee1 | usev6++ | S19-command-line/dash-e.t:
20:12 dalek roast: Unfudge passing tests for JVM, mark known failures for Parrot on Mac OS X manually as todo
20:12 dalek roast: review: https://github.com/perl6/roast/commit/640aee1582
20:16 bartolin [Coke]: I didn't manage to skip the test failures on Mac OS X with 'emit'. instead I used a simple if/else construct. (I hope that's better than having the failures)
20:19 bartolin [Coke]: also I don't think the example from https://github.com/perl6/roast/blob/master/S32-io/IO-Socket-Async.t#L12 works as intended. AFAIU it doesn't run the test in question at all (skipped for macosx, nothing done at all for other platforms which leads to a wrong test count)
20:22 pecastro joined #perl6
20:30 majuscule joined #perl6
20:31 majuscule Can someone point me in the right direction to understand this error message? http://sprunge.us/WEUi
20:31 majuscule very confused
20:32 lizmat it's LTA alright
20:34 timotimo apparently pack lacks proper support for H*?
20:35 timotimo so far i thought pack was mostly NYI
20:37 geekosaur actually I am confused, wouldn't that be unpack? (and I feel like it's trying to process the string as a rational of some kind?)
20:37 majuscule erm, what are all of these acronyms
20:37 geekosaur LTA=less than awesome, NYI = not yet implemented
20:37 moritz majuscule: see http://perlcabal.org/syn/S99.html
20:37 majuscule i see, thanks
20:39 masak std: my %h = not => 42;
20:39 camelia std 14ad63b: OUTPUT«ok 00:00 137m␤»
20:39 majuscule geekosaur: it's unpacking a base64 string (which happens to be ascii once decoded)
20:39 masak m: my %h = not => 42;
20:39 camelia rakudo-moar 315ec6: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/uZK1u3tWdgâ�¤Malformed initializerâ�¤at /tmp/uZK1u3tWdg:1â�¤------> [32mmy %h = not [33mâ��[31m=> 42;[0mâ�¤    expecting any of:â�¤        scoped declaratorâ�¤        constraintâ�¤        prefix…»
20:39 * masak submits rakudobug
20:39 masak m: my %h = 'not' => 42; # workaround
20:39 camelia rakudo-moar 315ec6: ( no output )
20:39 pecastro joined #perl6
20:41 geekosaur I always get pack/unpack of H backwards, sigh
20:47 timotimo well, we do have a base64 decoding module
20:47 NotJack is there a p6 one-liner for rot13?
20:47 NotJack the top hits in Google are pretty vanilla
20:48 NotJack nm, found what I wanted
20:48 [Coke] bartolin: the main issue with that is now we have duplicated tests. Given that it's a workaround until the test is fixed, I'm ok, though.
20:54 dalek roast: c7d9b73 | moritz++ | S (4 files):
20:54 dalek roast: Rakudo unfudges
20:54 dalek roast:
20:54 dalek roast: only tested on MoarVM
20:54 dalek roast: review: https://github.com/perl6/roast/commit/c7d9b734a6
20:54 lizmat FROGGS_: re close-pipe: I'm more inclined to create an IO::Pipe subclass of IO::Handle, and have any open() with :p return such an object
20:54 lizmat and have close-pipe just be .close in there
20:54 lizmat thoughts ?
20:56 dalek roast: bca6134 | usev6++ | S02-literals/autoref.t:
20:56 dalek roast: Add tests for RT #76462
20:56 dalek roast: review: https://github.com/perl6/roast/commit/bca6134945
20:56 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=76462
20:59 lizmat japhb: re http://irclog.perlgeek.de/perl6/2014-10-29#i_9579981 , there are tests like that in roast marked as "skipped"
20:59 lizmat it hasn't helped jnthn so far yet  :-(
20:59 lizmat more eyes are always appreciated though  :-)
21:01 [particle] joined #perl6
21:09 jac50 joined #perl6
21:19 treehug88 joined #perl6
21:21 jac50 joined #perl6
21:23 grondilu TimToady: my attempt to draw the sphere in real time:  spawning a drawing process every 10s and computing the pixels in random order:  https://gist.github.com/grondilu/ab824d3fbeaf54f9f9ba
21:24 grondilu I could not find any other way than $*SCHEDULER to do something on a regular interval.
21:25 timotimo grondilu: Supply.every() or something should give you an interval
21:26 grondilu probably.  I have hard time understanding Supply, though.
21:26 timotimo do you have any particular questions?
21:26 grondilu I guess I'll have to read S17 again and again
21:27 grondilu timotimo: no particular question.  It's just that last time I tried to use it, I failed miserably.
21:27 timotimo ah, hehe
21:27 timotimo what was your failure mode?
21:28 grondilu it was "I have no idea what I'm doing" mode
21:29 lizmat grondilu: not sure whether the :stop really does what you think it does there
21:29 lizmat Supply.interval(10).act: { my $out = .... }
21:29 lizmat would also worked, apart from the stopping but
21:30 lizmat *bit
21:30 grondilu oh yeah
21:30 grondilu :stop(!@pixels), right?
21:30 lizmat the idea of :stop is that you specify a variable that is going to be checked for truthness
21:30 grondilu meaning:  stop whenever there's no more pixels
21:31 lizmat S17:208
21:31 synopsebot Link: http://perlcabal.org/syn/S17.html#line_208
21:31 grondilu it's still a named parameter so it does not have to be a variable but an expression, doesn't it?
21:31 timotimo ah, in that case +@pixels wouldn't work, as it'll be turned into a number at the very beginning and never change again
21:31 lizmat yup
21:32 grondilu indeed, thus my second :stop(!@pixels) proposal
21:32 lizmat perhaps we need to check that somehow, although I wouldn't know how
21:32 timotimo why would |@pixels work?
21:32 lizmat the current implementation is *not* a piece of code to execute
21:33 lizmat in p5 terms, it takes the ref of the value and checks the value
21:33 timotimo oh
21:33 grondilu ok
21:33 timotimo yeah, that's not what it does in p6 at all
21:33 timotimo oh, wait, that's not for prefix:<|>, right?
21:34 lizmat ah, actually, :stop is completely NYI
21:35 lizmat and coming to think about it: the way it is specced now is not very p6ish  :-)
21:35 grondilu indeed, just tried to use $stop and got:
21:35 grondilu !Unhandled exception in code scheduled on thread 2995772224
21:36 lizmat Ideally, :$stop should be syntactic sugar for :stop( { $stop } )
21:36 timotimo oh, hmm
21:36 masak "Too few positionals passed; expected 1 to 0 arguments but got 0 in sub-signature" -- that's a somewhat LTA error message...
21:36 vendethiel :o)
21:37 timotimo pff. if nobody would like to help me with my sdl2 module, i'll just make a dumb workaround and continue working on stuff
21:39 tgt joined #perl6
21:40 BenGoldberg joined #perl6
21:40 tgt joined #perl6
21:43 dalek specs: b4aedd1 | (Elizabeth Mattijsen)++ | S17-concurrency.pod:
21:43 dalek specs: $*SCHEDULER.cue takes a callable as :stop
21:43 dalek specs: review: https://github.com/perl6/specs/commit/b4aedd1c51
21:45 tgt Hi. I finally heard back from Apple about the "make: write error" issue that moritz worked around. They closed it and said they have no plans to address the issue.
21:46 grondilu here is an other version without $*SCHEDULER: https://gist.github.com/grondilu/ab824d3fbeaf54f9f9ba
21:46 rurban joined #perl6
21:47 * masak is lost in a sea of abstract syntax trees, which are lists
21:47 grondilu basically my @pixels; my $compute = start { # compute pixels }; until $compute { draw @pixels; sleep 1; }
21:51 grondilu that makes me think that when doing concurrent programming, there are especially more than one way to do things.
21:57 * masak got bitten by a misplaced ')' in his Lisp
21:57 masak I should've noticed immediately: it should be ')))))))', not '))))))))'!
21:58 masak though massive props to vim++ for highlighting the stuff very sensibly
21:59 lizmat tgt++   Apple--
22:00 mauke masak: what triggers that signature error?
22:00 masak mauke: something deep inside an errant execution. I didn't bother to find out, exactly.
22:01 masak m: sub foo([$head, *@tail]) {}; foo([])
22:01 camelia rakudo-moar 315ec6: OUTPUT«Too few positionals passed; expected 1 to 0 arguments but got 0 in sub-signature␤  in sub foo at /tmp/NxZ2a2HEF6:1␤  in block <unit> at /tmp/NxZ2a2HEF6:1␤␤»
22:01 masak ...but that seems to do it.
22:01 * masak submits rakudobug
22:03 masak m: say 0 ~~ 1..0
22:03 camelia rakudo-moar 315ec6: OUTPUT«False␤»
22:04 masak ;)
22:04 grondilu lizmat: shouldn't :stop take a thunk or something?
22:04 dalek rakudo/nom: 2ca414c | (Elizabeth Mattijsen)++ | src/core/ThreadPoolScheduler.pm:
22:04 dalek rakudo/nom: Implement $*SCHEDULER.cue(:stop)
22:04 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/2ca414c05f
22:04 lizmat grondilu: I just changed the spec and implemented it that way
22:05 grondilu k
22:10 dalek specs: dcada73 | (Elizabeth Mattijsen)++ | S17-concurrency.pod:
22:10 dalek specs: Mention Cancellation object returned by .cue
22:10 dalek specs: review: https://github.com/perl6/specs/commit/dcada73c03
22:15 * timotimo is stumbling over a use-after-free on moar :\
22:16 timotimo panda rebootstrap with many modules and then rebootstrapping ... omg
22:17 lizmat ??
22:17 lizmat breakage ?
22:17 timotimo aza
22:17 timotimo yes, breakage
22:17 timotimo absolute explosive breakage
22:17 lizmat modules such as?
22:18 timotimo ==> Reinstalling NativeCall GTK::Simple Cairo Farabi6
22:18 timotimo that's not terribly many
22:19 timotimo well, there's some extra dependencies
22:21 timotimo the fetch stage for farabi6 is painful anyway ... as it includes a bunch of javascript and html and css files
22:21 MilkmanDan joined #perl6
22:21 timotimo but with asan added i's even slower ;(
22:22 timotimo hm. now it doesn't explode any more. maybe because i compiled with --optimize=1?
22:23 anaeem1 joined #perl6
22:25 tgt m: END { say "A"; exit 1 }; END { say "B"; exit 2 }; END { say "C"; exit 3 }
22:25 camelia rakudo-moar 315ec6: OUTPUT«C␤B␤»
22:25 tgt Should print C␤B␤A␤ and exit 1, I think?
22:25 tgt Only the last two END blocks with an exit get executed.
22:26 tgt (Or rather, if there're two END blocks with an exit, no preceeding END blocks get executed.)
22:27 lizmat tgt: intriguing
22:28 lizmat the first exit() will cause END blocks to be executed: the following exit()s will just change the exit value
22:29 lizmat hmmm...
22:30 * timotimo suspects adding a short circuit to the if/elsif tree for farabi6's route dispatch to fall through for /assets/ would make startup quite a bit faster
22:30 timotimo my browser is quite unhappy about the resulting html file from that profiler run :\
22:30 * lizmat goes to investigate
22:34 timotimo ugh, the profile seems to say that almost all time is spent in trying to accept another connection on the listen socket :\
22:34 timotimo 73.37%
22:35 smls joined #perl6
22:35 lizmat this feels like an issue similar to signal handling
22:35 japhb lizmat, re: http://irclog.perlgeek.de/perl6/2014-10-29#i_9584520 all I can say is: >.<
22:35 japhb Dangital
22:37 kjs_ joined #perl6
22:37 * japhb wonders how to better help
22:37 gfldex joined #perl6
22:39 * masak is now delightfully confused, lost somewhere between levels in his metacircular evaluator
22:39 masak I'm like > < this close to getting it all to work.
22:39 masak the stacktraces at this point are not of this world.
22:40 masak and the debug output is basically useless, because everything comes down to the &eval function calling itself over and over and over
22:40 lizmat .oO( for bonus: implement a skyhook with stacktraces)
22:41 masak ah; found another misplaced parenthesis.
22:41 masak since parentheses are the only syntax in Lisp, the only logical bug you can introduce is to misplace them.
22:43 Sqirrel joined #perl6
22:45 dalek rakudo/nom: b6b1b7c | (Elizabeth Mattijsen)++ | src/core/control.pm:
22:45 dalek rakudo/nom: Handle exit() within END blocks better
22:45 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b6b1b7cb22
22:45 lizmat tgt:  ^^^ should fix your problem
22:45 lizmat the only thing that is technically wrong atm, is that any code *after* the second exit in a block, will still be executed
22:46 lizmat $ perl6 -e 'END { say "A"; exit 1; say "foo" }; END { say "B"; exit 2 }'; echo $?
22:46 lizmat B
22:46 lizmat A
22:46 lizmat foo
22:46 lizmat 1
22:48 masak haha. running the test suite now makes the fan start up :)
22:48 lizmat so perhaps this fix is just wrong....
22:49 masak the toughest test is doing recursion *inside* the eval from the setting; that is, running entirely inside the Lisp.
22:59 dalek roast: 508eb10 | (Elizabeth Mattijsen)++ | S17-scheduler/every.t:
22:59 dalek roast: Test cancellation of cued code
22:59 dalek roast: review: https://github.com/perl6/roast/commit/508eb1056f
23:06 timotimo if somebody wants a worthwhile optimization opportunity: https://github.com/supernovus/perl6-http-easy/blob/master/lib/HTTP/Easy.pm6#L57
23:06 timotimo that piece, the part that looks for crlfcrlf ... that seems extremely unperformant
23:06 timotimo and the concatenations of buffers like that, too
23:06 timotimo by turning them into lists for every received chunk
23:07 timotimo actually, let me first check out if that loop even runs its body more than once in the common case
23:08 masak ladies and gentlebots,
23:08 masak I give you Ipso, the metacircular Lisp written in Perl 6.
23:08 masak https://github.com/masak/ipso
23:09 masak less than 200 lines of code.
23:10 timotimo ah, it only ever does one round of that thing. i should time it more closely, then.
23:10 masak and 75 of those lines are for defining a setting of functions (in the Lisp) for the built-in eval to use.
23:11 dalek roast: b46b2fd | (Elizabeth Mattijsen)++ | S17-scheduler/every.t:
23:11 dalek roast: Add tests for .cue( :every, :stop )
23:11 dalek roast: review: https://github.com/perl6/roast/commit/b46b2fdeb3
23:12 * timotimo is looking for more optimization opportunities in that module
23:12 masak possible future directions:
23:12 masak (a) lexical scoping -- currently it's dynamic, which is not so nice
23:13 masak (b) macros -- requires (a), pretty much
23:13 davido_ joined #perl6
23:13 masak (c) an ALGOL-like syntax on top of the language... turning it into Dylan, I guess
23:14 lizmat masak++ for (())(())(()()())((((((((((()))))))))))
23:15 masak I think I've had my share of parentheses today... :P
23:15 * lizmat too
23:16 masak I'm pretty sure the Perl 6 version of the eval function can be written more idiomatically.
23:16 * lizmat continues working on reducing her sleep deficiency
23:16 masak Lisp has a tendency to go "car, cdar, cddar" when a sensible language would say "first, second, third".
23:17 lizmat .oO( I would just go *vrrooooom* at this point )
23:17 lizmat &
23:17 masak :)
23:21 timotimo hmm. so ... what's a fast way to find a '\r\n\r\n'.ords inside a Buf[uint8] ...
23:22 masak Boyer-Moore?
23:24 timotimo oh, that be a good one!
23:24 timotimo but even a very simple linear scan should already be much faster than what it currently does
23:25 masak yes.
23:25 timotimo (because what it currently does is take 0.3 seconds to find the '\r\n\r\n' in a HTTP request)
23:32 masak that's about 300 ms too slow
23:32 timotimo about, yeah
23:34 colomon masak: isn't "first" common lisp for "car"?  I don't remember ever really using car / cdr, and my Lisp programming was mostly 20+
23:34 colomon years ago.
23:34 colomon masak++
23:35 colomon makes my Forth of the other day look pathetic
23:38 timotimo :)
23:39 masak oh, I missed that.
23:39 masak I should backlog better.
23:41 smls post-GLR, will Array still inherit from List?
23:42 masak smls: would you prefer it to? if so, why?
23:42 smls Seeing as List will be immutable and by default non-flattening, which sounds like it is taking over Parcel current spot
23:43 BenGoldberg masak, why don't you use actual Pair objects, instead of arrays?
23:43 smls masak: Don't know, just asking (for my quest to properly understand the Perl 6 data model)
23:43 timotimo i've learnt over the past few weeks that kitty cuddles are great
23:44 masak raiph: "Your solution uses NQP toolchain and backend specific codegen." -- from https://gist.github.com/colomon/2bb128f3b40df3ffaee8 -- I wouldn't call it "codegen" when the code in question is an interpreter.
23:45 masak I mean, that code only uses backend-specific codegen in the sense that *any* code run with Rakudo uses backend-specific codegen.
23:45 * colomon doesn't remember seeing that quote so isn't sure of the context, but the original forth in p5 listed generated assembly code for the forth program.  Which actually only handled very basic RPN math calculations.  :)
23:46 colomon oh, actually a comment on my gist!  awesome and I completely missed it.
23:50 masak 'night, #perl6
23:51 colomon o/
23:52 timotimo oh
23:57 chenryn joined #perl6
23:58 * timotimo is now on a moarvm without asan and with optimize=3
23:58 timotimo less painful

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

Perl 6 | Reference Documentation | Rakudo