timo randomly wondering what the impact on rakudo compile times, installation file size, and user code parse time would be of creating pre-baked instances of the most common quoting languages like for ' and " ahead of time 00:17
[Coke] - Identity: rakudo:ver<2024.12>:auth<Yet Another Society> 01:04
We should use the Rau alias herwe, yes?
Raku 01:05
timo i'm a little miffed that we don't allow assignment to an IO::Path's timestamp "attributes" to do the same thing as touch with -d or -t passed 01:18
06:51 gfldex left 10:15 sena_kun joined
lizmat timo: I'd say performance, as proxies are relatively expensive ? 10:41
timo with new-disp, i think proxies where we immediately assign or decont after getting it should be relatively cheap compared to how it used to be, though i'm not sure we already throw away the allocation of the proxy object? i should check that 13:05
Geth nqp/main: d37a8d1229 | (Elizabeth Mattijsen)++ | tools/templates/MOAR_REVISION
Bump MoarVM to get spesh guard guard
13:51
timo who is guarding the guards? 13:53
lizmat hehe
Geth rakudo/main: 79fb513a11 | (Elizabeth Mattijsen)++ | tools/templates/NQP_REVISION
Bump NQP to get spesh guard guard
14:07
sjn the speshial guards are guarding the guards!
14:16 sena_kun left 14:18 sena_kun joined
timo random thought about the "'no strict' helps not having to write 'my $foo,$bar,$baz'" discussion that i've read about half of now: we already have the $^foo syntax for declaring arguments to the current block. what if there was a similar syntax - could be a prefix operator instead of a twigil or anything else - for declaring variables in the current scope without having to spell out "my "? you can 15:09
already put the my in-line with the first usage, but you'll usually have to enclose it in parens for it to work ...
go has a "assign and declare in one" operator with :=, which is also a thing we might consider how it could fit into raku one-liners 15:13
ab5tract timo: inteesting thought. I believe you are talking about the problem solving ticket regarding an optional switch for one-liners? That one was more controversial than I expected, to be honest. Maybe what is missing is a flag for saying "no" to a pragma (`-/M` or `-M/` maybe)? Do you imagine this alternative declaration syntax to be enabled by a pragma? 17:18
lizmat don't we have that already?
m: $*a = 42; say $*a 17:19
camelia Dynamic variable $*a not found
in block <unit> at <tmp> line 1
lizmat the only thing we'd need to do is to auto-vivify dynamic variables in the -e scope ?
ab5tract I'd argue that it should be a different flag 17:20
or might argue, at least
AFAIK there's nothing really in the compiler that signifies `-e`, and I think that's probably the way to go 17:21
lizmat m: sub DYNAMIC(|c) { dd c }; say $*a
camelia \("\$*a")
Nil
lizmat m: sub DYNAMIC(|c) { dd c; &CORE::DYNAMIC(|c) }; say $*a 17:22
camelia \("\$*a")
Dynamic variable $*a not found
in sub DYNAMIC at <tmp> line 1
in block <unit> at <tmp> line 1
lizmat auto vivification of dynamic vars: 17:27
m: sub DYNAMIC($key) is raw { my \v = &CORE::DYNAMIC($key); v ~~ Failure ?? PROCESS::{$key} !! $key }; $*a = 42; say $*a
camelia 42
ab5tract nice 17:38
timo that's neat 17:39
lizmat m: sub DYNAMIC($key) is raw { my \v = &CORE::DYNAMIC($key); v ~~ Failure ?? PROCESS::{$key} !! v }; $*a = 42; say $*a # correct version 17:40
camelia 42
ab5tract vaguely surprised that DYNAMIC isn't &*DYNAMIC :) 17:44
timo override the lookup of dynamic variables in a dynamic scope? whew. 17:45
lizmat the only reason this works:q 17:46
is that nqp::getlexdyn($name) doesn't know about GLOBAL and PROCESS 17:47
timo oh, that's why we have a sub DYNAMIC that is used to handle those as fallback?
lizmat yup
BTW, is there a reason that nqp::getlexdyn would prohibit inlining ? 17:52
timo do you see many inlining failures due to that? do you have some example code that triggers it? 17:56
Geth nqp/mast_compiler_size_limit_checks: cd270714f6 | (Timo Paulssen)++ | src/vm/moar/QAST/QASTCompilerMAST.nqp
Verify some sizes in qast compiler mast

If any of the section offsets overflow the 32bit offset number that we write to the file, we throw an exception.
If any frame has more than 65534 locals or lexicals, we throw an exception. If there are more than 65534 frames, we throw an exception as well.
18:38
nqp: timo++ created pull request #835:
Verify some sizes in qast compiler mast
18:39
nqp/mast_compiler_size_limit_checks: d77d13fa48 | (Timo Paulssen)++ | src/vm/moar/QAST/QASTCompilerMAST.nqp
Verify some sizes in qast compiler mast

If any of the section offsets overflow the 32bit offset number that we write to the file, we throw an exception.
If any frame has more than 65534 locals or lexicals, we throw an exception. If there are more than 65534 frames, we throw an exception as well.
20:08
rakudo/ugexe/deprecate-multi-file-operations: c87a764588 | ab5tract++ | 2 files
Apply revision-gating to chmod/chown/rmdir/unlink

The idea is that the semantics of providing multiple-path versions of these subs is a mistake.
As currently implemented, this patch leaves the behavior the same for all previous language versions and adding a deprecation message ... (6 more lines)
20:36
ab5tract ugexe: slight bug in my previous iteration, was using "6.d" instead of "6.c" for some candidates 20:37
22:37 sena_kun left
Geth nqp/mast_compiler_size_limit_checks: 31d5cc698f | (Timo Paulssen)++ | src/vm/moar/QAST/QASTCompilerMAST.nqp
Verify some sizes in qast compiler mast

If any of the section offsets overflow the 32bit offset number that we write to the file, we throw an exception.
If any frame has more than 65534 locals or lexicals, we throw an exception. If there are more than 65534 frames, we throw an exception as well.
22:43
lizmat timo: raku -MSIL -e '$*IN for ^10000' 23:19