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 |