00:01 cognome joined 00:03 cognome_ joined 00:25 cognome joined 01:04 FROGGS_ joined 01:25 cognome joined 01:51 lizmat joined 02:05 lizmat_ joined 02:24 itz joined 02:25 cognome joined 03:25 ventica2 joined, cognome joined 04:02 njm joined 04:03 njm left 04:25 cognome joined 05:23 ventica joined 05:25 cognome joined 05:42 woolfy joined 05:52 ventica2 joined
sergot hi o/ 06:19
06:21 woolfy left 06:25 cognome joined 06:35 FROGGS[mobile] joined 07:31 jimmyz joined
jimmyz can't build rakudo: Error while compiling op p6bool (source text: "nqp::p6bool(1)"): Cannot find method 'mast_compunit' 07:31
FROGGS ohh, then I won't upgrade until jnthn appears :o) 07:34
TimToady I just compiled with master moar and master nqp 07:36
maybe a version bump is needed?
nwc10 has just built Rakudo 07:37
with master/master/nom
FROGGS hmmm, the nqp revision looks good 07:38
NQP_REVISION is one commit better than the mast_compunit introduction
07:39 jimmyz joined
jimmyz sorry, I didn't git pull nqp .. 07:39
FROGGS jimmyz: np 07:40
nwc10 jimmyz: seems that you have identified a missing version bump needed
FROGGS jimmyz: have you reconfigures rakudo at all?
nwc10 oops, let me rephrase that more accurately - identifed that there is a version bump missing. 07:41
FROGGS because invoking 'make m-install' does not care about NQP_REVISION, only Configure.pl does
jimmyz yes, now rakudo builds fine 07:44
Stage parse is 44s vs 42s, and Stage mast 16s vs 14s 07:45
2s lower
nwc10 2s improvement since (roughly) which revision? 07:46
jimmyz since yesterday 07:48
nwc10 nice 07:49
we need more weekends
07:57 zakharyas joined
jimmyz yeah 08:05
08:25 Ven joined 08:35 FROGGS_ joined
jnthn Well, 4s total improvement there :) 08:39
nwc10 at this rate parse time will be negative within a few months 08:40
timotimo jnthn: sadly, lizmat isn't so lucky with the spectest timings :(
FROGGS_ uhh, how negative
nwc10 joke alert! 08:41
FROGGS_ timotimo: well, there was also the thing that fixes the wrap.t
perhaps that was costly? I dunno
timotimo it seems like the timing that is faster also does more tests
which is weird
FROGGS_ O.o
jnthn odd 08:45
My spectest time here is the lowest I've had in a while. 08:46
timotimo strange indeed.
are you willing to tell us your short-term plans? :)
jimmyz esc? 08:47
:P
timotimo well, yeah, but it seems like that's more or less a mid-term thing 08:48
jnthn Well, the things on this month's roadmap for Moar in part. 08:49
Also planning some things that I hope will improve startup time
timotimo "rewrite throws into gotos where possible" is still in front of us, right? as part of the handlers optimization 08:50
nwc10 Any more bloggage? or is coding more fun?
jnthn timotimo: Yeah 08:51
timotimo code-gen on tight code is going to be *so* *good* :)
well, if you consider spesh a part of code-gen, which i do
jnthn nwc10: Will try and post in the next week or so, once I've got more improvements done :) 08:52
nwc10 OMG MOAR improvments. How will we handle the awesome? 08:54
timotimo well~
we are still kind of behind other language's runtimes
when the jit lands, we'll have something only few dynamic language runtimes have outside of the javascript world 08:55
09:15 harrow joined
jnthn m: say so not True 09:25
camelia rakudo-moar 319a78: OUTPUT«False␤»
09:26 brrt joined
brrt \o 09:26
jnthn brrt \o/
timotimo brrt! :)
brrt jnthn: how do you debug stuff on windows
:-)
still alive
jnthn brrt: Using the VS debugger usually 09:27
brrt: There are a few tricks...
Configure with --debug is one of them
Unfortunately, it's silly enough to overwrite the moar.dll PDB with the moar.exe one
I typically hack the Makefile so the link line for moar.dll also has /pdb:$@.pdb 09:28
brrt that explains a bit
jnthn So it spits out moar.dll.pdb for that.
jimmyz it'll be nice if pdb info is in --debug on windows
jnthn The other thing is that --debug leaves the optimize flags in.
Which can be OK, but loses some locals.
If that's in your way, hunt down /Ox /GL in the compiler flags, and /LTCG in the linker flags, and remove them. 09:29
brrt that's no problem for me, i have the same 'issue' with gdb
jnthn Important: if you remove /GL be sure to remove /LTCG too - or the linker SEGVs...or at least the version I have does :D
brrt my point is i need to instruction-step through the jit compiled frame, so i need to break into MVM_jit_enter_code 09:30
and... i can't manage that, but now i know why
jnthn ok :)
09:32 zakharyas joined
brrt do you happen to know a good irc client for windows? 09:38
Ven
.oO(webchat.freenode.net)
jimmyz chatzilla, mirc ...
Ven
.oO(mirc, you'll love the remotes)
jnthn No; I use screen + irssi running on a Linux box and just SSH into it.
That's why I'm always here :)
Ven bnc! 09:39
jimmyz my linode box is down, that's why I'm not always here :(
brrt it seems i have the reverse setup from jnthn then :-) 09:40
ok, pidgin it'll have to be then
brrt bbiab 09:41
09:41 brrt left 09:43 brrt_ joined
timotimo brrt ssh's into his windows machine to irc? 09:43
brrt_ no, i virtualbox into a windows machine 09:44
well, there's a moar.dll.pdb file now
let's hope that gives me some actual symbols
FROGGS_ ... or prince 09:46
timotimo brrt_: jit compilation has its goas set as 2014.08 on moarvm.org; how do you feel about that? :) 10:00
brrt_ uh... well... good question 10:05
i think i'm going to evade that answer only slightly and argue that a compiler is a 'lifetime of work' :-)
timotimo no pressure, html is rw on our server :)
brrt_ basically, i really want to have merged by then 10:06
jnthn Me too
brrt_ so that will give us at least the current JIT capacity; and hopefully also extops, and throws
jnthn Once brrt++ has JIT working on Windows, I'm planning to tinker a bit too. Provided brrt++ doesn't mind. :) 10:07
brrt_ probably extops, if jnthn++ has added the invokish flags to the extops already
brrt_ doesn't mind at all :-)
timotimo i think he already has
jnthn brrt_: I haven't, but I've added a flags mechanism for ext ops, so it should be a 10 minute patch.
(the invokish indicator on ops ain't in master, so I couldn't do that bit) 10:08
timotimo oh
did they end up in esc?
jnthn No, they're in moar-jit
timotimo oh, ok 10:10
merge master into moar-jit and cherry-pick that commit into master? :)
jnthn Or just wait until we merge moar-jit :P 10:14
timotimo or that 10:15
brrt_ hopes we can merge moar-jit after the ABI bugs are fixed? 10:16
jnthn I guess if we leave --enable-jit needed for Configure then it'll be relatively harmless. 10:17
The bigger decision is not actually the merge, but making that the default.
brrt_ ...a haaaaah 10:18
ok, one bug found
right, for compiling lua, one actually needs mingw 10:23
much fun, right?
timotimo :S 10:24
brrt_ to compile luajit, you can't actually use windows nmake, becausee the makefile is too funky
jnthn brrt_: I found binaries somewhere...
sourceforge.net/p/safelua/wiki/LuaJ...0binaries/ for example 10:25
brrt_ yep, have them too :-)
jnthn github.com/malkia/ufo seems another source of binaries 10:27
masak ufo? what a weird and random name for a project. 10:49
timotimo %) 10:54
10:55 brt joined
brrt_ well, what do you know, can't build bitop without lua.h or luaconf.h 10:58
jnthn Oh 10:59
nwc10 brrt_: you're aware that ASAN doesn't like the JIT? paste.scsys.co.uk/410320
jnthn I thought the one I had included bitop...
10:59 colomon joined
jnthn Maybe my one was actually from www.scilua.org/get.html 11:02
brrt_ nwc10: that actually seems a false positive 11:08
tnx jnthn :-) i'll try that one
nwc10 brrt_: if so, it would be the first false positive I've ever seen ASAN report 11:09
are you assuming something about the layout of memory in C arrays that ASAN doesn't want you to assume?
jnthn I think it's a real bug 11:13
MVM_OP_flip does: 11:14
MVMJitCallArg args[] = { { MVM_JIT_INTERP_VAR, MVM_JIT_INTERP_TC },
{ MVM_JIT_REG_VAL, src } };
That's 2 args
Then:
jgb_append_call_c(tc, jgb, op_to_func(tc, op), 3, args, rv_mode, dst);
Where 3 is the arg count
brrt_ yes, that's a bug 11:19
but that's not what ASAN finds
jnthn Oh?
brrt_ in fact, i removed that, and it still happened
jnthn Hm, I found that by looking at the lines ASAN was reporting
brrt_ i've struggled with that one for a bit already
well, i'll change it anyway 11:20
11:20 cognome joined 11:22 cognome_ joined
brrt_ oh, great news folks, nmake only understands $< as a dependency 11:25
much amaze huh
timotimo can has an up to date bail log statistic for my weekly? 11:28
sadly cant build mvm on my phone easily :) 11:29
moritz timotimo: how do I generate one?
timotimo MVM_JIT_LOG blah.txt and theb grep BAIL pipe sort pipe uniq -c pipe sort -n 11:33
for the setting compilation usually
brrt_ MVM_JIT_LOG is the environment variable 11:34
moritz mlenz@mlenz-workstation:~/p6/MoarVM$ git grep MVM_JIT_LOG|wc -l
0
do I need a special branch, or something? 11:35
timotimo phone keyboard not excellent for irc
yes, moar-jit
and --enable-jit
but
for latest nqp, merge master, too
moarvm master 11:36
moritz eeks, that gives me conflicts
timotimo damn 11:37
brrt_ wait
i'll get you a file
moritz I think I know how to resolve it
does NQP need a branch too? 11:38
hoelzro moarning #moarvm 11:41
dalek arVM/moar-jit: 7d70cb7 | (Bart Wiegmans)++ | src/jit/ (4 files):
Don't always write 4 arguments if we have fewer
11:42
brrt_ no, nqp should just run master
moritz ok, running the command now 11:44
timotimo who reported these memory leaks in moarvm recently?
FROGGS_ timotimo: TimToady 11:46
in his palindrome RC example
moritz timotimo: perlpunks.de/paste/show/53d6384a.5ff2.12a 11:47
jnthn brrt_: Was that the Win32 ABI-bustying bug? 11:48
*busting
brrt_ jnthn: that seems to fix it for me, yes
timotimo thank you, moritz
elems should be very easy to impl 11:49
moritz thought so too
timotimo sp_findmeth a bit more difficult perhaps
moritz not_i should be easy too
timotimo aye
brrt_ sp_findmeth is really painish
jnthn brrt_: Will do a build here
moritz chars, eq_n, ne_n
no idea bout unbox_s
timotimo clone probably as well 11:50
jnthn brrt_: I'd just factor sp_findmeth out into a function and call it...
timotimo unbox_s can get a helper in reprconv
thatd be easy
brrt_ that, or try to do the cached versions first
jnthn brrt_: Unless you want to do the cache check outside and then delegate.
brrt_ right :-) 11:51
jnthn brrt_: Can we merge master into moar-jit?
brrt_ will do
jnthn Otherwise not sure I can build with latest NQP...
Thanks
dalek Heuristic branch merge: pushed 27 commits to MoarVM/moar-jit by bdw 11:53
brrt_ done
timotimo moritz, the most interesting part of implementing something with many bails in spesh is using grep and context numbers to find out what ops usually come after the op you just implemented
brrt_ is reaaaaaally anxious
also, the Makefile is really a huge pain for windows
we / i should fix that some day 11:54
i.e., the /pdb: flag
and, the lack of $< in command lines
etc etc etc
jnthn Yeah, it's nearly hit my "I should fix this" annoyance level
brrt_ it may be my own lack of familiarity for windows, but it hits my annoyance level daily 11:55
with windows
timotimo heh
jnthn brrt_: NQP now builds and tests fine with moar-jit branch 11:58
Sadly, Rakudo setting build SEGVs
brrt_ i'm not out of the forest yet 11:59
:'-(
jnthn No, but given it SEGV'd right at the start of the NQP build before, this is a big step forward.
nwc10 ASAN built MoarVM JIT is currently running tests 12:00
that is progress
er, NQP tests
hoelzro I think I found a Moar bug
gist.github.com/hoelzro/2c02a2b7810aca50b195
with MoarVM = 2014.07-34-g0513b67, rakudo = 2014.07-56-gfd2b197, this prints out the first 10 callframes and then complains about a NULL string 12:01
I dug into it a little bit last night, and I noticed that a GC collection is happening right before then
brrt_ it also means that the bugs are that much harder to catch
hoelzro so I'm guessing that something with the GC and call frames is screwy
jnthn Unlikely 12:02
nwc10 brrt_: NQP tests all pass for MoarVM built with ASAN and JIT (unless I screwed up badly)
brrt_ \o/
nwc10 fails at /usr/local/bin/perl tools/build/gen-cat.pl moar src/Perl6/Metamodel/Archetypes.nqp src/Perl6/Metamodel/Naming.nqp src/Perl6/Metamodel/Documenting.nqp src/Perl6/Metamodel/Stashing.nqp src/Perl6/Metamodel/Versioning.nqp src/Perl6/Metamodel/TypePretense.nqp src/Perl6/Metamodel/MethodDelegation.nqp src/Perl6/Metamodel/BoolificationProtocol.nqp src/Perl6/Metamodel/PackageHOW.nqp src/Perl6/Metamodel/Modges/nqp/lib/QAST.moarvm:as_mast:4294967295)
jnthn hoelzro: I'd guess it may inline something and then fail to undo that when annotations wants its data 12:03
nwc10 but that's not an ASAN failure
brrt_ hmmm
timotimo froggs why did we go back to enumcharlist on moar again? are we using charring by now?
brrt_ that's weird
if i see that line correctly, it's a perl script that fails?
hoelzro jnthn: do you have any suggestions on ways I can help confirm that? 12:04
like some sort of runtime options that I can toggle?
timotimo rob, there is a environment variable to turn off inlining
jnthn hoelzro: set MVM_SPESH_INLINE_DISABLE=1 12:05
hoelzro that breaks too =(
jnthn Well, there's that hypothesis gone then :(
hoelzro oh well, now we know 12:06
the GC code is a bit daunting to me 12:09
nwc10 hoelzro: hopefuly only a "bit" - it's not like it's parrot's GC
hoelzro but I wonder if maybe some object is being created in MVM_exception_backtrace that's not being added as a reference properly or something 12:10
nwc10: I managed to figure out where things were getting called, so it can't be that bad =)
I was looking late last night, so I can give it another go after I've rested and had coffee 12:11
FROGGS_ hoelzro: interestingly we had a bug like a week ago that showed up when compiling a TTIAR 12:13
maybe it is just hidden but still there....
hoelzro ttiar? 12:14
FROGGS_ two terms in a row
jnthn No, that one was certainly fixed...this must be something else.
FROGGS_ ohh, good to know :o)
hoelzro ah ha 12:15
brrt_ doesn't get a segv but a regular error
worse yet, not even a JIT error 12:16
:-)
i probably have the wrong version of nqp
hoelzro oh, it *was* a segv, but then I played a little more to get more info and forgot to rename the file
jnthn brrt_: What is the error, ooc?
hoelzro I got the segv by doing "{caller.file}", iirc
(not sure if brrt_ is referring to my error or not) 12:17
jnthn hoelzro: No, the error I ran into building Rakudo with moar-jit 12:18
hoelzro ah ha
brrt_ jnthn: fixed by updating nqp :-) 12:19
12:20 cognome joined
brrt_ afk 12:21
hoelzro if it's alright with everyone here, I'll file a Moar bug
jnthn hoelzro: Sure
12:28 cognome joined 13:20 cognome joined 13:40 jnap joined 13:53 btyler joined 14:18 lizmat joined 14:20 cognome joined 14:28 woolfy joined 14:42 jnap joined 14:44 woolfy left 14:51 brrt joined
brrt bad news; moar-jit wfm 14:52
meaning that if it works for me, i don't know why it breaks for anyone else
(on windows, even)
timotimo well, it's a good start that it does work
now you can get back to implementing cool stuff and someone else has to find the bug :D
brrt that may be so
make sure y'all have clean versions of nqp and rakudo, and then it please report to me if it still breaks :-) 14:53
as far as i can tell, there are a few high priority things to do 14:56
a): the whole param_* stuff
fwiw, i thought i /had/ chars, but apparantly not 14:57
eq_n is funkier than it seems, too
jnthn oh? 14:58
brrt yes, i've inspected the gcc output, and there are two comparisons to make if you want to check two fp numbers for equality 14:59
[Coke] jnthn: I never did open a ticket on most recent segv; will try to remember to do so today.
brrt sp_findmeth is /really/ big, so i should do that next, i think
hoelzro brrt: is this regarding the segfault when building nqp?
brrt are you building nqp with moar-jit?
on windows?
then yes, otherwise no
timotimo brrt: should i do elems in the mean time? 15:00
brrt if you wish :-)
timotimo well, it ought to help, right? :)
jnthn brrt: Just done a debug build now
brrt does it work for you?
(i always do debug builds, btw) 15:01
hoelzro I just noticed that my useful perl Configure.PL --prefix=/tmp/why --gen-moar --backends=moar hasn't been working today 15:02
...unless I check out a fresh copy of the rakudo repo
it may be unrelated, but it sounded like what you all were talking about earlier 15:03
jnthn brrt: No, SEGV in CORE.setting build still :(
timotimo brrt: we have graphs_s and codes_s, but not chars :)
brrt that's weeeeird :-( 15:04
on moar-jit/master/nom?
jnthn Yup
brrt with --debug?
brrt doesn't get it at all
i think your computer is just conspiring against me 15:05
jnthn Happens in MVM_multi_cache_find_callsite_args
brrt oh really?
jnthn Called from MVM_frame_find_invokee_multi_ok
brrt called from the JIT?
jnthn And then the stack claims to have a ton of frames
dalek arVM/moar-jit: 66bd7e4 | (Timo Paulssen)++ | src/jit/graph.c:
chars is implemented the same as graphs_s for now.
jnthn Bottoming out in MVM_jit_enter_code
brrt hmmm 15:06
ok, i know which fragment of code that is, so that's something 15:08
(it's the slow invoke path)
but it's weird that would break for you but not for me 15:09
jnthn aye 15:10
brrt bbiab
timotimo brrt: how much testing should i do for my implementation of elmes before pushing?
elems*
oh, the core setting segfaults 15:11
isn't that fun
jnthn Darn. If I turn off optimization then it works.
Or is getting a load further
brrt :-o
timotimo well, all the elems i can see are followed by almost exactly the same code, culminating in an atpos_i that bails 15:13
and disabling the jit makes it work ... great ... 15:14
jnthn Yeah, it completed with JIT disabled
oops
with optimization disabled
(as in, C compiler opt) 15:15
timotimo oh?
i shall try that, too
where does your crash happen, ooc?
jnthn About a second into CORE.setting
timotimo mine happens a few frames down from jit enter code inside #0 0x00007f219e41b89d in MVM_multi_cache_find_callsite_args () from /home/timo/perl6/moarvm/../install/lib/libmoar.so 15:16
No locals.
#1 0x00007f219e3eb65a in MVM_frame_find_invokee_multi_ok () from /home/timo/perl6/moarvm/../install/lib/libmoar.so
No locals.
very early in stage parse
jnthn oh, that's exactly where mine is
Ah, so it happens on Linux too... :)
timotimo good to know 15:17
jnthn Oh, interesting...
timotimo i turned --optimize=0 and it still segfaulted 15:18
jnthn If I disable link time code generation and just do normal optimization without that it works
timotimo: I mean C compiler opt
timotimo yes, that's what i gave moarvm's configure.pl
this time the stack is much shorter
frame number 3 seems corrupted, as in: 0x0 15:19
15:20 cognome joined
jnthn brrt: It's compiling with /GL and /LTCG that causes the explosion, it seems 15:21
timotimo this is bad news for me; how am i supposed to test my implementation?
jnthn: should i just push it and let you review it? it's kind of trivial, i believe 15:22
jnthn Well, push to a branch?
And test/merge it to moar-jit once it's possible to test it?
timotimo sure no problem 15:23
implemented atpos_i as well now. 15:26
i can at least use nqp as a little testbed 15:27
dalek arVM/jit-moar-ops: ed91447 | (Timo Paulssen)++ | src/jit/graph.c:
implement elems as call to MVM_repr_elems
15:30
arVM/jit-moar-ops: c52948f | (Timo Paulssen)++ | src/jit/graph.c:
atpos_i is another hot op (implemented through MVM_repr_at_pos_i)
jnthn timotimo: iter is another hot one 15:32
Should just be a function call
And bindpos_o
bindkey_o too
And existskey 15:33
dalek arVM/jit-moar-ops: e8ab84c | (Timo Paulssen)++ | src/jit/graph.c:
push_i is next, unshift_i can have the very same code.
15:34
timotimo i'm now following what happens with our parsing 15:36
jnthn I think we'll nail action methods and QAST construction a good bit before parsing. 15:37
timotimo the bails that used to be push_i are now indexat or eqat_s i think
sadly, indexat is a branchy instruction 15:38
doing iter next, then i'll look at if i can add branchy stuff without writing dasm files 15:41
hmm
15:41 colomon joined
timotimo why is dst sometimes MVMint16 and sometimes MVMint32? 15:41
cool, eqat_s is non-branchy 15:43
all of the iterkey_s-used-to-bail are now iscclass bails; interesting 15:46