Perl 6 - the future is here, just unevenly distributed

IRC log for #moarvm, 2014-08-04

| Channels | #moarvm index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
01:45 FROGGS_ joined #moarvm
02:19 ventica2 joined #moarvm
05:29 ventica2 joined #moarvm
05:54 raiph joined #moarvm
06:14 brrt joined #moarvm
06:15 brrt \o
06:16 sergot hi o/
06:23 brrt hi sergot :-)
06:24 raiph https://www.youtube.com/watch?v=DCdGlxBbKU4 # Disruptor, Hardcore Concurrency - Trisha Gee & Mike Barker
06:24 brrt how's things?
06:24 raiph hi guys
06:33 brrt i'll have you all know i don't have known bugs yet
06:35 sergot hi brrt: how is your gsoc project? :)
06:36 brrt much work yet
06:36 brrt but, we can JIT compiles some regexes
06:36 brrt which is awesome
06:37 sergot nice :)
06:53 brrt how's your progress doing? last i saw you were adding openssl suppot, which is very nice
06:56 sergot yeah, I write documentation now, tests and then I plan to end up with some cleaning
06:56 sergot So, it's doing well, almost the end.
06:56 sergot :)
07:15 brrt :-)
07:15 brrt that's a bit further along than i am right now
07:18 sergot I have some optional goals I really want to achieve
07:21 Ven joined #moarvm
07:23 brrt do tell :-)
07:38 sergot e.g. URI stuff, gzip support
07:38 sergot or support for async IO
07:39 brrt new bail log: https://gist.github.com/bdw/5a1f7bbc8e3ec8588a11
07:39 brrt hmm, async io seems like it'd be tricky
07:39 brrt how do you handle chunked encoding?
07:40 sergot https://github.com/sergot/http-useragent/blob/master/lib/HTTP/UserAgent.pm6#L110
07:41 dalek Heuristic branch merge: pushed 38 commits to MoarVM/moar-jit by bdw
07:46 nwc10 brrt: is your priority now getting it mergable, or are you still aiming to get more features added?
07:46 brrt both
07:46 brrt :-)
07:46 nwc10 er, that's not strictly possible
07:47 nwc10 you seem to have got it to the point where others can also contribute
07:47 brrt i want / need to do two things befoe i'm ready to sign it of as mergable
07:47 nwc10 and it's certainly better than 90% of the GSoC projects that I'm aware of
07:47 brrt thats' extops and throwish / handlers
07:47 brrt yes, i'm glad others can actually contribute
07:48 nwc10 what subsection of code actually wins most from JIT currently - regular expressions?
07:48 brrt i have no idea really
07:48 brrt i think regexes can benefit, even if only because they don't often do 'funky' stuff like throwning etc
07:48 brrt timotimo++ implemented a whole bunch of relevant ops
07:49 brrt basically a regex is vey often a very tight loop
07:49 nwc10 also, I suspect (not checked this) that they (mostly) compile to only a small set of ops
07:49 nwc10 and they aren't making many method calls
07:49 brrt but jnthn++'s work on inlining does  a lot of good too
07:49 nwc10 mostly string stuff and counting
07:49 brrt well, they make some method calls, and i'd like to see those gone
07:50 brrt another thing that i reaaally want is to implement a refactor of the pessimized args handling
07:50 brrt i.e. in a lot of cases we get sp_getarg_ stuff, and that runs well, but for a lot of frames that isn't possible yet (it seems)
07:51 brrt or rather, it's very easy to make it impossible, and those frames aren't JITtable
07:51 brrt while they might make very hot loops
07:51 brrt a final cleanup thingy that i'd like to do is import minilua from luajit in the 3rd party sources, that's basically lua in a single c file, and is compatible with dynasm
07:51 nwc10 how many days do you have?
07:52 brrt a week until pencils down, two weeks until firm pencils down
07:52 nwc10 also, you can get it into a *mergable* state without merging
07:52 brrt that is true
07:52 brrt i supose
07:52 nwc10 to my mind, that seems safer
07:52 nwc10 get it mergeable
07:52 nwc10 and then just have fun, but keep it mergable
07:53 nwc10 and do the actual merge the day before firm pencils down
07:53 nwc10 and then party :-)
07:53 brrt ok, good point :-)
07:53 nwc10 I think that way you still get all the stuff done you could do in the next 2 weeks
07:53 nwc10 but in that order, you ensure that it is mergeable by the end
07:53 nwc10 rather than doing just a bit too much, and missing that
07:54 nwc10 also, merging is not the end
07:54 nwc10 work on trunk is possible :-)
07:55 brrt that is true, as well
07:55 brrt but in a way, i want the JIT to be maximally useful right from day one
07:58 nwc10 that's understandable
08:04 brrt :-o it seems that adding getdynlex created even more calls to die
08:19 jnthn morning o/
08:20 FROGGS_ morning jnthn
08:20 nwc10 jnthn: you survived your curry? :-)
08:20 jnthn Yes :)
08:20 jnthn There's more of it left for today too :)
08:23 nwc10 brrt: ASAN builds JIT through to spectests. spectests are in a state of sin. No ASAN errors
08:40 brrt joined #moarvm
09:05 timotimo brrt: without actually looking at a full jit log, i suspect most getlexdyn are followed by an error message in the case of the dynamic var missing
09:05 brrt yeah, i think that's likely
09:06 timotimo paramnamesused probably has a better chance of giving non-die ops :P
09:07 timotimo what are your next planned steps? work on handlers and exceptions next?
09:11 brrt that's a big one, yes
09:12 jnthn brrt: On extops...
09:12 brrt what about them
09:12 jnthn brrt: I realized we might make things much easier if we make it so we pass the extop a pointer to where it can find its args.
09:12 jnthn brrt: It will be trivial to do that from the interpreter
09:13 brrt aye
09:13 * brrt concurs
09:13 jnthn brrt: From the JIT, all extops work in terms of just taking registers, so we can trivially allocate a bit of memory while JITting and just include the pointer. :)
09:13 jnthn As in, it's just a short array
09:13 * brrt nods
09:13 jnthn We can always bail if the extop is more complex than that signature wise but...none are today afaik
09:14 brrt are any jumpy / invokish?
09:14 jnthn Yeah
09:14 jnthn But they're not hot path things, iirc
09:14 jnthn So we could for now flag them as "don't call from jit"
09:14 jnthn Well, invokish is OK I guess
09:14 jnthn One of them does some fooling around with the interp cur_op pointer
09:16 jnthn Anyway, I don't mind doing the extops refactor this evening
09:16 brrt ok, that'd be awesome
09:16 jnthn Which should hopefully make things easier :)
09:16 nwc10 jnthn: today is day job?
09:16 brrt in that case, i'll move towards throw / handlers
09:17 * brrt thinks it should make it easier, yes
09:17 jnthn nwc10: yes
09:17 jnthn I even have to do...paperwork o.O :)
09:21 dalek MoarVM/moar-jit: f16435e | (Bart Wiegmans)++ | src/jit/ (5 files):
09:21 dalek MoarVM/moar-jit: Add support for getdynlex
09:21 dalek MoarVM/moar-jit: review: https://github.com/MoarVM/MoarVM/commit/f16435e31d
09:21 dalek MoarVM/moar-jit: 72f84e0 | (Bart Wiegmans)++ | 3rdparty/dynasm:
09:21 dalek MoarVM/moar-jit: Update dynasm to include minilua source
09:21 dalek MoarVM/moar-jit: review: https://github.com/MoarVM/MoarVM/commit/72f84e06ad
09:21 dalek MoarVM/moar-jit: 7c2d752 | (Bart Wiegmans)++ | / (2 files):
09:21 dalek MoarVM/moar-jit: Use minilua for dynasm by default
09:21 dalek MoarVM/moar-jit: review: https://github.com/MoarVM/MoarVM/commit/7c2d7529b1
09:21 brrt as in, paper work?
09:21 jnthn uh, yes :)
09:22 jnthn brrt: oh wow, did you just make the build way easier and not require a lua install? :)
09:24 timotimo brrt: does that include the bitops stuff so we have no external dependencies for building new emit code files?
09:28 brrt jnthn: yes, except that it doesn't /quite/ work for windows yet because of @exe@ bs
09:28 brrt timotimo: yes
09:29 jnthn .oO( execute-a-bull )
09:29 nwc10 jvm spectests are slow
09:30 nwc10 moar++
09:31 jnthn Moar spectests have got quite a bit snappier over the last week or so too :)
09:31 nwc10 JVM jast stage is slow
09:32 nwc10 numbers (this time) have disspeared deep into scrollback, but it seemed to be of the order of the parse time
09:34 jnthn Wow
09:34 * brrt gets stage parse in 30s these days
09:34 jnthn brrt: Yes, me too :)
09:34 timotimo not jvm's stage parse, though :P
09:34 jnthn Whole setting build is under 45s for me these days
09:34 jnthn Which is still Too Damm High
09:34 timotimo that it is
09:36 nwc10 jnthn: agree, but I suspect in the short term it doesn't matter as much as general rumtime speedups. The build is fast enough compared with Perl 5 (or anything else)
09:37 jnthn nwc10: Aye, though some of the recent improvements were to the grammar engine, which means we speed up grammars
09:37 jnthn User ones too.
09:37 nwc10 sorry, should have said what I was thinking "but if they speed up general parsing"
09:37 nwc10 or at least "also speed up user code"
09:38 jnthn Ah, I see
09:38 jnthn Speeding up compile time is also good for getting to runtime faster
09:38 jnthn And EVAL :P
09:38 dalek MoarVM/moar-jit: 551b18b | (Bart Wiegmans)++ | Configure.pl:
09:38 dalek MoarVM/moar-jit: Make minilua compilation work on windows
09:38 dalek MoarVM/moar-jit: review: https://github.com/MoarVM/MoarVM/commit/551b18b29b
09:39 timotimo developer turn-around time is also not bad
09:39 jnthn Well, yes. Making Rakudo more pleasant to develop is good.
09:40 timotimo moarvm development turn-around time is already excellent
09:40 timotimo we can skip right to the setting build if we change something we want to measure
09:41 brrt the reason this all had to work right now (instead of next week as i had planned) is that i think i've introduced a regression in win32 sp_findmeth
09:42 jnthn Ah, and you wanted the development environment to be more sane :)
09:42 brrt (i need five arguments for the findmeth_spesh routine, and win32 only supports 4)
09:42 brrt in registers
09:42 brrt aye
09:42 timotimo d'oh
09:51 brrt jnthn, any idea on how to make the /pdb:$@.pdb flag in Configure.pl
09:52 jnthn brrt: Last I looked...I didn't see an elegant way
09:52 jnthn Maybe we should just not care and hack it in somehow :)
09:52 brrt always a good idea
09:52 jnthn Oh...
09:53 jnthn since /pdb:$@.pdb will work anywhere...
09:53 brrt but i don't know how to detect win32-ish-ness in Configure.pl
09:53 jnthn ...could we not just add it to the link flags?
09:53 jnthn For when we're passing /debug?
09:53 brrt work anywhere?
09:53 jnthn As in, for the .exe too
09:53 brrt will gcc accept that?
09:53 brrt oh, yeah
09:53 brrt i see what you mean
09:53 jnthn No, I mean, it doesn't matter if it's in *every* link line we feed MSVC when debugging
09:54 jnthn Sure we'll get a moar.exe.pdb instead of a moar.pdb but that seems just fine :)
09:54 brrt so it can be inserted into ldflags, is what you mean
09:54 jnthn Right
09:54 * brrt nods
09:55 jnthn build/setup.pm:320 is likely the place
09:56 * brrt is trying it out as we speak
10:00 dalek MoarVM/moar-jit: 816a76b | (Bart Wiegmans)++ | build/setup.pm:
10:00 dalek MoarVM/moar-jit: Add pdb flag to win32 link flags for debug
10:00 dalek MoarVM/moar-jit: review: https://github.com/MoarVM/MoarVM/commit/816a76b43c
10:04 jnthn \o/
10:11 * brrt afk for a bit
10:38 cognome joined #moarvm
11:12 nwc10 brrt: ff90a050 "Add sp_findmeth which was big on bail logs" breaks the NQP build
11:13 nwc10 Too many positional parameters passed; got 2 but expected 1 at gen/moar/stage1/NQPHLL.nqp:2072  (gen/moar/stage1/NQPHLL.moarvm::107)
11:13 nwc10 etc
11:13 nwc10 this suggests to me that some of the build excercises code paths that none of the regression tests touch
12:12 woolfy1 joined #moarvm
12:13 FROGGS_ joined #moarvm
12:15 brrt joined #moarvm
12:30 brrt nwc10: you on windows?
12:30 jnthn Highly doubt it :)
12:30 nwc10 no, this was x86_64 Fedora
12:31 nwc10 er, anyway, something in the deadrat familty
12:31 nwc10 oh
12:31 nwc10 CentOS release 6.4 (Final)
12:31 brrt i see that same problem
12:31 brrt but only on windows
12:31 nwc10 so the compost heap
12:31 nwc10 see, it's "my" machine.
12:32 brrt oh, now i see it on linux too
12:32 brrt ok, i'll check it out
12:32 nwc10 anything I actually owned would be on something debian derived
12:32 nwc10 probably real debian
12:33 oetiker joined #moarvm
12:34 carlin 100% real debian, not cheap synthetic debian
12:34 jnap joined #moarvm
12:46 brrt this is another one of the 'this only works if you compile it from fresh' things
12:46 nwc10 11:13 < nwc10> this suggests to me that some of the build excercises code paths that none of the regression tests touch
12:46 nwc10 in this case "works" is fails? Because I was doing a full clean build
12:48 cognome joined #moarvm
12:49 brrt no, i mean, this works if you disable JIT from the start, and which crashes if you /do/ disable JIT from the start
12:49 brrt don't
12:49 brrt ught
12:50 brrt i.e. undebuggable
12:50 brrt :-(
12:54 cognome joined #moarvm
13:01 brrt all decidedly boring code, by the way
13:02 nwc10 OK, can you back out your change section by section (or go forward section by section) to narrow down the point at which it kills the NQP build?
13:03 jnthn Other tip: look for difference in file size of a working build and a non-working one; may be different.
13:03 jnthn Though may be bogus too
13:04 brrt yes, it's somewhere in the compilation of NQPHLL that goes wrong
13:04 jnthn That's the first file with a grammar in it, fwiw.
13:05 brrt yes, sp_findmeth is called really foten in there
13:06 brrt foten = often
13:33 brrt hmm, it's arround newtype() it seems
13:34 jnthn I'm quite sure new_type can't be jitted
13:35 jnthn Givne it's using nqp::newtype
13:35 jnthn Which I'm sure we don't JIT yet
13:35 jnthn But we might JIT the thing calling it of course
13:38 FROGGS Do we always have to call it "thing", Jim?
13:47 jnthn Well, there could be a better thingy for it...
13:49 brrt i really have no idea what causes this
13:49 brrt grrr
13:50 raiph joined #moarvm
13:52 brrt let's try and see what ASAN gives us
13:53 brrt nothing!
13:53 brrt yay
13:57 jnthn brrt: How did you do sp_findmeth in the end?
13:57 brrt basically, treat it as invokish
13:58 brrt i.e., do the spesh-slot index in ASM, and if that fails call MVM_6model_find_method_spesh
13:59 jnthn ok
14:00 brrt hmm
14:00 brrt i have /some/ good news, it seems
14:01 brrt it doesn't seem to be a problem with the invokish check or even with the spesh variant
14:01 brrt of find_method
14:28 * brrt can't hope to find this bug in the current haystack of ops
14:32 brrt new plan
14:32 brrt implement a lot of new ops
14:32 brrt wait until ASAN or SEGV gives away what the error is
14:38 dalek MoarVM/moar-jit: 352ce0c | (Bart Wiegmans)++ | src/jit/ (4 files):
14:38 dalek MoarVM/moar-jit: Add support for isconcrete
14:38 dalek MoarVM/moar-jit: review: https://github.com/MoarVM/MoarVM/commit/352ce0ce72
14:46 timotimo doesn't sound like a terrible idea
14:53 dalek MoarVM/moar-jit: f8bcded | (Bart Wiegmans)++ | src/jit/ (4 files):
14:53 dalek MoarVM/moar-jit: Add support for indexat (is branching)
14:53 dalek MoarVM/moar-jit: review: https://github.com/MoarVM/MoarVM/commit/f8bcded222
14:53 brrt :-)
14:53 brrt no luch so far, though
14:55 carlin .oO( No lunch!? )
14:56 carlin darn human brain, only paying attention to the first and last letter of words
15:13 brrt hmm... a simple script hangs funnily even without JIT
15:13 brrt or doesn
15:13 brrt doesn't
15:19 brrt jnthn: any idea why this doesn't work: https://gist.github.com/bdw/44faa4ab88bb14678d64
15:20 brrt you'd think this ends with something running to 100, right?
15:20 brrt not sensitive to JIT or spesh disabling, btw
15:22 timotimo how does it fail?
15:22 brrt ehm.. it hangs
15:22 brrt or
15:22 brrt it used to hang
15:23 brrt but
15:23 brrt i'm confused now
15:23 brrt because it works
15:23 brrt (now)
15:23 dalek MoarVM/moar-jit: 1b461c4 | (Bart Wiegmans)++ | / (5 files):
15:23 dalek MoarVM/moar-jit: Add lt_n and gt_n
15:23 dalek MoarVM/moar-jit: review: https://github.com/MoarVM/MoarVM/commit/1b461c4fee
15:24 timotimo huh.
15:24 timotimo it ends prematurely on my nqp
15:25 brrt yeah, it also ends prematurely on my nqp, except not when i add JITting
15:25 brrt haha confuse!
15:27 timotimo huh, yeah, it also ends prematurely with spesh turned off
15:27 timotimo this is most strange.
15:30 brrt MoarVM used confuse ray
15:30 brrt it's super effective
15:30 brrt brrt was hurt in the confusion!
15:30 timotimo do you also notice it seems to exit before it prints a newline?
15:30 timotimo could that just be because it didn't flush stdout?
15:30 brrt could be
15:30 brrt i don't know
15:31 timotimo ah.
15:31 timotimo yeah
15:31 brrt what's it?
15:31 timotimo flush stdout manually and you'll get the correct output
15:31 timotimo it *does* run correctly.
15:32 brrt ...
15:32 timotimo something i find even more interesting is that even strace will end up with truncated output unless -o file.txt
15:32 timotimo and strace -e write -o log.txt nqp-m foobar.nqp makes foobar.nqp exit with a flushed stdout
15:33 timotimo good thing you decided to implement more ops before spending five hours chasing this odd behavior
15:33 timotimo we may want to force moarvm to flush all open file handles when exiting?
15:40 jnthn brrt: Value of $i is 103.982528359203 is last output I get
15:41 brrt joined #moarvm
15:41 jnthn timotimo: I'm...surprised it's managing to lose output there...
15:42 * brrt too
15:42 brrt under JIT, it also runs to completion
15:42 timotimo i don't even know if i have a jitted nqp or not
15:42 * timotimo AFK for a bit
15:43 * brrt dinner &
15:43 brrt left #moarvm
16:07 ventica joined #moarvm
16:52 colomon joined #moarvm
16:53 FROGGS[mobile] joined #moarvm
18:09 brrt joined #moarvm
18:20 brrt core.setting under asan is sloooow
18:21 FROGGS brrt: tell jnthn++, he can make it faster for ya' :o)
18:22 jnthn Hm, seems it's 6time :)
18:22 brrt well, ASAN has the nice property of swiftly telling me why something has crashed :-)
18:22 brrt stop!
18:22 brrt 6time
18:22 brrt 267 s stage parse under asan
18:22 brrt :-o
18:22 jnthn wat!
18:22 jnthn I thought ASAN didn't add so much... :)
18:22 brrt well,, sometimes it does
18:27 brrt cannot invoke the null object :-o
18:27 brrt we're getting closer it seems
18:30 harrow joined #moarvm
18:30 brrt basically, stuff goes missing
18:31 jnthn That's often a marking fail
18:31 brrt hmm that.. is a bit unlikey i think
18:32 brrt it's possible
18:33 brrt but 'brrt did something subtly stupid somewhere' is also really likely
18:33 brrt also, changing the nursery size should change the first appearance of our bug, and it doesn't
18:34 jnthn yeah, agree
18:34 jnthn (about the nursery size change :P)
18:36 dalek MoarVM/moar-jit: 40a2b51 | (Bart Wiegmans)++ | src/ (6 files):
18:36 dalek MoarVM/moar-jit: Add findmeth and findmeth_s.
18:36 dalek MoarVM/moar-jit:
18:36 dalek MoarVM/moar-jit: Program now blows up that much quicker.
18:36 dalek MoarVM/moar-jit: Which is good, because quicker blowups are
18:36 dalek MoarVM/moar-jit: much easier to fix.
18:36 dalek MoarVM/moar-jit: review: https://github.com/MoarVM/MoarVM/commit/40a2b51862
18:42 jnthn Aww crap
18:42 jnthn The annotations thing gets loads further with spesh disabled
18:43 brrt what thing?
18:43 FROGGS ewww
18:44 FROGGS QAST annotations
18:44 FROGGS https://github.com/perl6/nqp/blob/master/src/QAST/Node.nqp#L6
18:45 FROGGS it let's you use QAST thingies as a hash
18:45 FROGGS so every QAST::Node (or stuff that inherits from it like QAST::Op) has to keep that hash, even when is only rarely used
18:53 jnthn optimize_is_reprid is to blame for the latest spesh bug
18:57 jnthn Well, OK, disabling it hides it.
18:58 jnthn note note, commetning out these lines hides it:
18:58 jnthn result_facts->flags |= MVM_SPESH_FACT_KNOWN_VALUE;
18:58 jnthn result_facts->value.i64 = 0;
19:01 zakharyas joined #moarvm
19:02 jnthn if (truthvalue != negated_op) {
19:02 jnthn hmm, wonder how reliable that is
19:02 jnthn I mean, there may be ways of representing true other than 1...
19:07 dalek MoarVM/moar-jit: 3257d23 | (Bart Wiegmans)++ | src/jit/ (4 files):
19:07 dalek MoarVM/moar-jit: Implement isnull and isnonnull as primitives
19:07 dalek MoarVM/moar-jit: review: https://github.com/MoarVM/MoarVM/commit/3257d23ade
19:08 brrt still no further with bugs, by the way
19:13 colomon joined #moarvm
19:14 timotimo brrt: if you want you can implement the reprid comparisons as primitive operations
19:15 timotimo (islist, isstr, ishash, isint, isnum i believe)
19:15 brrt oh, yes, you're quite right
19:15 brrt those ought to be easy
19:15 nwc10 brrt: much boom, somewhat faster
19:15 nwc10 gen/moar/stage1/NQPCORE.setting
19:15 nwc10 Cannot invoke null object at gen/moar/stage1/nqpmo.nqp:1459  (gen/moar/stage1/nqpmo.moarvm:new:14)
19:15 brrt yeah, i'm trying to speed up that boom
19:17 FROGGS that's NQPAttribute.new
19:17 brrt it doesn't seem my implementation of isnonnull is quite working
19:18 nwc10 I know it's *not* what you are doing, but it is amusing me because I'm thinking of http://dave.org.uk/klortho/?n=11912
19:18 nwc10 which, I thought we had in the perl 5 linux hints (or a commit message), related to the default optimiser settings for Intel's compiler
19:18 brrt in a way it is what i'm doing, isn't it? :-)
19:18 * brrt bbiab
19:18 nwc10 yes.
19:19 nwc10 you could just abort early and save a lot of bother :-)
19:23 nwc10 anyway, ICC is not our favourite compiler:
19:23 nwc10 http://perl5.git.perl.org/perl.git/blame/HEAD:/hints/linux.sh#l87
19:23 nwc10 a flag to make floating point be correct
19:23 nwc10 another flag, "otherwise, icc pretends (poorly) to be gcc"
19:24 nwc10 Klortho #11912 has been mentioned with reference to the first
19:24 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=11912
19:30 jnthn oh, naughty...
19:32 nwc10 whom? me, bitching about their wrong defaults? or them? :-)
19:33 jnthn The optimizer, it turns out
19:33 jnthn It was doing a further pass of dead code elimination post-inlining
19:33 jnthn That may make sense at some point
19:34 nwc10 oh, "none of the above"
19:34 jnthn Unfortunately, at present it can lead to it deleting instructions that contain values needed after deopt
19:34 jnthn Which is a solved problem in general
19:35 jnthn But seems not in the inline case
19:35 jnthn In this case it was deleting the instruction that set the name of the annotation to look for
19:35 jnthn It'd specialized on the assumption we rarely find it
19:36 jnthn Uh, actually on the assumption there were no annotations
19:36 jnthn Then when there were it deopt'd and had lost the name of the annotation it was after.
19:37 jnthn Of course, while I'm talking about it as if it has a clue what our data structures mean, it of course doesn't; it's just collecting information about what usually happens and optimizing the case when it does happen :)
19:37 nwc10 bad code, no cookie
20:06 vendethiel joined #moarvm
20:18 dalek MoarVM: 5d4882c | jnthn++ | src/spesh/optimize.c:
20:18 dalek MoarVM: Normalize truth value.
20:18 dalek MoarVM:
20:18 dalek MoarVM: We could come across a case where it will not be 1.
20:18 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/5d4882c5e0
20:18 dalek MoarVM: e5370df | jnthn++ | src/spesh/optimize.c:
20:18 dalek MoarVM: Don't redo dead instruction elim on inlinees.
20:18 dalek MoarVM:
20:18 dalek MoarVM: For one, they've already had it done. For two, this doesn't quite
20:18 dalek MoarVM: respect deopt boundaries correctly.
20:18 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/e5370df371
20:18 dalek MoarVM: c440b85 | jnthn++ | src/spesh/inline.c:
20:18 dalek MoarVM: Make sure inlined args are always marked as used.
20:18 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/c440b85450
20:24 * jnthn wonders if timotimo++ will be doing a p6weekly today :)
20:27 FROGGS jnthn: and I thought all your efforts is to impress the YAPC::EU attendees :o)
20:40 nwc10 jnthn: master/master/nom setting build fail
20:40 nwc10 Stage parse      : This type does not support associative operations
20:40 nwc10 at src/Perl6/World.nqp:238  (blib/Perl6/World.moarvm:push_lexpad:44)
20:40 nwc10 from src/Perl6/Grammar.nqp:936  (blib/Perl6/Grammar.moarvm:comp_unit:809)
20:40 jnthn nwc10: Yes, you need the Rakudo patch that chases the API change :)
20:40 jnthn Gee, you folks can test faster than I can push :P
20:41 nwc10 I re-checked
20:41 nwc10 OK, *now* I have it
20:46 jnthn OK, that's last night's unfinished stuff done :)
20:59 ventica joined #moarvm
21:00 nwc10 jnthn: 3 spectests currently fail, but did so 4 hours ago
21:01 timotimo japhb: oh! i was distracted by Crypt of the NecroDancer local co-op mode with a friend :)
21:01 jnthn Is encode.t one of them?
21:01 nwc10 IIRC yes
21:01 jnthn Seems I can reproduce it here...
21:01 nwc10 (now somwhere off in scrollback)
21:02 jnthn k
21:02 nwc10 t/spec/S32-io/IO-Socket-Async.rakudo.moar t/spec/S32-str/encode.rakudo.moar t/spec/integration/advent2010-day21.t
21:04 nwc10 Stage mast       :  15.608
21:04 nwc10 that's a lower number than I remember
21:04 nwc10 but my memory may be faulty
21:05 nwc10 in that, "last week" I think it was 17.2
21:05 nwc10 and parse was 48s, not 44s
21:05 nwc10 but I'm not yet used to "this week"
21:07 brrt joined #moarvm
21:10 lizmat rebuilding settings: real0m50.447s
21:10 lizmat user0m49.462s
21:10 lizmat sys0m0.887s
21:11 lizmat wow!
21:11 lizmat no time to get a cup of tea anymore!
21:18 brrt :-o
21:18 brrt what will we do with our lives
21:18 brrt apparantly even gt_n and lt_n blow up today :-(
21:19 timotimo :(
21:22 brrt something maaay be wrong with not_i
21:25 brrt just a little bit
21:32 jnthn oh no, not not_i!
21:32 jnthn lizmat: Hey, my evil plan for increasing Rakudo dev productivity is working :D :P
21:33 lizmat yes, it is!
21:33 carlin being too fast to make a cup of tea probably decreases productivity :p
21:34 dalek MoarVM/moar-jit: 678f8c5 | (Bart Wiegmans)++ | src/jit/graph.c:
21:34 dalek MoarVM/moar-jit: Temporarily comment all progress of today
21:34 dalek MoarVM/moar-jit:
21:34 dalek MoarVM/moar-jit: We need a good basis to debug from
21:34 dalek MoarVM/moar-jit: review: https://github.com/MoarVM/MoarVM/commit/678f8c5383
21:34 dalek MoarVM/moar-jit: c45061d | (Bart Wiegmans)++ | / (5 files):
21:34 dalek MoarVM/moar-jit: Fix not_i
21:34 dalek MoarVM/moar-jit: review: https://github.com/MoarVM/MoarVM/commit/c45061d176
21:34 dalek MoarVM/moar-jit: 50ca94b | (Bart Wiegmans)++ | src/jit/graph.c:
21:34 dalek MoarVM/moar-jit: Indexat and is(non)null are OK
21:34 dalek MoarVM/moar-jit: review: https://github.com/MoarVM/MoarVM/commit/50ca94b741
21:34 dalek MoarVM: 2be1131 | jnthn++ | src/core/ (2 files):
21:34 dalek MoarVM: Change ext op API to make JITting them easier.
21:34 dalek MoarVM:
21:34 brrt problems with not_i are now past us
21:34 FROGGS brrt++
21:34 jnthn carlin: There's always spectest for tea ;)
21:34 timotimo nice.
21:35 jnthn brrt: gah, commit message got truncated but 2be1131 is for you. Rakudo patch tested and coming momentarily.
21:35 brrt i'll merge
21:36 jnthn Cool
21:36 dalek MoarVM/moar-jit: 5d4882c | jnthn++ | src/spesh/optimize.c:
21:36 dalek MoarVM/moar-jit: Normalize truth value.
21:36 dalek MoarVM/moar-jit:
21:36 dalek MoarVM/moar-jit: We could come across a case where it will not be 1.
21:36 dalek MoarVM/moar-jit: review: https://github.com/MoarVM/MoarVM/commit/5d4882c5e0
21:36 dalek MoarVM/moar-jit: e5370df | jnthn++ | src/spesh/optimize.c:
21:36 dalek MoarVM/moar-jit: Don't redo dead instruction elim on inlinees.
21:36 dalek MoarVM/moar-jit:
21:36 dalek MoarVM/moar-jit: For one, they've already had it done. For two, this doesn't quite
21:36 dalek MoarVM/moar-jit: respect deopt boundaries correctly.
21:36 dalek MoarVM/moar-jit: review: https://github.com/MoarVM/MoarVM/commit/e5370df371
21:36 dalek MoarVM/moar-jit: c440b85 | jnthn++ | src/spesh/inline.c:
21:36 dalek MoarVM/moar-jit: Make sure inlined args are always marked as used.
21:36 dalek MoarVM/moar-jit: review: https://github.com/MoarVM/MoarVM/commit/c440b85450
21:40 * brrt is afk for tonight, i'll try to work on extops + findmeth bugs
21:40 brrt left #moarvm
21:40 colomon joined #moarvm
22:07 ventica joined #moarvm
22:29 timotimo brrt, i'm afraid your // comments may make msvc unhappy
22:29 timotimo i think it only allows /* ... */

| Channels | #moarvm index | Today | | Search | Google Search | Plain-Text | summary