🦋 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.
00:05 [Coke]_ left 00:07 [Coke] joined 01:28 ShaneC left
japhb lizmat, nine: Was looking at the code for AT-POS in a few places, and realized some of them have native variants for int and some have uint. Now that int and uint are actually different, do we need to have *both* int and uint variants of AT-POS (and BIND-POS and such) in order to get the performance boost of calling with native positions? 01:37
lizmat Files=1352, Tests=117129, 292 wallclock secs (35.43 usr 9.40 sys + 4104.12 cusr 305.63 csys = 4454.58 CPU) 07:13
japhb: I'm not sure actually: at one point I even removed native candidates, as they were significantly *slower* than then non-native candidates, even when called with a native 07:14
nine japhb: in the long term, yes, absolutely. However there are other issues that as lizmat mentioned may actually harm performance or at least prevent us from gaining anything. 09:12
10:01 sena_kun left 10:02 sena_kun joined 10:57 Altai-man joined
Geth rakudo: 0420a0cf33 | (Elizabeth Mattijsen)++ | src/core.c/CompUnit/Repository/Spec.pm6
Re-imagine CompUnit::Repository::Spec.from-string

This was using regular expressions and meta ops, for code that is really pretty simple. Since this is being called multiple times for *every* pre-compilation, it seems to make sense to streamline this code using nqp::ops and without regexes and meta-ops.
Underlying reason was that another upcoming fix broke because meta-ops were being used *before* the Rakudo::Metaops mapper had been initialized.
12:02
nine lizmat: wouldn't plain Raku code have been fast enough? 12:05
lizmat well, I wanted to keep to the metal as much as possible, as apparently that code is being called *before* the entire mainline of the setting has been run 12:06
nine I wouldn't mind balancing that with maintainability 12:07
lizmat have you looked at the code ? 12:12
nine yes 12:14
I know, to you nqp ops are probably more familiar by now than Dutch. But I still translate nqp::islt_i(++$i,$nr-options) to ++$i < $nr-options in my head :D 12:16
lizmat ok, noted :-) 12:17
anyways, getting closer to fixing #1920
slowly... :-( 12:18
Geth rakudo: dbee70ad33 | (Elizabeth Mattijsen)++ | src/core.c/CompUnit/Repository/Spec.pm6
Use more readable test, nine++
12:31
rakudo: e95753499f | (Elizabeth Mattijsen)++ | src/core.c/Env.pm6
Make *CWD initialization non-lazy

There is some interaction between $*REPO and $*CWD initialization that causes github.com/rakudo/rakudo/issues/1920 . Since
  $*CWD is needed for anything related to IO::Path creation, and
  $*REPO initialization creates IO::Path objects, and since $*REPO
is used *whenever* a module is used or required, it felt that making
  $*CWD non-lazy to be a good trade-off.
rakudo: 4c4d37928d | (Elizabeth Mattijsen)++ | src/core.c/CompUnit/Repository/Spec.pm6
Revert CompUnit::Repository::Spec.from-string re-imagination
12:57
rakudo/CUR-spec-reimagined: 64eee9f621 | (Elizabeth Mattijsen)++ | src/core.c/CompUnit/Repository/Spec.pm6
Re-imagine CompUnit::Repository::Spec.from-string

This was using regular expressions and meta ops, for code that is really pretty simple (apart from the option partsing). Since this is being called multiple times for *every* pre-compilation, it seems to make sense to streamline this code and with fewer regexes and no meta-ops.
Underlying reason was that another upcoming fix broke because meta-ops were being used *before* the Rakudo::Metaops mapper had been initialized.
13:49
rakudo: lizmat++ created pull request #4837:
Re-imagine CompUnit::Repository::Spec.from-string
rakudo: 2511c219cd | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | 2 files
Add :precompile = True flag to CURI.install (#4826)

The idea behind this is to allow modules to just be installed and have the runtime decide when it should (re-)precompile any compilation units that were not precompiled yet. This would e.g. allow the DateTime::TimeZone distribution to be installed within a second, rather than on 4+ minutes. And only precompile those timezones that are actually used at runtime.
Also add the --/precompile flag to install-dist.raku
13:55
rakudo: 2da9eb22b8 | (Jonathan Worthington)++ (committed using GitHub Web editor) | 2 files
Improve error when `make` encounters non-Match $/ (#4834)

Since `make` tries to do a low-level bind directly into $/, if it instead sees a different object, the error isn't too informative.
This most typically comes up when folks do re-parsing in action methods, give the parameter normally called `$/` another name, and ... (5 more lines)
14:37 rypervenche joined 14:55 Altai-man left
nine Hm...I'm starting to see Inline::Perl5 build failures: build.opensuse.org/package/live_bu...5.4/x86_64 15:05
First failed build 16:07:41 today 15:06
[Coke] throwing in Match - Jonathan's fix to improve error messages in Match? 15:19
15:28 vrurg_ joined 15:31 vrurg left
lizmat nine: I guess something's not a Match object, then 15:51
nine I guess $/: method statement_control(Mu $/) { my $optree = $*P5CODE; $*W.add_object($optree); make QAST::Op.new( 16:25
lizmat fwiw, confirmed it is jnthn's PR I merged that breaks installing Inline::Perl5 16:40
nine: shall I revert ? 16:41
Geth rakudo/CUR-spec-reimagined: 08c70bac6e | (Elizabeth Mattijsen)++ | src/core.c/CompUnit/Repository/Spec.pm6
Generalize what we allow in a value
16:55
rakudo: ee0715396f | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | src/core.c/CompUnit/Repository/Spec.pm6
Re-imagine CompUnit::Repository::Spec.from-string (#4837)

This was using regular expressions and meta ops, for code that is really pretty simple (apart from the option parsing). Since this is being called multiple times for *every* pre-compilation, it seems to make sense to streamline this code and with fewer regexes and no meta-ops. ... (6 more lines)
18:11
rakudo: e7143e00cd | (Elizabeth Mattijsen)++ | src/core.c/Rakudo/Internals.pm6
Don't initialize PROCESS:: variables more than once

Cases such as described in issue #1920 would attempt to initialize dynamic variables more than once in a process. Even though these would be serialized, there's no point in doing the same again.
So now check if the PROCESS:: variable has been set already, and ... (8 more lines)
19:36
20:05 sena_kun left 20:06 sena_kun joined
Geth rakudo: c08d2ee9f8 | (Elizabeth Mattijsen)++ | src/core.c/CompUnit/RepositoryRegistry.pm6
Fix CU:RepositoryRegistry.resolve-unknown-repos

In as much that this method *can* be called with $*W being a Failure on which can not run a .find_single_symbol. So get the value for
  $*W once, and adjust the merge-symbols logic accordingly.
20:10
21:20 discord-raku-bot left 21:21 discord-raku-bot joined 23:23 discord-raku-bot left, discord-raku-bot joined