[00:00] ???????????? It's time for the monthly Accidental /win Lottery ???????????? We have 12 ballots submitted by 8 users! DRUM ROLL PLEASE!... [00:00] And the winning number is 14! Congratulations to nine! You win a can of WD40! [00:14] ¦ rakudo: skids++ created pull request #1148: Special-case FailGoal to adhere to S05 (Fix RT#130528) [00:14] ¦ rakudo: review: https://github.com/rakudo/rakudo/pull/1148 [00:14] Link: https://rt.perl.org/rt3/Public/Bug/Display.html?id=130528 [00:17] Can someone with power over buggable update and restart it please? [00:41] hm, i just tried profiling one of the end stages of a `make install` (./perl6-m --profile tools/build/install-core-dist.pl /home/dan/Source/perl6/install/share/perl6), but would get a backtrace or segfault [00:46] https://gist.github.com/MasterDuke17/3b0b6209fb06ba5ddecb9e66f1144eb0 [01:05] Rakudo build errored. lizmat 'Merge pull request #1145 from MasterDuke17/simplify_ignoremark_and_ignorecase_in_INTERPOLATE [01:05] https://travis-ci.org/rakudo/rakudo/builds/270457466 https://github.com/rakudo/rakudo/compare/8b5d283cb616...067f5407ef31 [01:05] [travis build above] ? All failures are due to timeout (1), missing build log (0), GitHub connectivity (0), or failed make test (0). [01:06] ¦ roast: skids++ created pull request #300: Add tests for RT#130451 [01:06] ¦ roast: review: https://github.com/perl6/roast/pull/300 [01:06] Link: https://rt.perl.org/rt3/Public/Bug/Display.html?id=130451 [01:06] ¦ roast: d56d08d9c4 | skids++ | S02-types/array-shapes.t [01:06] ¦ roast: Add tests for RT#130451 [01:06] ¦ roast: review: https://github.com/perl6/roast/commit/d56d08d9c4 [01:06] ¦ roast: 6b151a174a | skids++ (committed using GitHub Web editor) | S02-types/array-shapes.t [01:06] ¦ roast: Merge pull request #300 from skids/rt130451 [01:06] Link: https://rt.perl.org/rt3/Public/Bug/Display.html?id=130451 [01:06] ¦ roast: [01:06] ¦ roast: Add tests for RT#130451 [01:06] Link: https://rt.perl.org/rt3/Public/Bug/Display.html?id=130451 [01:06] ¦ roast: review: https://github.com/perl6/roast/commit/6b151a174a [01:53] TimToady: hm, would that also mean what i'm trying to do here isn't possible? https://irclog.perlgeek.de/perl6-dev/2017-08-31#i_15098626 [01:54] oops, wrong channel [02:03] can I have admin access on perl6/doc repo so that I can manage the webhook for the upcoming SQUASHathon? [02:04] I can of course bother somebody to set it up (and then resend stuff if something happens, and also remove it after the event, …), but it'd be easier if I can do it myself [02:44] ¦ roast: skids++ created pull request #301: Stop skipping tests that have been working since 2015.10 [02:44] ¦ roast: review: https://github.com/perl6/roast/pull/301 [02:44] ¦ roast: 46046f8f2a | skids++ | S06-operator-overloading/prefix.t [02:44] ¦ roast: Stop skipping tests that have been working since 2015.10 [02:44] ¦ roast: review: https://github.com/perl6/roast/commit/46046f8f2a [02:44] ¦ roast: b854dfd358 | skids++ (committed using GitHub Web editor) | S06-operator-overloading/prefix.t [02:44] ¦ roast: Merge pull request #301 from skids/prefixrts [02:44] ¦ roast: [02:44] ¦ roast: Stop skipping tests that have been working since 2015.10 [02:44] ¦ roast: review: https://github.com/perl6/roast/commit/b854dfd358 [02:44] skids++ bunch of rakudo and roast PRs recently [02:48] someone else will have to 'resolve' 124974, I get no option to reply/close in the RT UI on that one. [02:50] i have the resolve option, i'll resolve it now [02:51] done [04:14] working on my monthly grant update, almost done [04:31] MasterDuke, looks like MVM_string_equal is the 5th most cpu usage of a mvm function [04:31] 2.8% but let me see i think i can speed up that function by at least 50% [04:32] when doing what? [04:32] compiling the setting [04:32] oh, nice! [04:32] hmm it may already be fast hmm. i remember it being slower than my revised unicode one though [04:32] the unicmp that is [04:33] not sure if you read/heard about how i sped that up [04:33] i usually read that stuff, but i don't remember the details [04:34] ok it doesn't seem to in my previous grant status update, hmm i may have done it since then. it was in my YAPC-EU presentation https://cry.nu/YAPC-EU-2017/MoarVM-Internals/#/ here are the sslides if you're niteresting [04:34] *ed [04:35] but i made a ring buffer that i used a grapheme iterator, and when i found a differing one i refered that ring buffer (the previous 3 graphemes) to the function. so you can unicmp a string that's 1000000's of graphemes long and it doesn't have to get the collation data for all but the last 3 before where it differs [04:35] pretty cool [04:36] good deal. i haven't read those yet, but i now have a tab opened for tomorrow [04:36] cool [04:36] i'm off to sleep, later... [04:43] Rakudo build failed. lizmat 'Merge pull request #1147 from MasterDuke17/use_eqat_instead_of_index_in_INTERPOLATE [04:43] https://travis-ci.org/rakudo/rakudo/builds/270566641 https://github.com/rakudo/rakudo/compare/e717d14db1fc...d135728b71ce [04:43] [travis build above] ? All failures are due to timeout (0), missing build log (0), GitHub connectivity (1), or failed make test (0). [04:44] ¦ nqp: 0ead16794b | (Samantha McVey)++ | tools/find-undocumented-ops.p6 [04:44] ¦ nqp: Add script to find undocumented NQP ops [04:44] ¦ nqp: review: https://github.com/perl6/nqp/commit/0ead16794b [04:47] oops forgot i hadn't pushed this! [04:57] ¦ nqp: d93277beeb | (Samantha McVey)++ | docs/ops.markdown [04:57] ¦ nqp: Regenerate table of contents for oplist doc [04:57] ¦ nqp: [04:57] ¦ nqp: Also make a few changes for consistency. This fixes a lot of links which [04:57] ¦ nqp: did not work. Generated with `markdown-toc` [04:57] ¦ nqp: review: https://github.com/perl6/nqp/commit/d93277beeb [06:23] <[Tux]> This is Rakudo version 2017.08-25-g7d1ece805 built on MoarVM version 2017.08.1-32-gcd41322e [06:23] <[Tux]> csv-ip5xs 1.322 - 1.368 [06:23] <[Tux]> test 10.147 [06:23] <[Tux]> test-t 3.523 - 3.538 [06:23] <[Tux]> csv-parser 12.261 [06:53] Zoffix: hm, not quite sure what to do with the timezone thingy. Currently I've set the bot to use Saturday × UTC-12..UTC+14, but that turns it into a two day squashathon… I mean, sure, that's *very inclusive*, but it does not sound like something we want [06:55] or maybe that's OK? Maybe somebody wants to start on Friday evening and stop on Sunday morning… :-) [06:55] ¦ rakudo/nom: 51709e01c0 | (Elizabeth Mattijsen)++ | src/core/Instant.pm [06:55] ¦ rakudo/nom: Fix for RT #132006 [06:55] ¦ rakudo/nom: [06:55] ¦ rakudo/nom: AlexDaniel++ for spotting [06:55] ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/51709e01c0 [06:55] Link: https://rt.perl.org/rt3/Public/Bug/Display.html?id=132006 [06:57] I guess if people don't want to start early they simply don't have to, and given the current activity most people won't even notice the point when UTC+14 squashathon starts [07:02] ¦ rakudo/nom: ed4f6cc998 | skids++ | src/Perl6/Grammar.nqp [07:02] ¦ rakudo/nom: Special-case FailGoal to adhere to S05 (Fix RT#130528) [07:02] ¦ rakudo/nom: [07:02] ¦ rakudo/nom: (...also, clean up whitespace debris produced during parsing) [07:02] ¦ rakudo/nom: [07:02] Link: https://rt.perl.org/rt3/Public/Bug/Display.html?id=130528 [07:02] ¦ rakudo/nom: The general-case behavior of the rx ~ operator is correctly [07:02] ¦ rakudo/nom: implemented, but it results in an internal variable name [07:02] ¦ rakudo/nom: leaking, which contradicts an example in S05. [07:02] ¦ rakudo/nom: [07:02] ¦ rakudo/nom: This is an ugly fix, but doing it "right" would impact [07:02] ¦ rakudo/nom: compile-time hot paths. This solution confines the mess [07:02] ¦ rakudo/nom: entirely to the error handling path. [07:02] ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ed4f6cc998 [07:03] ¦ rakudo/nom: 909688953e | lizmat++ (committed using GitHub Web editor) | src/Perl6/Grammar.nqp [07:03] ¦ rakudo/nom: Merge pull request #1148 from skids/rt130528 [07:03] ¦ rakudo/nom: [07:03] ¦ rakudo/nom: Special-case FailGoal to adhere to S05 (Fix RT#130528) [07:03] Link: https://rt.perl.org/rt3/Public/Bug/Display.html?id=130528 [07:03] ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/909688953e [07:06] AlexDaniel: why not something we want? People don't have to stay around for the whole thing... I was actually thinking of squashatonning on EST Friday, so I could have the 3-day weekend entirely free :) [07:06] ehh timezones [07:06] Zoffix: alright then, the bot will be up in an hour or two [07:07] \o/ [07:07] Zoffix: ah, can you make me an admin on perl6/doc so that I can manage the webhook? [07:10] AlexDaniel: done [07:10] yay \o/ [07:10] moritz: thanks [07:25] .tell japhb update and restart buggable? But there's not been any new updates to it? To send multi-line responses, ATM you need to do the Plugin role: https://github.com/zoffixznet/huggable/blob/master/lib/IRC/Client/Plugin/Hug.pm6#L1-L2 and then use $.irc to send stuff https://github.com/zoffixznet/huggable/blob/master/lib/IRC/Client/Plugin/Hug.pm6#L1-L2 [07:25] Zoffix: I'll pass your message to japhb. [07:41] buggable: speed 20:4 [07:41] Zoffix, ????????? dates: 2017-08-18–2017-09-01 [07:41] Zoffix, ????????? range: 3.471s–4.592s [07:41] Zoffix, ????????? ??? ? speed: 25% faster [07:41] Zoffix, ???????????????????? [07:41] .tell japhb nm; saw the update in your fork and pulled it in and restarted buggable [07:41] Zoffix: I'll pass your message to japhb. [07:51] AlexDaniel: or maybe I'll wait for Saturday :) I kinda messed up my sleeping pattern. Woke up at 3am and I'm guessing I'll be looking forward to going to bed when I get back from work ^_^ [07:52] Zoffix: I feel ya [08:21] squashable6: status [08:21] AlexDaniel, Next SQUASHathon in ?1 hour (2017-09-02 UTC-12?UTC+14) [08:23] Rakudo build passed. lizmat 'Merge pull request #1148 from skids/rt130528 [08:23] https://travis-ci.org/rakudo/rakudo/builds/270716120 https://github.com/rakudo/rakudo/compare/51709e01c078...909688953eab [08:45] Hot off the presses! Unicode grant status update 4! https://cry.nu/perl6/grant-status-update-4/ tons of exciting things [08:47] Zoffix, i'm hoping i made some of that faster? what test is that running? [08:47] buggable, release [08:48] NeuralAnomaly, status [08:48] samcv, Use releasable6 bot instead. e.g. try: releasable6: status [08:48] releasable6, status [08:48] samcv, Next release in 15 days and ?10 hours. No blockers. Changelog for this release was not started yet [08:48] samcv, Details: https://gist.github.com/55e7995b0946858688b834dec4c40bac [08:48] plenty of time [08:48] so many great things! [10:24] damn I love the API I wrote to register lib in NC x) [10:26] samcv: it's just reporting Tux's data [10:26] huggable: csv [10:26] Zoffix, https://github.com/Tux/CSV (see `bench csv` for how to run bench) [10:26] huggable: bench csv [10:26] Zoffix, export PATH=`pwd`/install/bin:$PATH; cd CSV; for i in $(seq 1 10000); do echo 'hello,","," ",world,"!"'; done > /tmp/hello.csv; time perl6 -Ilib -MText::CSV test-t.pl I will be able to write https://gist.github.com/Skarsnik/8687bba8063422798d1a2e83e859c195 in all my libxml binding file x) [10:43] Skarsnik: awesome \o/ [11:05] if squashable6 gets annoying, just tell it to shut up and it will [11:15] Skarsnik: what does that do? [11:18] this PR https://github.com/rakudo/rakudo/pull/716 [11:18] I am making mergable if one day someoine want to merge it x) [11:22] Skarsnik: I wonder, if we should rethink the whole NativeCall interface and make that available via use NativeCall :api<2>; [11:22] well it work along side the existing code [11:22] yes [11:23] Thanks to lexical module loading :) [11:23] This would be one of the prime use cases for that :) [11:24] but yeah NC/Test does not have a well defined version managment [11:25] a NC v2 for me will force the use of type called like c-int32 to avoid confusion with rakudo native type x) [11:25] what confusion? [11:26] the fact that int32 is VM native type and both a C 'native' type [11:27] But they are meant to be the same? [11:28] I mean it lead to confusion some time. int is native but not a good C native type for NC [11:29] Zoffix, hm where is the 6.d idea repo? [11:34] Skarsnik: I still kinda like the old idea of a way to avoid repetition like native-library 'foo' { sub foo() is native { * }; sub bar() is native { * }; } [11:35] well it will still work [11:36] I wonder if we could add stuff to list routine associated with a lib [11:36] Not sure what the use could be [11:38] can we get property of the block a routine is in ? [11:38] Well this is Perl 6. I guess there is a way to implement this :) [11:39] I have to admit that look like a neat syntax : native-lib 'foo' { all my def} [11:40] huggable: 6.d [11:40] Zoffix, Proposals for 6.d language: https://github.com/perl6/6.d-prep/blob/master/TODO/FEATURES.md [11:40] Skarsnik: ^ [11:40] not sure if possible to avoid the is native even in block like this [11:42] nine, some of my thought on NC https://github.com/perl6/6.d-prep/blob/master/for-review/NativeCall.md [11:48] <[Coke]> RT #132003 - this should probably be RFC not NYI (if NYI, should have a pointer to where we've said it's going to happen) [11:48] Link: https://rt.perl.org/rt3/Public/Bug/Display.html?id=132003 [11:48] 31 Aug 2017 02:10Z [Coke]: A *tiny* update on the Malformed UTF-8 issue. There's hope! https://rt.perl.org/Ticket/Display.html?id=131961#txn-1486102 [11:51] could be neat if we could write grammar for binary string [11:52] <[Coke]> AlexDaniel, thanks. [12:01] I see some mentions of the speculations as reference for marking that ticket NYI: https://rt.perl.org/Public/Bug/Display.html?id=132003#txn-1486259 [12:02] m: say "?u" ~~ m:bytes / .**2 /; [12:02] rakudo-moar 909688: OUTPUT: «5===SORRY!5=== Error while compiling ?Adverb bytes not allowed on m?at :1?------> 3say "?u" ~~ m:bytes / .**2 /7?5;?» [12:03] I'm not sure grammars are the right tool for binary data. [12:04] hm [12:04] for like a dissambler it could be usefull? [12:04] Text formats where grammars shine are all about tokenization and deciding after each token what may come next. I don't know of any binary format that works this way. [12:05] Ok, maybe a disassembler is a good example :) [12:06] But what I more often see is some well defined format with data structures that may have some header word that tells us what structure it is. Also lot's of offsets in the byte stream (think image file header with the offset of the first data chunk) [12:06] not even sure what needed to make a keyword 'stuff' {} work. A trait on a block? [12:06] Parsing TCP headers is about "is this flag in byte 23 set?" [12:08] Really many binary formats can be better described by NativeCall's CStruct. Except that the latter implies some alignment. [12:09] m: multi sub trait_mod:(Block $s, :$foo) { say 'foo'}; foo {}; [12:09] rakudo-moar 909688: OUTPUT: «5===SORRY!5=== Error while compiling ?Undeclared routine:? foo used at line 1??» [12:13] m: multi sub trait_mod:(Block $s, :$foo) { say 'foo'}; {} is foo; [12:13] rakudo-moar 909688: OUTPUT: «5===SORRY!5=== Error while compiling ?Strange text after block (missing semicolon or comma?)?at :1?------> 3d:(Block $s, :$foo) { say 'foo'}; {}7?5 is foo;? expecting any of:? infix? infix stopper? …» [12:14] m: class foo {}; sub infix: (&s, foo) {say "foo"}; {;} is foo [12:14] rakudo-moar 909688: OUTPUT: «foo?» [12:15] {} is a Hash, not a Block, although even were you to fix that, that code won't work. [12:15] hm was there a named block syntax? [12:15] m: my &foo = {say "foo"}; foo [12:15] rakudo-moar 909688: OUTPUT: «foo?» [12:15] (I only know of that one) [12:16] like to use with a goto [12:16] *should buy a perl 6 book* [12:16] We don't got goto yet [12:16] Though we do have labels already [12:17] m: FOO: loop { loop { say "hi"; last FOO if $++ > 2 } }; say "outta here" [12:17] rakudo-moar 909688: OUTPUT: «hi?hi?hi?hi?outta here?» [13:19] is it just me, or does this list of arguments ( https://github.com/rakudo/rakudo/blob/nom/src/Perl6/Actions.nqp#L10052-L10061 ) look wrong, considering this is the method signature ( https://github.com/rakudo/rakudo/blob/nom/src/core/Match.pm#L193-L201 )? [13:23] MasterDuke: assuming the QAST::SVal.new( :value('INTERPOLATE') ) is used to find the method, it looks fine to me? [13:23] MasterDuke: yeah, especially considering the same QAST a few lines below doesn't have the extra int arg [13:23] Zoffix: yeah incorrect, or yeah agree with nine? [13:23] extra int before the monkey stuff [13:24] MasterDuke: it looks wrong to me too [13:24] yep, that's what stuck out to me [13:25] gah, git blame on that page killed my browser =( [13:26] heh, it takes a couple seconds on the command line [13:26] most of those lines are from 2013 or 2015 [13:27] essentially an initial commit to add interpolate to P5 regexes, and then a single commit to add ignoremark support (which i think was done off-by-one) [13:27] git still cnfuse me o no end [13:27] git checkout -b switch branch? [13:27] that creates a branch and switches to it [13:27] -b is for a new branch [13:28] Zoffix: the last int is optional [13:28] duh [13:28] how it let me create a branch that exist [13:28] fuck this [13:29] nine: yeah, but the order of the first few seems wrong [13:29] the non-optional ones [13:29] MasterDuke: well, now I'm unsure. is $.ast, the invocant or passed as \val? [13:29] best git command : rm -rf [13:31] nine: assuming `int $monkey` gets value from QAST::IVal.new( :value(monkey_see_no_eval($/)) ) the code MasterDuke linked to has 4 values before the monkey line, while the same code block below has only 3 values. That makes me think at least one of them is wrong [13:33] * Zoffix sees neither QAST::Regex nor QAST::NodeList in https://github.com/perl6/nqp/blob/master/docs/qast.markdown :( [13:33] * Zoffix & [13:33] can also compare with P6 regex stuff around line 9848 [13:34] which seem to match the 3 args before monkey, not the 4 [13:39] AlexDaniel, added you a source port for https://github.com/rakudo/rakudo/pull/1137 x) [13:41] dunno if I want to work on async now [13:42] ¦ roast: skids++ created pull request #302: Tests for matters surrounding RT#130528 [13:42] ¦ roast: review: https://github.com/perl6/roast/pull/302 [13:42] Link: https://rt.perl.org/rt3/Public/Bug/Display.html?id=130528 [13:42] ¦ roast: 03c04c711c | skids++ | S32-exceptions/misc.t [13:42] ¦ roast: Tests for matters surrounding RT#130528 [13:42] ¦ roast: review: https://github.com/perl6/roast/commit/03c04c711c [13:42] ¦ roast: 2cef80a326 | skids++ (committed using GitHub Web editor) | S32-exceptions/misc.t [13:42] ¦ roast: Merge pull request #302 from skids/rt130528 [13:42] Link: https://rt.perl.org/rt3/Public/Bug/Display.html?id=130528 [13:42] ¦ roast: [13:42] ¦ roast: Tests for matters surrounding RT#130528 [13:42] Link: https://rt.perl.org/rt3/Public/Bug/Display.html?id=130528 [13:42] ¦ roast: review: https://github.com/perl6/roast/commit/2cef80a326 [14:32] Zoffix: yes, that does look fishy, indeed. [14:40] ¦ rakudo: MasterDuke17++ created pull request #1149: Make INTERPOLATE's parameters non-optional [14:40] ¦ rakudo: review: https://github.com/rakudo/rakudo/pull/1149 [15:30] hm running efence on rakudo perl 6 is not that helpful x) [15:31] crashing on a malloc is not fun to debug [15:42] crashing on a malloc? that doesn't make much sense unless the internal structures malloc uses have gotten busted [15:43] like a free list entry pointing at an incorrect location? [15:44] generally it's a bug somewhere else. from what I remember when I work with this [15:45] it crash on that : https://github.com/MoarVM/MoarVM/blob/master/src/6model/reprs/VMArray.c#L1155 (runing a perl6 -e '') [15:46] the malloc size is normal [15:46] hm [15:46] I don't remeber if efence is thread safe actually [15:49] Skarsnik: MVM_SPESH_DISABLE=1 should make it not use any threads at startup (i think) [15:55] aye, and if you have something multithreaded, you may be able to just my $*SCHEDULER = CurrentThreadScheduler.new(); [15:55] hoo [15:55] it run out of page to create [15:56] ah, ok, memory exhaustion, then? [15:57] just went above the max memory pages [15:58] not memory avalaible [15:58] damn again [15:59] efence wastes memory left, right and center [16:00] after all, it allocates like a whole page left and right of every allocation, or something like that? [16:00] yes [16:00] there's a few things i'd like to reduce the amount of individual allocations for in the future [16:01] echo 16553500 > /proc/sys/vm/max_map_count :) [16:01] like p6opaque's many description pieces [16:01] like 500 time the default [16:01] oh wow [16:01] ok better [16:01] does not crash right away [16:03] [Inferior 1 (process 21870) exited normally] [16:03] damn [16:05] MasterDuke: have you considered sending the CLA and getting commit bit to rakudo? [16:05] huggable: CLA [16:05] Zoffix, http://www.perlfoundation.org/contributor_license_agreement print it out, sign it, scan it in (resize your scan to 250KB or less). Email to trademark -at- perlfoundation.org [16:06] EF_ALLOW_MALLOC_0=1 LD_PRELOAD=/usr/lib/libefence.so.0 ./install/bin/perl6-gdb-m -I ../../benchmark/exemel/lib/ -I ../../benchmark/perl6-gumbo/lib/ ../../benchmark/crashgumbo.p6 [16:06] * Skarsnik goes for a 1 break [16:06] 1h [16:12] I wonder if I should run spec test like this [16:37] Zoffix: Sorry for the confusion re: buggable. I'd forgotten that I was pushing to a fork. Anyway, hope you like the change. [16:37] 07:25Z japhb: update and restart buggable? But there's not been any new updates to it? To send multi-line responses, ATM you need to do the Plugin role: https://github.com/zoffixznet/huggable/blob/master/lib/IRC/Client/Plugin/Hug.pm6#L1-L2 and then use $.irc to send stuff https://github.com/zoffixznet/huggable/blob/master/lib/IRC/Client/Plugin/Hug.pm6#L1-L2 [16:37] 07:41Z japhb: nm; saw the update in your fork and pulled it in and restarted buggable [16:38] Yeah, it [16:38] Yeah, it's good. japhb++ [17:04] hm [17:04] ElectricFence Exiting: mmap() failed: [New Thread 0x7fff70f0d700 (LWP 22235)] [17:09] ¦ doc: fb2d3fc024 | (Zoffix Znet)++ | 2 files [17:09] ¦ doc: Improve object clonning docs [17:09] ¦ doc: [17:09] ¦ doc: - Document clone behaviour of %. and @. attributes [17:09] ¦ doc: (Closes #1458) [17:09] ¦ doc: - Shorten wording [17:09] ¦ doc: - Move custom clone examples to Mu.clone docs [17:09] ¦ doc: - Mention private attrs get cloned too [17:09] ¦ doc: - Remove "magical"; we don't have any magic [17:09] ¦ doc: - Remove incorrect and somewhat rambly paragraph about [17:09] ¦ doc: Mu.clone being a submethod… it isn't [17:09] ¦ doc: review: https://github.com/perl6/doc/commit/fb2d3fc024 [17:09] oops; wrong chan -_- [17:22] ¦ roast: skids++ created pull request #303: Fix incorrect/skipped test for RT#124848 (RT#69192) [17:22] ¦ roast: review: https://github.com/perl6/roast/pull/303 [17:22] Link: https://rt.perl.org/rt3/Public/Bug/Display.html?id=124848 [17:22] Link: https://rt.perl.org/rt3/Public/Bug/Display.html?id=69192 [17:23] ¦ roast: e4a2c0b589 | skids++ | S12-methods/multi.t [17:23] ¦ roast: Fix incorrect/skipped test for RT#124848 (RT#69192) [17:23] ¦ roast: [17:23] ¦ roast: The results of this test are correct for a runtime [17:23] ¦ roast: mixin where roles were added one at a time... which [17:23] Link: https://rt.perl.org/rt3/Public/Bug/Display.html?id=124848 [17:23] Link: https://rt.perl.org/rt3/Public/Bug/Display.html?id=69192 [17:23] ¦ roast: is one of the reasons why "does (Role1, Role2, Role3)" [17:23] ¦ roast: exists. So use it. What probably happened in #124848 [17:23] Link: https://rt.perl.org/rt3/Public/Bug/Display.html?id=124848 [17:23] ¦ roast: was the wrong fix was applied to the test after [17:23] ¦ roast: "does" lost the associativity it was not supposed to have. [17:23] ¦ roast: review: https://github.com/perl6/roast/commit/e4a2c0b589 [17:23] ¦ roast: 0cf960cf29 | skids++ (committed using GitHub Web editor) | S12-methods/multi.t [17:23] ¦ roast: Merge pull request #303 from skids/rt124848 [17:23] ¦ roast: [17:23] ¦ roast: Fix incorrect/skipped test for RT#124848 (RT#69192) [17:23] Link: https://rt.perl.org/rt3/Public/Bug/Display.html?id=124848 [17:23] Link: https://rt.perl.org/rt3/Public/Bug/Display.html?id=69192 [17:23] ¦ roast: review: https://github.com/perl6/roast/commit/0cf960cf29 [17:44] should https://github.com/MoarVM/dyncall/blob/1dabd7c2fd438920502c85eaf9ca4212d722c4b5/dynload/dynload_syms_elf.c#L132 check for a failure and die? [17:49] . [17:52] AlexDaniel, did you try your rakudo crash with latest rakudo? [17:52] Skarsnik: which crash exactly? [17:52] *gumbo [17:53] I ran it with efence and it's still alive for now (but it's very slow) [17:53] Skarsnik: well, I'll try right now, but IIRC it was still broken after 2017.08 [18:08] I wonder if it cradh with one of the first revision of the module (no Gumpo::Parser class) [18:39] haaa a crash finally [18:46] maybe it's gumbo fault. hm [19:05] damn I can't watch the value of a MVMint64 in gdb [19:10] https://github.com/MoarVM/MoarVM/blob/master/src/core/nativecall.c#L691 I dont get this comment x) [19:12] Skarsnik: yep, just tried it again and got MoarVM panic [19:16] cptr = *((void **)(storage + repr_data->struct_offsets[i])); that crash on this. and I am not sure this is safe [19:31] https://www.securecoding.cert.org/confluence/display/c/INT36-C.+Converting+a+pointer+to+integer+or+integer+to+pointer [19:35] AlexDaniel, can you try replacing the line 754 in nqp/MoarVM/src/core/nativecall.c with cptr = *((void **)((uintptr_t) storage + (uintptr_t) repr_data->struct_offsets[i])); [19:36] it does not crash anymore for me [19:36] but I am getting tired/strained on typing with one hand :( [19:51] Skarsnik: er, maybe, I'm currently hacking on docs [19:51] so possibly tomorrow or later [19:52] I tried on a rakudo-2016.10 [19:53] Skarsnik: I've linked this discussion so that it's not lost https://rt.perl.org/Ticket/Display.html?id=131003#txn-1486588 [19:57] this look very likely it's the cause. if this + manage to generate a signed that goesback to -xxx it goes boom when trying to do a ptr with it [20:39] what's an example of something prohibited in regex interpolation unless `use MONKEY` is on? [21:09] MasterDuke, how much speed increase did you get from changing things from index* to eqat* in INTERPOLATE? [21:13] oh and previously you also changed it from a while loop and ordbaseat/other things into the proper ops [21:19] samcv: i didn't measure it directly, but didn't really notice any speedup [21:21] the index*->eqat* changes would probably slow it down, but index* was wrong [21:22] wait why would eqat be slower than index [21:22] checks at every position [21:23] isn't that what index does? [21:23] .o( eventually i want to have knuth morris pratt on ignoremark and ignore case as well. that will be sweet ) [21:23] for index* that is [21:23] but there's the overhead of the INTERPOLATE each time [21:24] instead of just once (for index) [21:25] well you changed it from index to eqat in the exact same location so that should be faster [21:27] maybe i'm missing something [21:27] i'll explain in a couple min [21:28] kk [21:38] ok. so INTERPOLATE is called for each position in the haystack until there's a match [21:38] just noticed a point where a user could overflow the stack. doesn't appear to crash it though [21:39] this used to be done via the loop+ordbaseat, is now done via eqat [21:39] i accidentally used index [21:39] ah ok [21:40] which would be faster (since it does the whole walk each position in C, instead of via successive INTERPOLATE calls) [21:40] but is wrong, since the needle could change at each INTERPOLATE call [21:40] (in some situations) [21:41] oh wait nvm wasn't triggering it properly [21:43] with how i changed getting the property values, i allocate a string onto the stack. just realized if some malicious user requested a property value string that was larger than the stack [21:43] then you'd get a SIGSEGV. so gonna put bounds on it [21:46] heh, yeah, that shouldn't be allowed [21:46] like it is super unlikely anyone would do it. but safety is good [21:46] anywhere you're allocating onto the stack or into memory with user input [22:06] oh MasterDuke i thought you might like this article http://llewellynfalco.blogspot.com/2016/02/dont-use-greater-than-sign-in.html [22:07] on how to get clairity in conditionals and consistency. i've adopted its suggestions and it's made the conditionals i write clearer and more consistent [22:07] and faster to read and understand quickly [22:26] interestingly the bottom function is 1.5x faster than the top one, testing it only for numbers under 1000 https://gist.github.com/77c241e6d25c035213ea6230c6011a01 [22:26] i'm curious how that compiles [22:27] or numbers under 100 even