Perl 6 language and compiler development | Logs at colabti.org/irclogger/irclogger_logs/perl6-dev | For toolchain/installation stuff see #perl6-toolchain | For MoarVM see #moarvm Set by AlexDaniel on 12 June 2018. |
|||
00:21
fake_space_whale joined
|
|||
Geth | rakudo: 2e90c6607f | (Joelle Maslak)++ | 2 files Github Issue #2110 - improve err for obs positionals w/ quantifiers Example: /\1+/ would previously give two messages, one about \1 being obs and "quantifier quantifies nothing". Now the new behavior will just be to report the unrecognized backslash sequence and offer a suggestion. Thanks zoffixznet for determining what needed to be done and providing some of the code. |
00:31 | |
synopsebot | RAKUDO#2110 [open]: github.com/rakudo/rakudo/issues/2110 [GAO][easy to resolve][good first issue] Confusing error message for \1+ in regex | ||
rakudo: c65c8fa828 | (Zoffix Znet)++ (committed using GitHub Web editor) | 2 files Merge pull request #2117 from jmaslak/github_2110 Improve err for obs positionals w/ quantifiers |
|||
rakudo: 0357454693 | (Zoffix Znet)++ (committed using GitHub Web editor) | src/Perl6/Grammar.nqp Be sure we stringify Match object |
00:34 | ||
rakudo: 4494a24952 | (Zoffix Znet)++ | t/05-messages/03-errors.t Test backslash errors are not confusing Closes github.com/rakudo/rakudo/issues/2110 R#2110 Rakudo fix: github.com/rakudo/rakudo/pull/2117 github.com/rakudo/rakudo/commit/0357454693550 |
00:48 | ||
synopsebot | R#2110 [open]: github.com/rakudo/rakudo/issues/2110 [GAO][easy to resolve][good first issue] Confusing error message for \1+ in regex | ||
00:50
travis-ci joined
|
|||
travis-ci | Rakudo build canceled. Zoffix Znet 'Be sure we stringify Match object' | 00:50 | |
travis-ci.org/rakudo/rakudo/builds/406953117 github.com/rakudo/rakudo/compare/c...5745469355 | |||
00:50
travis-ci left
|
|||
buggable | [travis build above] ☠ Did not recognize some failures. Check results manually. | 00:50 | |
00:59
lizmat left
01:54
stmuk_ joined
01:57
stmuk joined
01:59
stmuk_ left
|
|||
MasterDuke | .tell pmurias i don't have time to research this tonight, but `'my $a; my $i := 1; while $i++ < 9_700_000 { $a := ~(($i - 1) / $i) }; say($a);'` dies when run with truffle, but 9_600_000 is ok | 03:24 | |
yoleaux | MasterDuke: I'll pass your message to pmurias. | ||
MasterDuke | .tell pmurias the error is `[truffle] opt fail WhileRepeatingNode@3486117b<OSR> |Reason org.graalvm.compiler.core.common.PermanentBailoutException: Too deep inlining, probably caused by recursive inlining. == Inlined methods ordered by inlining frequency: java.lang.Class.getCanonicalName() [977] ... <lots more classes>` | 03:25 | |
yoleaux | MasterDuke: I'll pass your message to pmurias. | ||
MasterDuke | .ask jnthn at github.com/perl6/nqp/blob/master/d...operations there's a note `[As of 2014.04, these are very new and subject to revision and additions.]`. are the docs correct and complete enough now such that the caveat can be removed? | 03:29 | |
yoleaux | MasterDuke: I'll pass your message to jnthn. | ||
05:12
stmuk_ joined
05:15
stmuk left
05:38
fake_space_whale left
06:43
MasterDuke left,
robertle joined
08:08
lizmat joined
|
|||
lizmat | good *, #perl6-dev! | 08:08 | |
Files=1246, Tests=76402, 380 wallclock secs (16.29 usr 5.62 sys + 2676.96 cusr 253.34 csys = 2952.21 CPU) | |||
08:44
brrt joined
|
|||
jnthn | lizmat: About github.com/rakudo/rakudo/issues/2111 I'm suspecting that's a behavior change of some sort in the getlexcaller op or whatever the unpack method is using | 09:22 | |
lizmat | yeah, I was just looking at the code and figured exactly that | 09:23 | |
it's using getlexcaller | |||
so, should I use something else there now ? | |||
jnthn | No, we should try to figure out why it stopped working | ||
It may be a genuine regression | 09:24 | ||
lizmat | ok, then I'll assign it to you ? | ||
ah, it's already assigned to you :-) | |||
maybe it just happened to work before when it shouldn't have :-) | 09:25 | ||
jnthn | That's also possible | 09:26 | |
Geth | rakudo: 8607f68238 | (Jonathan Worthington)++ | src/vm/moar/spesh-plugins.nqp Add bug compatibility unfix for returning Proxy Due to a bug in the handling of return values, a Proxy could escape from a routine that was not marked `is rw`. This was fixed by the recent spesh plugins work. However, fixing it breaks modules that depended on the bug, of which there are several. So, for now, bring the bug back. |
09:29 | |
09:46
brrt left
|
|||
Geth | nqp: eda1a54b20 | (Elizabeth Mattijsen)++ | tools/build/MOAR_REVISION Bump MoarVM for getlexcaller fix |
10:26 | |
¦ nqp: version bump brought these changes: github.com/MoarVM/MoarVM/compare/2...0-gba906c4 | |||
10:35
brrt joined
10:40
travis-ci joined
|
|||
travis-ci | NQP build passed. Elizabeth Mattijsen 'Bump MoarVM for getlexcaller fix' | 10:40 | |
travis-ci.org/perl6/nqp/builds/407078117 github.com/perl6/nqp/compare/8db2b...a1a54b20ce | |||
10:40
travis-ci left
|
|||
Geth | rakudo: AlexDaniel unassigned from jnthn Issue Backward compatibility for returning Proxy without `is rw` github.com/rakudo/rakudo/issues/2113 AlexDaniel self-assigned Backward compatibility for returning Proxy without `is rw` github.com/rakudo/rakudo/issues/2113 Bump NQP to get lexcaller fix |
10:43 | |
10:52
Ven`` joined,
Ven`` left
|
|||
¦ rakudo: version bump brought these changes: github.com/perl6/nqp/compare/2018....9-geda1a54 | |||
roast: 3129a4a708 | (Elizabeth Mattijsen)++ | S32-exceptions/misc2.t Add test for R#2111 |
|||
synopsebot | R#2111 [open]: github.com/rakudo/rakudo/issues/2111 [regression] `please 'use experimental :pack'` even if code does exactly that | ||
11:03
Ven`` joined
|
|||
jnthn | lizmat++ # test | 11:03 | |
Geth | ¦ rakudo: AlexDaniel assigned to timo Issue Allow IO::Socket::Async to listen to a system-defined (unspecified) port github.com/rakudo/rakudo/issues/2091 | 11:12 | |
AlexDaniel | timotimo: ↑ :) | 11:13 | |
timotimo | ah, didn't see a ticket for it | 11:19 | |
Geth | roast: 9d7241417c | (Timo Paulssen)++ | S32-io/IO-Socket-Async.t tests for binding to port 0 i.e. asking the OS to allocate a port for us. |
11:29 | |
11:34
pmurias joined
|
|||
pmurias | .tell MasterDuke does it happen with HEAD or only after you do some changes? | 11:34 | |
yoleaux | 03:24Z <MasterDuke> pmurias: i don't have time to research this tonight, but `'my $a; my $i := 1; while $i++ < 9_700_000 { $a := ~(($i - 1) / $i) }; say($a);'` dies when run with truffle, but 9_600_000 is ok | ||
pmurias: I'll pass your message to MasterDuke. | |||
03:25Z <MasterDuke> pmurias: the error is `[truffle] opt fail WhileRepeatingNode@3486117b<OSR> |Reason org.graalvm.compiler.core.common.PermanentBailoutException: Too deep inlining, probably caused by recursive inlining. == Inlined methods ordered by inlining frequency: java.lang.Class.getCanonicalName() [977] ... <lots more classes>` | |||
11:41
brrt left
|
|||
AlexDaniel | error: short SHA1 5ec2c96 is ambiguous | 11:42 | |
hint: The candidates are: | |||
hint: 5ec2c96ec commit 2018-07-04 - Fix "diag "foo"|"bar" | |||
hint: 5ec2c96f8 commit 2010-03-08 - Re-enable subset.t, which passes some tests alpha never passed. :-) | |||
:) | |||
releasable6: status | 11:45 | ||
releasable6 | AlexDaniel, Next release will happen when it's ready. 4 blockers. 77 out of 240 commits logged (⚠ 2 warnings) | ||
AlexDaniel, Details: gist.github.com/b5428204c51c24a7ee...a08b2da24a | |||
AlexDaniel | releasable6: status | 11:48 | |
releasable6 | AlexDaniel, Next release will happen when it's ready. 4 blockers. 77 out of 240 commits logged (⚠ 2 warnings) | ||
AlexDaniel, Details: gist.github.com/b1a8de1646fb9e1f46...1e80f1825b | 11:49 | ||
AlexDaniel | releasable6: status | ||
releasable6 | AlexDaniel, Next release will happen when it's ready. 4 blockers. 78 out of 240 commits logged | ||
AlexDaniel, Details: gist.github.com/28ce0ba85d31cf0474...9eee10e6d0 | |||
12:09
Ven`` left
12:10
Ven`` joined
12:30
Ven`` left
12:36
Ven`` joined
12:38
lizmat left
|
|||
pmurias | .tell MasterDuke it seems the instanceof chains really suck performance wise | 12:38 | |
yoleaux | pmurias: I'll pass your message to MasterDuke. | ||
pmurias | .tell MasterDuke I'll investigate doing our coercions the proper truffle way | 12:39 | |
yoleaux | pmurias: I'll pass your message to MasterDuke. | ||
Geth | nqp/truffle: bbe17843ef | (Paweł Murias)++ | 4 files [truffle] Move reflection behind a @TruffleBoundary |
||
12:47
dogbert2 joined
12:52
Ven`` left
12:55
j3nnn1 joined
13:04
Ven`` joined
13:23
Ven`` left
13:29
skids joined
13:30
stmuk joined
13:31
pmurias left,
pmurias joined,
stmuk_ left
13:34
Ven`` joined
|
|||
Geth | nqp: caf545127b | (Aleks-Daniel Jakimenko-Aleksejev)++ | tools/build/MOAR_REVISION [MoarVM Bump] Brings 0 commit MoarVM bump brought: github.com/MoarVM/MoarVM/compare/2...gba906c429 |
13:40 | |
¦ nqp: version bump brought these changes: github.com/MoarVM/MoarVM/compare/2...gba906c429 | |||
rakudo: c47e3681c0 | (Aleks-Daniel Jakimenko-Aleksejev)++ | tools/build/NQP_REVISION [NQP Bump] caf545127 [MoarVM Bump] Brings 0 commit NQP bump brought: github.com/perl6/nqp/compare/2018....gcaf545127 |
|||
¦ rakudo: version bump brought these changes: github.com/perl6/nqp/compare/2018....gcaf545127 | |||
AlexDaniel | “[MoarVM Bump] Brings 0 commit” | 13:41 | |
so much progress | |||
:) | |||
13:48
lizmat joined
|
|||
Geth | nqp: 15c9774719 | 陈梓立++ (committed using GitHub Web editor) | t/nqp/019-file-ops.t unfudge test, co #274 (#485) This test has been unfudged before but it causes some wired issue. I trigger Travis CI and test on several macOS machine and seems `lstat_time` works properly on MoarVM backend. no reason to fudge it. |
13:55 | |
synopsebot | NQP#274 [open]: github.com/perl6/nqp/issues/274 t/nqp/19-file-ops.t failure in pre-2016.01 | ||
13:57
Zoffix joined
|
|||
Zoffix | AlexDaniel: I think this fixes that: github.com/zoffixznet/z/commit/ed4...71e47cbdcf | 13:57 | |
So pull in latest changes. | |||
Also, I vaguelly recall the zero-commit bump was causing some issues last time | |||
Hm, maybe not: colabti.org/irclogger/irclogger_log...04-28#l242 | 13:59 | ||
13:59
Ven`` left
|
|||
Zoffix | yeah, don't see any mentions of issues. nm | 14:00 | |
AlexDaniel | Zoffix: thanks | 14:22 | |
pulled :) | |||
gfldex | do we have banchmarks on windows? I'm asking becaus of www.phoronix.com/scan.php?page=art...&num=6 | 14:56 | |
14:58
fake_space_whale joined
|
|||
Zoffix | None that I'm aware of | 15:00 | |
15:01
ExtraCrispy joined
15:13
pmurias left
15:22
hoelzro joined
|
|||
samcv | "Can't locate Digest/SHA.pm in @INC" when trying to compile nqp (this is during compilation, not detected beforehand) | 15:33 | |
gonna open a nqp issue | |||
Zoffix | huggable: Digest::SHA | 15:34 | |
huggable | Zoffix, Digest::SHA is core, but centos/redhat/fedora have broken the packaging. You need to install the 'perl-core' package to get a complete perl instlalation: sudo dnf install perl-core | ||
Zoffix | samcv: ^ | ||
samcv | yes | ||
Zoffix | Probably can improve NQP build system to display a message | ||
samcv | but it should tell you in Configure.pl | ||
instead of failing partway through build | |||
Zoffix | :) | ||
15:42
pmurias joined
15:48
robertle left
16:00
lizmat left
16:03
lizmat joined
16:08
bisectable6 joined
16:15
lizmat left
16:16
lizmat joined
16:19
nativecallable6 joined,
benchable6 joined,
squashable6 joined
|
|||
Geth | rakudo: AlexDaniel self-assigned [WIP] Rescalar merge & other toaster-related stuff №2 (2018.07 prep) github.com/rakudo/rakudo/issues/2121 zoffixznet self-assigned Segfault while indexing with infinite Seq github.com/rakudo/rakudo/issues/2120 Revert "Give Pair its own .item" This reverts commit 3cbf25e0f53d25092d7e5a47c6fc05d7f52d4d7d. This is no longer needed to fix QuantHash roundtripping, but it *does* break (testing) modules in the ecosystem right now. So, if we would need this in the future, lift it at least to the next release, or to 6.d. |
16:21 | |
16:25
fake_space_whale left
|
|||
Zoffix | greppa[TAB][TAB][TAB] | 16:31 | |
AlexDaniel: no bot? | |||
16:33
dogbert17 joined
16:35
greppable6 joined
|
|||
AlexDaniel | Zoffix: yeah, pinged out somehow. It's back now. | 16:35 | |
Zoffix | AlexDaniel++ | ||
greppable6: m\:P5 | 16:36 | ||
greppable6 | Zoffix, Found nothing! | ||
16:36
diakopter joined
|
|||
Zoffix | *cough* bullshit *cough* | 16:36 | |
AlexDaniel | greppable6: m:P5 | ||
Zoffix | greppable6: \:P5 | ||
greppable6 | AlexDaniel, Found nothing! | ||
Zoffix, 6 lines, 3 modules: gist.github.com/f62ed593b3e99650c3...aee07658ae | |||
Zoffix | \o/ | ||
AlexDaniel | Zoffix: note that it is using perl6-all-modules which is known not to include a large amount of modules… | 16:37 | |
github.com/moritz/perl6-all-modules | |||
there's no ticket though | |||
Zoffix | ah ok | ||
AlexDaniel | filed something here: github.com/moritz/perl6-all-modules/issues/2 | 16:38 | |
diakopter wonders what truffle is | |||
Zoffix | diakopter: en.wikipedia.org/wiki/GraalVM#Truffle | 16:39 | |
another backend for rakudo | 16:40 | ||
err, I meant the truffle branch is another backend for rakudo to work on tap of Truffle | |||
s/tap/top/; | |||
diakopter | ah, neat | ||
16:58
Zoffix left
|
|||
lizmat wonders why FIRST doesn't have a runtime value | 17:19 | ||
Feels wrong to use "once" for that | 17:20 | ||
17:20
yoleaux joined
|
|||
lizmat | use case: given 2 list, produce a list in the order of the first of elements in the second | 17:21 | |
@a.grep: * (elem) FIRST @b.Set | |||
@a.grep: * (elem) once @b.Set # not as nice | 17:22 | ||
17:26
Zoffix joined
|
|||
Zoffix | pmurias: what/how is your plan for QAST::Block migrator? R#2120 has a migration problem, which makes it gazillion's bug of the migratopr | 17:27 | |
synopsebot | R#2120 [open]: github.com/rakudo/rakudo/issues/2120 [regression][⚠ blocker ⚠] Segfault while indexing with infinite Seq | ||
Zoffix | I guess it's not the time to redesign it, 2 days after the scheduled release date :P but still, the current migrator is very fragile | 17:32 | |
17:38
statisfiable6 joined
18:10
stmuk_ joined
|
|||
Zoffix | looks like it's the whatever currier that doesn't migrate them in this case | 18:10 | |
Zoffix blushes | |||
Even `{;}() + *` has a bug in it :} | |||
18:12
stmuk left
18:20
Zoffix left
18:29
pmurias left
18:30
pmurias joined
|
|||
18:41
Ven`` joined
|
|||
AlexDaniel | lizmat: can you take a look at this module? github.com/zostay/p6-Hash-MultiValue | 18:42 | |
basically it fails with: | |||
# expected: 'Hash::MultiValue.from-pairs(:a(7), :b(8), :b(9), :c(10), :d(6), :e(11), :e(12), :f(13))' | |||
# got: 'Hash::MultiValue.from-pairs($(:a(7)), $(:b(8)), $(:b(9)), $(:c(10)), $(:d(6)), $(:e(11)), $(:e(12)), $(:f(13)))' | |||
and I bisected it to (2018-06-30) github.com/rakudo/rakudo/commit/3c...d7f52d4d7d | |||
IMO a module shouldn't be checking the output of .perl, but still | |||
lizmat | indeed, I would classify this as a test failure | 18:43 | |
I'll see if I can PR a fix | |||
AlexDaniel | lizmat: thanks! | ||
18:46
dct joined
18:55
pmurias left
|
|||
lizmat | notable6: weekly | 18:55 | |
notable6 | lizmat, 6 notes: gist.github.com/6fe86e11abca395043...cc4b0652e5 | ||
lizmat | notable6: weekly reset | 18:56 | |
notable6 | lizmat, Moved existing notes to “weekly_2018-07-23T18:56:49Z” | ||
19:00
Ven`` left
|
|||
AlexDaniel | lizmat: reportable: gist.github.com/c2a3cd956b4b4621b1...fca27574d7 | 19:00 | |
lizmat | AlexDaniel++ | ||
AlexDaniel | wooo we are going to reach 2000 tickets soon… :) | ||
timotimo | welcome to the new commillenium | 19:01 | |
AlexDaniel | buglennium? | 19:02 | |
timotimo | let's celebrate it with either a bugstravaganza or failurepalooza | 19:04 | |
lizmat | AlexDaniel: ^^^ that should fix the issue with Hash::MultiValue | ||
AlexDaniel: also adapted ChangeLog draft accordingly | 19:08 | ||
Geth | rakudo: 85495890d4 | (Zoffix Znet)++ | src/Perl6/Actions.nqp Fix misscoping of blocks in whatever curries Fixes R#2120 github.com/rakudo/rakudo/issues/2120 The migrator in whatever currier is too naive and in the branch that handles block args assumed QAST::WVal of code would just be the kid. However, it can also be a kid of the kid, placed in some ... (6 more lines) |
19:17 | |
synopsebot | R#2120 [open]: github.com/rakudo/rakudo/issues/2120 [QAST][regression][⚠ blocker ⚠] Segfault while indexing with infinite Seq | ||
roast: 3f1fea0d39 | (Zoffix Znet)++ | MISC/bug-coverage-stress.t Cover SEGV in curries + with Closes github.com/rakudo/rakudo/issues/2120 R#2120 Rakudo fix: github.com/rakudo/rakudo/commit/85495890d4 |
|||
19:18
dct left
|
|||
AlexDaniel | lizmat: thanks! | 19:24 | |
Zoffix++ | 19:54 | ||
20:00
pmurias joined
|
|||
lizmat | and another Perl 6 Weekly hits the Net: p6weekly.wordpress.com/2018/07/23/...cate-guts/ | 20:01 | |
20:12
Ven`` joined
20:18
benjikun joined
20:31
lizmat left
20:33
lizmat joined
20:34
MasterDuke joined
20:38
Ven` joined
|
|||
pmurias | MasterDuke: I'm turning the instanceof chains into proper truffle specialization as being slower than the old JVM backend is not acceptable ;) | 20:39 | |
20:40
Ven`` left
|
|||
MasterDuke | pmurias: heh, it's definitly not setting any speed records right now | 20:48 | |
yoleaux | 11:34Z <pmurias> MasterDuke: does it happen with HEAD or only after you do some changes? | ||
12:38Z <pmurias> MasterDuke: it seems the instanceof chains really suck performance wise | |||
12:39Z <pmurias> MasterDuke: I'll investigate doing our coercions the proper truffle way | |||
20:50
Ven` left
20:53
MasterDuke left,
MasterDuke joined
|
|||
MasterDuke | pmurias: but yeah, instanceof is never fast in java. at least that's my understanding | 20:54 | |
21:00
x[LGWs4x4i]uG2N0 joined
21:06
Kaiepi left
|
|||
MasterDuke | pmurias: what's involved in doing them the right way? | 21:06 | |
Geth | nqp/truffle: 00a3f8fa8d | (Paweł Murias)++ | 3 files [truffle] Use @Specialization instead of a instanceof chain in smart-numify |
21:08 | |
pmurias | MasterDuke: you have seen the One VM to Rule Them All, One VM to Bind Them slides/talk? | ||
MasterDuke | i think maybe the slides, but not the talk | 21:09 | |
pmurias: btw, shouldn't smart-numify create a num, not an int? | 21:11 | ||
21:12
skids left
|
|||
pmurias | MasterDuke: it creates a num | 21:14 | |
MasterDuke: you mean the (long) value cast? | |||
MasterDuke | pmurias: ignore me, i completely missread the last commit | 21:18 | |
pmurias | anyway the big slow down was cause by me doing the num to str coercion hastily and sloppily :( | 21:24 | |
(I'm working on fixing that) | |||
Geth | nqp/truffle: 233e552b8f | (Paweł Murias)++ | src/vm/jvm/runtime/org/perl6/nqp/truffle/nodes/expression/NQPSmartNumifyNode.java [truffle] Add missing specialization |
21:34 | |
nqp/truffle: a2b6c5a651 | (Paweł Murias)++ | src/vm/jvm/runtime/org/perl6/nqp/truffle/runtime/Coercions.java [truffle] Speed up num to str coercion |
|||
21:46
dct joined
|
|||
MasterDuke | pmurias: that code i was running last night is now much faster. it's now 8s for truffle (6.5s for regular jvm) | 21:47 | |
according to `time` | |||
jnthn | MasterDuke: If you have the number (or can get it handily), what is it for Moar, ooc? | 21:49 | |
MasterDuke | jnthn: 3.2s | 21:50 | |
using nqp::time_n to measure it i get 4.6s for truffle, 3.7s for jvm, and 3.1s for moar | 21:52 | ||
this is what i was running: 'my $s := nqp::time_n(); my $a; my $i := 1; while $i++ < 9_700_000 { $a := ~(($i - 1) / $i) }; say($a); say(nqp::time_n() - $s)' | |||
timotimo | this being nqp code, i'm sure it does a whole lot of back and forth between int and num | 21:53 | |
sadly, we can't time such code in rakudo yet. on truffle i mean | 21:54 | ||
Geth | nqp/truffle: adc52fd12b | (Daniel Green)++ | 3 files [truffle] Implement nqp::time_(i|n) |
||
MasterDuke | yeah, i have no idea how to profile the java part of truffle nqp | 21:55 | |
21:57
Ven`` joined
22:00
Ven`` left
22:17
pmurias left
22:20
pmurias joined
22:23
MasterDuke left
|
|||
pmurias | timotimo: a benchmark on rakudo would be a lot more informative, as storing native types in untyped variables is not very representative | 22:27 | |
timotimo | the nqp code is also without type annotations though? | 22:28 | |
22:32
MasterDuke joined
|
|||
pmurias | timotimo: the benchmark code doesn't have any but nqp has int/num/str annotations | 22:38 | |
timotimo | so would it be a difference between rakudo code and nqp code? | ||
pmurias | rakudo has bignums | 22:39 | |
22:41
ExtraCrispy left
|
|||
timotimo | that's fair, but at least it won't num/int all the time | 22:41 | |
22:48
dct left
22:52
dct joined
|
|||
MasterDuke | making $a a str and $i an int changes the times to 1.9s moar, 3.3.s jvm, and 4.75s truffle | 22:53 | |
timotimo | that's nice | ||
MasterDuke | looks like moar gets faster, the others might just be noise | 22:54 | |
pmurias | the int/num/str types are currently ignored on truffle | 22:56 | |
timotimo | and that is with rakudo doing Rat calc | ||
well, barely any calc to speak of, but still ... | |||
i still had a moar with --optimize=0, but it's taken *ages* already | 22:58 | ||
2 minutes until i killed it | |||
what's going on here? o_O | |||
pmurias | MasterDuke: it's interesting that moving the ~$a stringification out of the loop makes a gigantic difference | 23:00 | |
timotimo | MasterDuke: how in the heck is it running in a few seconds when on my machine it takes minutes? :o | 23:01 | |
but yeah, wow, taking the stringification out makes it hella faster | 23:02 | ||
pmurias | OTOH it's pretty obvious thats doing string stuff is a lot slower then numbery stuff | ||
timotimo | ah dangit | ||
23:03
Kaiepi joined
|
|||
timotimo | it's doing the thing with "infinitely spesh logging code that should have OSR'd already" again | 23:03 | |
that'd make it slow, yeah | |||
pmurias | timotimo: for that silly nqp loop? | 23:04 | |
MasterDuke | fwiw, i wasn't really trying to do anything in particular fast, just do enough work to get a sense of the relative speed of the different backends | ||
timotimo | heh. | ||
Rational.pm's Str method has 76.4% inclusive time in a --profile | |||
it's loads faster if you replace - 1 with - 1e0 | 23:05 | ||
MasterDuke | but yeah, taking the stringification out of the loop gives me .07s for moar, .15s for jvm, and .4s for truffle | 23:06 | |
timotimo | is this nqp or rakudo now? | ||
MasterDuke | this has all been nqp | 23:07 | |
1e0 doesn't seem to make a noticeable difference to any backend | |||
timotimo | OK, nqp is loads faster | ||
OK, in nqp it's just a single frame that's running 99.99% of the run time | 23:08 | ||
pmurias | I'll optimize the condition checking in while (so it's not a instanceof chain) and I'll implement native types and will see how it runs | 23:09 | |
but it's way to late for this today & | |||
23:09
pmurias left
|
|||
timotimo | 13.82496428489685 on rakudo | 23:09 | |
oh, that's with num rather than rat | 23:11 | ||
fascinating | 23:12 | ||
the constant Int object that postfix:<++> uses actually requires a wval_wide because the index is too big to fit a small wval instruction | 23:13 | ||
i'm looking at some suboptimal bytecode and perhaps there's an optimization opportunity | 23:17 | ||
MasterDuke | oooh, exciting | 23:19 | |
timotimo | hell yeah | 23:32 | |
the code looks a little bit better now! | |||
23:33
dct left
|
|||
MasterDuke | noticeable difference in timing? | 23:37 | |
timotimo | i should check that ... | 23:40 | |
m: say 4.79 / 6.61 | 23:50 | ||
camelia | 0.72466 | ||
timotimo | i call that noticeable | ||
MasterDuke: ^ | |||
MasterDuke | nice! timotimo++ | ||
timotimo | this is with "while $i++ < 50_000_000 {}" i.e. an empty loop body | ||
i spotted this in the result of using the "assign" spesh plugin with "assign-scalar-no-whence-no-typecheck" | 23:52 | ||
now this is kind of strange? | 23:53 | ||
++$i is actually a whole lot slower than $i++ | |||
MasterDuke | hasn't it been that way for a while? | ||
timotimo | i thought it was the other way around | 23:55 | |
the good news is, that the patch i have makes the difference much less pronounced | 23:56 | ||
MasterDuke | for me, in rakudo, ++$i is slower than $i++. but if $i is a native int, ++$i is faster | 23:58 | |
timotimo | what about older rakudo releases? |