[00:02] *** reportable6 left [00:05] *** reportable6 joined [00:52] *** b2gills left [01:15] *** b2gills joined [02:44] *** bisectable6 left [02:44] *** sourceable6 left [02:44] *** coverable6 left [02:44] *** shareable6 left [02:44] *** quotable6 left [02:44] *** reportable6 left [02:44] *** committable6 left [02:44] *** greppable6 left [02:44] *** squashable6 left [02:44] *** evalable6 left [02:44] *** tellable6 left [02:44] *** linkable6 left [02:44] *** notable6 left [02:44] *** benchable6 left [02:44] *** nativecallable6 left [02:44] *** unicodable6 left [02:44] *** releasable6 left [02:44] *** statisfiable6 left [02:44] *** bloatable6 left [02:44] *** linkable6 joined [02:44] *** coverable6 joined [02:44] *** releasable6 joined [02:44] *** sourceable6 joined [02:44] *** benchable6 joined [02:44] *** tellable6 joined [02:44] *** committable6 joined [02:44] *** quotable6 joined [02:44] *** evalable6 joined [02:44] *** squashable6 joined [02:45] *** reportable6 joined [02:45] *** bloatable6 joined [02:46] *** bisectable6 joined [02:46] *** greppable6 joined [02:46] *** notable6 joined [02:46] *** unicodable6 joined [02:47] *** statisfiable6 joined [02:47] *** nativecallable6 joined [02:47] *** shareable6 joined [03:11] *** japhb joined [04:11] *** reportable6 left [04:11] *** coverable6 left [04:11] *** statisfiable6 left [04:11] *** notable6 left [04:11] *** committable6 left [04:11] *** unicodable6 left [04:11] *** sourceable6 left [04:11] *** greppable6 left [04:11] *** shareable6 left [04:11] *** tellable6 left [04:11] *** quotable6 left [04:11] *** nativecallable6 left [04:11] *** releasable6 left [04:11] *** bisectable6 left [04:11] *** linkable6 left [04:11] *** evalable6 left [04:11] *** benchable6 left [04:11] *** squashable6 left [04:11] *** bloatable6 left [04:12] *** benchable6 joined [04:12] *** sourceable6 joined [04:12] *** evalable6 joined [04:12] *** bloatable6 joined [04:12] *** statisfiable6 joined [04:12] *** releasable6 joined [04:12] *** linkable6 joined [04:13] *** greppable6 joined [04:13] *** nativecallable6 joined [04:13] *** notable6 joined [04:13] *** committable6 joined [04:14] *** shareable6 joined [04:14] *** coverable6 joined [04:14] *** reportable6 joined [04:14] *** squashable6 joined [04:14] *** unicodable6 joined [04:55] *** samebchase2 is now known as samebchase [05:19] *** squashable6 left [05:27] *** tellable6 joined [06:03] *** reportable6 left [06:05] *** reportable6 joined [06:18] *** bisectable6 joined [06:26] *** squashable6 joined [06:42] *** frost joined [07:32] *** patrickb joined [08:25] *** raydiak joined [10:47] *** morayj joined [11:17] *** RakuIRCLogger joined [11:23] m: dd "⩶".uninames [11:23] rakudo-moar 89fd8a8df: OUTPUT: «("THREE CONSECUTIVE EQUALS SIGNS",).Seq␤» [11:23] m: dd "⩵".uninames [11:23] rakudo-moar 89fd8a8df: OUTPUT: «("TWO CONSECUTIVE EQUALS SIGNS",).Seq␤» [11:43] *** morayj left [11:43] *** morayj_ joined [11:47] *** morayj_ is now known as morayj [11:48] ¦ rakudo/equal-synonyms: b2ee9d29fd | (Elizabeth Mattijsen)++ | 9 files [11:48] ¦ rakudo/equal-synonyms: Add ⩶ and ⩵ as unicode synonyms for === and == [11:48] ¦ rakudo/equal-synonyms: [11:48] ¦ rakudo/equal-synonyms: - ⩶ aka U+2A76 THREE CONSECUTIVE EQUALS SIGNS [11:48] ¦ rakudo/equal-synonyms: - ⩵ aka U+2A75 TWO CONSECUTIVE EQUALS SIGNS [11:48] ¦ rakudo/equal-synonyms: review: https://github.com/rakudo/rakudo/commit/b2ee9d29fd [11:49] ¦ rakudo: lizmat++ created pull request #4392: Add ⩶ and ⩵ as unicode synonyms for === and == [11:49] ¦ rakudo: review: https://github.com/rakudo/rakudo/pull/4392 [11:51] *** morayj left [11:51] *** morayj joined [12:01] notable6: weekly: https://p6steve.wordpress.com/2021/06/04/414/ [12:01] gfldex, Noted! (weekly) [12:03] *** reportable6 left [12:03] *** reportable6 joined [12:18] weekly rag? :-) [12:31] Why am I not surprised unicode has a THREE CONSECUTIVE EQUALS SIGNS [12:34] well, *I* was :-) [12:34] They have every other mathematical symbol [12:35] well, I didn't realize I guess that === has a mathematical meaning as well [12:36] Apparently, they have 948 mathematical symbols: https://www.compart.com/en/unicode/category/Sm [12:41] Several we could support, not sure it's really worth it in most cases [12:42] less then but not equal to ? WTF ? [12:43] and «equal or less than» is separate from «less than or equal», for some reason [12:44] «Less-Than Equal to or Greater-Than» has me puzzled too [12:45] *** morayj left [13:01] *** quotable6 joined [13:04] m: say "a" ∼ "b" [13:04] rakudo-moar 89fd8a8df: OUTPUT: «5===SORRY!5=== Error while compiling ␤Confused␤at :1␤------> 3say "a"7⏏5 ∼ "b"␤ expecting any of:␤ infix␤ infix stopper␤ postfix␤ statement end␤ statement modifier␤ …» [13:04] m: dd "∼".uninames [13:04] rakudo-moar 89fd8a8df: OUTPUT: «("TILDE OPERATOR",).Seq␤» [13:04] feels like another candidate [13:08] They have a rightward arrow and a long rightwards arrow, which we could make mean -> and --> I suppose. But given that they're actual syntax and not operators that may be trickier. [13:15] actually, that also implies quite a few other ops as well: ~~ ~| ~< etc. [13:16] as well as prefix ~ and ~~ [13:20] going to leave that for now :-) [13:32] *** Kaiepi joined [14:30] *** squashable6 left [14:57] If we do add all those unicode operatos, I gonna get myself a new keyboard in the likes of https://pjmorgans.com/wp-content/uploads/2016/03/Villanova5_2_rev.jpg [15:00] :-) [15:16] *** frost left [15:23] Turns out, we kinda do have to generate both the jit-optimized and the non-jited native function body, as one can turn off JIT support at runtime with MVM_JIT_DISABLE=1 [15:24] We could omit creating the jit-optimized body on platforms that don't have JIT support, but that's a comparitively rare usecase [15:40] It does apply to the new M1 Macs though. [15:50] Owners of such machines can implement JIT support or improve NativeCall's handling of that case [15:51] *** squashable6 joined [15:52] In a surprising plot twist, it turns out that neither the minutes of compilation time, nor the 16G of memory usage for those 3000 native subs are actually due to us compiling the function bodies. [15:55] Instead, for each of those subs we spend 0.022319779s in setup-nativecall, which doesn't actually do all that much [15:55] Ah, it's this line: compstuff[1]() unless nqp::isnull(compstuff); [15:56] Which runs this code: https://github.com/rakudo/rakudo/blob/master/src/Perl6/World.nqp#L2594 [15:59] So we do spend the time in compilation. But in compilation of code that's never supposed to be run. [16:02] I wonder why this compilation of almost empty function bodies takes more time than the compilation of the function bodies that will be run [16:16] Ah, I know! And there's even a workaround [16:17] Got it down from 5 minutes to 1:44min and from 16G to 6G by placing every line of Glarkum.rakumod in its own block [16:21] protip: give every line of code its own lexical scope for performance [16:27] *** linkable6 left [16:29] *** linkable6 joined [16:48] In this case yes. Also when you have BEGIN blocks in huge lexical scopes [18:02] *** reportable6 left [18:03] *** reportable6 joined [19:04] *** rouking joined [19:50] Is it possible for users to define metaoperators that have the same level of "niceness" as the builtin metaops like Z, X, R? I see some special-casing in src/Perl6/Grammar.nqp [19:51] I imagine the answer right now is no, so I'm wondering if that's on the table for future versions or if it would requite an inordinate amount of work [19:56] it will definitely not happen before the rakuast branch lands, I'd say [20:04] *** linkable6 left [20:04] *** evalable6 left [20:05] *** linkable6 joined [20:06] *** evalable6 joined [20:43] *** patrickb left [21:11] nine: i suspect you're much past this part in debugging, but a perf report of all the constants and 100 of the subs showed 14% of the time in MVM_sc_find_object_idx. here are some quick stats i gathered https://gist.github.com/MasterDuke17/041fd21dce51729228011828668ed681 [21:16] hmmm.. no idea what that does exactly, but it feels it's going to proportionally longer for more serialization contexts... [21:26] ¦ rakudo: 0de28ae72d | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | src/core.c/Any-iterable-methods.pm6 [21:26] ¦ rakudo: Make .grep(Regex) and .first(Regex) about 40% faster (#4383) [21:26] ¦ rakudo: [21:26] ¦ rakudo: By not needing to create relative expensive .Match objects when only [21:26] ¦ rakudo: a Bool can do. [21:26] ¦ rakudo: [21:26] ¦ rakudo: For historic reasons, Regex.ACCEPTS is *not* expected to return a [21:26] ¦ rakudo: Bool (contrary to all other .ACCEPTS methods) but a Match object. [21:26] ¦ rakudo: <…commit message has 10 more lines…> [21:26] ¦ rakudo: review: https://github.com/rakudo/rakudo/commit/0de28ae72d [21:27] *** linkable6 left [21:29] *** linkable6 joined [21:35] *** squashable6 left [21:36] *** squashable6 joined