Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2014-08-02

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:00 jnthn I'm happy to see improvements across the board
00:00 jnthn The faster we build CORE.setting, the faster we're building user programs.
00:01 TimToady and parrot from 92 to 90, fwiw
00:05 japhb I wonder what made jvm parse so much faster (note, haven't backlogged, irclog pointer suffices if it's too much to explain)
00:06 timotimo hey japhb :)
00:06 jnthn japhb: Hard to know, but there's been a bunch of compiler improvements in the last days.
00:07 japhb But TimToady said his previous JVM build was within the last 12-24 hours.  So something you did today had a huge effect.
00:08 TimToady is possible something was interfering with the old one, if that's wallclock
00:09 timotimo our dynamic variables got cheaper
00:09 timotimo to compile
00:10 jnthn Yeah but that's on Moar
00:10 timotimo oh? only on moar?
00:10 jnthn Though we could port that improvement to JVM
00:10 timotimo ah, i meant the change in $*WORLD
00:10 timotimo er .. World.nqp
00:10 jnthn ah
00:10 timotimo dunno what else happened that could affect stage parse
00:11 jnthn No, me either...other than a minor tweak or two in NQP
00:11 TimToady well, maybe my cpu was too hot, and running slower :)
00:12 TimToady maybe my jvm was too tired that evening
00:13 jnthn :)
00:13 jnthn The Moar one fits what I'm seeing, fwiw.
00:13 eternaleye joined #perl6
00:13 jnthn OK, enough today I think :)
00:13 jnthn 'night
00:13 TimToady o/
00:14 timotimo jnthn: while you're gone i'll do a benchmark run i think :)
00:14 japhb o/ jnthn
00:18 TimToady jvm parse back up to 103 seconds!?!
00:18 TimToady must be some kind of throttling
00:18 TimToady unless jvm is trying to remember things from run to run, and only succeeding some of the time
00:20 TimToady moar down to 30
00:22 TimToady maybe I should put my laptop into an ice bucket
00:23 timotimo dry ice*
00:24 TimToady parrot now down to 85, and I think maybe I've been blocking the fan input for some of these runs
00:25 TimToady they didn't design this laptop to work well on a lap, apparently...
00:26 japhb Because why would anyone want that?
00:26 timotimo using laptops on laps is dangerous!
00:27 japhb Clearly contraindicated
00:30 timotimo TimToady: do you have ideas why our stringification of numbers is so far behind perl5's? except for "a lot of work went into that"
00:30 TimToady um, doesn't P5 just use atof()?
00:30 TimToady oh, other way
00:31 TimToady last I knew, it was just using sprintf with a g format of some sort
00:32 timotimo oh, hm
00:32 TimToady of course, all of P5's numbers are essentially native, internally
00:34 timotimo ah, smart_strify first tries to unbox a str, then looks at the Str method
00:34 TimToady plus if you're using native C types, you can constrain the amount of memory you need to allocate pretty closely
00:35 TimToady probably our buildin types should not be using late dispatch for coercions
00:35 timotimo and that calls p6box_s(nqp::tostr_I(self))
00:35 timotimo but smart_strify doesn't get spesh'd yet
00:35 timotimo it could become a method call and then possibly get inlined
00:36 timotimo maybe smart_strify should try to unbox an int and stringify that when unboxing a string fails?
00:36 timotimo or is that semantically wrong?
00:38 TimToady well, unbox to what native type?
00:38 TimToady ptr to libtommath?
00:39 TimToady and what about the cheater ints?
00:42 BenGoldberg Cheaters never prosper?
00:43 nbrown joined #perl6
00:43 nbrown_ joined #perl6
00:44 timotimo smart_strify cannot be called on cheaper ints, as they would be in an int register and smart_strify would only accept object registers
00:44 timotimo and Int would unbox to a P6int
00:45 timotimo which is a small wrapper around either a tommath integer struct or one of those "cheap bigints"
00:47 kurahaupo_ joined #perl6
00:50 cognome joined #perl6
00:51 timotimo http://t.h8.lv/p6bench/2014-08-02-all_moar_improvements.html - recent benchmarks
00:53 timotimo huh, our for loop regression still exists?
00:57 xenoterracide joined #perl6
01:02 dalek perl6-bench: 412f134 | (Geoffrey Broadwell)++ | analyze:
01:02 dalek perl6-bench: Factor out plot header and footer into separate routines
01:02 dalek perl6-bench: review: https://github.com/japhb/perl6-bench/commit/412f134fc0
01:02 dalek perl6-bench: 44d2f57 | (Geoffrey Broadwell)++ | analyze:
01:02 dalek perl6-bench: Stub summarize_results_html_plot_history()
01:02 dalek perl6-bench: review: https://github.com/japhb/perl6-bench/commit/44d2f57175
01:02 dalek perl6-bench: d1831ac | (Geoffrey Broadwell)++ | / (2 files):
01:02 dalek perl6-bench: Add jqplot.dateAxisRenderer plugin for use in history plots
01:02 dalek perl6-bench: review: https://github.com/japhb/perl6-bench/commit/d1831ac356
01:02 dalek perl6-bench: a433aaf | (Geoffrey Broadwell)++ | analyze:
01:02 dalek perl6-bench: Add do_summary_plot() to JS, stub a summary chart, and enable history plots for testing
01:02 dalek perl6-bench: review: https://github.com/japhb/perl6-bench/commit/a433aaf271
01:02 dalek perl6-bench: 42b0c49 | (Geoffrey Broadwell)++ | analyze:
01:02 dalek perl6-bench: Minor whitespace fix
01:02 dalek perl6-bench: review: https://github.com/japhb/perl6-bench/commit/42b0c49f5b
01:02 dalek perl6-bench: c0cc426 | (Geoffrey Broadwell)++ | analyze:
01:02 dalek perl6-bench: First draft of `bench --format=html_plot history`
01:02 dalek perl6-bench:
01:02 dalek perl6-bench: Note: this requires a new jqplot plugin, so make sure to grab:
01:02 dalek perl6-bench:
01:02 dalek perl6-bench:     jqplot/plugins/jqplot.dateAxisRenderer.min.js
01:02 dalek perl6-bench: review: https://github.com/japhb/perl6-bench/commit/c0cc4265d5
01:03 japhb timotimo, jnthn: This latest perl6-bench update should be fun.  :-)
01:04 timotimo ooooh
01:05 timotimo maybe i should time a fresh batch of moarvm nqp's and rakudo's back to the first version that has the combined makefile thing :3
01:05 japhb The next thing I want to do is history plot the individual tests, now that I have the general plot type working
01:05 japhb But that may need to wait for another day, since we have guests this weekend
01:06 japhb Yeah, I did the following for a decent comparison:
01:07 japhb ./bench --format=html_plot history   perl5/v5.18.0,v5.18.1,v5.18.2,v5.20.0    nqp-moar/2014.01,2014.02,2014.03,2014.04,2014.05,2014.06,2014.07,master    rakudo-moar/2014.01,2014.02,2014.03,2014.04,2014.05,2014.06,2014.07,nom
01:09 timotimo oh, we can has commas there!
01:09 timotimo the more you know
01:09 japhb But I think bringing in at least parrot, and if you can stand it, (a subset of) jvm runs too
01:09 timotimo can you show the results?
01:09 japhb would make for a really nice chart for jnthn++'s talk later this month
01:09 japhb timotimo: Unfortunately, they're hidden behind the firewall.  :-(
01:10 timotimo aaw, ok
01:10 japhb Right there with you.
01:11 japhb Hmmm, I wonder if I can get authorization to make it more external.  Not this week, that's for sure.
01:13 japhb timotimo, re: commas: Yeah, most of the bench commands for which it makes sense understand that.  Plus you can combine with shell expansion, so e.g. nqp-moar/2014.0{1,2,3,4,5,6,7},master
01:13 timotimo darn!
01:13 timotimo that's nice
01:13 japhb Hmm, actually you'd have to include escaped commas, I suppose.  Well, you understand my point.
01:14 * japhb goes to check
01:15 japhb Ah! That's the mistake I had
01:15 japhb nqp-moar/{2014.0{1,2,3,4,5,6,7},master}
01:16 japhb Anyway, there's a lot of ways to make it easier to read.  :-)
01:16 timotimo aye
01:16 timotimo okay, it'll be building and timing a gigantic slew of versions now
01:16 timotimo and i'll go to bed while that happens :)
01:16 japhb GOOD THINKING
01:16 japhb :-)
01:17 japhb bus stop &
01:36 iarna joined #perl6
01:40 klapperl joined #perl6
01:43 akaseki joined #perl6
01:45 Jasper__ joined #perl6
01:46 FROGGS_ joined #perl6
01:46 aoseki joined #perl6
01:47 nbrown joined #perl6
01:55 Jasper__ left #perl6
02:10 anaeem1 joined #perl6
02:14 noganex_ joined #perl6
02:18 akaseki joined #perl6
02:22 dayangkun_ joined #perl6
02:41 aoseki joined #perl6
02:50 takesako joined #perl6
02:55 nbrown joined #perl6
03:12 Akagi201 joined #perl6
03:19 rurban joined #perl6
03:19 Sqirrel joined #perl6
03:22 c1sung joined #perl6
03:28 takesako joined #perl6
03:42 slavik joined #perl6
03:50 takesako joined #perl6
03:51 nbrown joined #perl6
04:11 khisanth_ joined #perl6
04:15 dalek roast/S26-WHY: 8c77c44 | (Rob Hoelz)++ | S26-documentation/why-leading.t:
04:15 dalek roast/S26-WHY: Add missing semicolons
04:15 dalek roast/S26-WHY: review: https://github.com/perl6/roast/commit/8c77c4447f
04:15 dalek roast/S26-WHY: 8c03955 | (Rob Hoelz)++ | S26-documentation/why-leading.t:
04:15 dalek roast/S26-WHY: Fix incorrect check for param WHEREFORE
04:15 dalek roast/S26-WHY: review: https://github.com/perl6/roast/commit/8c0395543f
04:15 dalek roast/S26-WHY: 97606d2 | (Rob Hoelz)++ | S26-TODO.md:
04:15 dalek roast/S26-WHY: Fix typo in TODO
04:15 dalek roast/S26-WHY: review: https://github.com/perl6/roast/commit/97606d2021
04:15 dalek roast/S26-WHY: c33c492 | (Rob Hoelz)++ | S26-TODO.md:
04:15 dalek roast/S26-WHY: Make a note of another large task
04:15 dalek roast/S26-WHY: review: https://github.com/perl6/roast/commit/c33c4923c4
04:15 dalek roast/S26-WHY: 2129598 | (Rob Hoelz)++ | S26-TODO.md:
04:15 dalek roast/S26-WHY: Add Miscellanea category to TODO
04:15 dalek roast/S26-WHY:
04:15 dalek roast/S26-WHY: Until I figure out a better home for them...
04:15 dalek roast/S26-WHY: review: https://github.com/perl6/roast/commit/212959848b
04:21 ventica joined #perl6
04:29 dalek roast/S26-WHY: 947e4a6 | (Rob Hoelz)++ | S26-documentation/why-leading.t:
04:29 dalek roast/S26-WHY: Fix == to ===
04:29 dalek roast/S26-WHY:
04:29 dalek roast/S26-WHY: We want identity, not numerical, comparison
04:29 dalek roast/S26-WHY: review: https://github.com/perl6/roast/commit/947e4a6305
04:29 dalek roast/S26-WHY: 36b94f1 | (Rob Hoelz)++ | S26-documentation/why-leading.t:
04:29 dalek roast/S26-WHY: Fix comparands for WHEREFORE checks
04:29 dalek roast/S26-WHY: review: https://github.com/perl6/roast/commit/36b94f1458
04:29 dalek roast/S26-WHY: 06e2e7a | (Rob Hoelz)++ | S26-documentation/why-leading.t:
04:29 dalek roast/S26-WHY: Fix invocants for WHEREFORE tests
04:29 dalek roast/S26-WHY: review: https://github.com/perl6/roast/commit/06e2e7a278
04:39 cibs joined #perl6
04:43 darutoko joined #perl6
04:55 takesako joined #perl6
05:25 croque joined #perl6
05:26 croque ops..
05:26 gfldex joined #perl6
05:29 croque Hello, Please could someone help me?
05:29 croque I would like to install the Perl 6 here in my linux.
05:29 croque How should I proceed? Thank you!
05:33 Woodi hi croque
05:34 croque Woodi, hello man
05:34 croque ;)
05:34 Woodi at the moment the best Perl6 compiler is Rakudo
05:34 Woodi rakudo.org
05:35 Woodi and Rakudo Star is ready-to-try package
05:35 croque hm
05:35 croque I'll try to install here, if the case goes wrong, I notice! : P
05:35 croque LOL
05:35 croque ^^
05:35 Woodi gl and waiting for your experience raport :)
05:36 croque http://rakudo.org/downloads/star/
05:36 croque :P
05:36 takesako joined #perl6
05:36 TimToady or use rakudobrew
05:36 croque hm
05:36 croque one minute :P
05:38 croque Can be directly installed by the terminal?
05:38 croque Or even if I download the file, unzip and then install?
05:40 Woodi I think command line is unavoidable :)
05:42 croque Downloaded here, now I'll see how I do, because I downloaded the rakudo.msi Woodi
05:42 croque jaeijae
05:43 croque ops
05:43 Woodi *.msi files are for Windows
05:43 croque impossible! OAEOKe
05:43 croque Woodi, yeah I see now ;P
05:43 croque .tar.gz
05:43 croque go!
05:53 croque Woodi, I see the readme, has two commands ..
05:53 croque I'm use fedora..
05:53 croque yum bla bla bla..
05:53 croque ;P
05:53 croque rs
05:54 xinming joined #perl6
05:55 croque I believe it's dependencies, and then configure the Rakudo, second has written here ..
05:55 croque :)
05:55 croque Woodi,
06:02 raiph joined #perl6
06:06 croque Woodi, Here tried, without success ..
06:06 croque ;T
06:10 Woodi what happened ?
06:11 Woodi Rakudo can use 3 backends, java, parrot and moarvm, which one you try?
06:12 croque java errors..
06:12 croque ;T
06:12 croque jvm
06:12 croque y.y
06:12 Woodi you have jave packages installed on your linux ?
06:12 takesako joined #perl6
06:13 croque I have installed java with netbeans ..
06:13 croque :)
06:14 croque However when I type java-version command gives error, nothing appears, same with the command javac-version!
06:14 croque ;T
06:15 Woodi you need java installed system wide then build proces can detect it
06:15 croque ok
06:15 Woodi btw, you can try standard fedora packages, maybe they have rakudo ready ?
06:15 croque yum install java only?
06:15 croque ;T
06:15 Woodi debian have rakudo 2014.03
06:16 Woodi yum installs everything ! ;)
06:16 croque hm
06:16 croque ok
06:16 Woodi I drop redhat around redhat 9, sory  :)
06:18 croque I had installed Debian here, I had a crap on pc here, not because of Debian, Fedora and choked liked (Although I prefer Debian ..) However I do not want to take Fedora and Debian, and, and you, uses Debian?
06:19 Woodi Linux is Linux, distros are just shells :)
06:19 Woodi you use which one is more convenient :)
06:19 Woodi which is Debian of course :)
06:20 Woodi so you try to compile rakudo from sources ?
06:21 croque Woodi, ye
06:21 croque =)
06:22 croque tar.gz, unzip, make, make install.. error!
06:22 croque ;T
06:22 croque Already installed java
06:23 croque and now? y.y
06:23 croque ;T
06:23 psch croque: can you paste the error onto some pastebin and put the link here?
06:24 psch croque: http://pastie.org or something like that
06:25 croque Man, fumbled around here, only one of the three backends installed appeared at the end .. =)
06:26 croque Follow what is said in the readme, in the commands to install the backends in one, gave error!
06:26 Woodi croque: then you need to get "nqp" compiler then real perl6 compiler "rakudo"
06:27 croque ok
06:27 croque How should I proceed now?
06:27 croque yum install nqp?
06:27 croque ..
06:27 Woodi tell us first what you do so far ?
06:28 Woodi you try:  perl Configure.pl --backend=jvm --gen-nqp
06:28 psch croque: what Woodi says, i think you're just missing --gen-nqp
06:29 psch croque: you can also use the command for all backends , if you add --gen-nqp
06:29 croque On RedHat/Fedora/CentOS, the components can be installed with
06:29 croque yum groupinstall development-tools
06:29 croque yum install libicu-devel readline-devel
06:29 croque Configuring Rakudo Star
06:29 croque -----------------------
06:29 croque The easiest way to build Rakudo Star for a particular backend is:
06:29 croque $ perl Configure.pl --backend=moar --gen-moar       # MoarVM
06:29 croque $ perl Configure.pl --backend=parrot --gen-parrot   # Parrot
06:29 croque $ perl Configure.pl --backend=jvm --gen-nqp         # JVM
06:29 croque You can also build for all backends:
06:29 croque $ perl Configure.pl --backend=parrot,jvm,moar --gen-parrot --gen-moar
06:29 croque The commands!
06:30 croque yum groupinstall development-tools and yum install libicu-devel readline-devel ok!
06:31 croque The rest gave bug, mainly referring to the jvm ...
06:31 croque ;T
06:32 psch croque: maybe try without jvm?
06:32 Woodi you tried all of them ? :)
06:32 croque ye
06:33 croque only one
06:33 croque ;T
06:33 akaseki joined #perl6
06:35 TimToady maybe try https://github.com/tadzik/rakudobrew instead
06:36 croque ok TimToady
06:36 croque ;D thanks ;P
06:37 TimToady you'll need to make sure you have git installed first
06:39 croque I enter all commands that have there, right? TimToady
06:39 croque ops ;T
06:45 croque Can not find a directory here and then out of nowhere!
06:45 croque o.o
06:50 croque man, taking..
06:50 croque ;T
06:51 psch croque: can you copy and paste the error to a website?
06:51 psch croque: preferably *not* into the channel :)
06:51 * TimToady has to go to bed, but the .eu folk should be awake soon and can help
06:52 nbrown joined #perl6
06:54 croque psch, ok
06:54 croque sorry =T
06:55 croque TimToady, thanks man
06:55 croque ;D
06:57 croque moar been installed, must have been a mistake that was later corrected ..
06:57 croque ..
06:59 croque TimToady, I did as you told me you have on site, and now, how do I test?
06:59 croque :)
07:00 ventica joined #perl6
07:01 xinming joined #perl6
07:02 croque psch, The site that Tim has passed me talking about how to install perl 6 (rakudo), I did everything and it was a success, and now how do I test?
07:02 croque :P
07:03 croque Typed here: Perl 6, there appeared a small arrow: DDD
07:03 croque Woodi, success man
07:03 croque LOL :DDD
07:03 rindolf joined #perl6
07:06 croque leaves the terminal, I was testing, gave o.o error
07:06 croque tsc tsc..
07:10 croque bye
07:10 croque ;D
07:16 chenryn joined #perl6
07:17 PotatoGim joined #perl6
07:48 sivoais joined #perl6
07:48 raiph joined #perl6
07:52 masak morning, #perl6
07:53 masak Woodi++ psch++ TimToady++ # helping croque
07:54 PerlJam It's night time here and I haven't gone to bed yet, so ... yeah, welcome to the wee hours of the morning  :)
07:54 masak :)
08:02 thou joined #perl6
08:02 takesako joined #perl6
08:36 kivutar joined #perl6
08:37 dmol joined #perl6
08:51 anaeem1 joined #perl6
08:53 timotimo o/
08:54 timotimo my huge slew of benchmarks has reached rakudo-moar/nom
08:55 timotimo which is pretty good considering it had all nqp-moar releases going back to 2014.01 and three perl5 versions before it
08:59 takesako joined #perl6
09:00 chenryn joined #perl6
09:11 spider-mario joined #perl6
09:14 cibs joined #perl6
09:19 takesako joined #perl6
09:30 timotimo nqp-parrot/2014.04 at the moment
09:45 mr-foobar joined #perl6
09:46 chenryn joined #perl6
09:50 lizmat good *, #perl6!
09:50 thou joined #perl6
09:50 lizmat seems that one of the combinations tests was not flapping after all:
09:51 lizmat m: say ((1,), (2,), (3,)).list eqv [1, 2, 3].combinations(1)  # test thinks this should be true
09:51 camelia rakudo-moar a1a236: OUTPUT«False␤»
09:51 masak m: say [1, 2, 3].combinations(1).perl
09:51 camelia rakudo-moar a1a236: OUTPUT«([1], [2], [3]).list␤»
09:51 masak looks to me like those are itemified arrays in there.
09:51 lizmat m: say ((1,), (2,), (3,)).list eqv [1, 2, 3].combinations(1).tree.map(*.sort).tree  # this is the real actual test
09:51 camelia rakudo-moar a1a236: OUTPUT«False␤»
09:52 lizmat m: say [1, 2, 3].combinations(1).tree.map(*.sort).tree.perl
09:52 camelia rakudo-moar a1a236: OUTPUT«(1, 2, 3).list␤»
09:52 * masak scratches his head
09:52 lizmat m: say ((1,), (2,), (3,)).list.perl
09:52 camelia rakudo-moar a1a236: OUTPUT«((1,), (2,), (3,)).list␤»
09:52 masak my intuition goes "huh?" on this one :)
09:53 lizmat t/spec/S32-list/combinations.t is the file
09:54 lizmat fwiw, I'm huhing too  :-)
10:00 lizmat otherwise, the last updates to NQP and Moar: wow!
10:00 lizmat Files=908, Tests=31957, 205 wallclock secs ( 9.04 usr  4.16 sys + 1280.14 cusr 171.01 csys = 1464.35 CPU)
10:02 lizmat compared to ~ 12 hours ago:
10:02 lizmat Files=908, Tests=31827, 212 wallclock secs ( 8.95 usr  3.92 sys + 1314.99 cusr 171.08 csys = 1498.94 CPU)
10:03 lizmat I guess with only 1 casualty: combinations.t
10:08 takesako joined #perl6
10:16 dalek rakudo/nom: 8d56c56 | (Elizabeth Mattijsen)++ | INSTALL.txt:
10:16 dalek rakudo/nom: Modernize INSTALL.txt
10:16 dalek rakudo/nom:
10:16 dalek rakudo/nom: Make MoarVM more prominent and make it match the install instructions in
10:16 dalek rakudo/nom: README.md.
10:16 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/8d56c565b8
10:29 gfldex joined #perl6
10:31 takesako joined #perl6
10:42 kurahaupo_ joined #perl6
10:43 noganex joined #perl6
10:45 xragnar_ joined #perl6
11:12 virtualsue joined #perl6
11:39 thou joined #perl6
11:40 chenryn joined #perl6
11:43 takesako joined #perl6
11:55 anaeem1 joined #perl6
12:03 user3 joined #perl6
12:13 pecastro_ joined #perl6
12:23 pecastro joined #perl6
12:23 psch m: $_ = "abc"; say (m:g/./).WHAT # that's supposed to be a 'fake Match object', cf S05:4659
12:23 synopsebot Link: http://perlcabal.org/syn/S05.html#line_4659
12:23 camelia rakudo-moar 8d56c5: OUTPUT«(List)␤»
12:24 psch i'm not sure what a 'fake Match object' should be though
12:24 psch i have a patch that stuffs the real matches into .list of a new Match, but that doesn't easily translate to s:g///
12:25 psch and that also doesn't seem really clean, either
12:30 xenoterracide joined #perl6
12:33 itz hmmm I can't build panda
12:34 timotimo there's a pull request for panda that claims to fix building
12:34 timotimo maybe i should test and merge it
12:34 timotimo since i have commit access to panda
12:35 itz thanks .. just trying it
12:37 dalek panda: f23974c | nbrown++ | / (2 files):
12:37 dalek panda: Fix panda to work with new compiled suffixes
12:37 dalek panda: review: https://github.com/tadzik/panda/commit/f23974c565
12:37 dalek panda: 7a7a770 | timo++ | / (2 files):
12:37 dalek panda: Merge pull request #92 from nbrown/master
12:37 dalek panda:
12:37 dalek panda: Fix panda to work with new compiled suffixes
12:37 dalek panda:
12:37 dalek panda: nbrown++
12:37 dalek panda: review: https://github.com/tadzik/panda/commit/7a7a770398
12:38 tadzik faster than I managed to log in to github
12:38 itz works for me
12:44 timotimo i don't know who nbrown is, but that was a quick and good fix
12:44 xinming joined #perl6
12:46 takesako joined #perl6
12:50 iarna joined #perl6
13:16 user3 left #perl6
13:21 masak psch: re 'fake Match' object -- every time I see us trying to cheat the object hierarchy like that, we end up regretting it, one way or another. IMHO.
13:23 itz https://github.com/masak/ufo/pull/17
13:25 psch masak: afaiu, we actually need a real Match object anyway, because otherwise smartmatching breaks.  and if it .perls like a Match and smartmatches like a Match...
13:27 thou joined #perl6
13:27 psch at the moment i'm primarily wondering how to get multiple matches to behave as one - the approach mentioned above leaves everything but .list unassigned, which seems kinda-sorta like a 'fake Match'
13:33 rurban joined #perl6
13:41 psch m: $_ = "abc"; m:g/./; say $/ # the interaction between m:g// and $/ also confuses me slightly
13:41 camelia rakudo-moar 8d56c5: OUTPUT«「c」␤␤»
13:44 gfldex joined #perl6
13:44 cognome joined #perl6
13:44 cognominal joined #perl6
13:46 cognominal joined #perl6
13:53 chenryn joined #perl6
13:55 timotimo um
13:56 timotimo i think the spectest harness doesn't like tests exit-code-ing with the number of failing tests if that number happens to be 1
13:56 timotimo it'll then say the test result is "dubious"
13:56 timotimo hoelzro: you worked on that recently, no?
13:56 BenGoldberg joined #perl6
13:59 masak psch: that value of $/ feels more like p5-think than p6-think to me.
13:59 dmol joined #perl6
14:00 flussence timotimo: that matches how P5's test modules do it; an abnormal exit that the code can detect should exit with 255 though.
14:02 flussence .oO( yay, all those moar improvements mean my module's passing 18/50 tests instead of 17/50 before crashing... )
14:02 timotimo %)
14:02 timotimo what module is that?
14:02 darutoko- joined #perl6
14:03 flussence Test::Corpus, it hasn't worked in a while now. Seems to be a GC bug too and I know those are a massive pain to track down...
14:03 timotimo oh wow
14:03 timotimo what does the crash look like?
14:03 timotimo what does it smell like?
14:03 timotimo what does it taste like?
14:03 flussence I was just gonna get to that :)
14:03 flussence https://gist.github.com/flussence/0eeb33d93f24946b8ca8
14:04 flussence that's one I caught a few days ago
14:04 timotimo er ... yeah, that doesn't seem good
14:04 timotimo the crash after the 18th test looks the same?
14:04 timotimo maybe with a different function causing the gc to run
14:05 flussence it's either a segfault or "Internal error: zeroed target thread ID in work pass", I'm getting the latter right now
14:05 timotimo t/spec/S17-lowlevel/lock.rakudo.moar .......................... Dubious, test returned 1 (wstat 256, 0x100)
14:05 timotimo that's how the test file that has 1 fail returns
14:05 timotimo i feel like i asked this before already; do you use any of the asynchronous I/O stuff there?
14:06 flussence nope, though I do use normal IO...
14:06 darutoko joined #perl6
14:06 flussence (maybe it's barfing because I have an open() nested in two levels of currying run in a tight loop? :)
14:07 flussence fwiw, that test file you mention runs fine here
14:08 timotimo yes, when i run it manually, it works fine ...
14:11 flussence and for some reason, my own thing runs all its tests *until* I try to install it through panda :(
14:12 timotimo could be caused by precompilation in that case
14:12 flussence well, `panda install .` just worked so I'm horribly confused now. Finally got what I wanted though :D
14:23 nwc10 nom^ happy
14:23 nwc10 oops
14:23 nwc10 wrong window for an up
14:34 darutoko- joined #perl6
14:35 nbrown joined #perl6
14:36 darutoko joined #perl6
14:37 molaf__ joined #perl6
14:50 nbrown joined #perl6
14:54 nbrown_ joined #perl6
14:54 nbrown joined #perl6
15:04 takesako joined #perl6
15:13 xinming joined #perl6
15:14 gfldex joined #perl6
15:15 thou joined #perl6
15:17 dalek nqp: fadd779 | jnthn++ | / (4 files):
15:17 dalek nqp: Update to simpler MAST::Label API.
15:17 dalek nqp:
15:17 dalek nqp: We already were using labels as their own identity in practice, so
15:17 dalek nqp: the time and memory involved in storing a name in each of them was
15:17 dalek nqp: a waste.
15:17 dalek nqp: review: https://github.com/perl6/nqp/commit/fadd779f90
15:18 xinming_ joined #perl6
15:18 timotimo my benchmark run is up to rakudo-parrot/nom
15:19 timotimo after that come a few nqp-jvm and a few rakudo-jvm test runs
15:19 dalek rakudo/nom: f5d1870 | jnthn++ | / (2 files):
15:19 dalek rakudo/nom: Update to new MAST::Label API.
15:19 dalek rakudo/nom:
15:19 dalek rakudo/nom: Includes NQP_REVISION update, which also updated MOAR_REVISION.
15:19 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f5d1870277
15:19 jnthn Please note that ^^ is a very breaking change across the Rakudo/NQP/Moar stack; don't try and get away with not doing an NQP re-build.
15:26 xinming joined #perl6
15:28 timotimo stage mast is now at 10.6, don't know what it was at before
15:29 timotimo ah, ok, that was no real change
15:33 FROGGS nice, stage parse is now 39s here, and was about 46s a week ago :o)
15:36 virtualsue joined #perl6
15:40 cognome here stage parse is 46s with moar. Was 1 min 2/3 month ago. And the build is 1m44
15:41 dalek roast/S26-WHY: 3091031 | duff++ | S26-documentation/why-leading-alt.t:
15:41 dalek roast/S26-WHY: An alternate formulation of why-leading.t
15:41 dalek roast/S26-WHY: review: https://github.com/perl6/roast/commit/30910316cc
15:42 hoelzro timotimo: I did
15:42 yoleaux 07:52Z <PerlJam> hoelzro: Have a look at https://gist.github.com/perlpilot/4069feea4b8a3afc143b  I was thinking of reformulating the WHY tests like this.  What say you?
15:42 yoleaux 07:56Z <PerlJam> hoelzro: For most of the invocations of test-leading, $thing and $wherefore are the same.  I wonder if that should just be one parameter rather than two.
15:42 yoleaux 07:57Z <PerlJam> hoelzro: Anyway, if this works out, something similar could be done with the other WHY tests
15:42 yoleaux 15:26Z <PerlJam> hoelzro: Ignore that previous gist.  I was tired or something.  Have a look at https://gist.github.com/perlpilot/6bd0ce11b61cc886c532 instead.  :-)
15:42 yoleaux 15:41Z <PerlJam> hoelzro: I've committed my reimagination of why-leading.t as why-leading-alt.t  If you like where it's going, feel free to replace why-leading.t.
15:44 hoelzro PerlJam: that looks good to me
15:44 hoelzro I'm going to try get my current HEAD to pass before integrating that, though
15:44 anaeem1 joined #perl6
15:49 takesako joined #perl6
15:51 zakharyas joined #perl6
16:03 dalek roast: db80199 | TimToady++ | S32-list/combinations.t:
16:03 dalek roast: combinations returns a list of arrays these days
16:03 dalek roast: review: https://github.com/perl6/roast/commit/db801997ed
16:04 kivutar joined #perl6
16:04 isBEKaml_mobile joined #perl6
16:06 dalek roast: 52f9ad5 | TimToady++ | S32-list/combinations.t:
16:06 dalek roast: should test 0 case as well
16:06 dalek roast: review: https://github.com/perl6/roast/commit/52f9ad554b
16:06 TimToady if someone wants to translate that to a permutations.t, that would be LHF
16:07 colloid joined #perl6
16:12 timotimo here we go ... nqp-jvm/2014.01 getting benchmarked ...
16:13 anaeem1 joined #perl6
16:14 colloid joined #perl6
16:15 TimToady masak: you must be thinking of m:g/foo/ wrong if you think it's not a Match; it's just sugar for /.*? <( (foo)+ % .*? )>/ or so
16:16 TimToady m: $_ = 'a foobar food fool'; /.*? <( (foo)+ % .*? )>/; say $/
16:16 camelia rakudo-moar 8d56c5: OUTPUT«「foobar food foo」␤ 0 => 「foo」␤ 0 => 「foo」␤ 0 => 「foo」␤␤»
16:18 TimToady and in terms of pragmatics it must return a Match to work as a smartmatch result while having a list nature
16:18 timotimo i was quite pleased to find that our gen-cat.nqp doesn't feel slower than the original perl5 version
16:18 TimToady unless your are willing to revisit the OKness proposal, but I think a small list of result types is probably the right way to go
16:19 isBEKaml_mobile left #perl6
16:19 TimToady and s:g/// is just a match with side effects, from the standpoint of smartmatching
16:20 TimToady So I think your mis-givings are really mis-takings.  :)
16:21 cooper_ joined #perl6
16:26 TimToady and I hope we're not turning "p5-think" in a synonym for "wrong"
16:26 TimToady *into
16:26 masak TimToady: not willing to revisit the OKness proposal ;)
16:27 masak TimToady: what you said about Math above sounds like it could work -- except, I always have to explicitly .list my Match objects to iterate them.
16:28 masak TimToady: I'm not using "p5-think" as a synonym for "wrong". I'm using it to contrast ideas from Perl 5 with ideas from Perl 6.
16:28 TimToady well, which ideas are you contrasting here?
16:29 TimToady smartmatching is a p6 idea
16:29 masak it's always been about making new mistakes, not making the same ones or -- heaven forbid -- thinking that these mistakes are optimal :)
16:29 TimToady well, returning list as a smartmatch result is currently a mistake
16:29 psch fwiw, here is match according to how i understand S05:4121 https://gist.github.com/peschwa/e6d1bb971d5566417911
16:29 synopsebot Link: http://perlcabal.org/syn/S05.html#line_4121
16:29 masak TimToady: I was contrasting Perl 5's idea of always filling the last match into $1, $2, etc, discarding the prior ones.
16:30 masak TimToady: against Perl 6's idea of keeping lists of matches around.
16:30 psch i have that implemented, but i'll have to think a bit more about how that translates to s///
16:30 TimToady P5 also keeps list around if you use the match in list context, so I don't see the contrast here
16:31 masak $/ ended up containing the 'c' match in the example I was commenting on.
16:31 TimToady that's just a bug
16:32 nbrown joined #perl6
16:32 masak $ perl -E '$_ = "abc"; s/(.)/z/g; say $1'
16:32 masak c
16:32 masak TimToady: I meant that behavior.
16:33 TimToady yes, that's a "feature" we're leaving behind, but that's not what the specs are asking for wrt m:g// and s:g///
16:33 masak ok, good :)
16:33 TimToady m: $_ = 'a foobar food fool'; /.*? <( (foo)+ % .*? )>/; say @/
16:33 camelia rakudo-moar 8d56c5: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/T24hcZ4rGBâ�¤Unsupported use of @/ variableâ�¤at /tmp/T24hcZ4rGB:1â�¤------> [32mod fool'; /.*? <( (foo)+ % .*? )>/; say [33mâ��[31m@/[0mâ�¤    expecting any of:â�¤        argument listâ�¤      â€¦Â»
16:34 TimToady m: $_ = 'a foobar food fool'; /.*? <( (foo)+ % .*? )>/; say @$/
16:34 camelia rakudo-moar 8d56c5: OUTPUT«「foo」␤ 「foo」␤ 「foo」␤␤»
16:34 TimToady m: $_ = 'a foobar food fool'; say join ":", /.*? <( (foo)+ % .*? )>/;
16:34 camelia rakudo-moar 8d56c5: OUTPUT«␤»
16:34 TimToady m: $_ = 'a foobar food fool'; say join ":", /.*? <( (foo)+ % .*? )>/[];
16:34 camelia rakudo-moar 8d56c5: OUTPUT«␤»
16:35 TimToady m: $_ = 'a foobar food fool'; say join ":", m/.*? <( (foo)+ % .*? )>/;
16:35 camelia rakudo-moar 8d56c5: OUTPUT«foobar food foo␤»
16:35 TimToady m: $_ = 'a foobar food fool'; say join ":", m/.*? <( (foo)+ % .*? )>/[];
16:35 camelia rakudo-moar 8d56c5: OUTPUT«foo foo foo␤»
16:35 TimToady m: $_ = 'a foobar food fool'; say join ":", m/.*? <( (foo)+ % .*? )>/.list;
16:35 camelia rakudo-moar 8d56c5: OUTPUT«foo foo foo␤»
16:36 TimToady something seems buggy there too
16:36 masak future: NYI
16:37 TimToady perhaps Match should behave a bit more like a parcel
16:38 flussence m: my $r = 1..12; say '0123456789abcdef' ~~ / . ** {$r} /
16:38 camelia rakudo-moar 8d56c5: OUTPUT«「0123456789ab」␤␤»
16:38 flussence \o/
16:38 flussence I've wanted that to work for *years*
16:38 * TimToady too :)
16:39 masak yes, that's excellent.
16:39 * masak is totally going to slang the ability to write it as / . ** 1..12 /, though :)
16:40 jnthn slang it?
16:40 jnthn m: say '0123456789abcdef' ~~ / . ** 1..12 /
16:40 camelia rakudo-moar 8d56c5: OUTPUT«「0123456789ab」␤␤»
16:41 masak oh, wait? that *works*?
16:41 flussence just not with a variable there (yet)
16:41 masak wow.
16:41 jnthn Yes, what FROGGS++ fixed was like
16:42 jnthn m: say '0123456789abcdef' ~~ / . ** {1..12.rand} / for ^3
16:42 camelia rakudo-moar 8d56c5: OUTPUT«This type cannot unbox to a native integer␤  in method DYNQUANT_LIMITS at src/gen/m-CORE.setting:13217␤  in method ACCEPTS at src/gen/m-CORE.setting:13300␤  in block  at /tmp/gp_59IZBGH:1␤␤»
16:42 jnthn m: say '0123456789abcdef' ~~ / . ** {1..12.rand.Int} / for ^3
16:42 camelia rakudo-moar 8d56c5: OUTPUT«「012345678」␤␤「0123」␤␤「01234」␤␤»
16:42 jnthn FROGGS: May want to fix the first one :)
16:42 jnthn That is, code to choose the range
16:42 jnthn Or a variable containing one.
16:43 masak oh, I was thinking of / x ** $y / -- which (for backwards compat reasons) gets a warning and becomes / x+ % $y /.
16:44 masak that's what I'm gonna slang so it really means / x ** $y / :)
16:44 timotimo how is that backwards compatibility?
16:44 flussence m: say 40.631/32.680
16:44 camelia rakudo-moar f5d187: OUTPUT«1.243299␤»
16:45 masak timotimo: '%' used to be spelled '**'
16:45 flussence getting rid of that one hacky line just made Text-Tabs-Wrap 25% faster
16:45 masak timotimo: (overloading the integer rhs case with the atom rhs case)
16:46 timotimo flussence: \o/
16:51 thou joined #perl6
16:52 raiph joined #perl6
16:55 haroldwu joined #perl6
17:08 FROGGS ohh, the Num case...
17:10 FROGGS m: say '0123456789abcdef' ~~ / . ** {1..12.6} /
17:10 camelia rakudo-moar f5d187: OUTPUT«This type cannot unbox to a native integer␤  in method DYNQUANT_LIMITS at src/gen/m-CORE.setting:13217␤  in method ACCEPTS at src/gen/m-CORE.setting:13300␤  in block  at /tmp/TGo2FrBtmQ:1␤␤»
17:12 jnthn m: say '0123456789abcdef' ~~ / . ** {12.6} /
17:12 camelia rakudo-moar f5d187: OUTPUT«This type cannot unbox to a native integer␤  in method DYNQUANT_LIMITS at src/gen/m-CORE.setting:13221␤  in method ACCEPTS at src/gen/m-CORE.setting:13300␤  in block  at /tmp/sMOgHKwEaP:1␤␤»
17:13 jnthn That one too :)
17:13 FROGGS alrady testing the fix...
17:15 jnthn FROGGS++
17:15 dalek rakudo/nom: 4e9338a | (Tobias Leich)++ | src/core/Cursor.pm:
17:15 dalek rakudo/nom: handle Num case in blocks in quantifiers in regexes
17:15 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4e9338a29f
17:20 dalek rakudo/nom: e036e23 | (Tobias Leich)++ | src/Perl6/Grammar.nqp:
17:20 dalek rakudo/nom: handle the case where perl6 -Mfoo switches to a slang
17:20 dalek rakudo/nom:
17:20 dalek rakudo/nom: In the common case where this is not the case it is just an istype check and
17:20 dalek rakudo/nom: the call to LANG.
17:20 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e036e23efa
17:21 ventica joined #perl6
17:23 masak FROGGS++
17:25 FROGGS btw, since all of v5 is pure Perl6 (or five) right now, I can factor the rakudo specific bits in a Slangish module, which then provides grammar and action basics
17:26 FROGGS as well as EXPR and O and World specific glue stuff
17:26 xinming joined #perl6
17:29 FROGGS control structures, variable (non-)declaration and lookup, strings with interpolation and subroutines already do work
17:29 FROGGS I am currently working on unbusting regexes
17:41 ivanshmakov joined #perl6
17:53 cognome joined #perl6
17:55 lizmat FROGGS++ for v5  # can't be said enough
18:01 dalek doc: 4eaa349 | (Steve Mynott)++ | index.p6:
18:01 dalek doc: fix index building and add simple key look
18:01 dalek doc: review: https://github.com/perl6/doc/commit/4eaa349a0f
18:02 FROGGS lizmat: btw, the cpan work will continue after gsoc...
18:02 lizmat yes, of course...  :-)
18:05 hoelzro good *, #perl6
18:05 lizmat hoelzro o/
18:06 hoelzro I'm working on making WHY is rw, and I'm having a bit of trouble with that
18:07 hoelzro I'm guessing I have to return a Scalar wrapping the attribute I created in BOOTSTRAP
18:07 hoelzro but what confuses me is I don't know how that attribute will be set when the container is assigned to
18:08 hoelzro any pointers?
18:10 FROGGS BOOTSTRAP.nqp:1427    Parameter.HOW.add_method(Parameter, 'set_coercion', nqp::getstaticcode(sub ($self, $type) {
18:11 FROGGS cant you just declare a sub that takes an optional second param?
18:11 FROGGS and if given assigns it?
18:11 hoelzro so $param.WHY($new_why) instead of $param.WHY = $new_why?
18:11 FROGGS hmmm :/
18:12 hoelzro yeah, exactly =/
18:14 jnthn If you're in BOOTSTRAP, and appropriately declared scalar_attr may do it...
18:14 hoelzro oh ho
18:14 hoelzro I hadn't noticed that
18:14 jnthn I forget it you get an accessor
18:14 jnthn But can always write one :)
18:14 hoelzro ;)
18:14 hoelzro thanks jnthn; I'll try that!
18:15 jnthn If $!foo is a Scalar then you just sub foo() irs rw { $!foo }
18:15 jnthn eek, that was a taxing typo...
18:15 hoelzro buh dum tssh
18:18 timotimo we should really get back to trying to make rakudo play nice with the ipython notebook
18:18 hoelzro timotimo++
18:18 timotimo you'd have to pre-increment me for this case
18:19 hoelzro ++timotimo
18:24 chenryn joined #perl6
18:24 dalek doc: c24c97d | (Steve Mynott)++ | bin/p6doc:
18:24 dalek doc: very basic keyword search if index.data exists
18:24 dalek doc: review: https://github.com/perl6/doc/commit/c24c97d47b
18:26 timotimo wow, last commit to net-zmq was march *2013*
18:30 timotimo with moarvm the way it is nowadays, it should work well
18:31 anaeem1_ joined #perl6
18:34 FROGGS jnthn: it looks like I have to decont something in an AST structure... how can I dump a QAST structure in Perl 6 so I see containers that should not be there?
18:36 FROGGS jnthn: or better... I'd like to patch nqp's QAST.dump
18:36 timotimo oof, i don't think .dump will give you that, but .DUMP might
18:37 FROGGS I can't DUMP a QAST tree
18:37 timotimo ah, damn
18:40 timotimo it seems like nqp-jvm is already through with its benchmarks
18:40 thou joined #perl6
18:40 timotimo and i've reached rakudo-jvm/2014.01
18:41 jnthn There's a DUMP subroutine iirc
18:42 * FROGGS tries
18:42 FROGGS jnthn: but is there a way to gain knowledge about containers in nqp?
18:42 jnthn Well, nqp::iscont is available
18:42 FROGGS ohh...
18:43 FROGGS m: use QAST:from<NQP>; my $a = QAST::Op.new; say $a.dump; say nqp::iscont($a);
18:43 camelia rakudo-moar e036e2: OUTPUT«(signal )»
18:43 FROGGS m: use QAST:from<NQP>; my $a = QAST::Op.new; say nqp::iscont($a);
18:43 camelia rakudo-moar e036e2: OUTPUT«1␤»
18:43 FROGGS m: use QAST:from<NQP>; my $a := QAST::Op.new; say nqp::iscont($a);
18:43 camelia rakudo-moar e036e2: OUTPUT«0␤»
18:43 FROGGS \o/
18:44 FROGGS m: use QAST:from<NQP>; my $a = QAST::Op.new; say $a.dump;
18:44 camelia rakudo-moar e036e2: OUTPUT«(signal )»
18:44 FROGGS m: use QAST:from<NQP>; my $a := QAST::Op.new; say $a.dump;
18:44 camelia rakudo-moar e036e2: OUTPUT«(signal )»
18:44 FROGGS weird
18:44 FROGGS m: use QAST:from<NQP>; my $a := QAST::Op.new( :op<if> ); say $a.dump;
18:44 camelia rakudo-moar e036e2: OUTPUT«- QAST::Op(if)␤␤»
18:44 FROGGS ahh
18:45 timotimo probably tried to print a NULL that didn't end up as a VMNull?
18:45 FROGGS probably... but that's not worth a rakudobug me thinks :o)
18:45 jnthn Or a null string mroe likely
18:51 rurban joined #perl6
18:53 timotimo watching a talk about julia right now
18:58 timotimo it has things like code(...), code_lowered(...), code_llvm(...), and code_native(...) which dumps the code that a function turns into at different stages of the compilation pipeline
19:03 raiph joined #perl6
19:03 timotimo julia accepts LaTeX-style \ sequences for unicode characters and the repl (and the ipython notebook) immediately convert it to the matching unicode symbol for you
19:03 dwarring joined #perl6
19:06 chenryn joined #perl6
19:06 timotimo our NativeCall seems nicer than julia's ccall
19:10 timotimo Pkg.add("foobar") compiles stuff it clones from github and then directly has it available ... or something like that
19:10 dalek perl6-bench: df6f6bb | (Geoffrey Broadwell)++ | analyze:
19:10 dalek perl6-bench: Show breakdown of history plot; improve history plot hover tips
19:10 dalek perl6-bench: review: https://github.com/japhb/perl6-bench/commit/df6f6bb499
19:11 timotimo japhb: how do you feel about adding "[Code]" links that point to github for the minibenchmarks?
19:11 japhb timotimo: Try `bench --format=html_plot history` again after that last commit.  :-)
19:11 timotimo sadly, the actual filename that belongs to the minibenchmark is not directly visible in the microbenchmarks.pl :(
19:12 japhb As for code links, I thought that was already done (showing the source text) by someone else?
19:12 japhb (I don't have it activated in history mode yet)
19:13 timotimo only for the microbenchmarks
19:13 dalek doc: 8093e18 | (Steve Mynott)++ | / (2 files):
19:13 dalek doc: experimental -f support for methods if index.data exists
19:13 dalek doc: review: https://github.com/perl6/doc/commit/8093e18a72
19:14 timotimo because there the source code i sactually part of the json file with the timings
19:14 japhb timotimo: Oh, I understand what you mean now.  Yeah, that seems useful.
19:15 timotimo it would be fantastic if it could also factor in the commit id of the perl6-bench version used
19:15 timotimo since that's also already part of the json file :)
19:15 japhb I was thinking that very thing.  :-)
19:16 japhb Risks being a little off if you've got a -dirty commit, but if you're in that situation, you've got the source to look at locally.
19:16 timotimo we're obviously either on the same wavelength
19:16 timotimo or our wavelengths are a and b with a = n * b and n :: Int
19:20 japhb gcd(a,b) == min(a,b)
19:20 MilkmanDan joined #perl6
19:22 japhb timotimo: Can you throw up a current html_plot history with all of the many variants you timed?  I'd like to see what that looks like, since I only have three lineages locally
19:23 cognome joined #perl6
19:25 psch i have a confuse.  there's a test that only fails under the harness.
19:25 psch running prove manually passes just fine
19:26 psch the .t file doesn't have any skips or todos though
19:26 psch https://github.com/peschwa/rakudo/tree/rt82108 this branch fails in t/spec/integration/advent2010-day21.t in the second test
19:27 psch if i reorder or random the tests it still fails at rot13, not the second test
19:28 aoseki joined #perl6
19:28 psch (as in, it doesn't matter that the rot13 test is the second, it's the rot13 that somehow fails)
19:30 ariden__ joined #perl6
19:40 timotimo japhb: it's not finished yet
19:40 timotimo (how beefy do you think my system is?)
19:42 japhb I figured you'd do JVM last (or separately) in order to have useful data sooner.
19:52 japhb One of the design decisions I'm very happy with is separating out the timing program from the analysis program, and allowing the analyzer to read and combine arbitrary different timing files.  That's been working well for me so far.  For example, I keep timings for all of the Rakudo, NQP, and Perl 5 releases, and then just need to retime the NQP and Rakudo HEAD as you guys optimize, without having to redo all the old ones.
19:53 ventica joined #perl6
19:54 timotimo japhb: i *am* doing jvm last
19:54 timotimo but i don't want to put load on the machine in the middle of the run :)
19:58 anaeem1__ joined #perl6
20:06 rurban joined #perl6
20:07 chenryn joined #perl6
20:16 denis_boyun joined #perl6
20:18 timotimo japhb: i'll probably just ctrl-c the java timings when this one finishes
20:19 timotimo japhb: how do you feel about a little date/time display in the output of perl6-bench?
20:25 chenryn joined #perl6
20:26 ariden joined #perl6
20:27 ariden left #perl6
20:28 thou joined #perl6
20:29 silug joined #perl6
20:35 psch hm, at least i can reproduce that test failure for advent2010-day21.t with upstream/nom...
20:35 ventica joined #perl6
20:45 pippo joined #perl6
20:50 timotimo only three benchmarks to go until i can kill the timing run for the jvm
20:50 telex joined #perl6
20:55 takesako joined #perl6
20:58 ilbot3 joined #perl6
20:58 Topic for #perl6 is now »ö« Welcome to Perl 6! | http://perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:,  niecza:, std:, or /msg camelia perl6: ... | irclog: http://irc.perl6.org | UTF-8 is our friend!
20:58 dwarring .tell Ven PDF::Grammar README has been improved, added some usage notes and examples. Thanks for feedback Ven++
20:58 yoleaux dwarring: I'll pass your message to Ven.
21:02 timotimo when i just ./bench compare, i get a single line for the summary scores that reads thus:
21:02 timotimo SUMMARY SCORE                      100.0        100.0        100.0        100.0        100.0        100.0        100.0        100.0        100.0        100.0        100.0        100.0        100.0        100.0        100.0        100.0        100.0        100.0        100.0        100.0        100.0        100.0        100.0        100.0        100.0        100.0        100.0        100.0        100.0
21:02 timotimo 100.0        100.0        100.0        100.0        100.0        100.0        100.0        100.0        100.0        100.0        100.0        100.0        100.0        100.0
21:03 FROGGS O.o
21:07 japhb timotimo: You mean you want a timestamp at the start of each test, so you can see how long it's been running?
21:08 FROGGS perl6-m -Ilib -e 'use v5; "a" =~ /a/;'
21:08 FROGGS Not enough positional parameters passed; got 1 but expected 6
21:08 FROGGS in method match at src/gen/m-CORE.setting:6292
21:08 japhb timotimo: Yeah, sometimes something gets backgrounded and not killed, and I'm not sure why.  You should be able to just killall analyze or so.
21:08 FROGGS ^-- I've no idea how to solve that yet :o(
21:08 jnthn 6? o.O
21:08 FROGGS yeah
21:09 timotimo http://t.h8.lv/p6bench/2014-08-02-long_comparison.html - this looks okay
21:09 FROGGS I have no idea what that could be
21:09 timotimo (except not)
21:09 japhb timotimo: Something seems very strange with that summary, clearly.  I wonder what went wrong ....
21:09 user3 joined #perl6
21:09 virtualsue joined #perl6
21:09 timotimo http://t.h8.lv/p6bench/2014-08-02-long_history.html - this looks not so okay
21:09 japhb If you manually specify the compilers, does it work right?
21:09 timotimo want my timings/ ?
21:09 timotimo what do you mean "manually"?
21:10 timotimo oh
21:10 user3 left #perl6
21:10 timotimo it could be that there's one compiler for every test that has a FAIL
21:10 FROGGS jnthn: I guess it is the $patrx that gets invoked at Str.pm:594, but sadly I cannot DUMP it (I can also not dump its .signature)
21:10 japhb Oh!  I know ... that probably meant you didn't have a single test that passed on *all* of the compilers you tested.  Which I'm guessing is because of a mostly-empty timings file for JVM!
21:11 timotimo 2013.06, 2013.08, 2013.10 have all FAIL or SKIP
21:11 japhb Yeah, delete those, or don't include them if you list them all out on the command line.  Then you should be in a much happier place.
21:12 japhb Wow, comparing that many in comparison mode results in quite a mess ....
21:13 timotimo that's probably from not having --backends=
21:13 timotimo except if you | less -S
21:13 japhb Oh, I was looking at http://t.h8.lv/p6bench/2014-08-02-long_comparison.html, and noticing the graphs get smashed on the left by the legends
21:15 timotimo feel free to refresh
21:15 timotimo yes, that's right m)
21:16 timotimo wait whaaaat
21:16 japhb Looking at those perl5 plots, I suspect your computer went to low-speed mode during part of the tests.
21:16 timotimo why does nqp-jvm have a score of 3k here?
21:18 japhb timotimo: I'm guessing while_empty_native, and I'm guessing because it's peak speed is 30x perl5's, which wouldn't surprise me if it managed to turn it into a tight machine language loop after a while.
21:19 japhb That test may need to be turned off for being grossly unrepresentative of overall loop performance.
21:19 timotimo m)
21:19 timotimo probably
21:20 japhb Or excluded from summary scores, at least.
21:20 timotimo i feel like we shouldn't remove the start-up time from the comparisons
21:20 timotimo otherwise the jvm implementations will have wildly exaggerated scores :)
21:20 timotimo :P
21:21 timotimo want me to upload my raw timings for you to ... enjoy? :)
21:21 japhb Well ... JVM already specializes in very long running processes, so as long as users expect that, it's fair.  But maybe present the summary with and without *-jvm included?
21:21 japhb timotimo: Yeah, make a tarball, and I can fiddle with them next time I have some free cycles
21:34 chenryn joined #perl6
21:36 BenGoldberg joined #perl6
21:40 timotimo cool.
21:41 timotimo 16 mb worth of timings %)
21:41 timotimo called timings_2014-08.tar.bz2
21:41 timotimo in the folder you already know about
21:42 timotimo it would be kinda cool if i could easily re-name a checkout throughout the whole system
21:42 timotimo including the timings made so far
21:42 xenoterracide joined #perl6
21:42 timotimo like "rename matser to what its actual commit id was and have a new master with the most current code"
21:52 pippo left #perl6
21:52 masak 'night, #perl6
21:53 timotimo i kind of wish i could provide a junction for the sub MAIN
21:53 timotimo ./bench extract \& build \& time rakudo-moar/... nqp-moar/...
22:17 thou joined #perl6
22:26 dalek roast: 357d2a9 | TimToady++ | S32-list/combinations.t:
22:26 dalek roast: just use eqv, not hyper eqv
22:26 dalek roast: review: https://github.com/perl6/roast/commit/357d2a978a
22:30 takesako joined #perl6
22:36 dalek roast: dce5eab | TimToady++ | S32-list/combinations.t:
22:36 dalek roast: also test combinations function
22:36 dalek roast: review: https://github.com/perl6/roast/commit/dce5eab11d
22:36 dalek roast: b66728f | TimToady++ | S32-list/permutations.t:
22:36 dalek roast: add permutations.t
22:36 dalek roast: review: https://github.com/perl6/roast/commit/b66728f128
22:37 dalek rakudo/nom: 32549fc | TimToady++ | t/spectest.data:
22:37 dalek rakudo/nom: test S32-list/permutations.t
22:37 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/32549fca21
22:38 lizmat Files=908, Tests=31957, 197 wallclock secs ( 8.53 usr  3.93 sys + 1217.31 cusr 166.06 csys = 1395.83 CPU)  # below 1400!!, only yesterday first time below 1500 CPU seconds
22:38 lizmat also, the first time below 200 wallclock!
22:40 jnthn much wow
22:41 jnthn I just landed a hopefully-transparent-but-touching-something-scary patch in Moar. Testing welcome.
22:43 lizmat too scary to just bump MOAR_REVISION / NQP_REVISION ?
22:43 chenryn joined #perl6
22:44 jnthn Well, I'd like at least one other person to give it a spin :)
22:45 TimToady okay
22:46 jnthn The basic idea is to try and avoid deserializing *everything* up front
22:48 lizmat perl Configure.pl --gen-moar=master --gen-nqp=master --backends=moar  # would do the trick ?
22:48 jnthn Think so
22:48 lizmat will try in a min
22:48 lizmat spectesting some removal of dead code in ModuleLoader.nqp
22:48 jnthn nice :)
22:48 TimToady you definitely need a make clean of some sort :)
22:50 TimToady parse seems about 10 seconds slower
22:50 TimToady tests seem to be working though
22:50 jnthn o.O
22:51 jnthn That's bizzare given (a) it's the same here, and (b) I can't see how this woulda had much influence on parse
22:51 jnthn (same here as in, my parse is what it was before this)
22:52 TimToady might be heat slowdown
22:52 dalek rakudo/nom: 22b0fec | (Elizabeth Mattijsen)++ | src/Perl6/ModuleLoader.nqp:
22:52 dalek rakudo/nom: Remove dead code
22:52 dalek rakudo/nom:
22:52 dalek rakudo/nom: Since we have CompUnitRepo objects living in @*INC, I don't see how this could
22:52 dalek rakudo/nom: ever work.  Removal does not seem to break anything at all in spectesting.
22:52 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/22b0fec245
22:52 lizmat re heat slow down: that last fastest spectest was on a machine that hadn't done anything for several hours
22:53 TimToady heat builds up in a few seconds in a laptop
22:54 TimToady and I'm in the warmest room of the house
22:54 lizmat .oO( maybe switch off the laptop :-)
22:55 jnthn .oO( Winter is coming... :) )
22:55 TimToady I could put it in the freezer
22:58 TimToady only failed one test, t/spec/integration/advent2010-day21.t, but I was failing that before
22:59 * raydiak wonders how accurate any performance comparison could be without disabling speedstep, turbocore, etc
23:01 timotimo there was a suggestion to fix the cpu to the lowest clock rate it'd support
23:01 timotimo which does seem like a helpful idea
23:01 timotimo no way i'd wait tat long for benchmarks, though :)
23:01 lizmat Files=909, Tests=31960, 204 wallclock secs ( 8.96 usr  3.92 sys + 1278.00 cusr 160.26 csys = 1451.14 CPU)
23:01 lizmat jnthn: so no spectacular speed gains
23:01 lizmat but it seems to pass all tests
23:02 jnthn lizmat: tbh, I wasn't expecting any yet
23:02 timotimo excellent
23:02 jnthn lizmat: We save about 2.5MB off base memory
23:02 lizmat that *is* useful  :-)
23:02 jnthn lizmat: But nothing is really done to expect we might be able to exploit lazy deserialization.
23:02 timotimo jnthn: how can i help get rid of the "touchyness"?
23:02 jnthn timotimo: One thing to try is static lex value vivification
23:02 timotimo is there some way to visualize what frames or ... things ... cause any given object to be deserialized fro the first time?
23:03 lizmat so, bump on MOAR_REVISION / NQP_REVISION seems in order ?
23:03 timotimo that'd probably cause a whole bunch less frames to be touched, yes?
23:03 jnthn Well
23:03 timotimo but i thought having static lex values somewhere else was already a thing we had for a few hours?
23:04 jnthn Yes, we do put off deserializing them
23:04 jnthn But we do it on first touch
23:04 TimToady yeah, it's cranking my core hz up and down
23:04 jnthn Uh, first invocation
23:04 jnthn gah, lemme try this again
23:04 jnthn Right now, when we invoke a frame for the first time, we go and grab all of the static lexical wvals
23:05 jnthn However, we might not actually need all of them
23:05 lue Quick question: \n in strings is whatever the OS thinks a newline is, right? S02:4136 says it's just a LINE FEED
23:05 synopsebot Link: http://perlcabal.org/syn/S02.html#line_4136
23:06 jnthn lue: In what context?
23:06 lue e.g.  say "Hello world!\n"
23:06 jnthn I think in a regex it's treated logically
23:06 jnthn I think in that case it's treated literally
23:06 jnthn (in a string)
23:06 TimToady well, on windows you have text files processing that to \r\n on the boundary
23:07 lue So on windows  say "Hello world!\n"  would end up being weird because I didn't put a \r too?
23:07 timotimo aye, in a regex it is indeed treated logically
23:07 TimToady and on ancient Mac \r and \n are swapped
23:07 timotimo oh, they don't have that any more?
23:07 TimToady lue: should be fine
23:07 lue timotimo: not since OSX switched to a Unix-like :)
23:07 BenGoldberg Mac OS X is a linux variant, no?
23:08 timotimo no
23:08 TimToady bsd/mach
23:08 timotimo BSD
23:08 jnthn lue: It'll only be weird if you use some odd program that can't handle \n
23:08 timotimo jnthn: would we be putting a c-level null into lexicals that are to be wval'd and then in the wval op we check for a null and deserialize if we see one?
23:08 TimToady or set your output to binary
23:08 jnthn Like, uh, NotePad
23:08 lue yeah, I was under the impression that \n in strings translated to your system's idea of a new line indicator.
23:08 jnthn timotimo: Note there's no wval op
23:08 timotimo oh
23:08 jnthn timotimo: But yes, the idea is put a null in the slot
23:08 TimToady lue: it does, on windows, for text files
23:08 jnthn And then spot the null and go deserialize.
23:09 timotimo well, there *is* a wval op and a wval_wide op :P
23:09 jnthn Right
23:09 timotimo oh, would the check perhaps land in getlex?
23:09 jnthn Well, vivify_lexical iirc
23:09 lue TimToady: but not console output, or internally-used strings, right?
23:09 * BenGoldberg wonders if there is some OS out there which uses chars other than CR or LF or CRLF for newline.
23:09 timotimo that's an op that we'd have to codegen?
23:10 jnthn No
23:10 TimToady filehandles default to text, even on the console
23:10 jnthn Best is to read the patches I did a day or so ago in the area.
23:10 timotimo oh!
23:10 lue BenGoldberg: I imagine some OS out there uses NEL :)
23:11 BenGoldberg That's logical ;)
23:11 jnthn But it's basically a case of not looking up the wval in the frame finish deserialize thingy, but instead putting in a NULL there, and then doing the fetch of the wval the first time it's needed in vivify instead, and installing it then into the static_env for the future.
23:12 timotimo ah, i think i see the code you mean
23:12 TimToady jnthn: anyway, I think your patch looks good
23:13 jnthn timotimo: Should be around a 10 line patch, at a guess...
23:13 timotimo the piece that for's over the slvs count and MVM_ASSIGN_REF's the sc_get_obj into the body's static_env
23:13 jnthn TimToady: Thanks. Hopefully we can take advantage of it some more.
23:13 jnthn timotimo: Right, it's the sc_get_obj we want to putt of until later :)
23:14 jnthn The other thing - which I'll have a crack at tomorrow - is I think we can leave ->HOW on the STable NULL in initial deserialization.
23:14 TimToady t/spec/integration/advent2010-day21.t doesn't fail when I run it by itself, huh...
23:14 timotimo yup
23:14 lizmat TimToady: I see that with various test files all the time
23:15 jnthn Which *in theory* we might be able to get away with deserializing the meat-objects if we don't go doing introspecting stuff...
23:15 timotimo in that case i don't have to MVM_ASSIGN_REF, because it's not a gc'd thing i'm putting in there?
23:15 jnthn *meta
23:15 timotimo just a regular C-level null pointer into the .o?
23:15 jnthn timotimo: I *think* the memory is zeroed too
23:15 timotimo i'll check
23:15 jnthn timotimo: If not just calloc it so it is
23:15 jnthn That's cheaper than a loop and NULLing all the slots... :)
23:15 timotimo ah, yes, calloc
23:15 jnthn OK, cool
23:16 jnthn You'll need to MVM_ASSIGN_REF it into the slot in vivify
23:17 timotimo yes
23:17 timotimo assign ref is the thing that handles write barriers for going from nursery to gen1 and so forth?
23:17 jnthn Right
23:18 timotimo would fully_deserialized need to be adjusted in this case?
23:18 jnthn No
23:19 jnthn That's talking about whether we've enough in place to execute the frame.
23:20 timotimo OK
23:20 timotimo last thing (?), where would i store the two values to find the object in the sc by?
23:20 jnthn Oh, you get them from the same place they come from today
23:20 timotimo ah, so i go to the static_info and into the bytecode field?
23:21 timotimo it seems like a nontrivial calculation to find the offset where the lex vivification value array lives
23:22 jnthn Yeah, it is a bit...
23:22 jnthn I mean, you can find it through sf->body.frame_data_pos
23:22 jnthn I'd write something in bytecode.c that does it that way for now.
23:22 timotimo ah, hadn't seen it
23:22 jnthn Remember it's only going to happen the first time we ever need to get hold of that value.
23:23 jnthn MVM_bytecode_finish_frame does that kinda calc
23:23 jnthn It's just it pays attention to everything
23:23 timotimo add a little function to bytecode.c that extracts the two integers for a given lexical for you?
23:23 jnthn Yes
23:23 timotimo will do
23:24 jnthn If you look in deserialize_frame you'll see skipping code you can steal
23:24 jnthn Towards the end.
23:24 timotimo thanks
23:24 jnthn Happy hacking
23:24 jnthn I'm off for the night
23:24 jnthn o/
23:24 timotimo oh
23:24 timotimo would i be wanting the cu for anything there?
23:25 timotimo only for the bytecode version if at all, right?
23:25 jnthn yeah, you'll want it for that
23:25 jnthn You can toss the ensure_can_read calls though
23:25 jnthn Because if we made it this far we know we can.
23:25 jnthn 'night
23:26 timotimo thought so
23:29 lizmat gnigh jnthn
23:33 nbrown joined #perl6
23:47 iarna joined #perl6
23:52 timotimo it seems like the bytecode version gets set to 2 somewhere along the way
23:52 timotimo causing the number of slvs to be expected to go down to 0
23:53 timotimo oh, that's because of the stage1, duh
23:53 dalek rakudo/nom: a6e278d | (Elizabeth Mattijsen)++ | src/Perl6/ModuleLoader.nqp:
23:53 dalek rakudo/nom: Alas, this code is needed still
23:53 dalek rakudo/nom:
23:53 dalek rakudo/nom: To correctly identify which directories were searched if a compunit load fails.
23:53 dalek rakudo/nom:
23:53 dalek rakudo/nom: This reverts commit 22b0fec24548dcfd9b22231629637d4d3dc96158.
23:53 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a6e278d1ce
23:54 chenryn joined #perl6
23:55 lizmat feels like gen-cat.nqp has a buffering issue:
23:55 lizmat m src/core/Nil.pm src/core/Range.pm src/core/ListIter.pm src/core/MapIter.pm src/core/GatherIter.pm src/core/List.pm src/core/LoL.pm src/core/Ar
23:55 lizmat The following step can take a long time, please be patient.
23:56 lizmat the list of modules it's concatting is sometimes incomplete
23:59 timotimo it's not working yet and i'll go to bed and won't be at the computer tomorrow until somewhat late

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

Perl 6 | Reference Documentation | Rakudo