[01:51] <Geth> ¦ rakudo/coke/ci: a11936b660 | (Will Coleda)++ | azure-pipelines.yml

[01:51] <Geth> ¦ rakudo/coke/ci: Update CI to windows-2025

[01:51] <Geth> ¦ rakudo/coke/ci: 

[01:51] <Geth> ¦ rakudo/coke/ci: Match raku/nqp

[01:51] <Geth> ¦ rakudo/coke/ci: review: https://github.com/rakudo/rakudo/commit/a11936b660

[07:13] *** rnddim joined
[07:14] *** rnddim left
[07:14] *** ShimmerFairy left
[07:14] *** rnddim joined
[07:15] *** rnddim left
[07:16] *** rnddim joined
[07:29] *** rnddim left
[07:29] *** rnddim joined
[08:22] *** spa1983 joined
[08:22] *** spa1983 left
[08:22] *** sp1983 joined
[08:32] *** sp1983 left
[11:26] <Geth> ¦ nqp/main: 1bb593f758 | (Nick Logan)++ (committed using GitHub Web editor) | 5 files

[11:26] <Geth> ¦ nqp/main: Fix lookbehind for patterns that cannot be flipped

[11:26] <Geth> ¦ nqp/main: 

[11:26] <Geth> ¦ nqp/main: The <?after ...> assertion compiles by reversing the pattern syntax

[11:26] <Geth> ¦ nqp/main: tree and matching it against a reversed copy of the target string.

[11:26] <Geth> ¦ nqp/main: flip_ast only knows how to reverse some nodes. Subrule calls (named

[11:26] <Geth> ¦ nqp/main: rules, interpolated patterns, backreferences), embedded code, and

[11:26] <Geth> ¦ nqp/main: zero-width checks other than anchors were left matching left-to-right

[11:26] <Geth> ¦ nqp/main: <…commit message has 24 more lines…>

[11:26] <Geth> ¦ nqp/main: review: https://github.com/Raku/nqp/commit/1bb593f758

[11:34] <Geth> ¦ rakudo/main: 15f695d7c2 | (Elizabeth Mattijsen)++ | tools/templates/NQP_REVISION

[11:34] <Geth> ¦ rakudo/main: Bump NQP for fix of lookbehind for patterns that cannot be flipped

[11:34] <Geth> ¦ rakudo/main: 

[11:34] <Geth> ¦ rakudo/main: ugexe++

[11:34] <Geth> ¦ rakudo/main: review: https://github.com/rakudo/rakudo/commit/15f695d7c2

[11:35] <Geth> ¦ nqp/main: 50eccc4964 | (Nick Logan)++ (committed using GitHub Web editor) | src/vm/moar/QAST/QASTOperationsMAST.nqp

[11:35] <Geth> ¦ nqp/main: Release dispatch op arg registers under their coerced kind

[11:35] <Geth> ¦ nqp/main: 

[11:35] <Geth> ¦ nqp/main: Previously add-dispatcher-op recorded each argument's register kind

[11:35] <Geth> ¦ nqp/main: before coercing small-int, uint, and num32 arguments to full-width

[11:35] <Geth> ¦ nqp/main: registers, then released the coerced register under that stale kind.

[11:35] <Geth> ¦ nqp/main: That put an int64 register on the uint64 free-list (and similar for the

[11:35] <Geth> ¦ nqp/main: other coerced kinds), so a later fresh_register of that kind in the same

[11:35] <Geth> ¦ nqp/main: <…commit message has 7 more lines…>

[11:35] <Geth> ¦ nqp/main: review: https://github.com/Raku/nqp/commit/50eccc4964

[11:50] <Geth> ¦ rakudo/main: 3485246b83 | (Elizabeth Mattijsen)++ | tools/templates/NQP_REVISION

[11:50] <Geth> ¦ rakudo/main: Bump NQP to get dispatch register fix for uints

[11:50] <Geth> ¦ rakudo/main: 

[11:50] <Geth> ¦ rakudo/main: ugexe++

[11:50] <Geth> ¦ rakudo/main: review: https://github.com/rakudo/rakudo/commit/3485246b83

[11:50] <Geth> ¦ nqp/main: 386acc2a81 | (Dan Kogai)++ (committed using GitHub Web editor) | 2 files

[11:50] <Geth> ¦ nqp/main: Add %a/%A (C99 hex float) directives to HLL sprintf

[11:50] <Geth> ¦ nqp/main: 

[11:50] <Geth> ¦ nqp/main: C99 Floating-point notation support has been long overdue.  Perl 5

