[01:10] *** sena_kun joined [01:11] *** Altai-man_ left [02:23] *** camelCaser left [02:25] *** camelCaser joined [03:09] *** Altai-man_ joined [03:12] *** sena_kun left [05:10] *** sena_kun joined [05:11] *** Altai-man_ left [06:00] *** Altai-man_ joined [06:03] *** sena_kun left [07:04] the "I'm feeling lucky" button on https://modules.raku.org/ leads to a 404 page [07:15] *** JJMerelo joined [08:01] *** sena_kun joined [08:03] *** Altai-man_ left [08:05] *** patrickb joined [08:19] *** JJMerelo left [08:24] *** JJMerelo joined [08:33] *** JJMerelo left [08:33] Files=1307, Tests=113013, 218 wallclock secs (29.02 usr 8.19 sys + 3041.01 cusr 288.77 csys = 3366.99 CPU) [09:07] *** squashable6 left [09:07] *** squashable6 joined [09:29] *** lichtkind joined [10:01] *** Altai-man_ joined [10:03] *** sena_kun left [10:16] ¦ rakudo/match-refactor: 254cd94592 | (Elizabeth Mattijsen)++ | src/Perl6/bootstrap.c/BOOTSTRAP.nqp [10:16] ¦ rakudo/match-refactor: Remove the Raku specific bits from RegexCaptures [10:16] ¦ rakudo/match-refactor: [10:16] ¦ rakudo/match-refactor: And also make the setup of the capnames derived info lazy. [10:16] ¦ rakudo/match-refactor: review: https://github.com/rakudo/rakudo/commit/254cd94592 [10:18] lizmat: Seeing that reminds me: be careful to test a module that involves a slang (mixing into Perl6::Grammar), since I broke that last time I tinkered with this stuff. [10:18] (Maybe you'll have been more careful. But worth a check.) [10:18] I'm also testing Inline::Perl5, and it indeed broke a test [10:19] *** JJMerelo joined [10:21] looks like I will either need to rewrite the NQP version of Match object as well, or keep that alive :-( [10:25] ok, I think the Inline::Perl5 issues is now down to Inline::Perl5 [10:25] Slang::Tuxic is ok [10:30] ¦ rakudo/match-refactor: d5927855f7 | (Elizabeth Mattijsen)++ | src/Perl6/bootstrap.c/BOOTSTRAP.nqp [10:30] ¦ rakudo/match-refactor: Oops, need to check tyhe right attribute [10:30] ¦ rakudo/match-refactor: [10:30] ¦ rakudo/match-refactor: Inline::Perl5 now down to just failing tests, instead of bombing. [10:30] ¦ rakudo/match-refactor: Slang::Tuxic clean now [10:30] ¦ rakudo/match-refactor: review: https://github.com/rakudo/rakudo/commit/d5927855f7 [10:38] fwiw, CircleCI is spamming me again, telling me my builds fail on Linux [10:49] lizmat, I think the original bug was not fixed? [10:49] Not https://github.com/MoarVM/MoarVM/pull/1317 nor https://github.com/MoarVM/MoarVM/pull/1318 are merged. [10:49] ¦ rakudo/match-refactor: 08ec3f167b | (Elizabeth Mattijsen)++ | src/core.c/Str.pm6 [10:49] ¦ rakudo/match-refactor: Make matching slightly more optimal [10:49] ¦ rakudo/match-refactor: [10:49] ¦ rakudo/match-refactor: - returning a Match object is now a no-op [10:49] ¦ rakudo/match-refactor: - returning a string is now just calling .Str [10:49] ¦ rakudo/match-refactor: review: https://github.com/rakudo/rakudo/commit/08ec3f167b [10:49] Without this moarvm fails to build there, so it is a valid check failure. [10:50] I guess :-( [10:50] not sure how that situation could be improved, but it is pretty annoying now :-) [10:51] I would just fix the offending loop var declaration, to be honest. I mean, we are using this style everywhere and there is a single case which goes the other way and fails and still. [10:51] lizmat, I wholeheartedly agree with you here. :) [11:07] ¦ nqp: 3cc1f805ea | (Elizabeth Mattijsen)++ | src/QRegex/Cursor.nqp [11:07] ¦ nqp: Simplify Cursor!cursor_pass [11:07] ¦ nqp: [11:07] ¦ nqp: - don't check for $backtrack twice [11:07] ¦ nqp: - Cursor!reduce returns self, so we can use a ternary [11:07] ¦ nqp: review: https://github.com/Raku/nqp/commit/3cc1f805ea [11:10] I merged the MoarVM fix for this. Review was still missing but we can revert. [11:18] lizmat: so did I do anything wrong? [11:18] Or rather what did I do wrong? [11:19] ¦ rakudo/match-refactor: 19f0f53e0b | (Elizabeth Mattijsen)++ | src/core.c/Match.pm6 [11:19] ¦ rakudo/match-refactor: Remove now superfluous Match.STR [11:19] ¦ rakudo/match-refactor: [11:19] ¦ rakudo/match-refactor: Unfortunately, Match.MATCH can *not* be removed, as some types of [11:19] ¦ rakudo/match-refactor: cursor (specifically cursor_pass, which is used by INTERPOLATE) are [11:19] ¦ rakudo/match-refactor: still trying to call MATCH from nqp. [11:19] ¦ rakudo/match-refactor: review: https://github.com/rakudo/rakudo/commit/19f0f53e0b [11:27] ¦ nqp: bbdfe50b51 | (Elizabeth Mattijsen)++ | tools/templates/MOAR_REVISION [11:27] ¦ nqp: Bump MoarVM to get latest build fixes [11:27] ¦ nqp: review: https://github.com/Raku/nqp/commit/bbdfe50b51 [11:35] *** JJMerelo left [11:38] ¦ rakudo: f1960baa9f | (Elizabeth Mattijsen)++ | tools/templates/NQP_REVISION [11:38] ¦ rakudo: Bump NQP to get MoarVM build fixes [11:38] ¦ rakudo: [11:38] ¦ rakudo: And a tiny regex opt as well. [11:38] ¦ rakudo: review: https://github.com/rakudo/rakudo/commit/f1960baa9f [11:44] hmmm... one linux build now passes [12:01] *** sena_kun joined [12:03] *** Altai-man_ left [12:22] jnthn: tryfindmethod is one of the methods that the GDO will make obsolete, right ? [12:27] sena_kun: could you schedule a Blin run for the "match-refactor" branch ? [12:28] lizmat, can do tonight, if you're not in a hurry. [12:29] not in a hurry, I know I borked Inline::Perl5, but that one is hard to debug [12:29] hoping for another borked module that will be easier to debug :-) [12:30] lizmat, fair enough. Will do! [12:33] lizmat: are you refactoring, optimizing or both? [12:33] *** timotimo left [12:35] *** timotimo joined [12:41] dogbert17: both [12:42] basically going from: vivify anything possible in a Match object always, to not vivifying anything and just looking things up when needed [12:42] the new Match object does *not* have $!list or $!hash attributes [12:43] so it its a lot easier on the garbage collection side, at the possible expense of more CPU [12:45] spectest at the moment seems not to suffer from it, and that's with still a lot of the old scaffolding in place [12:45] Str.match will need another refactor as well, but that's ok [12:46] I'm stresstesting it now :-) [12:47] cool! [12:47] afk for a few hours, "enjoying" the 30 degree heat while cycling& [12:47] will take a little longer than usual, have lots of debug flags enabled in MoarVM [12:48] bring some water :) [13:11] lizmat: correct [13:13] *** AlexDaniel joined [13:13] *** AlexDaniel left [13:13] *** AlexDaniel joined [13:18] *** greppable6 left [13:19] *** sena_kun left [13:19] *** sena_kun joined [13:36] nine's empirical approach to software developement. It doesn't burn yet? Poke at it till it explodes. Then poke at it some more and take note of how it burns differently. When the flame goes out, commit. I swear, that's literally what I do all day. [13:37] i hope your fireproof gloves are comfortable [13:39] random idea that occured to me just now: a cro middleware that looks for a "X-TakeMVMHeapDump" header; if present, a mvm heap dump can be taken relative to the processing of the request [13:40] i can think of a bunch of different conditions you could pass; "before", "after", "start + 1s", "start + 100kB", etc [14:01] *** Altai-man_ joined [14:03] *** sena_kun left [14:14] *** notable6 left [14:14] *** coverable6 left [14:14] *** evalable6 left [14:14] *** benchable6 left [14:14] *** statisfiable6 left [14:14] *** nativecallable6 left [14:14] *** reportable6 left [14:14] *** quotable6 left [14:14] *** bloatable6 left [14:14] *** linkable6 left [14:14] *** committable6 left [14:14] *** tellable6 left [14:14] *** sourceable6 left [14:14] *** releasable6 left [14:14] *** shareable6 left [14:14] *** bisectable6 left [14:14] *** squashable6 left [14:19] *** coverable6 joined [14:19] *** reportable6 joined [14:19] *** quotable6 joined [14:20] *** notable6 joined [14:20] *** bisectable6 joined [14:20] *** unicodable6 joined [14:20] *** sourceable6 joined [14:20] *** benchable6 joined [14:20] *** evalable6 joined [14:20] *** shareable6 joined [14:20] *** bloatable6 joined [14:21] *** greppable6 joined [14:21] *** squashable6 joined [14:21] *** releasable6 joined [14:21] *** linkable6 joined [14:21] *** nativecallable6 joined [14:21] *** statisfiable6 joined [14:22] *** committable6 joined [14:22] *** tellable6 joined [14:23] Hm...there are a couple of spec tests failing with messages like "reference to context outside of SC for 'parameterize' (SETTING::src/core.c/Hash.pm6:766)" [14:24] But these errors only happen on the first try. Once their dependencies are precompiled the errors disappear [14:37] statisfiable6: libmoar [14:37] timotimo, OK! Working on it… [14:49] <[Tux]> Rakudo version 2020.06-7-gf1960baa9 - MoarVM version 2020.06-6-gbf6af07de [14:49] <[Tux]> csv-test-xs-20 0.387 - 0.396 [14:49] <[Tux]> csv-ip5xs 0.816 - 0.833 [14:49] <[Tux]> test-t --race 0.819 - 0.922 [14:49] <[Tux]> test-t 1.914 - 1.934 [14:49] <[Tux]> test 7.544 - 7.692 [14:49] <[Tux]> csv-ip5xs-20 8.023 - 8.403 [14:49] <[Tux]> test-t-20 --race 9.288 - 9.490 [14:49] <[Tux]> csv-parser 24.311 - 25.952 [14:49] <[Tux]> test-t-20 30.549 - 32.282 [14:49] timotimo: I don't know if this is going to work, I haven't tried it in months [14:49] statisfiable6 is one of those bitrotted bots, but it should be kinda functional [14:50] yeah [14:52] rba: do we have any WIP or docs or ideas about monitoring all our servers and apps and bots and such? [14:52] it looks like infrastructure-docs has been nommed into problem-solving? [14:54] there's still a repo: https://github.com/Raku/infrastructure-doc [14:54] but yeah, sort of [14:54] wtf [14:54] i swear i put in search terms that should really have found that repo [14:58] but yeah that looks to be sufficiently out of date [15:13] <[Coke]> oh, I fixed the readme *then* noticed that that really was perl6 and I'm not sure any of those hosts are still a thing [15:14] what is? [15:15] <[Coke]> the repo. I just reverted. [15:27] *** JJMerelo joined [16:02] *** sena_kun joined [16:03] *** Altai-man_ left [16:05] raku: say @a[0..10]; say @a[5]:exists; [16:05] gfldex, rakudo-moar f1960baa9: OUTPUT: «(exit code 1) 04===SORRY!04=== Error while compiling /tmp/WicOu8VaN1␤Variable '@a' is not declared␤at /tmp/WicOu8VaN1:1␤------> 03say 08⏏04@a[0..10]; say @a[5]:exists;␤» [16:06] raku: my @a is default('fill') = 1,2,3; say @a[0..10]; say @a[5]:exists; [16:06] gfldex, rakudo-moar f1960baa9: OUTPUT: «(1 2 3 fill fill fill fill fill fill fill fill)␤False␤» [16:06] raku: my @a is default('fill') = 1,2,3; say @a[5].defined; @a[5]:exists; [16:06] gfldex, rakudo-moar f1960baa9: OUTPUT: «True␤» [16:06] raku: my @a is default('fill') = 1,2,3; say @a[5].defined, @a[5]:exists; [16:06] gfldex, rakudo-moar f1960baa9: OUTPUT: «TrueFalse␤» [16:07] :D [16:07] this is a fine riddle! [16:09] bisectable6: my @a is default('fill') = 1,2,3; say @a[5].defined, @a[5]:exists; [16:09] MasterDuke, Will bisect the whole range automagically because no endpoints were provided, hang tight [16:11] MasterDuke, ¦6c (44 commits): «TrueFalse␤» [16:11] MasterDuke, Nothing to bisect! [16:12] raku: my @a is default('fill') = 1,2,3; @a = @a[5]:delete; say @a[5].defined, @a[5]:exists; [16:12] gfldex, rakudo-moar f1960baa9: OUTPUT: «TrueFalse␤» [16:12] timotimo, https://gist.github.com/2411ac644103b7e73d2a56a416d065c5 [16:13] This is so cool. We delete it, it's still defined but never existed. [16:15] i mean you have a default, right? [16:19] <[Coke]> DIHWIDT [16:19] <[Coke]> raku: my @a = 1,2,3; @a = @a[5]:delete; say @a[5].defined, @a[5]:exists; [16:19] [Coke], rakudo-moar f1960baa9: OUTPUT: «FalseFalse␤» [16:48] *** sivoais left [17:00] *** sivoais joined [17:13] *** MasterDuke left [17:16] timotimo: wait what, it worked?? [17:18] statisfiable6: core [17:18] AlexDaniel, OK! Working on it… [18:01] *** Altai-man_ joined [18:03] *** sena_kun left [18:07] *** JJMerelo left [18:13] wait what what worked? [18:14] was that the same request i had started a few hours ago? :) [18:45] timotimo: yes [18:46] lmao, oh crap [18:48] well, it actually makes sense. It had to unpack every archive and look inside. Now that it finished, the results are cached so next query for the same stats won't take as long [18:49] 83b7acd2 [18:49] (2017-05-13) https://github.com/rakudo/rakudo/commit/83b7acd265 Run the Perl6::Compiler.verbose-config when sinking [18:49] so a 50% increase in 3 years :) [18:50] AlexDaniel, https://gist.github.com/5df4f6f89d895cc4cc8d9c2b63791e3a [18:51] to the moon! [18:51] ok it's actually linear so not that bad :) [18:52] statisfiable6: install [18:52] AlexDaniel, OK! Working on it… [19:14] *** lichtkind left [19:41] *** sivoais left [19:43] lizmat: I get the impression that your new branch is a few percent faster than master [19:44] *** sivoais joined [19:44] dogbert17: that's promising :-) [19:45] indeed [19:54] damn [20:01] *** sena_kun joined [20:03] *** Altai-man_ left [20:06] *** lichtkind joined [20:27] AlexDaniel, https://gist.github.com/d84b13d00e2bd85d10719b06d38bf796 [20:27] timotimo: All three graphs: https://gist.github.com/2411ac644103b7e73d2a56a416d065c5 https://gist.github.com/5df4f6f89d895cc4cc8d9c2b63791e3a https://gist.github.com/d84b13d00e2bd85d10719b06d38bf796 [20:28] soooo… on that last graph we just jumped by 10M ? [20:29] is it because of this? https://github.com/rakudo/rakudo/commit/537f8877034fa4c3697d3a8b093039b18c331b79 [20:29] yes [20:29] nine: hello! [20:29] *** sivoais left [20:30] sena_kun: can you file a ticket maybe? Sounds kinda important [20:35] Geth: ver https://github.com/rakudo/rakudo/commit/2724a8514474c2f91f7236cfed7644df27d49f1e [20:35] AlexDaniel, version bump brought in these changes: https://github.com/perl6/nqp/compare/2017.09-38-ga0618a6...2017.09-40-ga6a1aa0 [20:35] Geth: ver https://github.com/Raku/nqp/commit/a6a1aa0b48691978237d94b0d4deb2eee98b028a [20:35] AlexDaniel, version bump brought in these changes: https://github.com/MoarVM/MoarVM/compare/2017.09.1-62-g89ca8eb...2017.09.1-553-ga4fef0b [20:39] AlexDaniel: and the "lines of core setting" thing is a future feature? :) [20:40] yea but… %*BOT-ENV ? [20:40] ah [20:40] the code in statisfiable is kinda old, I started making it a bit prettier but I'm blocked by that thing [20:40] well i can't reproduce that issue :( [20:41] I'm not sure how to reproduce it too. Maybe it's about calling things from different files? [20:41] any reason you're not just copying / binding to a lexical? [20:41] *** sivoais joined [20:42] *** MasterDuke joined [20:42] it's used in different files, it can't be a lexical [20:43] I understand that dynamic vars is a bit hacky way of doing this, but it's the path of least resistance for what I'm trying to achieve [20:43] and it works, unless I introduce `start` blocks [20:50] stuart blocks [21:00] *** finsternis left [21:44] enough social media for today& [21:56] *** softmoth joined [22:01] *** Altai-man_ joined [22:03] *** sena_kun left [22:04] Altai-man_: filed it myself here: https://github.com/rakudo/rakudo/issues/3769 [22:25] *** patrickb left [22:34] timotimo: oooo I think I managed to reproduce it! [22:35] golfing [22:42] m: my %*BAR = :42heh; await start { dd %*BAR; await start { dd %*BAR }; } [22:42] rakudo-moar f1960baa9: OUTPUT: «Hash %*BAR = {:heh(42)}␤Failure.new(exception => X::Dynamic::NotFound.new(name => "\%*BAR"), backtrace => Backtrace.new)␤» [22:42] timotimo: ↑ that? [22:42] m: my $*FOO = 42; await start { dd $*FOO; await start { dd $*FOO } } [22:42] rakudo-moar f1960baa9: OUTPUT: «Int $*FOO = 42␤Failure.new(exception => X::Dynamic::NotFound.new(name => "\$*FOO"), backtrace => Backtrace.new)␤» [22:50] timotimo: https://github.com/rakudo/rakudo/issues/3770 [23:02] AlexDaniel: https://stackoverflow.com/questions/57581749/dynamic-variables-and-promises [23:04] jnthn: okay, I kinda expected something like this. How do I solve it? [23:04] *** squashable6 left [23:04] *** softmoth left [23:05] *** lichtkind left [23:06] AlexDaniel: If you want to keep using dynamics, a fresh dynamic will do (`my $*FOO := CALLERS::<$*FOO>` or some such) [23:06] (I didn't really read the whole discussion, just saw the last bit and recognized what was going on [23:07] *** squashable6 joined [23:07] jnthn: I don't think you're missing anything [23:07] that's exactly the issue [23:08] so… essentially… dynamic variables and start blocks are pretty much mutually exclusive features :S [23:09] maybe I can create some sort of wrapper for `start` to copy the variables I care about [23:10] The whole dynamic capture thingy sorta annoys me. I argued against doing it at all, TimToady insisted on it, I implemented it, but it turns out it only worked one level deep, and when I looked into resolving *that* I realized it was nasty leaks waiting to happen... [23:10] ...so every `start` block pays for a feature that only sort of works. [23:11] And that I'm not convinced can be made to work without a memory leak risk or other costs. There may be some way I didn't think of yet, though. [23:13] jnthn: if they were globals, the only issue would have been name clashing if something decides to declare the same variable again but deeper? [23:14] Yes, that's pretty much the difference; $*FOO lookups do end up looking in GLOBAL::<$FOO> as a fallback, even. [23:14] And failing that, PROCESS::<$FOO> [23:15] can I declare a global variable? [23:16] They aren't declared, they just exist. You can use `our` to declare a lexical alias to one [23:16] yeah but… can I make BOT-ENV global variable exist? [23:16] $GLOBAL::BOT-ENV = blah; # or whatever sigil is appropriate [23:17] ah okay [23:17] great then [23:17] That'll even be found my $*BOT-ENV [23:17] Thanks to the GLOBAL fallback [23:17] yeah, that's what I'm thinking, I don't care if somebody tries to use WHATEVERABLE-ENV too [23:17] I agree the dynamic var / start situation is LTA, I just don't know quite what to do about it. [23:18] jnthn: I don't really know what's the use case for all that. Dynamic variables are not really popular [23:19] I just need a total hack and I'll get it with GLOBAL [23:21] Dynamic variables are occasionally really useful, but I'm glad they're not popular. :) [23:30] jnthn: I hope this makes sense: https://github.com/Raku/doc/issues/3497 [23:31] what a clickbait title but still [23:31] :P [23:31] It'll do great on reddit or hackernews, I'm sure ;) [23:31] It's fine, maybe mention the other solution (rebind the dynamic in the start) [23:38] jnthn: edited, thanks! [23:39] np [23:39] Guess I should sleep, I'd kinda like to write some code tomorrow, having spent the last couple of days doing slides and recording me trying to say something interesting to go with them... :) [23:39] 'night o/ [23:44] night!