🦋 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.
leont If it doesn't auto-close, most applications will leak like a sieve I suspect. 00:58
ugexe i agree, but doesn't that say more about the developer? 01:39
i guess not, coming from perl. but coming from a language like go it just seems sloppy 01:41
leont It's all about managing expectations, really 01:42
ugexe for all my time in raku, i didn't even remember that we auto closed handles
i expected the opposite based on how other handles get treated
leont RAII is the sensible to deal with this sort of thing IMNSHO. If they aren't autoclosed, we should provide something like using in C# 01:43
coleman What happens in Go to an *os.File that is simply garbage collected and not explicitly closed?
ugexe yeah thats why i think a warning might be ideal. if we had DEFER then its even easier to guide developers to the solution
leont defer still feels sub-optimal because it takes a second action to get things right 01:44
That makes it too easy to forget about it 01:45
coleman RAII feels like the more "OOP" type solution
ugexe true, but you're also using a handle and not any of the convience methods you'd probably already want to be using if you don't want to explicitly close a handle
it also encourages coding patterns that may not work as expected on windows 01:46
maybe i just don't like the current implementation. or that its apparently so difficult to disable it 01:50
04:30 kjp left 04:33 kjp joined 04:36 epony left 09:32 epony joined 09:47 sena_kun joined 10:31 finanalyst joined
lizmat ugexe: oops, good catch! 10:45
a723c387ce 10:46
linkable6 (2024-02-10) github.com/rakudo/rakudo/commit/a723c387ce Fix removal of file locking during installation
11:52 epony left 11:53 finanalyst left 12:35 epony joined 12:42 epony left 13:05 epony joined 13:29 epony left 14:02 epony joined
Geth rakudo/main: 6117df24a8 | (Elizabeth Mattijsen)++ | src/Perl6/Metamodel/C3MRO.nqp
Streamline the C3MRO metamodel role

  - replace for loops by while loops, as they are 35% faster
  - a bit more documentation
14:27
rakudo/main: e93208ce71 | (Elizabeth Mattijsen)++ | src/Perl6/Metamodel/C3MRO.nqp
Remove read lock on MRO

Also replace %!mro by $!mro, as this will be atomically initialized with an NQPMu, which is easier to check for when inspecting at a time when the $!mro hasn't been initialized yet.
This appears to save 5 wallclock seconds on spectest and significant less CPU usage. This also drops bare startup from .12 to .11 for yours truly.
16:47
ugexe I added a warning to IO::Handle::DESTROY and reinstalled rakudo - there doesn't seem to be any other file handle leaks using that code path. but it made me think it might be nice to have an environment variable that could be set to see when handles are closed that way 16:48
that was as a developer i could test my apps when that environment variable enabled and see if there any handles i forgot to close explicitly 16:49
that way^
lizmat +1
ugexe what would we call such an environment variable? RAKUDO_WARN_UNCLOSED_IO_HANDLE or some such 16:52
lizmat RAKUDO_WARN_UNCLOSED_IO_HANDLES ? 16:53
RAKUDO_WARN_OPEN_IO_HANDLE
S 16:54
jdv why could that not just be a warning cat? 17:35
ugexe there is also IO::CatHandle::DESTROY... 17:37
17:41 timo left 20:28 timo joined
timo i just stumbled upon div not being coercive for its arguments, then i saw that literally just got fixed last week. MasterDuke17++ 20:29
22:14 MasterDuke joined
MasterDuke m: use nqp; say(nqp::objprimunsigned(num)); say(nqp::objprimunsigned(int)); say(nqp::objprimunsigned(uint)) 22:14
camelia 0
0
1
MasterDuke huh. locally i get 208 (if building moarvm with mimalloc and random values if building moarvm with --no-mimalloc) for the `num` cas3e 22:16
m: use nqp; say(nqp::objprimunsigned(num)); say(nqp::objprimunsigned(int)); say(nqp::objprimunsigned(uint)) 22:17
camelia 0
0
1
MasterDuke m: use nqp; say(nqp::objprimunsigned(num)); say(nqp::objprimunsigned(int)); say(nqp::objprimunsigned(uint))
camelia 0
0
1
Geth nqp/main: 6583e61c5b | (Stéphane Payrard)++ | 2 files
for the sake of the parsetree browser

We need something on github for the parsetree browser. It uses --github-user=<user> to generate rakudo
MasterDuke oh, that's only if i build with `--optimize=0` 22:20
nqp: say(nqp::objprimunsigned(num)) 22:21
camelia 0
MasterDuke can anybody else repro ^^^ when building MoarVM with `--no-mimalloc` and/or `--optimize=0`? afk for the big game 22:23
23:03 sena_kun left
ugexe github.com/Raku/nqp/commit/6583e61...2c6ae0147d - it really feels like this should be reverted 23:29
tons of commented out code, some comments that don't seem to make sense, the commit message itself doesn't tell me what it is trying to do 23:30
github.com/Raku/nqp/commit/6583e61...9R255-R258 23:31
like wth
Geth nqp/main: 76778258bf | (Nick Logan)++ | 2 files
Revert "for the sake of the parsetree browser"

This reverts commit 6583e61c5b265257c8fcfd275522462c6ae0147d.
23:43
ugexe not to be an asshole but that was not ready for main 23:44