[11:50] <Geth> ¦ nqp/main: has done so in 5.22 in 2015, more than 11 years ago.

[11:50] <Geth> ¦ nqp/main: 

[11:50] <Geth> ¦ nqp/main: Format num values in C99 hexadecimal floating-point notation, e.g.

[11:50] <Geth> ¦ nqp/main: 0x1.999999999999ap-4 for 0.1. Supports the usual flags (+, space,

[11:50] <Geth> ¦ nqp/main: <…commit message has 19 more lines…>

[11:51] <Geth> ¦ nqp/main: review: https://github.com/Raku/nqp/commit/386acc2a81

[11:58] <[Coke]> definitely want to a spectest blin run with a change to sprintf.

[11:58] <[Coke]> someone is going to be relying on that old behavior.

[11:59] <lizmat> that the %a/A formats do not work ?

[11:59] <[Coke]> spectest+blin, I mean. (there's no special blin run that also spectests)

[12:00] <[Coke]> Oh, I misread. I thought it was changing *how* they worked to meet a new spec, not adding them outright.

[12:00] <[Coke]> ok. well, still, I can do a "free" blin run this weekend. :)

[12:00] <Geth> ¦ rakudo/main: 999492263f | (Elizabeth Mattijsen)++ | tools/templates/NQP_REVISION

[12:00] <Geth> ¦ rakudo/main: Bump NQP for %a/%A (C99 hex float) directives to sprintf

[12:00] <Geth> ¦ rakudo/main: 

[12:00] <Geth> ¦ rakudo/main: dankogai++

[12:00] <Geth> ¦ rakudo/main: review: https://github.com/rakudo/rakudo/commit/999492263f

[12:01] <lizmat> [Coke]: fwiw, I made sure that each of the NQP changes had its own bump, for bisectability

[12:06] <[Coke]> I appreciate that. I probably wouldn't have thought of it, and then would have regretted it. :)

[12:07] <lizmat> [Coke]: also thinking of doing https://github.com/MoarVM/MoarVM/pull/2031

[12:07] <[Coke]> Yah, that seems good to test out. I do wish he had included the specific numbers he was seeing in the commit message.

[12:08] <[Coke]> m: say 16777216/4194304

[12:08] <camelia> rakudo-moar 15f695d7c: OUTPUT: «4␤»

[12:08] <Geth> ¦ rakudo: dankogai++ created pull request #6524: Add C99 hexadecimal float literals and %a/%A Formatter directives

[12:08] <Geth> ¦ rakudo: review: https://github.com/rakudo/rakudo/pull/6524

[12:10] <[Coke]> lizmat++ for also updating the Changelog. :)

[12:16] <Geth> ¦ nqp/main: 5776e30dcf | (Elizabeth Mattijsen)++ | tools/templates/MOAR_REVISION

[12:16] <Geth> ¦ nqp/main: Bump MoarVM to get increased nursery size, MasterDuke++

[12:16] <Geth> ¦ nqp/main: review: https://github.com/Raku/nqp/commit/5776e30dcf

[12:30] <Geth> ¦ rakudo/main: 8eee823949 | (Elizabeth Mattijsen)++ | tools/templates/NQP_REVISION

[12:30] <Geth> ¦ rakudo/main: Bump NQP to get increased nursery size, MasterDuke++

[12:30] <Geth> ¦ rakudo/main: review: https://github.com/rakudo/rakudo/commit/8eee823949

[12:32] <lizmat> FWIW, I did see some improvement in NQP tests (4 -> 3 seconds on my hw), but not really in Rakudo

[12:32] <lizmat> I wonder whether the nursery size should be something settable with an env var

[12:33] <[Coke]> hey, someone is getting us some tests on dragonflyBSD in addition to our vanilla ubuntu tests.

[12:33] <lizmat> whee!

[12:33] <[Coke]> (env var) or maybe compilation flag.

[12:34] <[Coke]> (dragonfly) if this works, could also use this as a framework for other OSes.

[12:34] <lizmat> env var would be nicer, as you wouldn't have to re-compile MoarVM each time

[12:34] <lizmat> anyways, that was my batch for merges for now, afk for a few hours&

[12:34] <[Coke]> lizmat++

[12:58] <timo> I would definitely like to see measurements from different processors

[14:04] <ab5tract> am I crazy or did we used to have `@` and `%` anonymous state variables?

[14:04] <ab5tract> (me being crazy is absolutely on the table :)

[14:05] <ab5tract> I mean, the compiler clearly thinks I'm crazy

