š¦ 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 |
01:10 | |
rakudo: 2colours++ created pull request #5377: Fix of * .. non-number Range scenarios |
01:11 | ||
File-Find/main: 4a70323974 | (PolgƔr MƔrton)++ | 2 files 0.2.0 |
01:24 | ||
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 |
09:54 | |
rakudo/main: 94eb0c340a | (Elizabeth Mattijsen)++ | src/Raku/Grammar.nqp RakuAST: remove last O() handling remains |
10:21 | ||
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 0 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 |
11:23 | |
roast: usev6++ created pull request #839: Update list of dirs for test statistics |
11:27 | ||
12:00
reportable6 left
|
|||
Geth | rakudo/main: fc5d02ade4 | (Elizabeth Mattijsen)++ | src/Raku/Grammar.nqp RakuAST: make <variable> token a bit more readable |
12:19 | |
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 |
12:39 | ||
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:08 | |
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 |
13:50 | |
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 |
14:25 | |
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:41 | ||
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:05 | |
15:31
reportable6 joined
|
|||
Geth | rakudo: ab5tract++ created pull request #5378: RakuAST: Move lexical generation to BEGIN time |
17:37 | |
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:01 | |
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 |
18:03 | |
rakudo/main: f4c9f60610 | (Elizabeth Mattijsen)++ | src/Raku/Actions.nqp RakuAST: streamline some actions and remove some dead code |
18:35 | ||
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 |
19:36 | |
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:37 | ||
19:47
codesections joined
|
|||
Geth | rakudo/main: b5fcda9fe8 | (Elizabeth Mattijsen)++ | src/Raku/Grammar.nqp RakuAST: remove some dead code from grammar |
20:04 | |
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 |
20:28 | |
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 |