|
00:08
vendethiel- joined
00:11
btyler joined,
moritz_ joined
01:00
FROGGS_ joined
01:04
avuserow joined
01:23
avuserow joined
02:00
FROGGS__ joined
|
|||
| TimToady | cut down version of t/spec/integration/99problems-51-to-60.t with a gdb stacktrace indicating GC issues: gist.github.com/anonymous/5aa8c0d7b4c99d75da35 | 05:19 | |
| at first I thought it might be GatherIter depending on sentinel addresses that can move, but changing them to something more constant doesn't help | 05:24 | ||
| not that doing address comparisons on [] isn't potentially problem, methinks, but it's not the problem in this case | 05:25 | ||
| or do you guys know something about [] that I don't? | 05:26 | ||
| (Any.new.WHICH doesn't improve things from the GC perspective, assuming WHICH is not subject to gen2 movement) | 05:27 | ||
| also, despite the recursive gathers, it doesn't seem to be related to the batching change that collects up to 1000 takes in eager context; changing that back to 1 still segfaults | 05:31 | ||
| it does seem to delay or suppress the failure if we use := instead of = when generating the trees, so eager context does bring the failure earlier somehow | 05:32 | ||
| nwc10 | TimToady: that test fails under ASAN (unless SPESH is disabled) | 06:27 | |
| (the full sized spectest) | 06:28 | ||
| I'm rebuilding master/master/nom with ASAN again to try the cut down version | |||
| TimToady | cool, hope it finds something, though these sorts of problems are notoriously heisenbuggy | 06:34 | |
| nwc10 | me too, otherwise you've just found a different bug | 06:36 | |
| sergot | hi o/ | 06:41 | |
| nwc10 | \o | ||
| FROGGS | morning #moarvm :o) | 06:45 | |
| nwc10 | TimToady: in that gist, if I just run the code in the blocks after "This is from:" ASAN built rakudo doesn't barf. | 06:48 | |
| The entire spectest still barfs, with a stacktrace similar to yours | |||
| #0 0x7ffb944bac20 in scan_registers src/gc/roots.c:376 | |||
| TimToady | well, it's very sensitive to prior activity | ||
| that was about as far as I could cut it down here and still get it to misbehave | 06:49 | ||
| nwc10 | is trying to read a location 0 bytes after a region allocated by allocate_frame() | ||
| FROGGS | I guess that is due to our heat seeking spesh | ||
| I once disabled all spesh opts and then enabled them one by one to see what opts make it explode | |||
| at that time a combination of two were to blame, so there can be many combinations in this case :/ | 06:50 | ||
| nwc10 | FROGGS: I tried to do something similar on PPC and went from SEGV after 8 tests (my actual bug) to instant SEGV. Is there a good way to do that disabling? | ||
| TimToady | btw, my snippet still dumped with MVM_DISABLE_JIT | 06:52 | |
| FROGGS | nwc10: I just commented out the cases of the switch at src/spesh/optimize.c:1025 | 06:53 | |
| dunno if that is a good way or not | |||
| nwc10 | I tried to do that. | ||
| at least, I thought that I did that | |||
| anyway, if I try it again and it fails | |||
| then I plan to use git log to work out the reverse order of which things were added to that switch | 06:54 | ||
| and comment out one by one | |||
| FROGGS | and timotimo++ confirmed that one optimization was buggy, so he commented it out for a while (and fixed it just a week ago IIRC) | ||
| nwc10 | Kaboom was on master/master/nom earlier this week | 06:55 | |
| and is also in the earlist version I can get to build | |||
| so it's probably a different thing | |||
|
07:02
zakharyas joined
08:06
colomon joined
08:11
colomon joined
08:55
woolfy left
11:47
nebuchad` joined
11:51
bcode joined,
daxim joined
11:54
bcode joined
13:22
lastofthe joined
13:42
FROGGS[mobile] joined
|
|||
| lastofthe | Looks like the recent malloc wrappers broke the build on ARM 32 + gcc 4.8.2, the order of the includes might need some shuffling: gist.github.com/anonymous/ce9d200f0f3686c12bff | 13:57 | |
| git branch | 14:03 | ||
| whups | |||
|
14:10
moritz_ joined
|
|||
| dalek | arVM: 459f317 | jimmy++ | / (2 files): fix the build on ARM 32 + gcc 4.8.2, lastofthe++ |
14:11 | |
| arVM: a295bc2 | jimmy++ | 3rdparty/dynasm: fix dynasm |
14:13 | ||
|
14:21
FROGGS joined,
ingy joined
14:22
_sri joined
|
|||
| jnthn | TimToady: About GatherIter, [] is used simply as a sentinel object, and it's quite clear that since [] is mutable then instances will be unique. Could be anything else wiht similar properties. I just stuck with what sorear++ picked, seeing no reason not to. :) | 14:23 | |
| Also, it was used as an object pointer comparison | 14:30 | ||
| And those all move together while the world is stopped | 14:31 | ||
|
14:33
17SAA04J2 joined
|
|||
| moritz stops the world | 14:33 | ||
| jnthn gets off | 14:35 | ||
| diakopter | *cry* | 15:00 | |
| tadzik | quick, come back while it's still | 15:02 | |
|
15:15
lizmat joined
15:21
woolfy joined
|
|||
| TimToady will just use Mu.new then, since it's a minimal unique object, and requires no attribute storage | 15:34 | ||
| and is sufficient for =:= purposes | 15:35 | ||
| jnthn | +1 | 15:36 | |
| TimToady | [] actually has a bunch of stuff inside that is just wasted allocation | ||
| jnthn | Well, it's a singleton ever so we're talking O(bytes), but yes :) | ||
| TimToady | not a major thing, of course, we don't do that many gathers | ||
| there was actually a huge debate in the early days of Ada whether an empty record was good for anything :) | 15:37 | ||
| jnthn grumbles about his latest startup time reduction making startup longer... | 15:38 | ||
| TimToady discovered it was good as a peg to hang procedural code in the middle of your declaration elaboration sequence | |||
| jnthn | oh, wtf... | ||
|
15:42
itz_ joined
|
|||
| avuserow | timotimo: sad news. moar segfaulted with profile-compile after some large number of hours :( | 16:38 | |
| it claims it dumped a core file but I don't actually see one | 16:39 | ||
| oh it may not have had enough disk space to make an appropriately sized core file. | 16:40 | ||
| timotimo | ah damn :( | 16:52 | |
| but thanks for doing stuff | 16:57 | ||
| avuserow | I added some disk space and reran it without the --optimize flag, so I'll see if that does anything | 16:59 | |
| timotimo | that'll cut a bunch of calls everywhere, aye | 17:00 | |
| actually, without --optimize, --optimize=2 is assumed | |||
| avuserow | oh | 17:01 | |
| timotimo | you could --optimize=off | ||
| avuserow | so I should do --optimize=0? | ||
| ok | |||
| timotimo | there is off and 0, i believe | ||
| if you do "off" the optimizer will be skipped entirely | |||
| with 0, i think it only does analysis | |||
| avuserow | oh I should also do --gen-moar=master and --gen-nqp=master too probably? | ||
| timotimo | i would do that, aye | ||
| avuserow | at this point, I'm mostly curious if it's possible to complete a run and get useful data. I can tweak and re-run after that. | 17:03 | |
| timotimo | in theory, we could make a specialized version of the compiler that only profiles the stage "parse" and then only profiles the stage "optimize" and so on | 17:04 | |
| avuserow | is there any way to get the peak memory usage of a process? | ||
|
17:05
zakharyas joined
|
|||
| timotimo | sure, "time" gives you that in the "maxresidentk" slot | 17:05 | |
| avuserow | oh, cool. (and that appears to be /usr/bin/time, and not the shell builtin.) | 17:07 | |
| timotimo | ah, right, depending on the shell you may get one that's not as nice | 17:11 | |
| the system time also has -v which gives you the values of different performance counters | 17:12 | ||
| like how many branch predictions were missed and such | |||
| avuserow | yeah this is just default unconfigured bash on ubuntu server 14.04 | 17:14 | |
| timotimo | i'm personally enjoying FISh a whole lot | ||
| avuserow | I had an ISO for it laying around and it installs quickly. no other reason for using it | ||
| anyway, if the process crashed last night due to a lack of memory, it must've requested >80GB or about, since I also enabled 40GB of swap | 17:16 | ||
| timotimo | FISh isn't a distro, it's a shell :) | ||
| avuserow | right | ||
| timotimo | though in the #fish channel i met a person who wanted to build a linux distro around fish | ||
| avuserow | I haven't looked at fish in many years, not since I learned the basics about shells. I mostly use zsh with a nice variety of configurations | 17:17 | |
| timotimo | ah | 17:41 | |
| i've been on zsh with lots of conf before switching to fish | |||
| recently i got the one thing back that i was lacking: alt-q | 17:42 | ||
| lastofthe | clang throws a bunch of warnings about converting between integer types with different sign. Is "assigning to 'char *' from 'MVMuint8 *'" safe? | 17:47 | |
| dalek | arVM: efff2fd | (Timo Paulssen)++ | src/moar.h: pre-declare MVM_jit_support in moar.h; fixes #135 |
17:48 | |
| arVM/dynamic_gen2_tuning: 23a5c6e | TimToady++ | src/core/args.c: Better style on arg count errors Inverted got/expected order, also s/parameters/arguments/. |
18:05 | ||
| TimToady | oops, wrong branch | ||
| did we ever merge that branch? | 18:07 | ||
| FROGGS | would be the safest to cherry-pick that commit to master | 18:09 | |
| TimToady has to learn to cherry-pick, I guess | |||
| FROGGS | git checkout master; git cherry-pick 23a5c6e | 18:11 | |
| [Coke] | note that cherry picking means merging that branch later might be rough. | ||
| FROGGS | [Coke]: are you sure? | ||
| TimToady | I would think that would make it easier, since it has the provenance | 18:12 | |
| FROGGS | I always had the impression that git knows that this commit is already there | ||
| TimToady | with just applying the patch, it would have to do diffs and stuff | ||
| FROGGS | for example I cherry-picked something from the labels branch, and then merged it without problems | ||
| [Coke] | it doesn't know that the cherry pick is the old commit. | 18:13 | |
| ok. some FUD to ignore, then. | 18:14 | ||
| dalek | arVM: 288410e | TimToady++ | src/core/args.c: Better style on arg count errors Inverted got/expected order, also s/parameters/arguments/. |
||
| nwc10 | did anyone do anything that was supposed to fix the ASAN failures on t/spec/integration/99problems-51-to-60.t | 18:28 | |
| and the other 2 tests? | |||
| TimToady | not that I know of | 18:30 | |
| otoh, it seems to pass now | 18:31 | ||
| otgh, I was testing against dynamic_gen2_tuning, not master | |||
| and that's likely to have changed the GC characteristics | 18:32 | ||
| so might still be a flapper | |||
| dalek | arVM/cglobal: d52b745 | (Tobias Leich)++ | / (8 files): expose C globals like native subs |
18:34 | |
| Heuristic branch merge: pushed 21 commits to MoarVM/cglobal by FROGGS | 18:35 | ||
| TimToady | still fails under the harness | 18:38 | |
|
19:07
Ven joined
19:10
zakharyas joined
|
|||
| nwc10 | so my SEGV on PPC goes away when I comment out "case MVM_OP_getattrs_n:" in optimize_bb | 19:17 | |
| investigations will continue tomorrow | |||
| but this is progress | |||
| FROGGS | indeed | 19:23 | |
| lastofthe | nwc10: sweet. That could help my ARM twisting. | 19:34 | |
|
19:35
brrt joined
|
|||
| brrt | \o | 19:35 | |
| JimmyZ: what changed in the dynasm? | 19:38 | ||
| FROGGS | brrt: it is just about your latest commit here I think: github.com/MoarVM/dynasm/commits/master | 19:46 | |
| brrt | oh.. i thought i had done that yet :-) | ||
| but apparantly not | |||
|
19:51
itz joined
|
|||
| lastofthe | 'though clang 3.4 will build (warningly) moar on ARMv7, unaligned reads get crashy. Here's a patch: gist.github.com/anonymous/7b1a7e81cbca6123d224 | 20:47 | |
|
20:47
Ven joined
21:02
brrt left
21:41
itz_ joined
21:46
itz joined
21:56
itz_ joined
22:49
lastofthe joined
|
|||
| lastofthe | clang on arm troubles filed with patch as #137. | 22:57 | |
| avuserow | A friend wants to know if there is a SuchVM since there is a MoarVM. | 23:17 | |
| avuserow .oO( SuchVM. Very Execute. Wow. ) | |||
| lastofthe wonders where Configure.pl might put the compiler's -W flags... | 23:31 | ||