🦋 Welcome to the IRC channel of the core developers of the Raku Programming Language (raku.org #rakulang). This channel is logged for the purpose of history keeping about its development | evalbot usage: 'm: say 3;' or /msg camelia m: ... | log inspection situation still under development | For MoarVM see #moarvm
Set by lizmat on 22 May 2021.
pussies_slayer_9 I'm quite surprised since I tought raku would be faster than perl when dealing with ints 00:00
nah it's more than 10x slower 00:01
more like 12x
pussies_slayer_9 lots of garbage collection 00:03
japhb Hello! First, for good discussion, please choose a nick that is not insulting to the channel members. Second, it is off hours for the channel, so don't expect responses immediately. Third, the startup time of rakudo is more than the runtime of the perl call, so you're not getting a good comparison of runtime speed. Fourth, Raku has a builtin for that operation. :-) 00:07
pussies_slayer_9 japhb I'm pretty sure that the problem here is not startup time 00:08
japhb For the $int case, half of your runtime is startup. 00:09
pussies_slayer_9 just run it longer by adding zeros to the rangfe
it's still the same performance ratio
I think that the real differnce is that perl consider += a single operation while raku expands it to a = a + b 00:10
that is not the same unless the compiler is smart enough
in optimizing
immoral_hazard I hope this is new nick is not as offensive 00:13
japhb Better, I think. 00:14
In any case, if you're interested in trying to figure out what all is going on, you might want to look at the output of `raku --target=ast` and `raku --target=optimize` and see what the compiler is making of the code. 00:18
(perl has modules that do similar things, but I haven't used them in quite a long time, so I don't know what is current)
immoral_hazard I've seen the output of that, it seems quite simple 00:21
japhb shrugs 00:22
QAST is undergoing a from-scratch rewrite next year. 00:23
Well, that's the current plan, anyway
immoral_hazard cool
I suspect that escape analysis will help more with my example 00:24
japhb immoral_hazard: That's also on a short list to be upgraded. :-)
tonyo bench: my $int += $_ for 0..300000 00:25
benchable6 tonyo, No new data found
releasable6 Next release in ≈6 days and ≈15 hours. 4 blockers. Please log your changes in the ChangeLog: github.com/rakudo/rakudo/wiki/ChangeLog-Draft 03:00
MasterDuke benchable6: releases my $int += $_ for 0..300000 09:24
benchable6 MasterDuke, starting to benchmark the 59 given commits
MasterDuke, benchmarked the given commits and found a performance difference > 10%, now trying to bisect 09:26
MasterDuke, benchmarked the given commits and found a performance difference > 10%, now trying to bisect 09:27
MasterDuke, benchmarked the given commits and found a performance difference > 10%, now trying to bisect 09:28
MasterDuke, «hit the total time limit of 240 seconds»
MasterDuke should work on benchable6 some...
nine perl -e 'my $int += $_ for 0..300_000_000' # 6.201s 10:06
raku -e 'use nqp; my int $int += nqp::unbox_i($_) for 0..300_000_000;' # 2.116s
raku -e 'loop (my int $i = 0; $i < 300_000_000; $i++) { my int $int += $i }' # 2.344s 10:08
Geth nqp/remove_callsite_flat_named_flag: 420cb4dd3b | (Stefan Seifert)++ | 13 files
Replace flatnamed arg flag by flat | named

No need to have a separate flag when the combination of the existing flags means the same thing. Will free up the flat for other use in MoarVM.
10:50
lizmat Files=1349, Tests=117874, 316 wallclock secs (35.45 usr 9.57 sys + 4367.72 cusr 350.38 csys = 4763.12 CPU) 11:52
Geth Slang-Roman: 8852a1e1cd | (Juan Julián Merelo Guervós)++ (committed using GitHub Web editor) | README.md
MD fixes
20:17
releasable6 Next release in ≈5 days and ≈19 hours. 4 blockers. Please log your changes in the ChangeLog: github.com/rakudo/rakudo/wiki/ChangeLog-Draft 23:00