[14:05] *** vrurg_ joined
[14:05] <ab5tract> m: dd %.push: "this", "that"

[14:05] <camelia> rakudo-moar 8eee82394: OUTPUT: «===SORRY!=== Error while compiling <tmp>␤Variable %.push used where no 'self' is available␤at <tmp>:1␤------> dd %.push: "this", "that"<HERE><EOL>␤»

[14:06] <Geth> ¦ rakudo: coke self-assigned RakuAST CI test and spectest runs should also be run with --optimize=off https://github.com/rakudo/rakudo/issues/6459

[14:09] *** vrurg left
[14:20] <ab5tract> Ah! The answer, as it so often is, is parentheses

[16:34] <ugexe> for a literal like 0 or 1 what do you think the ideal type should be? int or Int?

[16:35] <ab5tract> ugexe: depends on whether it's going to be able to stay an int or not, I guess?

[16:36] <ugexe> i ask having been working with multi dispatch and natives

[16:37] <ugexe> so maybe a better question: would f(0) ideally dispatch to f(int $) or f(Int $)

[16:38] <ab5tract> hmm... I would cpnsider throwing an ambiguous dispatch

[16:38] <ab5tract> You've thought about it more than I have, but I would consider not dispatching to a native signature unless the value is specifically typed to a native type

[16:42] <ab5tract> So I would either make a rule that only native shapes are ever dispatched to signatures expecting native shapes (a simple universal rule to remember)

[16:42] <ab5tract> Or I would explode compilation when someone puts the two together in the same multi

[16:43] <ab5tract> probably there are more and better options. but what I would hate to do is add another implicit anything to the dispatcher

[16:53] <lizmat> fwiw, I think f() should dispatch to sub f(int $x)

[16:54] <lizmat> because you evidently wanted to create a sub with native int parameters

[16:54] <lizmat> and you'd only do that for performance

[17:06] <[Coke]> I can't ask the question because that changes the answer, but is 0; a literal int or Int?

[17:07] <[Coke]> My suggestion is dispatch to int because you can force it to go to Int if you want, but you can't force it to go to int

[17:16] <ugexe> int $ = 1

[17:18] <lizmat> 0 qasts as QAST::IVal(0)

[17:30] <Geth> ¦ rakudo: dankogai++ created pull request #6525: Add %a/%A (C99 hex float) directives to the 6.e Formatter

[17:30] <Geth> ¦ rakudo: review: https://github.com/rakudo/rakudo/pull/6525

[17:34] *** lizmat left
[17:45] *** lizmat joined
[17:55] <[Coke]> ah. ok. so you *can* force it, but the syntax is slightly more awkard? I take back my slight preference. :)

[17:57] *** lizmat left
[17:58] *** sergot left
[17:59] *** lizmat joined
[18:01] *** sergot joined
[19:12] *** rakkable joined
[19:24] <timo> we have QAST::Want for values that could be Int or int (or Str or str, or Num or num)

[19:30] <lizmat> indeed: teh full qast of my example is:

[19:30] <lizmat>     │   │         - QAST::Want <wanted> 0

[19:30] <lizmat>     │   │           - QAST::WVal(Int) 

[19:30] <lizmat>     │   │           - Ii

[19:30] <lizmat>     │   │           - QAST::IVal(0)  0

[19:41] <Geth> ¦ rakudo/main: 0860b287cb | (Dan Kogai)++ (committed using GitHub Web editor) | 5 files

[19:41] <Geth> ¦ rakudo/main: Add C99 hexadecimal float literals to both frontends

[19:41] <Geth> ¦ rakudo/main: 

[19:41] <Geth> ¦ rakudo/main: C99 Floating-point notation support has been long overdue.  Perl 5

[19:41] <Geth> ¦ rakudo/main: has done so in 5.22 in 2015, more than 11 years ago.

[19:41] <Geth> ¦ rakudo/main: 

[19:41] <Geth> ¦ rakudo/main: Accept 0x1.8p+1 style hexadecimal floating point literals as Num

[19:41] <Geth> ¦ rakudo/main: literals, in both the legacy (Perl6) and the RakuAST (Raku)

[19:41] <Geth> ¦ rakudo/main: <…commit message has 24 more lines…>

[19:41] <Geth> ¦ rakudo/main: review: https://github.com/rakudo/rakudo/commit/0860b287cb

[19:42] <Geth> ¦ rakudo/main: bf86a3249e | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | 8 files

[19:42] <Geth> ¦ rakudo/main: Remove undocumented and deprecated "gethostname"

