🦋 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: ... | Logs available at irclogs.raku.org/raku-dev/live.html | For MoarVM see #moarvm
Set by lizmat on 8 June 2022.
00:00 reportable6 left 00:14 NemokoschKiwi joined
NemokoschKiwi bisectable: say 10 .. ^20 00:14
bisectable6 NemokoschKiwi, Will bisect the whole range automagically because no endpoints were provided, hang tight
NemokoschKiwi, ¦6c (68 commits): «Range objects are not valid endpoints for Ranges␤ in block <unit> at /tmp/EIGTJqf6_8 line 1␤␤ «exit code = 1»» 00:15
NemokoschKiwi, Nothing to bisect!
NemokoschKiwi that's really nice but I did not change anything that affects that...
m: say 10 .. ^20
camelia Range objects are not valid endpoints for Ranges
in block <unit> at <tmp> line 1
nemokosch - multi method new(Whatever \min, \max, :$excludes-min, :$excludes-max) { - nqp::create(self)!SET-SELF(-Inf,max,$excludes-min,$excludes-max,1); + multi method new(Whatever \min, Real(Cool) $max, :$excludes-min, :$excludes-max) { + $max.throw if $max ~~ Failure; + nqp::create(self)!SET-SELF(-Inf,$max,$excludes-min,$excludes-max,1); } - multi method new(\min, Whatever \max, :$excludes-min, :$excludes-max) { 00:18
- nqp::create(self)!SET-SELF(min,Inf,$excludes-min,$excludes-max,1); + multi method new(Real(Cool) $min, Whatever \max, :$excludes-min, :$excludes-max) { + $min.throw if $min ~~ Failure; + nqp::create(self)!SET-SELF($min,Inf,$excludes-min,$excludes-max,1); }
NemokoschKiwi okay, that looks horrible on IRC
anyway, all I changed was two multi candidates, both of which had one of their arguments as Whatever
how could that result in 10 .. ^20 suddenly becoming valid? 00:19
and actually, I can very well spot to the modification in the source that caused this, roughly a month ago 00:20
github.com/rakudo/rakudo/commit/b4...633f3e9098 00:22
this is the candidate that fires for me. Why does it fire for me and not for the release? 00:23
nemokosch if I revert the change, it does work 00:27
how do you know the order in which multi candidates resolve?
00:27 NemokoschKiwi left 00:28 MasterDuke joined
[Coke] jdv: it's aready working: we just don't support really recent jvms. 00:41
Geth rakudo: 2colours++ created pull request #5377:
Fix of * .. non-number Range scenarios
rakudo: 2colours++ created pull request #5377:
Fix of * .. non-number Range scenarios
File-Find/main: 4a70323974 | (Polgár Márton)++ | 2 files
02:19 reportable6 joined 02:24 squashable6 left 02:27 squashable6 joined 03:27 coverable6 left, unicodable6 left, committable6 left, greppable6 left, linkable6 left, squashable6 left, sourceable6 left, reportable6 left, notable6 left, quotable6 left, shareable6 left, tellable6 left, benchable6 left, evalable6 left, statisfiable6 left, nativecallable6 left, releasable6 left, bisectable6 left 03:28 nativecallable6 joined, greppable6 joined, linkable6 joined, reportable6 joined, releasable6 joined, benchable6 joined 03:29 tellable6 joined, unicodable6 joined 04:31 committable6 joined 04:32 bisectable6 joined, quotable6 joined 04:34 shareable6 joined 04:38 coverable6 joined 04:40 sourceable6 joined 04:43 evalable6 joined 05:31 sivoais left, sivoais joined 05:53 statisfiable6 joined 06:00 reportable6 left, reportable6 joined
bartolin nqp: "aa" ~~ /$<start>=<alpha> $<start>/ 07:49
camelia ( no output )
bartolin ^^ this fails on the jvm backend with "Can not invoke object '&has_aliased_name'. I'm pretty sure that happens since github.com/Raku/nqp/commit/a124861a37 07:50
does someone maybe has a pointer, what could be the problem there (or even how it could be fixed)? 07:51
(maybe something with nqp::setinvokespec(), but I have no clue) 07:52
ab5tract no ideas here either :( 07:53
lizmat: the issue with bindpos_o issue only occurs when the once block has a declaration. so it's definitely a different, unrelated bug 07:54
looking into it now but the main once patch should be good to merge
08:13 notable6 joined
ab5tract hmm, the issue seems to be based on statementprefixes converting their blorsts to thunks on demand, away from the resolver 08:15
(meaning where their blorsts get thunked, there is no resolver available to call IMPL-STUB-CODE and they are never walked because they are not stored as children to be visited 08:16
lol, nevermind, fixed 08:30
following the chain of inheritence to find out that I'm already writing a RakuAST::Code object FTW 08:31
lizmat: *now* it's ready :) 08:43
bartolin: thanks for working to keep the lights on in JVM land. I keep thinking I should dive into that codebase and see if I can help, but there's just so much to do in RakuAST land 08:44
bartolin ab5tract: thanks :) btw, I'm happy to see the progress on RakuAST, and I think it makes sense to focus on that. (I even thought a couple of times, that I should dip my toes into RakuAST as well. I just never came around to do it.) 08:54
and for the record: I filed github.com/Raku/nqp/issues/808 for the problem with "Can not invoke object '&has_aliased_name'" on nqp-j.
ab5tract RakuAST is a bit easier than it seems from the outside, but each task can become its very own puzzle box. And missing a small detail (like the inheritence thing above) can send you down a blind alley pretty quickly. 09:05
lizmat ab5tract: I'm gonna squash this PR, right ? 09:12
ab5tract it should only be a single commit 09:16
Geth rakudo/main: be944af2ab | ab5tract++ (committed using GitHub Web editor) | src/Raku/ast/statementprefixes.rakumod
RakuAST: Fix once blorst not running
lizmat ab5tract++
ab5tract my pleasure 09:17
bartolin ab5tract++ 09:18
09:19 squashable6 joined
ab5tract Yesterday I was thinking about the challenge of having a good user experience for RakuAST and it made me wonder: what sort of project would serve as good dogfood? 09:34
Geth nqp: usev6++ created pull request #809:
[JVM] Work around error for back-references
rakudo/main: 94eb0c340a | (Elizabeth Mattijsen)++ | src/Raku/Grammar.nqp
RakuAST: remove last O() handling remains
rakudo/main: 3a0b05d652 | (Elizabeth Mattijsen)++ | src/Raku/Grammar.nqp
RakuAST: install canary for use of O(…) <O=…>
lizmat m: Q|my int $i; $i += once { 21 } for 1,2; say $i|.AST.EVAL 10:34
camelia Use of uninitialized value of type Any in numeric context
in block <unit> at /home/camelia/EVAL_0 line 1
Use of uninitialized value of type Any in numeric context
in block <unit> at /home/camelia/EVAL_0 line 1
lizmat ab5tract: ^^
looks like some QAST issue in some situations 10:35
t/spec/S04-statements/once.t lines 118 and following 10:36
that's the only thing failing atm wrt once
11:06 evalable6 left, linkable6 left 11:07 linkable6 joined 11:08 evalable6 joined
Geth rakudo/main: 9fe819e715 | (Elizabeth Mattijsen)++ | src/Raku/Grammar.nqp
RakuAST: introduce some helper methods

1. for better readability 2. for smaller footprint in potential unused branches in hot code
roast: usev6++ created pull request #839:
Update list of dirs for test statistics
12:00 reportable6 left
Geth rakudo/main: fc5d02ade4 | (Elizabeth Mattijsen)++ | src/Raku/Grammar.nqp
RakuAST: make <variable> token a bit more readable
rakudo/main: d192c18c7d | (Elizabeth Mattijsen)++ | src/Raku/Grammar.nqp
RakuAST: use the same word boundary markers everywhere

So « instead of <<, and » instead of >>, because they stand out better between all the other < and >'s
13:00 hythm joined
Geth rakudo/main: 6817b10b24 | (Elizabeth Mattijsen)++ | src/Raku/Grammar.nqp
RakuAST: group all alphanumeric infixes together

As their parsing requires a word boundary, and will need additional handling for non-English language versions.
13:38 Xliff joined
Xliff Raku-GLib suite timing statistics for Raku 2023.08.174.g.3.a.70184.aa.1 13:38
Using the following processor: AMD Ryzen 9 5950X 16-Core Processor
Total number of projects: 34 (506509 loc)
Total non-parallel compile times: 11970.760 (352.081 avg)
Total parallel compile times: 2537.233 (74.624 avg) 4.718x speedup
Geth rakudo/main: 7779b56563 | (Elizabeth Mattijsen)++ | src/Raku/Grammar.nqp
RakuAST: less cursor internals, generic method name
14:18 vrurg left
Geth rakudo/main: c5d36f2f5d | (Elizabeth Mattijsen)++ | src/Raku/Grammar.nqp
RakuAST: use OperatorProperties method directly in EXPR

Instead of getting a hash, and looking up stuff in there
rakudo/main: 6b331d9c8d | (Elizabeth Mattijsen)++ | src/Raku/Grammar.nqp
RakuAST: scope variables better in EXPR

Feels like the old scoping was more optimal in the Parrot days, but is no longer. Was also able to eliminate one variable, as it was only used as a very localized immediate value.
14:59 vrurg joined
Geth rakudo/main: ca05e9fbed | (Elizabeth Mattijsen)++ | src/Raku/Grammar.nqp
RakuAST: simplify infix handling in EXPR

There is no need to make a difference between $infix and its cursor
  $infixcur anymore. So use $infix only and eliminate an expensive
  .MATCH call in the process.
15:31 reportable6 joined
Geth rakudo: ab5tract++ created pull request #5378:
RakuAST: Move lexical generation to BEGIN time
ab5tract lizmat: will look into that remaining issue with once 17:39
lizmat *phew* for a moment I thought you said "at once" :-)
ab5tract :) 17:42
18:00 reportable6 left
Geth rakudo/main: fe9ff1c667 | (Elizabeth Mattijsen)++ | src/Raku/Grammar.nqp
RakuAST: use OperatorProperties method directly in EXPR-reduce

Instead of getting a hash, and looking up stuff in there. And also shortcut / scope some variables better
18:02 reportable6 joined
Geth rakudo/main: 73737c5bb8 | ab5tract++ (committed using GitHub Web editor) | src/Raku/ast/statementprefixes.rakumod
RakuAST: Move lexical generation to BEGIN time
rakudo/main: f4c9f60610 | (Elizabeth Mattijsen)++ | src/Raku/Actions.nqp
RakuAST: streamline some actions

and remove some dead code
18:38 squashable6 left 18:39 squashable6 joined
Geth rakudo/main: 5ad51ca562 | (Elizabeth Mattijsen)++ | 2 files
RakuAST: change $*is-type to $*IS-TYPE

Dynamic variables that have an action at a distance, should be all uppercase for readability
rakudo/main: 3e652d5f75 | (Elizabeth Mattijsen)++ | 2 files
RakuAST: change $*key to $*KEY

Dynamic variables that have an action at a distance, should be all uppercase for readability. Also streamline the colonpair / quotepair tokens / action methods improving readability and reducing local bytecode size.
rakudo/main: review: github.com/rakudo/rakudo/commit/3e652d5f75
8938e55109 | (Elizabeth Mattijsen)++ | src/Raku/Actions.nqp
19:47 codesections joined
Geth rakudo/main: b5fcda9fe8 | (Elizabeth Mattijsen)++ | src/Raku/Grammar.nqp
RakuAST: remove some dead code from grammar
rakudo/main: daec7797b5 | (Elizabeth Mattijsen)++ | src/Raku/Grammar.nqp
RakuAST: streamline old-rx-modifiers token
20:18 codesections left
Geth rakudo/main: 9311a72030 | (Elizabeth Mattijsen)++ | src/Raku/Grammar.nqp
RakuAST: streamline no-synthetics check

Accept a node and special handling of single grapheme case
lizmat and that concludes my hacking for today&
MasterDuke lizmat: idle curiosity, but have you benchmarked rakuast at all? i.e., find (or create) some large bunch of code that correctly compiles with rakuast and see how stage parse timing compares 20:52
21:36 hythm left
lizmat no, not really, but the spectest feels faster for me now (3min16 with RakuAST, and 3min26 with legacy) 22:14
this on a M1 MacMini
of course we still have many fails with RakuAST, so some of those will actually cost less time 22:15
nemokosch github.com/rakudo/rakudo/issues/5239 23:24
seems to me this is fixed with RakuAST
sorry nevermind 23:25
the issue only happens in the REPL if there is a value set for $_ 23:26