🦋 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.
Geth rakudo: dab7404c93 | (Elizabeth Mattijsen)++ | src/core.c/Cool.pm6
Add Cool.Version coercer

There is already a Str.Coercer. It struck me that coercing a number or a list of numbers to a Version object, would first need coercing to Str. Whereas we already do other Cool coercers. Hence this.
   say 42.Version; # v42
   say (1,2,3).Version; # v1.2.3
   say "42".match(/\d+/).Version; # v42
09:48
rakudo: 1d8bf66a5e | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | src/core.c/Cool.pm6
Merge pull request #4551 from rakudo/Cool.Version

Add Cool.Version coercer
sena_kun releasable6, status 10:43
releasable6 sena_kun, Next release in ≈4 days and ≈8 hours. 1 blocker. Changelog for this release was not started yet
sena_kun, Details: gist.github.com/faeb26e30c1d64ac0a...e467299c36
lizmat m: say True.new 11:20
evalable6 False
lizmat I understand why that returns False on a programmatical level, but on a philosophical level that feels it should either be True (as in identity) or an error
sena_kun feels like notabug to me. 11:31
timo .o( fizzbunacci ) 13:02
should Int.new also give 1 rather than 0? :P 13:03
wait i misread lol
m: say 1.new; say 2.new
camelia 0
0
sena_kun changing this makes `new` behave like `clone`, which is a bad idea. and if we change it only for `Bool`, that's just introducing new inconsistency exception instead of having a generic rule. 13:15
lizmat yeah, I was not going for special casing of Bool: I was more thinking that .new on an Enum should be an error 13:24
sena_kun m: enum Foo <A B>; say A.new; say Foo::A.new; say Foo.new; 13:31
camelia Cannot unbox a type object (Any) to a str.
in block <unit> at <tmp> line 1
sena_kun if we should make a better error, I'd bet on this one maybe? 13:32
vrurg Adding a throwing new to Enumeration role fixes it, except for Bool which is a special case and does do the role. 13:53
lizmat couldn't we fix the special case as well ?
vrurg I have $job to do right now, can't do much testing. But have an idea how to get Bool consume Enumeration. 13:57
Perhaps this would make it less of a special case. 13:58
vrurg lizmat: After all, I can only confirm that Bool is special. :) It would need the same `new` method, as for Enumeration, to be added explicitly. That would also need a new exception. I could do it all tomorrow. 14:17
vrurg Just wonder if it makes sense to spec the new behavior. 14:18
lizmat I think a PR would be wise, so we can discuss :-) 14:20
vrurg As usual, I almost never commit directly. :) 14:25
Maybe will do today, depends on how long a vet appointment+driving would take.
lizmat and another Rakudo Weekly News hits the Net: rakudoweekly.blog/2021/10/18/2021-...ning-with/ 14:32
notable6: weekly 14:33
notable6 lizmat, No notes for “weekly”
sena_kun lizmat++ 14:35
|Tux| Rakudo v2021.09-279-g1d8bf66a5 (v6.d) on MoarVM 2021.09-657-gb80ad65ed
csv-ip5xs1.372 - 1.382
csv-ip5xs-2015.142 - 15.305
csv-parser4.432 - 4.447
csv-test-xs-200.374 - 0.379
test7.264 - 7.361
test-t1.632 - 1.664
test-t --race0.986 - 1.066
test-t-2024.315 - 24.883
test-t-20 --race7.653 - 7.854
14:59
Rank 7 2021-10-18 16:45:22 test-t 1.632
releasable6 Next release in ≈4 days and ≈3 hours. 1 blocker. Please log your changes in the ChangeLog: github.com/rakudo/rakudo/wiki/ChangeLog-Draft 15:00
Geth nqp/new-disp-nativecall: a89b0d4a27 | (Stefan Seifert)++ | 4 files
API for asking whether the compiler supports a certain nqp op

This can be used to conditionally compile backend specific code in modules like NativeCall
15:14
nqp: niner++ created pull request #742:
API for asking whether the compiler supports a certain nqp op
15:15
[Coke] ^^ I assume the desire then would be to change code from a compiler time static backend check to a (quick) runtime check? 15:43
s/desire/followup/
nine [Coke]: the method this commit introduces can be used in a BEGIN block as well as at runtime 16:00
Currently the only way to conditionally use nqp ops (based on compiler support) is via EVAL anyway
Geth rakudo/megamorphic-handlers: 6 commits pushed by (Jonathan Worthington)++ 16:21
nqp: 85e25925fb | (Jonathan Worthington)++ | src/core/dispatchers.nqp
Tweak megamorphic fallback thresholds

It turns out that we can get rather a lot of entries at the callsite cache before the O(1) of the hash starts to come out cheaper.
16:22
Geth rakudo/megamorphic-handlers: 1d29da3b74 | (Jonathan Worthington)++ | src/vm/moar/dispatchers.nqp
Don't guard Mu-typed params in multi-dispatch

When all candidates encountered have a parameter typed as Mu, then we do not need to put guards on the argument type. This helps avoid caches blowing up in size in cases like STORE_AT_KEY, which has a number of candidates with Mu-typed value parameters that will encounter many types.
22:59
rakudo/megamorphic-handlers: f343b58345 | (Jonathan Worthington)++ | src/vm/moar/dispatchers.nqp
Remove leftover commented code

From when the multi-dispatch algorithm was being ported to new-disp.
Geth rakudo: vrurg++ created pull request #4579:
Add is_wrapped method to Routine
23:42