github.com/moarvm/moarvm | IRC logs at colabti.org/irclogger/irclogger_logs/moarvm Set by AlexDaniel on 12 June 2018. |
|||
00:59
lizmat left
01:54
stmuk_ joined
01:57
stmuk joined
01:59
stmuk_ left
05:12
stmuk_ joined
05:15
stmuk left
06:43
MasterDuke left,
robertle joined
07:17
domidumont joined
07:18
domidumont left
07:19
domidumont joined
07:22
domidumont left
07:23
domidumont joined
07:42
zakharyas joined
08:04
zakharyas left
08:08
lizmat joined
08:09
zakharyas joined
08:44
brrt joined
|
|||
brrt | \o | 09:03 | |
09:04
zakharyas left
|
|||
Geth | MoarVM/jit-expr-refactor: 11 commits pushed by (Bart Wiegmans)++ review: github.com/MoarVM/MoarVM/compare/6...678c90f7cc |
09:04 | |
09:06
zakharyas joined
|
|||
jnthn | morning o/ | 09:06 | |
yoleaux | 03:29Z <MasterDuke> jnthn: at github.com/perl6/nqp/blob/master/d...operations there's a note `[As of 2014.04, these are very new and subject to revision and additions.]`. are the docs correct and complete enough now such that the caveat can be removed? | ||
dogbert2 | morning jnthn | 09:12 | |
jnthn | committable6: 2018.06,HEAD sub p() { Proxy.new: FETCH => { 42 }, STORE => -> \cont, \val { say "assigned {val}" } }; p() = 42 | ||
committable6 | jnthn, ¦2018.06: «assigned 42» ¦HEAD(4494a24): «Cannot modify an immutable Int (42) in block <unit> at /tmp/FIrg0C1uLY line 1 «exit code = 1»» | ||
samcv | jnthn: i think i may go ahead with release since that person has not replied again about the hash overallocation | 09:28 | |
unless maybe there's some other way to contact them, maybe i can find their email on github | 09:29 | ||
brrt | maybe in the git commit log? (I don't knwo what this is about) | 09:31 | |
samcv;: i was wondering if you had any thoughts about in-situ strings for MoarVM | 09:33 | ||
jnthn | samcv: I've at least one more fix I need to look at. | ||
There's a possible regression (or fix, I can't tell yet :)) in getlexcaller | |||
09:46
brrt left
|
|||
samcv | jnthn: ah ok | 09:46 | |
10:03
zakharyas left
|
|||
Geth | MoarVM: ba906c4297 | (Jonathan Worthington)++ | src/spesh/frame_walker.c Fix outer traversal regression in getlexcaller The `cur_outer_frame` serves as a predicate, so we need to NULL it when we reach the end. |
10:11 | |
lizmat | jnthn: shall I bump Moar and NQP to test this ? | 10:18 | |
jnthn | lizmat: Can do :) | ||
lizmat | will do | 10:19 | |
jnthn | I just got pissing stresstest | ||
*passing | |||
o.O | |||
dogbert2 | lol | ||
timotimo | is it too tight to include the "get FD from socket" PRs we just got? | ||
lizmat | seems like it is an addition, rather than a fix, right ? | 10:21 | |
timotimo | i'm wondering if it may have been too risky to push the "get source host and port from IO::Socket::Async" feature to master, too | ||
yeah, it's a feature | 10:24 | ||
masak | "feature freezes" are both an incredible drag and a great risk-reducer. it's a tough tradeoff. | 10:25 | |
timotimo | i hear you | 10:26 | |
masak | I'm not even advising caution, or the lack thereof :P | 10:27 | |
timotimo | yeah | ||
masak | just pointing out the tradeoff | ||
timotimo | it's also not my feature - at least the FD one | ||
jnthn | timotimo: I'd ask AlexDaniel++ to make a judgement on it; it may be we've already pushed our luck enough with this release, even if it is seemingly very safe | 10:28 | |
timotimo | that makes sense | 10:29 | |
10:35
brrt joined
10:36
zakharyas joined
|
|||
AlexDaniel | well, it's hard for me to judge this one properly because I needed that feature a few times… so I'd much rather have it in the star release | 10:36 | |
but | |||
timotimo: are there any tests? | |||
timotimo | there are all the IO::Socket::Async tests that make sure things that were already there don't break | 10:37 | |
i want to add tests, though | |||
AlexDaniel | yes but for that feature | ||
samcv | ok just saw the person had replied on the memory allocation. but not sure if this helps much? github.com/MoarVM/MoarVM/issues/910 | 10:38 | |
though they seem to be implying that it may only be occuring with old glibc's | 10:39 | ||
though i have 0 clue how that could have something to do with this | |||
Current num buckets 33554432, tbl->num_items 1836, tbl->ineff_expands 0, tbl->noexpand 0 | |||
and this is not great. has 1836 items in the hash table yet has 33554432 buckets | 10:40 | ||
which should be impossible | |||
AlexDaniel | haha | ||
samcv | also that seems to imply it's not just doing one huge allocation, but it is expanding over time? or something | 10:41 | |
since i had it MVM_oops with the patch if it tried to allocate over 1gb | |||
log2 of 33554432 is 25 fyi | 10:42 | ||
dogbert2 | m: CONTROL { }; warn "" | ||
camelia | Warning: something's wrong MoarVM panic: Trying to unwind over wrong handler |
||
dogbert2 | that's an oldie btw | ||
timotimo | hm, there's also udp sockets that you may also want to use port 0 on; that'll have to go in the next release in any case | 10:45 | |
AlexDaniel | jnthn: oh yey, two blockers out. I'm rerunning toaster now | 10:46 | |
10:52
Ven`` joined,
Ven`` left
11:03
Ven`` joined,
zakharyas left
11:05
zakharyas joined
11:41
brrt left
11:48
zakharyas left
12:09
Ven`` left
12:10
Ven`` joined
12:30
Ven`` left
12:36
Ven`` joined
12:38
lizmat left
12:47
dogbert2 joined
12:52
Ven`` left
13:04
Ven`` joined
|
|||
dogbert2 | AlexDaniel: how long does a Toaster run take? | 13:17 | |
13:22
zakharyas joined
13:23
Ven`` left
|
|||
dogbert2 | if I run stresstest (on 32-bit) with a very small nursery and MVM_GC_DEBUG=2 I sometimes get a failure in t/spec/S32-io/io-path-extension.t | 13:26 | |
it point to this line github.com/MoarVM/MoarVM/blob/mast...ext.c#L151 could it be a missing MVMRoot ? | 13:28 | ||
jnthn | I don't immediately spot one | 13:30 | |
13:30
stmuk joined
|
|||
dogbert2 | jnthn: perhaps it's something else | 13:31 | |
#1 0xb7b110a4 in bind_key (tc=0x804c628, st=0x80b95b0, root=0x805c578, data=0x805c588, key=0x8cbe3b8, value=..., kind=8) at src/6model/reprs/MVMContext.c:151 | |||
#2 0xb7a674ae in MVM_interp_run (tc=0x804c628, initial_invoke=0xb7be0303 <toplevel_initial_invoke>, invoke_data=0x80e7178) at src/core/interp.c:2417 | |||
13:31
stmuk_ left
13:34
Ven`` joined
|
|||
AlexDaniel | dogbert2: this one was 141m8.915s for me | 13:36 | |
samcv is trying to compile glibc 2.12.1 and it's not very easy, needed a ton of patches to even get it to compile | 13:37 | ||
AlexDaniel | dogbert2: eh… results are up toast.6lang.org/ but | 13:39 | |
dogbert2: I think I forgot to bump | |||
hmmmmmm | 13:41 | ||
dogbert2 | oops | 13:42 | |
AlexDaniel | no, the bumps are actually there | ||
ah, toaster was executed before the bump | |||
ok, I see | |||
AlexDaniel reruns | |||
timotimo | jnthn: you were mentioning the other day about paramnamesused being used with a null callsite? | 13:43 | |
gist.github.com/timo/93065f66404d1...23a15288fb - here in the atomic load prefix operator being used in Lock::Async is asploding | 13:45 | ||
interestingly, there isn't a spesh candidate on cur_frame | 13:46 | ||
13:48
lizmat joined
|
|||
jnthn | Yes, I never got to the bottom of that, but it's not a spesh bug, I don't think, 'cus I got it to explode with MVM_SPESH_DISABLE=1 | 13:48 | |
timotimo | yeah, the first spesh_cand in the stack is two outers out | 13:49 | |
with spesh_disable it is less interested in asploding | 13:53 | ||
the program ran to completion :| | 13:56 | ||
13:59
Ven`` left
|
|||
timotimo | moar: src/gc/collect.c:218: process_worklist: Assertion `*item_ptr != item->sc_forward_u.forwarder' failed. | 14:07 | |
so maybe it's actually general memory corruption that's breaking this, just somehow hitting the callsite portion of a frame | |||
AlexDaniel | anyone looking at github.com/rakudo/rakudo/issues/2070 ? | 14:24 | |
jnthn | AlexDaniel: I think brrt++ did a bit this weekend, but without a solution | 14:33 | |
dogbert2 | #0 0xb5bdf288 in MVM_interp_run (tc=tc@entry=0xb5403d00, initial_invoke=initial_invoke@entry=0xb60287d0 <toplevel_initial_invoke>, invoke_data=0x0) at src/core/interp.c:5814 | 14:46 | |
^^ tobs SEGV from #perl6 | 14:47 | ||
15:04
zakharyas left
|
|||
AlexDaniel | fwiw that's GH#2120 | 15:08 | |
synopsebot | GH#2120 [open]: github.com/rakudo/rakudo/issues/2120 [regression][⚠ blocker ⚠] Segfault while indexing with infinite Seq | ||
AlexDaniel | and it's bisected, if that helps | ||
well not down to moar commit, but to a bump at least | |||
15:22
hoelzro joined
|
|||
samcv | well i can fully reproduce that allocation of a huge number of bytes on CentOS 6 | 15:36 | |
15:48
robertle left,
zakharyas joined
16:00
lizmat left
16:02
domidumont left
16:03
lizmat joined,
zakharyas left
|
|||
samcv | this is pretty weird | 16:06 | |
asan doesn't work on this old of a gcc. so i'm going to try to use valgrind and figure out what's happening | 16:07 | ||
16:08
bisectable6 joined
|
|||
AlexDaniel | dogbert2: well, alright, now it's there: toast.6lang.org/ | 16:10 | |
I was expecting a greener result… | |||
timotimo | we're not running a greenery here | ||
AlexDaniel | time for another ticket I guess | 16:12 | |
samcv | gist.github.com/d4ead78b0a3cdf2c9f...ffbb7004c5 from valgrind | 16:13 | |
though this may be my fault.. since it's from a printf i added | 16:14 | ||
lizmat | AlexDaniel: is there a way to limit toast.6lang.org to a specific author ? | ||
so e.g. I could easily see if any of my modules got burnt ? | |||
AlexDaniel | lizmat: unfortunately not, but with just 13 modules that turned red it's hardly a problem? | 16:15 | |
lizmat | also: slightly worrying perhaps are the Cro:: fails ? | ||
16:15
lizmat left
|
|||
samcv | yeah ignore that gist i posted | 16:15 | |
AlexDaniel | if it failed on 2018.06 also it means that Cro is unhappy with the setup, or something like that | 16:16 | |
so yeah, toaster isn't exactly a precision tool :) | |||
16:16
lizmat joined
|
|||
AlexDaniel | lizmat: colabti.org/irclogger/irclogger_log...07-23#l166 | 16:17 | |
jnthn | It's due to IO::Socket::Async not getting along libssl1.1 | ||
AlexDaniel | lizmat: basically, some modules are just always red in toaster and we don't get any useful info out of them, yes | 16:18 | |
and that's LTA, yes, and I hope jnthn++ runs at least some tests with latest rakudo :) | 16:19 | ||
16:19
nativecallable6 joined,
benchable6 joined,
squashable6 joined
|
|||
jnthn | I've used the Cro::HTTP test suite quite often as a "does this work for something interesting besides stresstest" check :) | 16:20 | |
(And yes, it's passing at present) | 16:21 | ||
samcv | jnthn: so it works perfectly in valgrind. so i'm thinking it may be some memory issue | 16:23 | |
or some race condition or something... | |||
jnthn | samcv: Hm, but are there any threads? | ||
samcv | no clue | ||
jnthn | Well there's be the specializer one I guess | 16:24 | |
But yeah, it's really odd | |||
samcv | jnthn: i can fix it by adding another conditional before expand_buckets. like if there's more items than buckets don't expand but that doesn't fix the actual issue | 16:25 | |
though it does cover it up effectively | |||
jnthn | Maybe add it with a comment that it's for a dodgy libc version? :) | 16:26 | |
I figure with time that libc version will fade from existence :) | |||
jnthn -> home & | 16:28 | ||
samcv | though it is possible that things are just ending up in the same bucket, or that somehow the code that is supposed to stop things from expanding too many times stops working... but i will have to investigate a bit more | 16:30 | |
before i give up | |||
but more weird because most of it is just pure c code and not stuff i'd think would be the purview of the library? | 16:31 | ||
aha. ok. it fails the siphash tests. | 16:32 | ||
lucikly i included those tests in our repo. so it seems glibc doesn't play nice with the siphash code | |||
that would do it | 16:33 | ||
16:34
dogbert17 joined
16:35
greppable6 joined
16:36
diakopter joined
|
|||
AlexDaniel | jnthn: I'm starting to doubt myself, can you take a look maybe? This PR: github.com/tadzik/Getopt-Type/pull/3 | 16:42 | |
jnthn: basically there's a class with `method ACCEPTS($opts is rw) {…}`, and then it does `sub foo(*%opts where THAT-OBJECT) {}` | 16:43 | ||
my understanding is that it doesn't need to be `is rw`, and even shouldn't be | 16:44 | ||
The error is: # Parameter '$opts' expected a writable container, but got Hash value | |||
samcv | jnthn: so if i unset MVM_CAN_UNALIGNED_INT64 then things work properly | 16:50 | |
well after altering one place in the code | 16:51 | ||
AlexDaniel | jnthn: and I'm questioning it because it's pretty much the only module affected right now, everything else was covered by the Proxy compat thingie | 16:55 | |
tadzik | huh, I missed that PR | 17:10 | |
AlexDaniel: are you actually using my stuff? Sick :) | 17:11 | ||
or is there just some ecosystem test errors | |||
17:20
yoleaux joined
17:38
statisfiable6 joined
18:10
stmuk_ joined
18:12
stmuk left
|
|||
AlexDaniel | tadzik: yeah, it was detected by toaster | 18:28 | |
tadzik: merging it will unbreak another module, btw | 18:29 | ||
tadzik: and it's also yours :) github.com/tadzik/App-redpanda | |||
18:41
Ven`` joined
|
|||
timotimo | jnthn: seems like zoffix figured out the segfault with the null callsite came from the whatever currier's migrator | 18:51 | |
19:00
Ven`` left
|
|||
tadzik | ah, redpanda, that brings back memories:P | 19:17 | |
lizmat | and another Perl 6 Weekly hits the Net: p6weekly.wordpress.com/2018/07/23/...cate-guts/ | 20:01 | |
20:12
Ven`` joined
20:31
lizmat left
20:33
lizmat joined
20:34
MasterDuke joined
20:38
Ven` joined
20:40
Ven`` left
20:50
Ven` left
20:53
MasterDuke left
|
|||
samcv | i'm making progress fixing that issue with hash overallocation | 20:53 | |
20:53
MasterDuke joined
|
|||
jnthn | evening o/ | 20:58 | |
samcv | evening o/ | ||
jnthn: so essentially this old glibc version has a bug with certain types of unaligned reads it seems | 20:59 | ||
jnthn | samcv: ah, "interesting" :S | ||
samcv | jnthn: though i'm unsure at how it causes it to totally break everything | 21:00 | |
since the only issues were with the siphash functions that "finish" off the hash | 21:01 | ||
so it should only cause the last grapheme to cause an issue. though who knows what glibc's bug is | |||
and it has no issue with 64 bit unaligned reads, but it seems to only have a bug with 32 bit unaligned reads | 21:02 | ||
to fix i think i'm just going to turn them into 8bit reads instead, and modern comilers should optimize it into unaligned accesses. | |||
and given these functions: siphash_finish (works with 8 bit orientation of bytes) and siphashfinish_32bits | 21:03 | ||
and are only called once per string, it is not too hot a path so as to worry as much about compilers that may not optimize them into a single operation | 21:04 | ||
jnthn | Weird bug though | 21:05 | |
samcv++ for hunting it down | |||
samcv | yeah. the siphash tests i wrote saved the day though | ||
jnthn | Indeed :) | ||
21:06
Kaiepi left
|
|||
samcv | otherwise it would have taken me way longer to figure this out | 21:06 | |
jnthn | AlexDaniel: Hm, I thought I had an idea what the ACCEPTS/is rw change might have originated from, but now I look a bit more at it, the change I suspected doesn't fit the symptoms. | 21:23 | |
AlexDaniel: Though if anything it feels like a bug fix. | 21:24 | ||
In that I'm not sure an rw thing should make it into the constraint | |||
Geth | MoarVM: f4662285db | (Samantha McVey)++ | 2 files Don't use 32-bit unaligned reads in SipHash implementation This fixes a bug on CentOS 6 and possibly is a bug in glibc 2.12.1 or the toolchain which has issues with unaligned 32-bit reads. Instead of trying to do a 32-bit unaligned read, only do 8-bit reads. This should optimize to a single operation in the compiler, and even if it does not, we only called siphashfinish or siphashfinish_32bits once for every string we hash. Fixes issue #910 |
21:44 | |
timotimo | i don't really understand why glibc would be responsible for something as low-level as "reading memory" | 21:54 | |
samcv | timotimo: i don't either | 21:56 | |
the reporter said that if they compiled differently which uses a newer glibc it didn't have the issue | |||
timotimo | right | ||
21:57
Ven`` joined
|
|||
timotimo | i'm hoping this'll be something i can learn, but i feel super drained in the brain right now, for apparent reason | 21:57 | |
22:00
Ven`` left
|
|||
AlexDaniel | timotimo: I'm out of the loop, what's the reason? | 22:07 | |
22:07
travis-ci joined
|
|||
travis-ci | MoarVM build failed. Samantha McVey 'Don't use 32-bit unaligned reads in SipHash implementation | 22:07 | |
travis-ci.org/MoarVM/MoarVM/builds/407354673 github.com/MoarVM/MoarVM/compare/b...662285db2d | |||
22:07
travis-ci left
|
|||
timotimo | AlexDaniel: i have no idea! | 22:08 | |
samcv | looks like travis is a flopper | 22:09 | |
err whatever it is called. i am tired | |||
AlexDaniel clicks “restart job” | |||
timotimo | we need a bot that clicks "restart job" on every failed job a few times or maybe forever until it succeeds | ||
AlexDaniel | yay, green | 22:15 | |
22:23
MasterDuke left
22:32
MasterDuke joined
|
|||
samcv | timotimo: :) | 22:48 | |
lol @forever | 22:49 | ||
let's do that and see how long it takes until github messages us | |||
AlexDaniel | not github, but travis | 22:58 | |
whateverable is already throttled, but I think there's some issue on my side | 22:59 | ||
like not setting a key or something like that | |||
23:03
Kaiepi joined
23:21
scovit_ joined
|
|||
scovit_ | samcv, I am playing a bit with your code and godbolt.org, to me it seems like it is a gcc 4.4.7 bug and it emits code that basically calls siphashfinish_last_part(sh, t) with argument t = 0 | 23:22 | |
samcv | scovit_: hmm are you sure | 23:26 | |
scovit_: well it's fixed with my changes though+ | 23:27 | ||
? | |||
scovit_ | it is fixed, yes, but I have a question: does your code just cast an int to a long long int ? | 23:28 | |
it might be wrong on bigendian | |||
samcv | it's not, at least the last time i checked it | ||
scovit_ | the new version I mean | 23:29 | |
samcv | ah | ||
hm that could be right. i will have to test it later | |||
err actually no it should be fine | 23:30 | ||
it's essentially doing a memcpy | |||
scovit_ | I really do not understand why you do not just set t equal to src | ||
samcv | so i'm pretty certain there's no issue, though i will check tomorrow | ||
scovit_: that doesn't result in the same thing | 23:31 | ||
scovit_ | samcv setting t to src zeroes the most significant bits (the last 4 bytes) and set the first 4 to the src | 23:32 | |
on little-endian | |||
timotimo | do we already have a post-release branch? | ||
AlexDaniel | timotimo: feel free to start one | 23:33 | |
samcv | scovit_: on big endian that's not the same thing | ||
timotimo | AlexDaniel: what do i call it? | ||
scovit_ | exactly, that is the only thing I am not sure about | ||
AlexDaniel | timotimo: post-release-2018.07 | 23:34 | |
Geth | MoarVM/post-release-2018.07: 33d6c9cebf | (Timo Paulssen)++ | src/spesh/optimize.c Make sure output of spesh resolve gets optimized, too Until now we'd have resumed optimization after the last instruction a speshresolve has put in. This misses the opportunity to improve getattr faux-guards into direct pointer access versions. Fix this by remembering the previous instruction before speshresolve is optimized and continuing with that instruction. The next thing in the loop is to go to ins->next, so we use prev->prev. |
23:36 | |
timotimo | it'd be kind of cool to have this in the release. i think it's pretty safe. but it is really late in the release cycle |