[19:42] <Geth> ¦ rakudo/main: 

[19:42] <Geth> ¦ rakudo/main: The canonical way nowadays is Kernel.hostname.  The deprecation

[19:42] <Geth> ¦ rakudo/main: message is about 6 years old  :-)

[19:42] <Geth> ¦ rakudo/main: review: https://github.com/rakudo/rakudo/commit/bf86a3249e

[20:14] <[Coke]> oh, wow, new box run spectest fast

[20:21] <japhb> I commented on MasterDuke's nursery size commit, but just to mention here: It's not clear to me that the max size and starting size for the nursery should both be multiplied by the same amount, so I'm curious if there was any testing on that.

[20:22] <japhb> [Coke]: \o/

[20:22] <[Coke]> 6.c/6.d are clean as of today

[20:25] <[Coke]> kicking off a blin

[20:28] <[Coke]> upping %age of cores used

[21:02] <timo> the starting size of the nursery is for newly created threads, if you have something that creates a bunch of threads, for example by filling up a ThreadPoolScheduler's max workers

[21:03] <timo> when you have many threads that don't have to do a lot, they would not fill up its own nursery for a while

[21:56] *** finanalyst left
[21:57] *** [Coke] left
[22:03] *** finanalyst joined
[22:09] <timo> the profiler data contains which thread was responsible for starting the GC run by filling up its nursery, but it's probably easier to get the info out of moar with like a simple gdb breakpoint + commands or whatever

[22:10] <timo> it's also visible in rrdb

[22:13] *** [Coke] joined
[22:26] <[Coke]> ok, blin doesn't respond too well when the internet connection goes dark for a few minutes. restarted

[22:59] <timo> how tight is disk space on your blin vm?

[23:05] <timo> because we could be recording all test runs with rr so if anything goes wrong in a way we can't easily reproduce, we'd have a recording for perfect reproducibility

[23:07] <timo> not sure if that's actually a problem we have

[23:59] <Geth> ¦ rakudo/main: b058762fa4 | (Nick Logan)++ | src/Perl6/Optimizer.nqp

[23:59] <Geth> ¦ rakudo/main: Carry native return types on the legacy optimizer's settled calls

[23:59] <Geth> ¦ rakudo/main: 

[23:59] <Geth> ¦ rakudo/main: When the optimizer settles a call on a single candidate at compile time

[23:59] <Geth> ¦ rakudo/main: the candidate's declared native return type was being lost or carried in

[23:59] <Geth> ¦ rakudo/main: a shape that broke at runtime. The settled multi case dropped the type

[23:59] <Geth> ¦ rakudo/main: entirely, so assigning the result to a native typed container used the

[23:59] <Geth> ¦ rakudo/main: wrong unbox and died. The settled sub case marked the call as returning

[23:59] <Geth> ¦ rakudo/main: <…commit message has 21 more lines…>

[23:59] <Geth> ¦ rakudo/main: review: https://github.com/rakudo/rakudo/commit/b058762fa4

[23:59] <Geth> ¦ rakudo/main: f8bacc312e | (Nick Logan)++ | 7 files

[23:59] <Geth> ¦ rakudo/main: RakuAST: carry native return types onto resolved calls and operators

[23:59] <Geth> ¦ rakudo/main: 

[23:59] <Geth> ¦ rakudo/main: When the check time analysis settles a call or an operator on a single

[23:59] <Geth> ¦ rakudo/main: candidate that declares a native return type, the type is recorded and

[23:59] <Geth> ¦ rakudo/main: attached to the emitted QAST through the same Want shape the legacy

[23:59] <Geth> ¦ rakudo/main: optimizer uses, with the bare call as the boxed default and typed

[23:59] <Geth> ¦ rakudo/main: native alternatives. The analysis runs at check time, so this applies

[23:59] <Geth> ¦ rakudo/main: <…commit message has 15 more lines…>

[23:59] <Geth> ¦ rakudo/main: review: https://github.com/rakudo/rakudo/commit/f8bacc312e

[23:59] <Geth> ¦ rakudo/main: 9cf4f2d241 | (Nick Logan)++ (committed using GitHub Web editor) | 8 files

[23:59] <Geth> ¦ rakudo/main: Merge pull request #6259 from ugexe/ugexe/native-return-type-coercion

[23:59] <Geth> ¦ rakudo/main: 

[23:59] <Geth> ¦ rakudo/main: Carry native return types on compile-time resolved calls

[23:59] <Geth> ¦ rakudo/main: review: https://github.com/rakudo/rakudo/commit/9cf4f2d241

