Geth | rakudo/nom: a2090821b4 | (Timo Paulssen)++ | src/core/IO/Socket.pm make sure IO::Socket passes a list to set-line-separators should unbreak Net::SMTP |
08:16 | |
FROGGS | o/ | ||
nine | Good morning! | 08:33 | |
timotimo | greetings nine | 08:37 | |
Geth | roast: ab290effa1 | (Timo Paulssen)++ | S32-io/IO-Socket-INET.t test setting nl-in before the first get in IO::Socket::INET this used to explode in Net::SMTP |
08:39 | |
lizmat | Files=1209, Tests=64165, 220 wallclock secs (13.29 usr 5.03 sys + 1338.71 cusr 136.92 csys = 1493.95 CPU) | 08:53 | |
nine | I somehow need to find my Perl 6 mojo again. Haven't done anything useful in weeks :/ | 09:00 | |
Geth | nqp: 8453fac89e | (Stefan Seifert)++ | src/HLL/Compiler.nqp Factor out part of compile for easier re-use. |
09:18 | |
rakudo/nom: e1e9091f74 | (Timo Paulssen)++ | src/core/CompUnit/Repository/FileSystem.pm stop looking after finding a matching module file if both a .pm6 and a .pm exist with a matching name, only the .pm would be used, which is clearly not right. |
11:24 | ||
lizmat is contemplating perl6.party/post/The-Hot-New-Langu...med-Rakudo over the weekend | 12:10 | ||
Geth | rakudo: MasterDuke17++ created pull request #1109: Only create Exception messages when gisting |
13:15 | |
rakudo/nom: 1a4d94930c | (Daniel Green)++ | src/core/Exception.pm Only create Exception messages when gisting With the recent change to suggest similar method names when throwing X::Method::NotFound, it got a lot slower to try possible methods (e.g., `try Int.sin`) even if you didn't care about the exception message. This commit removes the .message call from .throw and puts it in both branches of .gist. |
13:24 | ||
rakudo/nom: 60b9acef30 | lizmat++ (committed using GitHub Web editor) | src/core/Exception.pm Merge pull request #1109 from MasterDuke17/only_create_Exception_messages_when_gisting Only create Exception messages when gisting |
|||
jnthn | I was just reviewing that | 13:25 | |
It has the slight issue that we're now throwing exceptions with a message unset | |||
Which means that if they're ever unhandled to the degree that they're spat out by the VM, then they'll all have empty messages | 13:26 | ||
MasterDuke | how would that happen? | ||
jnthn | MasterDuke: When something went very wrong, usually | ||
So "normally it won't". | 13:27 | ||
llfourn | MasterDuke: did that pass spectests? | ||
MasterDuke | llfourn: yep | ||
llfourn | oh nice | ||
jnthn | I think we can leave the change in and see what happens | 13:28 | |
But if you have a situation where you are seeing a crash with no exception message, just a backtrace, then this commit will be worth looking at. | 13:29 | ||
MasterDuke | put in a placeholder message in .throw that doesn't call .message? | ||
or is that no better than no message? | |||
jnthn | Not really | ||
tbh I'd probably have just overridden gist | |||
And left message as a cheap "Method 'foo' not found on invocant of type Bar" | 13:30 | ||
And put the espensive stuff in the .gist | |||
Though that probably has trade-offs too | |||
Maybe let's leave it as it is now and see if it actually bites us | |||
MasterDuke | cool | 13:31 | |
jnthn | Because it only will if we manage to miss all of the Perl 6 installed exception handlers | ||
The place I fear it biting us is when compiling CORE.setting | |||
But even maybe then it could be OK | |||
Guess we've a week until the next release; we'll keep an eye on it :) | 13:32 | ||
MasterDuke | and i didn't time anything other than the snippet in the PR, but this should speed up all exceptions that aren't gisted, though probably none quite so much as that Method::NotFound | ||
jnthn | Indeed | 13:33 | |
Geth | roast: 0b36afb8b4 | (Elizabeth Mattijsen)++ | S15-unicode-information/uniprop.t Untodo now passing high codepoint test |
14:11 | |
dogbert17 | if anyone is insterested in taking a peek at some new ASAN barfage then look no further :-) gist.github.com/dogbert17/db210a75...33a0579fd9 | 14:12 | |
jnthn | dogbert17: Please file that as a MoarVM issue so it doesn't get forgotten :) | 14:19 | |
dogbert17 | do you really think that Zoffix is innocent :) | 14:21 | |
dogbert17 creates issue ... | 14:22 | ||
jnthn | This time, maybe... :) | 14:24 | |
dogbert17 | done, github.com/MoarVM/MoarVM/issues/611 | 14:26 | |
jnthn | Thanks :) | 14:27 | |
MasterDuke | .oO(who needs automated continuous integration when they have a dogbert17++?) |
||
dogbert17 | btw, don't know if you have backlogged today but samcv's font program works when spesh is disabled | 14:28 | |
MasterDuke: at $work I'm far from being a role model when it comes to writing tests | 14:29 | ||
MasterDuke | heh, same here. in fact, not sure if i've ever written a test at $work | 14:30 | |
dogbert17 | totally OT, I have received most components for my new computer, only the PSU is still on order | ||
MasterDuke | i'm hoping i'll only need a MB+CPU+RAM and can re-use everything else | 14:31 | |
dogbert17 | reuse is good, my current PSU should probably work fine, also a Seasonic, but it's more than 10 years old, it's already been reused once | 14:32 | |
MasterDuke | i think my current setup finally ditched the last part carried along from when i first built it in 1999 when i did the most recent CPU+MB+RAM upgrade in 2010 | 14:36 | |
dogbert17 | cool, my current system is also from 2010 | 14:37 | |
lizmat | .ask ab5tract do we agree that [(^)] $a, $b, $c is the same as ($a (^) $b) (^) $c ? | 14:38 | |
yoleaux | lizmat: I'll pass your message to ab5tract. | ||
dogbert17 | if I have a small program, ~10 lines, which crashes during a normal run but works when MVM_SPESH_DISABLE=1, is there anything I can do to narrow things down? | 14:52 | |
llfourn | dogbert17: what does it crash with? | 14:54 | |
(the error) | 14:55 | ||
dogbert17 | ==6370== ERROR: AddressSanitizer: heap-use-after-free on address 0x8ad139c0 at pc 0xb58a1400 bp 0xbf8a40a8 sp 0xbf8a409c | 14:56 | |
READ of size 4 at 0x8ad139c0 thread T0 | |||
#0 0xb58a13ff in gc_mark /home/dogbert/repos/rakudo/nqp/MoarVM/src/6model/reprs/MVMCallCapture.c:50 | |||
llfourn | oh the one above. Sorry I have no idea, but would also love to know. | 14:57 | |
MasterDuke | that looks like the same thing the whateverables are hitting and timotimo was trying to figure out yesterday | ||
dogbert17 | here's the code, it's a slightly slaughtered test from a file called .../stress.t gist.github.com/dogbert17/0b0baed4...f8c74110f1 | 14:59 | |
moritz | dogbert17: you can try with leaving out SPESH_DISABLE, and instead only run with MVM_SPESH_INLINE_DISABLE or MVM_SPESH_OSR_DISABLE | ||
dogbert17 | moritz: will do | ||
moritz | dogbert17: if you 'git grep getenv' in moarvm, you get an idea of what env variables are supported | ||
dogbert17 | moritz: it fails with both MVM_SPESH_INLINE_DISABLE and MVM_SPESH_OSR_DISABLE | 15:02 | |
moritz | dogbert17: that kinda suggests it's a generic spesh bug | ||
and likely lucky, because inlining is rather tricky :-) | 15:03 | ||
dogbert17 | I generated a spesh log, it doesn't tell me anything and besides, it's 25 megs | ||
[Tux] | This is Rakudo version 2017.06-176-g60b9acef3 built on MoarVM version 2017.06-49-g6011f876 | 15:06 | |
csv-ip5xs 2.529 | |||
test 12.381 | |||
test-t 4.133 - 4.138 | |||
csv-parser 12.072 | |||
MasterDuke | dogbert17: maybe trying running it in rr, saving the recording, and seeing if timotimo can make anything from it | ||
dogbert17 | MasterDuke: rr: command not found :( where can I find it? | 15:09 | |
AlexDaniel | should be in your distro repos | 15:10 | |
(e.g. apt install rr) | |||
MasterDuke: āthat looks like the same thing the whateverables are hittingā I'm pretty sure [Coke] was hitting it yesterday as well | 15:11 | ||
although he didn't give any details | |||
dogbert17: also, āFails when run normally but works with MVM_SPESH_DISABLE=1ā is probably not entirely true | 15:14 | ||
maybe bump ^80 to something higher to see it fail again | |||
buggable: status | 15:15 | ||
buggable: help | |||
buggable | AlexDaniel, tags | tag SOMETAG | eco | eco Some search term | author github username | speed | testers CPANTesters report ID | ||
AlexDaniel | NeuralAnomaly: status | ||
NeuralAnomaly | AlexDaniel, [ā] Next release will be in 6 days and 13 hours. Since last release, there are 22 new still-open tickets (1 unreviewed and 0 blockers) and 179 unreviewed commits. See perl6.fail/release/stats for details | ||
Geth | rakudo/nom: 80b3e89b53 | (Elizabeth Mattijsen)++ | src/core/set_symmetric_difference.pm Replace different type handling by multiple candidates |
15:16 | |
dogbert17 | it wasn't in the repo, not with that name anyway, trying to build from src | ||
AlexDaniel | what distro? | ||
dogbert17 | Linux Mint | 15:17 | |
AlexDaniel | oh, I see, it's not even in debian stable probably | ||
moritz | is that mozilla's tool for debugging stuff? | 15:18 | |
dogbert17 | Fails => Fails with ASAN barfage | ||
AlexDaniel | moritz: yes | 15:19 | |
ah, by the way, do we have a ticket already? | 15:20 | ||
.tell timotimo irclog.perlgeek.de/perl6-dev/2017-...i_14844351 same issue? But with a lot less code to reproduce | 15:21 | ||
yoleaux | AlexDaniel: I'll pass your message to timotimo. | ||
AlexDaniel | MasterDuke: hey, let's bisect it? | 15:22 | |
MasterDuke: dogbert17's code doesn't require anything | |||
except no restricted setting, but that we can do | |||
moritz | well, you might need ASAN to reproduce it reliably | 15:24 | |
AlexDaniel | well, whateverables are reliably not working, so I'm hoping that it should be okā¦ | 15:29 | |
dogbert17 blah, rr doesn't work under VirtualBox it seems :( | 15:33 | ||
timotimo | AlexDaniel: different issue | 15:40 | |
yoleaux | 15:21Z <AlexDaniel> timotimo: irclog.perlgeek.de/perl6-dev/2017-...i_14844351 same issue? But with a lot less code to reproduce | ||
AlexDaniel | hm ok | ||
timotimo | the other one, though, the one in MVMCallCapture, that's probably the same issue | 15:41 | |
i'm glad i was able to at least fix two little things today | 15:51 | ||
dogbert17 | perhaps you can fix a third as well :) | 15:52 | |
AlexDaniel | dogbert17: well, with your code, I got it bisected to 92c187d2dc. I can't get the segfault on any commit before that | 15:54 | |
dogbert17: this makes sense in a way because it touched Proc::Async, but obviously that's not the reason why it segfaults | |||
dogbert17 | AlexDaniel: perhaps you should try using the bots with a version preceeding that commit then | 15:57 | |
AlexDaniel laughs | |||
dogbert17 | :) | ||
AlexDaniel | well, it may work :D | ||
dogbert17: but really, I bumped it to āfor ^1000ā, segfaults reliably on 92c187d2dc but not on commits before it | 15:58 | ||
dogbert17 | I could try reverting that change in my environment and see if the example program works | 16:01 | |
AlexDaniel | pretty sure it will | 16:03 | |
but that doesn't really help :| | |||
dogbert17 | but it might give jnthn and timotimo a clue as to what's going on | 16:04 | |
nine | Well destructuring a slurpy arg is probably not used all that often. | 16:07 | |
timotimo | is this about the MVMCallCapture explosion? | 16:08 | |
dogbert17 | yes, i.e. gist.github.com/dogbert17/0b0baed4...f8c74110f1 | 16:09 | |
the explosion vanishes if MVM_SPESH_DISABLE=1 | |||
timotimo | i believe this will happen whenever there's a callsite that's not interned, for example because it has some kind of flattening going on | ||
dogbert17 | AlexDaniel suspects this commit: github.com/rakudo/rakudo/commit/92...a9dba6f13e | 16:10 | |
AlexDaniel | well I don't really suspect it, but the segfault appeared after that commit, yes | ||
timotimo | we might want to hotfix this by having @args again but passing path => @args[0] | 16:11 | |
dogbert17 | my rebuild takes forever, suits me right, have both ASAN and --no-optimize enabled | 16:12 | |
nine | How can I run rakudo with ASAN? | 16:14 | |
timotimo | asan is something you have to compile your stuff with | ||
so you'd have to pass --asan to moarvm's Configure.pl | |||
nine | I did that. Anything else? | 16:15 | |
timotimo | nope. every invocation of rakudo will now be super slow | ||
dogbert17 | but much faster than valgrind | ||
timotimo | yup | ||
nine | Ok, now my moarvm just segfaults :_ | 16:17 | |
:) | |||
timotimo | it might be necessary to recompile rakudo | 16:19 | |
because rakudo has that shared library it loads | |||
the extops and the containers and such | |||
nine | I tried. But even a rakudo/install/bin/moar just segfaults | ||
timotimo | wow | ||
dogbert17 | reverting github.com/rakudo/rakudo/commit/92...a9dba6f13e seems to do the trick | ||
nine | #1 0x00007ffff38f31c1 in __asan::MaybeInstallSigaction (signum=signum@entry=11, handler=0x7ffff38f3140 <__asan::ASAN_OnSIGSEGV(int, siginfo_t*, void*)>) at ../../../../libsanitizer/asan/asan_posix.cc:39 | ||
Even tried a make realclean and built MoarVM again | 16:20 | ||
AlexDaniel | dogbert17: try a higher number of iterations please | ||
dogbert17: because I've seen things not segfault otherwise | 16:21 | ||
like 10000 or something :) | |||
dogbert17 | works at 480 | 16:22 | |
also works with 2480 iterations | 16:26 | ||
nine utterly failed at golfing this issue | 16:28 | ||
oooooh! | 16:29 | ||
The nqp::force_gc makes a huge difference :) | |||
Maybe I should have looked at the failing example instead of writing one from scratch :P | 16:30 | ||
m: use nqp; class Foo { multi method new(*@args ($p, *@a), *%_) { self.bless(:$p, :@a, |%_) } } ; my @a = <foo bar baz quz>; my int $i = 0; sub foo(*@a) { with Foo.new(|@a) { $i++ }; $i--; $i++; say $i.Int; nqp::force_gc; }; for ^10000 { foo(|@a); } | 16:31 | ||
camelia | (signal SEGV)1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 ā¦ |
||
nine | Smallest example so far... | ||
dogbert17 | nine: and if you MVM_SPESH_DISABLE=1 | 16:32 | |
AlexDaniel: 5000 iterations also works | 16:34 | ||
nine | dogbert17: then it succeeds | ||
dogbert17 | that should be quite a clue for our speshialists :-) | ||
nine | Actually it sometimes even runs to completion with spesh enabled | 16:35 | |
Though most of the time it segfaults after 79 or 258 iterations | |||
dogbert17 | I bet that it would stop if you had ASAN working | ||
nine | Well if ASAN didn't completely kill my moarvm I'd be happy to test :/ | 16:36 | |
dogbert17 | you could do valgrind ofc but it will be sloooow | ||
nine | Need to leave for dinner now. If someone would be so kind to add my golfed version to the bug report, please :) | ||
dogbert17 | timotimo, your hot fix is beginning to sound tempting :-) | 16:37 | |
*hotfix | 16:38 | ||
hmm, do we have bug report? | 16:40 | ||
MasterDuke | asan output of nine's example: gist.github.com/MasterDuke17/fc12f...acd0d8ef55 | 16:47 | |
the summary and consumed views in heaptrack of running Zoffix's perl6-Toaster webapp and doing a couple gets (leaks a lot of memory, believed to be due to DBIish): i.imgur.com/N8mi3e2.png i.imgur.com/FkKudKN.png | 16:52 | ||
Zoffix | wow that app looks really cool | 16:54 | |
dogbert17 | Zoffix: how's your studies going, have you passed 25% ? | 16:57 | |
Zoffix | m: printf "%.2f", 201/831 | 17:01 | |
camelia | 0.24 | ||
Zoffix | Nope | ||
I didn't do any this week, though I started again about 15 minutes ago. | |||
dogbert17 | have you backlogged? one of your commits seems to have uncovered a spesh bug | 17:02 | |
Zoffix | No. Which commit? | 17:03 | |
dogbert17 | github.com/rakudo/rakudo/commit/92...a9dba6f13e | 17:04 | |
Zoffix | ok | 17:05 | |
dogbert17 | is it possible to get the effect you want without the destructuring? | 17:06 | |
Zoffix | multi method new(*@args, *%_) { my $path = @args.shift; self.bless(:$path, :@args, |%_) } | ||
Probably faster too | |||
dogbert17 | cool | ||
Zoffix | We still have a kludge for bit shift ops: github.com/rakudo/rakudo/blob/80b3...#L400-L415 | 17:08 | |
rt.perl.org/Ticket/Display.html?id=131306 | |||
m: use nqp; class Foo { multi method new(*@a, *%_) { my $p = @a.shift; self.bless(:$p, :@a, |%_) } } ; my @a = <foo bar baz quz>; my int $i = 0; sub foo(*@a) { with Foo.new(|@a) { $i++ }; $i--; $i++; say $i.Int; nqp::force_gc; }; for ^10000 { foo(|@a); } | 17:09 | ||
camelia | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53ā¦ |
||
Zoffix | m: use nqp; class Foo { multi method new(*@a, *%_) { my $p = @a.shift; self.bless(:$p, :@a, |%_) } } ; my @a = <foo bar baz quz>; my int $i = 0; sub foo(*@a) { with Foo.new(|@a) { $i++ }; $i--; $i++; say $i.Int; nqp::force_gc; }; for ^10000 { foo(|@a); } | ||
camelia | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53ā¦ |
||
dogbert17 | what happens if you run it locally? | 17:11 | |
Zoffix | m: class Foo { method x (*@ ($a, *@b)) {} }; for ^100_000 { $ = Foo.x: 1, 2, 3, 4 }; say now - INIT now | ||
camelia | 3.1004012 | ||
Zoffix | m: class Foo { method x (*@b) {$ = @b.shift} }; for ^100_000 { $ = Foo.x: 1, 2, 3, 4 }; say now - INIT now | ||
camelia | 0.324994 | ||
Zoffix | m: say 3.1/.32 | ||
camelia | 9.6875 | ||
dogbert17 | that's quite some difference | ||
is the correct term for stuff like '*@args ($p, *@a)' parameter destructuring? | 17:15 | ||
Zoffix | ĀÆ\_(ć)_/ĀÆ | ||
dogbert17 | ok, I'll write a MoarVM issue for that | 17:16 | |
ok, github.com/MoarVM/MoarVM/issues/612 | 17:24 | ||
so, who should implement Zoffix optimized workaround ? | 17:25 | ||
Zoffix | I was about to commit, but it's wrong | 17:26 | |
m: class Foo { method x (*@b where .so) {$ = @b.shift} }; for ^100_000 { $ = Foo.x: 1, 2, 3, 4 }; say now - INIT now | |||
camelia | 0.5779238 | ||
Zoffix | Right way is still faster tho | ||
dogbert17 | Zoffix++, I suspect that your fix will make quite a few people very happy | 17:27 | |
Zoffix | It's not a fix. It's a workaround a problem :) | ||
dogbert17 | :) | 17:28 | |
and you have an issue to refer to | |||
I tried a sloppy grep of the Rakudo src but I only managed to find one case of parameter destructuring (the one you're changing), but there has to be more of them or ? | 17:29 | ||
Zoffix | Why has to be? | 17:40 | |
ZOFFLOP: t/spec/S32-io/open.t | |||
Geth | rakudo/nom: f6d4fbd24b | (Zoffix Znet)++ | src/core/Proc/Async.pm Work around SEGV on sig unpacking - Also makes invocation 6x faster - Bug worked around: github.com/MoarVM/MoarVM/issues/612 |
17:42 | |
Zoffix | It would've been here, but it's already using the `where .so` thing: github.com/rakudo/rakudo/blob/nom/...oc.pm#L221 | ||
dogbert17 rebuilds | 17:43 | ||
samcv's Font program now works | 17:51 | ||
perhaps the bots will work better as well | 17:52 | ||
Geth | rakudo/nom: b391692644 | (Elizabeth Mattijsen)++ | src/core/set_symmetric_difference.pm Fix a few edge cases of (^) wrt QuantHash type permutations |
17:56 | |
AlexDaniel | timotimo: so should I just rebuild rakudo on the server and enjoy now working bots? | 18:03 | |
.tell [Coke] irclog.perlgeek.de/perl6-dev/2017-...i_14844908 | 18:04 | ||
yoleaux | AlexDaniel: I'll pass your message to [Coke]. | ||
AlexDaniel | .tell [Coke] this may help your Proc::Async issue | ||
yoleaux | AlexDaniel: I'll pass your message to [Coke]. | ||
dogbert17 | AlexDaniel: Zoffix has worked around the problem | 18:10 | |
AlexDaniel | yes, I see | ||
Geth | rakudo/nom: 05c255c14b | (Elizabeth Mattijsen)++ | src/core/set_symmetric_difference.pm Simplify [(^)] for 2+ with Baggy semantics Fixes the failing test in S03-operator/mix.t |
18:16 | |
lizmat | .tell ab5tract github.com/rakudo/rakudo/commit/05c255c14b | 18:18 | |
yoleaux | lizmat: I'll pass your message to ab5tract. | ||
dogbert17 | afk & | ||
MasterDuke | huh, earlier today i built rakudo with asan, but now even nqp won't build | 18:21 | |
gist.github.com/MasterDuke17/3f461...3543b6e454 | 18:22 | ||
lizmat | afk again& | 18:23 | |
MasterDuke | moar/nqp/rakudo all at HEAD | ||
Zoffix | damn, I'm still getting "Failed to rename" with precomp on Windows | 18:36 | |
Geth | roast: 20c194f0f4 | (Samantha McVey)++ | S17-procasync/stress.t Let S17-procasync/stress.t be launched from roast folder Previously it had to be launched from t/spec/ assuming it was in rakudo's folder. This fixes that so it can be started from both. |
22:41 | |
samcv | wow. i just got all Emoji V4.0 passing. and no more of GraphemeClusterBreak.t failing | 23:31 | |
240 emoji in one swoop | |||
:D | 23:32 | ||
Zoffix | samcv++ | 23:52 |