00:57
patrickz_ joined
00:59
evalable6 joined
02:58
ilbot3 joined
05:06
wander joined
06:04
releasable6 joined,
greppable6 joined
06:05
squashable6 joined
06:29
BinGOs joined
07:18
domidumont joined
07:23
domidumont joined
07:27
geospeck joined
07:35
reportable6 joined
08:09
brrt joined
08:25
lizmat joined
|
|||
brrt | good * #moarvm | 08:26 | |
09:01
lizmat joined
09:29
brrt joined
09:50
geospeck joined
|
|||
jnthn | morning o/ | 09:56 | |
yoleaux | 09:38Z <lizmat> jnthn: is there a reason we don't have a nqp::split_s that generates a list_s rather than a list ? | ||
09:40Z <lizmat> jnthn: is there a reason why we don't have a Failure.throw method ? | |||
lizmat | jnthn: morning! | ||
nwc10 | good *, jnthn | ||
jnthn | No split_s simply because at a Perl 6 and NQP level, we expect boxed strings, so may as well just get an appropriate result back right away | 09:58 | |
dogbert2 | good morning jnthn, nwc10, lizmat and brrt | 09:59 | |
lizmat | well, I can point at some situations where a list_s would have been nice, e.g. in Str.split | ||
jnthn | Str.split is meant to return Str though? | 10:00 | |
Well, a bunch of 'em, but still | |||
lizmat | yes, it is, but if you're using multiple needles | ||
lizmat checks her reasoning again | 10:02 | ||
hmmm.... must have been a brainfart I wrote down last night while being offline on the ferry | 10:04 | ||
second question: re Failure.throw | |||
is there a reason for it not existing ? | 10:05 | ||
jnthn | Lack of need (thus far)? :) | ||
If you want to throw Failures returned into a given lexical scope, there's use fatal, which saves the boilerplate of checking if the thing is a Failure | 10:06 | ||
brrt | good * lizmat, jnthn, nwc10, dogbert2 | 10:07 | |
jnthn | .sink is a letter shorter and also does the job | ||
lizmat | no, it's more for internal usage: try something, if it is a Failure, throw the exception of the Failure now | ||
jnthn | And that can't be solved by use fatal? | ||
lizmat | hmmm.. use fatal in core setting ? | 10:08 | |
jnthn | Every single try block implicitly has a "use fatal" at the top of it | 10:09 | |
And we have a lot of try blocks in the setting ;) | |||
lizmat | true | ||
anyways, it looks to me that there are several cases of Failure.throw in the setting, and the only reason that works is that FALLBACK throws | 10:10 | ||
jnthn | hehe :) | ||
I was thinking, won't it already do that anyway :) | 10:11 | ||
lizmat | I know that .sink is one char less, but this is more about readability | ||
jnthn | True, otoh, .exception.throw is readable also | ||
But since .throw already works from FALLBACK... :) | 10:12 | ||
lizmat | meh | ||
by that reasoning we could also remove Failure.CALL-ME and Failure.STORE | 10:13 | ||
jnthn | True :) | 10:15 | |
Actually it's easier to argue from an introspection angle that an explicit .throw is far more justified than either of those two | 10:16 | ||
(Since .throw is something you can do on a Failure, while CALL-ME and STORE are things you *can't* do :)) | 10:20 | ||
lizmat | ok | ||
jnthn | Anyway, sounds like it's just making explicit something that's already happening | 10:21 | |
So no real objections | |||
Other than "there's usually a better way" | |||
dogbert2 | are there any easy optimization wins left in MoarVM or will things get horribly difficult from now on? | 10:22 | |
lizmat | from what I understand, there's a lot of grunt work laying around re JITting stuff | 10:23 | |
dogbert2 | interesting | 10:24 | |
lizmat | brrt would know more | 10:28 | |
dogbert2 | perhaps he's optimizing/JITing as we speak :) | 10:29 | |
jnthn | There's still plenty of wins to be had; it depends how one defines "easy" :) | ||
dogbert2 | say "easier" than the thing you did last week :) | 10:30 | |
evalable6 | (exit code 1) ===SORRY!=== Error while compiling /tmp/EEl3Ls_Vhi Two terā¦ |
||
dogbert2, Full output: gist.github.com/2cabbe83d8814e05a3...b1ef208500 | |||
dogbert2 | heh | ||
jnthn | There's easier than that, surely :) | 10:33 | |
lizmat | jnthn: a Failure.STORE is needed because Failure is Nil and there's a Nil.STORE | 10:38 | |
jnthn | Ah, ok :) | 10:41 | |
brrt | hey, yes, many things left to do | 11:57 | |
i haven't had much time last few weeks | |||
timotimo | brrt: there was a spesh bisect script, wasn't there? i couldn't find one in tools/ and jit-bisect doesn't seem to support spesh limits | 12:47 | |
brrt | there wasn't a spesh bisect script yet, no | ||
so | |||
seems like a plan to make one | |||
timotimo | that'd be nice | 12:48 | |
i've got a patch that makes PHI nodes have no more duplicate entries for reads, but it causes -e "say 'hi'" to die with "No exception handler located for catch" :\ | |||
brrt | well | ||
timotimo | looks like that happens at the very end of command_eval, maybe | ||
brrt | lemmethink | ||
can we force the spesh limit on the basic block as well? | 12:49 | ||
anyway | |||
timotimo | i don't think we can, but it'd be good enough if it just gave me the frame | 12:50 | |
brrt | okay | ||
i'll whip something up | |||
timotimo | i'm glad, especially since it'd have to be in perl5 which i don't write :) | ||
12:51
Util joined
|
|||
timotimo | i'm now assuming that the problem comes from usage counts not being messed up by wrong phi nodes | 12:52 | |
and something gets thrown out as unused code even though it shouldn't have been | |||
12:52
lizmat joined
|
|||
timotimo | also, can't compile nqp with spesh on because it hangs :\ | 12:55 | |
found the right spesh limit for t/nqp/003-if-else.t to hang | 13:00 | ||
it's 34 | |||
13:03
geospeck joined
|
|||
timotimo | aha, here's a difference | 13:14 | |
now let's see if the difference makes much sense | |||
yeah, it kicks out a sub_i instruction, that can definitely cause a loop to hang | 13:16 | ||
brrt | aha | 13:17 | |
13:17
scovit joined
|
|||
brrt | well, if you debug it before i get to finish the script :-P | 13:17 | |
13:58
geospeck joined
15:42
geospeck joined
15:52
geospeck joined
16:06
brrt joined
16:23
geospeck joined
16:26
brrt joined
16:28
brrt1 joined
|
|||
japhb | brrt1: ... then you have the script for next time. :-) | 16:43 | |
brrt1 | :-) | 16:45 | |
Geth | MoarVM: 0eefa189ae | (Bart Wiegmans)++ | tools/jit-bisect.pl [Spesh] extend jit-bisect.pl to use MVM_SPESH_LIMIT Currently no per-basic block granularity, but it should probably help find tricky spesh bugs. Tries to find which combination of inline / osr / JIT disabled still shows the bug. |
16:47 | |
17:36
domidumont joined
17:37
domidumont joined
|
|||
patrickz_ | I have a very minimal p6 program using nativecall that fails with a "Bus error". Is the segfaulty nature enough hint to assume it's a MoarVM and not a rakudo bug? | 19:30 | |
timotimo | not necessarily. is this on a non-x86 system? | ||
bus error is often alignment-related | |||
patrickz_ | RPi. | ||
armhf | 19:31 | ||
timotimo | i bet that one's rather susceptible | ||
can you find out where exactly it explodes with gdb or something? | |||
patrickz_ | it worked in 2017.08 and failed in 2017.09 onwards | ||
I'll give it a try, hang on | |||
gist.github.com/patzim/631553c16b6...af2714cffc | 19:33 | ||
timotimo | aha, now here's something interesting | ||
patrickz_ | My gdb-foo isn't the best. Can I squeeze more out of it? | ||
timotimo | can you recompile moarvm to include debug info? | ||
patrickz_ | how do I do that (link to docs is fine ;-) | 19:34 | |
timotimo | how did you build rakudo? | ||
patrickz_ | rakudobrew | ||
I'm fine checking it out again | |||
timotimo | OK, i believe that lets you do it with a switch | ||
maybe --configure-opts=--moar-option=--debug=3 --configure-opts=--moar-option=--optimize=0 | 19:35 | ||
19:36
unicodable6 joined,
bisectable6 joined,
committable6 joined
|
|||
patrickz_ | Can I just `./Configure.pl --debug` in ~/.rakudobrew/moar-2017.11/nqp/MoarVM ? | 19:37 | |
timotimo | almost | ||
you'll have to make sure you pass the right --prefix | |||
you can find that in the Makefile in the first ~30 lines | |||
patrickz_ | got it | 19:38 | |
timotimo | then you'll just need to "make install" in that folder and everything should be finished | 19:39 | |
patrickz_ | that'll take some time. It's a pi... | ||
timotimo | but use --debug=3 and --optimize=0 | ||
patrickz_ | aww... | ||
timotimo | without optimize=0 it'll still not be possible to get the values of the variables you find in there | ||
patrickz_ | ./Configure.pl --debug=3 --optimize=0 --prefix=/home/pi/.rakudobrew/moar-2017.11/install --make-install ? | 19:40 | |
timotimo | not sure if it has --make-install, but yeah, that sounds good | ||
patrickz_ | thanks for taking me through this btw! | 19:41 | |
timotimo | no prob, but i might be AFK for a bit soon :S | 19:42 | |
"bt full" can be insightful | |||
patrickz_ | updated the gist | 19:46 | |
timotimo | haha, that feeling when you think "these pointers are fare too short to be correct" | 19:47 | |
a "list" would be good to have (so i don't have to check out the right source version) | 19:48 | ||
patrickz_ | list? | ||
timotimo | yeah, that's the gdb command | ||
patrickz_ | it's there | 19:49 | |
timotimo | 62 } | ||
that's the line where it explodes | |||
patrickz_ | :-P | ||
timotimo | cool. | ||
patrickz_ | irony? | ||
timotimo | yeah; debugging is always fun ;( | 19:50 | |
can you also paste the perl6 code? | |||
patrickz_ | it's there | 19:52 | |
three files :-/ | |||
it does need the extra module and NativeCall to fail | |||
timotimo | huh, weird, i would have expected double or so to be involved | ||
ok, i'm not sure if it'll work, but can you try "call MVM_dump_backtrace(tc)" in gdb? | |||
patrickz_ | done | 19:53 | |
timotimo | huh, this is happening during compilation actually | ||
patrickz_ | Is it worth it finding the commit that causes this? I could try putting a git bisect together... | 19:59 | |
20:33
benchable6 joined
20:51
timo joined
|
|||
timotimo | sorry, the server my irc runs on shut down | 20:52 | |
patrickz | np. Waiting for a build anyways... ;-) | 20:58 | |
timotimo | i imagine it'd take ages to bisect this :\ | 20:59 | |
patrickz | moarvm rebilds quite fast actualy | 21:00 | |
timotimo | right, but along the way between one rakudo version and the next, you'll need to build newer moarvms to fit changes made | 21:01 | |
patrickz | actually I thought I'd get away with only bisecting moarvm, not rakudo.. | 21:05 | |
timotimo | not terribly likely to work out all that well | ||
patrickz | ages... :-/ | 21:10 | |
patrickz is off to bed... | 21:16 | ||
timotimo | good night! | ||
22:52
dogbert17 joined
|
|||
lizmat | and another Perl 6 Weekly hits the Net: p6weekly.wordpress.com/2017/12/04/...ieventing/ | 22:57 |