|
Perl 6 language and compiler development 2.0 | Logs at irclog.perlgeek.de/perl6-dev/today | For toolchain/installation stuff see #perl6-toolchain | For MoarVM see #moarvm Set by moderator on 4 May 2018. |
|||||||||||||||||||||||||||||||||||||||
|
00:27
dalek joined,
p6lert joined,
Geth joined,
synopsebot joined
01:13
cog_ joined
01:14
entonian joined
01:57
ilbot3 joined
|
|||||||||||||||||||||||||||||||||||||||
| moderator | Perl 6 language and compiler development 2.0 | Logs at irclog.perlgeek.de/perl6-dev/today | For toolchain/installation stuff see #perl6-toolchain | For MoarVM see #moarvm | ||||||||||||||||||||||||||||||||||||||
|
02:24
softmoth joined
02:46
softmoth joined
02:59
softmoth joined
03:05
softmoth joined
03:16
softmoth joined
03:30
softmoth joined
03:31
softmoth joined
03:33
softmoth joined
03:46
softmoth joined
03:50
softmoth joined
04:06
softmoth joined
04:18
softmoth joined
04:33
cog_ joined
05:53
ufobat joined
|
|||||||||||||||||||||||||||||||||||||||
| samcv | nine++ on your work trying to make builds reproducable again | 07:21 | |||||||||||||||||||||||||||||||||||||
|
07:53
cog_ joined
|
|||||||||||||||||||||||||||||||||||||||
| lizmat | Files=1239, Tests=76248, 316 wallclock secs (15.57 usr 5.39 sys + 2171.06 cusr 219.15 csys = 2411.17 CPU) | 08:07 | |||||||||||||||||||||||||||||||||||||
|
08:38
stmuk joined
|
|||||||||||||||||||||||||||||||||||||||
| lizmat | hmmm... export a multi sub candidate on an existing proto / multi should work, right ? | 09:38 | |||||||||||||||||||||||||||||||||||||
| *exporting | |||||||||||||||||||||||||||||||||||||||
|
10:25
Kaypie joined
10:26
Kaypie joined
|
|||||||||||||||||||||||||||||||||||||||
| stmuk | p6weekly: www.meetup.com/San-Francisco-Perl/...249949377/ | 10:52 | |||||||||||||||||||||||||||||||||||||
|
11:13
cog_ joined
11:32
Ven`` joined
11:33
Ven` joined
|
|||||||||||||||||||||||||||||||||||||||
| robertle | weekly: www.meetup.com/San-Francisco-Perl/...249949377/ | 11:37 | |||||||||||||||||||||||||||||||||||||
| notable6 | robertle, Noted! | ||||||||||||||||||||||||||||||||||||||
|
12:00
ExtraCrispy joined
|
|||||||||||||||||||||||||||||||||||||||
| [Tux] |
|
12:03 | |||||||||||||||||||||||||||||||||||||
| 2018-05-05 12:56:25 test-t 2.372 | |||||||||||||||||||||||||||||||||||||||
| 2018-05-02 14:17:19 test-t 2.372 | |||||||||||||||||||||||||||||||||||||||
| 2018-03-29 14:36:32 test-t 2.372 | |||||||||||||||||||||||||||||||||||||||
| 2018-05-05 13:00:58 test-t 2.362 | |||||||||||||||||||||||||||||||||||||||
| 2018-05-02 14:24:37 test-t 2.360 | |||||||||||||||||||||||||||||||||||||||
|
12:21
brrt joined
12:27
hankache joined
|
|||||||||||||||||||||||||||||||||||||||
| MasterDuke | i thought there was an option to Configure.pl to make it use a particular branch? | 12:36 | |||||||||||||||||||||||||||||||||||||
| timotimo | --gen-nqp=bloop --gen-moar=bleep | 12:45 | |||||||||||||||||||||||||||||||||||||
| MasterDuke | ah, thanks | 12:54 | |||||||||||||||||||||||||||||||||||||
|
13:11
Tison joined
13:18
brrt joined
13:20
skids joined
|
|||||||||||||||||||||||||||||||||||||||
| MasterDuke | .tell nine your make_builds_reproducible_again branches seem to have fixed it (assuming i tested correctly) | 13:25 | |||||||||||||||||||||||||||||||||||||
| yoleaux | MasterDuke: I'll pass your message to nine. | ||||||||||||||||||||||||||||||||||||||
| MasterDuke | .tell nine i pulled latest rakudo, reverted a commit, `git reset --hard`, tried to rebuild and got errors in make test and install. then i rebuilt with nqp and moar on those branches, and tests passed and install succeeded | 13:26 | |||||||||||||||||||||||||||||||||||||
| yoleaux | MasterDuke: I'll pass your message to nine. | ||||||||||||||||||||||||||||||||||||||
| Geth | roast: e1dddc4d5e | usev6++ | S02-types/num.t [JVM] Fudge two tests for stringification |
13:37 | |||||||||||||||||||||||||||||||||||||
| skids | m: my $f := gather { UNDO { 22.say }; KEEP { 32.say }; take 1; 42.say ; take 2; 1; }; $f[0].say; $f[1].say; $f[2].say; # expected behavior here? | 13:55 | |||||||||||||||||||||||||||||||||||||
| camelia | 1 42 2 22 Nil |
||||||||||||||||||||||||||||||||||||||
| skids | Also, expected behavior if the clone gets GCd before the last take is tooken? | ||||||||||||||||||||||||||||||||||||||
| timotimo | i'd not expect phasers to be run if a clone of a frame gets GCd | 14:00 | |||||||||||||||||||||||||||||||||||||
| but that's just my implementor speaking | |||||||||||||||||||||||||||||||||||||||
| skids | :-) | ||||||||||||||||||||||||||||||||||||||
| Geth | nqp: 6debf3dbb4 | usev6++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java [JVM] Allow more combinations with underscores Makes spectest for numification of '1_2_3E0_0' pass. |
14:03 | |||||||||||||||||||||||||||||||||||||
|
14:33
cog_ joined
14:48
Kaiepi joined
|
|||||||||||||||||||||||||||||||||||||||
| MasterDuke | fwiw, the java binary provided by graal can run `nqp -e 'say("hi")'` | 14:56 | |||||||||||||||||||||||||||||||||||||
| jnthn | Wonder if it runs it much faster :) | 15:08 | |||||||||||||||||||||||||||||||||||||
| MasterDuke | it's about .5s slower. ~2.6s for graal, ~2.1s for openjdk | 15:11 | |||||||||||||||||||||||||||||||||||||
| jnthn | Aww | 15:12 | |||||||||||||||||||||||||||||||||||||
| And a fraction of a second for MoarVM, I presume :) | 15:13 | ||||||||||||||||||||||||||||||||||||||
| MasterDuke | .03s | ||||||||||||||||||||||||||||||||||||||
| however, graal does calculate the 35th fibonacci number .5s faster. 9.75s versus 10.2s | 15:20 | ||||||||||||||||||||||||||||||||||||||
|
15:23
stmuk_ joined
|
|||||||||||||||||||||||||||||||||||||||
| MasterDuke | oh hey, both of those are faster than moarvm, which takes 17s | 15:26 | |||||||||||||||||||||||||||||||||||||
| for this: `sub f($a) { if $a < 1 { 1 } else { f($a - 1) + f($a - 2) } }; say(f(35))` | |||||||||||||||||||||||||||||||||||||||
| timotimo | that's nqp? | 15:27 | |||||||||||||||||||||||||||||||||||||
| MasterDuke | yeah | ||||||||||||||||||||||||||||||||||||||
| i just tried to build rakudo-jvm and after 30m or so i killed it, it was just sitting in stage parse. nearly had to restart the whole computer | 15:28 | ||||||||||||||||||||||||||||||||||||||
| timotimo | 12s on my machine :) | ||||||||||||||||||||||||||||||||||||||
| MasterDuke wants to upgrade to ryzen+, but doesn't want to pay what it'll cost | 15:29 | ||||||||||||||||||||||||||||||||||||||
| timotimo | it doesn't even spesh, it seems like | 15:30 | |||||||||||||||||||||||||||||||||||||
| MasterDuke | MVM_coerce_smart_numify is the second entry in a perf report (after MVM_interp_run) | ||||||||||||||||||||||||||||||||||||||
| timotimo | yeah, how does that happen? | ||||||||||||||||||||||||||||||||||||||
| i don't see the f sub show up in the spesh log at all | 15:32 | ||||||||||||||||||||||||||||||||||||||
| jnthn: do we know anything about deeply recursive functions not being picked up by spesh in the spesh log? | 15:38 | ||||||||||||||||||||||||||||||||||||||
| jnthn | Yeah, it pretty much blows up the stack simulation | 15:41 | |||||||||||||||||||||||||||||||||||||
| timotimo | ah, heh. | ||||||||||||||||||||||||||||||||||||||
| well, that probably explains why that's not very performant | |||||||||||||||||||||||||||||||||||||||
| but without spesh i can't even see the bytecode! :o | |||||||||||||||||||||||||||||||||||||||
| --target=mast is an approximation at least | |||||||||||||||||||||||||||||||||||||||
| jnthn | Yeah, I figured deeply recursive code isn't what people write then they care about performance :) | 15:42 | |||||||||||||||||||||||||||||||||||||
| timotimo | haha | ||||||||||||||||||||||||||||||||||||||
| of course it's int vs num again | 15:43 | ||||||||||||||||||||||||||||||||||||||
| declare the argument to f as "int" and it'll run in 7.9s instead of the 12.2 i have | |||||||||||||||||||||||||||||||||||||||
|
15:44
brrt joined
|
|||||||||||||||||||||||||||||||||||||||
| Geth | nqp/pluggable-spesh: fb808f3fb1 | (Jonathan Worthington)++ | t/moar/52-pluggable-spesh.t Add a test to exercise literal guard deopt |
15:44 | |||||||||||||||||||||||||||||||||||||
| timotimo | declaring it to be num and putting e0 everywhere makes it run in ~8s as well | ||||||||||||||||||||||||||||||||||||||
| f is looked up via getlexstatic every time it seems like | 15:45 | ||||||||||||||||||||||||||||||||||||||
| it's boxing the literal value 1 it might return as an int, but it boxes the return value of the addition as a num | 15:47 | ||||||||||||||||||||||||||||||||||||||
| and it's smart-numifying the return value of each of the f calls and then coercing it from num to int | |||||||||||||||||||||||||||||||||||||||
| i can get 7.7s by using explicit nqp::*_i ops everywhere | 15:51 | ||||||||||||||||||||||||||||||||||||||
| MasterDuke | `int $a` get moar down to 12.2s, graal to 8.8s, and openjdk to 9.8s | 16:00 | |||||||||||||||||||||||||||||||||||||
| timotimo | it's being heavily penalized by not being able to resolve &f actually statically | 16:08 | |||||||||||||||||||||||||||||||||||||
| even though it uses nqp::getlexstatic, that would rely on spesh to do the translation to a constant value | |||||||||||||||||||||||||||||||||||||||
| MasterDuke | huh. so deeply recursive functions lose spesh completely? | 16:42 | |||||||||||||||||||||||||||||||||||||
| timotimo | could be | 16:43 | |||||||||||||||||||||||||||||||||||||
| MasterDuke | how deep can it be before that happens? | ||||||||||||||||||||||||||||||||||||||
| timotimo | by calling f(5) 10_000 times before calling f(35) i get it to run in 6.2s instead of ~8 | 16:47 | |||||||||||||||||||||||||||||||||||||
| that gets rid of the slow-path lookup, but the return value of f is still first coerced to num then back to int | 16:48 | ||||||||||||||||||||||||||||||||||||||
| MasterDuke | even with `f(int $a)`? | ||||||||||||||||||||||||||||||||||||||
| timotimo | yeah, the return value is the problem, not the argument | 16:49 | |||||||||||||||||||||||||||||||||||||
| we don't have a "returns int" in nqp | |||||||||||||||||||||||||||||||||||||||
| MasterDuke | i know jnthn has talked about switching nqp to defaulting operations to int instead of num, i assume the return is a place where doing that would help? | 16:50 | |||||||||||||||||||||||||||||||||||||
| timotimo | yeah | ||||||||||||||||||||||||||||||||||||||
| though now that it gets speshed, it could realize that it's first numifying then intifying and that could be done in a single operation instead? | 16:51 | ||||||||||||||||||||||||||||||||||||||
| which would be an operation that realizes "oh it's already int" and does nothing | |||||||||||||||||||||||||||||||||||||||
| i'm not sure why the return value isn't being logged by spesh, either | 16:54 | ||||||||||||||||||||||||||||||||||||||
| it's literally just the static frame, and then "type tuple:" with nothing | |||||||||||||||||||||||||||||||||||||||
| but it should have logged the return type? | 16:55 | ||||||||||||||||||||||||||||||||||||||
| MasterDuke | what is MVM_frame_try_return? | 16:56 | |||||||||||||||||||||||||||||||||||||
| timotimo | it returns from a frame, if there is a caller to return t | 16:57 | |||||||||||||||||||||||||||||||||||||
| MasterDuke | that's now top of perf report | ||||||||||||||||||||||||||||||||||||||
| timotimo | heh. | 16:58 | |||||||||||||||||||||||||||||||||||||
| MasterDuke | putting 10k calls to f(5) first | ||||||||||||||||||||||||||||||||||||||
| timotimo | yeah, it also doesn't inline f into f | ||||||||||||||||||||||||||||||||||||||
| if it did, that'd reduce the amount of try_return calls | |||||||||||||||||||||||||||||||||||||||
| MasterDuke | and yeah, drops moar down to 8.3s | 16:59 | |||||||||||||||||||||||||||||||||||||
|
17:11
SourceBaby joined,
Undercover joined
17:40
stmuk__ joined
17:53
cog_ joined
18:17
brrt joined
19:58
awwaiid joined
20:04
squashable6 joined
20:17
brrt joined
|
|||||||||||||||||||||||||||||||||||||||
| Geth | rakudo: ede507b734 | (Moritz Lenz)++ | src/Perl6/Actions.nqp More robust code detection in subsets only treats defined subset constraints as callable. Otherwise, subsets of Code throw an exception at compile time (#276). |
21:09 | |||||||||||||||||||||||||||||||||||||
|
21:14
cog_ joined
|
|||||||||||||||||||||||||||||||||||||||
| Geth | roast: 7745b00803 | cono++ | S02-types/subset.t Add test to cover issue rakudo/rakudo#1799 Subset type on Code with arity check failed in use in sub/method signatures or class attributes. |
21:20 | |||||||||||||||||||||||||||||||||||||
| synopsebot | RAKUDO#1799 [open]: github.com/rakudo/rakudo/issues/1799 [testneeded] Subset type used in Signatures fails with errors | ||||||||||||||||||||||||||||||||||||||