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