github.com/moarvm/moarvm | IRC logs at colabti.org/irclogger/irclogger_logs/moarvm
Set by AlexDaniel on 12 June 2018.
nwc10 good *, #moarvm 09:07
lizmat o/ nwc10 09:23
Geth MoarVM: a6bc2a2a65 | (Jonathan Worthington)++ | src/spesh/args.c
Add missing args spesh coercion validation

We failed to validate that the incoming named argument was suitable for rewriting as part of argument handling specialization. This adds the required validation, bringing it in line with the the checking done on positional parameters. It also hoists required named missing validation to before we start doing any transformation; the bailing out after the positional argument transformations were done was decidedly dubious, and could potentially also cause problems. Fixes #1242.
13:55
linkable6 MOARVM#1242 [closed]: github.com/MoarVM/MoarVM/issues/1242 Failure when running S05-grammar/parse_and_parsefile-6e.t under MVM_SPESH_BLOCKING and MVM_SPESH_NODELAY
jnthn One more down. 13:58
lizmat jnthn++ 14:05
nine jnthn: forcing a full GC run every 100 GCs takes our backend API down from > 6 GiB RSS to 5 GiB RSS after 20K requests 14:09
jnthn Hm, that still seems like a heck of a lot of memory usage 14:12
It's interesting, but...clearly something is still wrong with there being that much in the first place.
nine Yes. It does show however that the current heuristic pretty much says: the more you leak, the less we care about keeping memory usage low. 14:15
Funny: 14:17
Doesn't leak: raku -I/home/nine/Inline-Perl5 -e 'use Atikon::DB::Timemngt:from<Perl5>; my $schema = Atikon::DB::Timemngt.connect("dbi:Pg:database=timemngt"); my $resultset = $schema.resultset("MeinAtikonSession"); loop { $resultset.clear_expired_sessions; }' 14:18
Doesn't leak: raku -I/home/nine/Inline-Perl5 -e 'use Atikon::DB::Timemngt:from<Perl5>; my $schema = Atikon::DB::Timemngt.connect("dbi:Pg:database=timemngt"); loop { $schema.resultset("MeinAtikonSession"); }'
Leaks like hell: raku -I/home/nine/Inline-Perl5 -e 'use Atikon::DB::Timemngt:from<Perl5>; my $schema = Atikon::DB::Timemngt.connect("dbi:Pg:database=timemngt"); loop { $schema.resultset("MeinAtikonSession").clear_expired_sessions; }'
So neither the call to resultset, nor the call to clear_expired_sessions are problematic individually, but chain them and memory usage explodes
lizmat I wonder if that could be reproduced without Inline::Perl5 14:19
nine loop { my $resultset = $schema.resultset("MeinAtikonSession"); $resultset.clear_expired_sessions; }' leaks just as much 14:21
Geth MoarVM: 15e94eecb3 | (Jonathan Worthington)++ | src/strings/ops.c
Bounds check codepoint passed to chr

So that we don't end up overflowing and trying to look up a synthetic. The out of bounds codepoints that don't overflow are also a potential risk, so disallow that too. Also, print the hex value to bring the error in line with what the Raku level check does. Fixes #1115.
14:24
linkable6 MOARVM#1115 [closed]: github.com/MoarVM/MoarVM/issues/1115 Synthetic code point checking off ?
MasterDuke jnthn: have you seen this (tree-sitter, the parser used in atom) www.youtube.com/watch?v=Jes3bD6P0To ? looks like it might be useful for comma 21:09