🦋 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.
releasable6 Next release in ≈6 days and ≈15 hours. There are no known blockers. Please log your changes in the ChangeLog: github.com/rakudo/rakudo/wiki/ChangeLog-Draft 03:00
Geth nqp/main: 1ba83bc2f7 | (Christian Bartolomäus)++ | src/vm/jvm/runtime/org/raku/nqp/runtime/Ops.java
[JVM] Handle null in is(int|num|str)

This avoids a NullPointerException in code like the following:
   nqp::say(nqp::isstr(nqp::null()))
That code prints a 0 now -- which brings the behaviour of the JVM backend in line with that of MoarVM.
07:20
Nemokosch I updated the PR but I haven't compiled and checked the results yet 12:42
and some Rakudo tests failed 👀 12:59
let's see the spectests, CI tests are passing so far... 13:00
nine Somehow RakuAST is like your boss. Everything has highest priority and must be done as soon as possible :/ 13:26
Nemokosch at first I associated at a videogame boss xD
the spectest passed... I don't know why the "profiler" test failed, really 13:27
nine So, I got support for implicit *%_ on methods implemented and it seems to gain us a spectest but at a loss of 3 tests. The latter are all rakuast tests and the reason they fail is that I cheated. 14:19
I added a step called by the Actions to be run before IMPL-CHECK. The reason I need this is that the routine's BEGIN phaser runs too late to set up those implicit arguments. The BEGIN phaser runs after we've run name resolution which leads to caching of AST declarations, so we never pick up the implicitly generated declarations. 14:21
Side node: name resolution being the trigger is why method foo() { 1 } was fine and method foo() { note } exploded with "lexical %_ not found". 14:23
I think this shows that we need a PRE-CHILDREN=-BEGIN and POST-CHILDREN-BEGIN instead of just a PERFORM-BEGIN. Because routines also need to run BEGIN effects after their children. 14:24
I seem to remember a document written by jnthn about this kind of timing things in RakuAST. Anyone remember where that was? 14:25
nine Found it! gist.github.com/jnthn/420e93cd4ca0...92c10fb361 17:10
Geth rakudo/main: c9e391f08c | (Márton Polgár)++ (committed using GitHub Web editor) | 2 files
Fix storing of typed Hashes from a list (#5172)

Prior to this commit, a Hash with typed keys ("hash object") couldn't be properly stored in another Hash, typed or untyped, if it appeared in a list. This is a regression from July 2016, commit ecfb956bcf92488106a85f9462731095db11dfed . In the affected timespan, the behavior was the following: ... (26 more lines)
17:39
roast: 54762714e5 | (Elizabeth Mattijsen)++ | S09-hashes/objecthash.t
Revert "Revert "Test for parameterised hashes as entries to store (#828)""

This reverts commit 0c45c3b72886151cec4eb1e5ebfd487a6ec56d2b.
17:40
Nemokosch nine: where did you find this gist? If it's useful, maybe it could find a place in the repository. 18:37
nine Found it via IRC log 18:42
Geth rakudo/main: f8e22b6fd6 | (Elizabeth Mattijsen)++ | docs/rakuast/rakuast-compilation-phases.md
Copy gist of jnthn from 9 months ago for posterity
18:53
lizmat so don
e
bartolin .tell vrurg I tried to debug a new problem with the jvm backend: Ít explodes badly if "use v6.e.PREVIEW" is used. If I'm not mistaken, this happens, because Version.new is called with a BOOTStr -- and on the JVM backend coercion to Str fails. 19:11
tellable6 bartolin, I'll pass your message to vrurg
bartolin .tell vrurg It seems to happen from at least two places: github.com/rakudo/rakudo/blob/c9e3...er.nqp#L43 and github.com/rakudo/rakudo/blob/c9e3...d.nqp#L619 Do you have a quick idea how the leakage of BOOTStr could be avoided in a clean way?
tellable6 bartolin, I'll pass your message to vrurg
bartolin .tell vrurg Another thing I noticed during debugging was that Version.new was once called with "6.e.PREVIEW" and on other occasions with "3.PREVIEW". I made a short gist to show what I mean (this is on MoarVM): gist.github.com/usev6/559c96ddc10b...b0aa20ff65 19:12
tellable6 bartolin, I'll pass your message to vrurg
Geth rakudo/main: fdb42827ba | (Elizabeth Mattijsen)++ | 2 files
Get rid of a lot of intermediate methods

Instead, for each scopy phaser, specify the name of the phaser in a call to "add-phaser", and also whether it should activate an exit handler. Makes it clearer in the code for the actual phasers what they do.
19:39
Geth rakudo/main: 896ffc14cf | (Elizabeth Mattijsen)++ | 2 files
Let PRE/POST phaser use source if possible in message

Before, it would use the deparse of the blorst provided always, which can be subtly different from the actual source code, especially with regards to whitespace. When compiled from source, use the source. Otherwise, fall back to deparsing as before.
20:36
stevied does this smell like a 2022.12 bug to anyone else? github.com/tony-o/raku-fez/issues/80 21:42
lizmat feels more like a Ventura issue ? 21:44
I mean, an issue with Raku on Ventura?
stevied raku
why does it work in 2022.07 and not 2022.12?
lizmat that I do not know :-) 21:45
vrurg bartolin: best it be if JVM autobox BOOTStr the same way as moarvm does. Otherwise, you could revert that micro-optimization I have done for World.nqp in e1a7ca622771cbbe1e6304adbf862d65176e1cbc – two lines where $Str and nqp::box_s were removed. As to the Compiler, perhaps try nqp::hllizefor?
tellable6 hey vrurg, you have a message: gist.github.com/8359e1b7933a0ada14...15a5c9d2a1
hey vrurg, you have a message: gist.github.com/a2b92e2d7a41ef8154...9f1dee3b16
hey vrurg, you have a message: gist.github.com/817f6aab2019b01351...5c664aa7cf
stevied i need ot confirm I"m using same version of fez. Maybe I'm mistaken
yeah, same version of fez 21:48
bartolin vrurg: thanks for the pointers. I started to play with nqp::hllizefor already and had some success. I'll be afk until the next weekend -- will continue then. (But I'm sceptical that I'll be able to make the jvm backend autobox BOOTStr in general.) 21:52
Geth rakudo/main: 4 commits pushed by (Stefan Seifert)++ 22:16
nine That was waay harder than expected
lizmat 110 / 643 for me 22:23
Geth rakudo: usev6++ created pull request #5173:
[JVM] Fix breakage with "use v6.e.PREVIEW"
22:25
vrurg bartolin: Ah, forgot about the 6.e.PREVIEW vs. 3.PREVIEW. The latter is the new internal representation. That's OK. 22:29
lizmat m: say Q| sub a(Int:D $a) { } |.AST.DEPARSE 22:40
camelia sub a (Int:D<True>:D $a) {
}
lizmat nine: looks like :D is interpreted as a ColonPair in the name,
I wonder if that should be handled in the grammar, or in the RakuAST::Name class ? 22:41
otherwise, what is the use of RakuAST::Type::Definedness ?
releasable6 Next release in ≈5 days and ≈19 hours. There are no known blockers. Please log your changes in the ChangeLog: github.com/rakudo/rakudo/wiki/ChangeLog-Draft 23:00
Nemokosch bisectable6: my @pairs = [(2..4, 6..8), (2..3, 4..5), (5..7, 7..9), (2..8, 3..7), (6..6, 4..6), (2..6, 4..8)]; say @pairs.map: { .[0] ~~ .[1] } 23:36
bisectable6 Nemokosch, Will bisect the whole range automagically because no endpoints were provided, hang tight
tellable6 2023-01-26T18:58:03Z #raku <rf> Nemokosch That was something I was brainstorming I think it is possible.
2023-01-27T10:14:59Z #raku-dev <nine> Nemokosch: sorry to say this, but then you just learned the wrong lession.
2023-01-28T15:00:48Z #raku <patrickb> Nemokosch: I pondered the PR a bit and left a comment. Feedback welcome!
bisectable6 Nemokosch, ¦6c (66 commits): «(True False False False False False)␤» 23:37
Nemokosch, Nothing to bisect!