Perl 6 - the future is here, just unevenly distributed

IRC log for #moarvm, 2015-11-23

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

All times shown according to UTC.

Time Nick Message
00:32 tokuhiro_ joined #moarvm
02:33 tokuhiro_ joined #moarvm
02:48 ilbot3 joined #moarvm
02:48 Topic for #moarvm is now https://github.com/moarvm/moarvm | IRC logs at  http://irclog.perlgeek.de/moarvm/today
04:33 vendethiel joined #moarvm
04:35 tokuhiro_ joined #moarvm
05:59 xiaomiao joined #moarvm
06:36 tokuhiro_ joined #moarvm
06:57 FROGGS joined #moarvm
07:03 domidumont joined #moarvm
07:08 domidumont joined #moarvm
07:26 tokuhiro_ joined #moarvm
07:28 flaviusb joined #moarvm
08:00 nwc10 good *, #moarvm
08:00 diakopter o/ nwc10
08:22 zakharyas joined #moarvm
08:22 domidumont joined #moarvm
08:24 Ven joined #moarvm
08:31 tokuhiro_ joined #moarvm
08:48 Ven joined #moarvm
09:32 tokuhiro_ joined #moarvm
09:39 Ven joined #moarvm
09:46 jnthn moarning o/
09:47 jnthn hoelzro: By "common callsite" you probably mean "interned", and there's a flag for that.
09:49 kjs_ joined #moarvm
10:05 zakharyas1 joined #moarvm
11:21 dalek joined #moarvm
11:22 dalek joined #moarvm
11:34 tokuhiro_ joined #moarvm
11:45 Ven joined #moarvm
12:04 kjs_ joined #moarvm
12:32 Ven_ joined #moarvm
12:45 kjs_ joined #moarvm
13:14 brrt joined #moarvm
13:15 brrt good * #moarvm
13:27 jnthn o/ brrt
13:32 brrt \o jnthn
13:34 zakharyas joined #moarvm
13:35 tokuhiro_ joined #moarvm
13:51 hoelzro jnthn: ah, thanks!  I didn't notice that
13:51 hoelzro good moarning all!
14:04 domidumont joined #moarvm
14:19 brrt good * hoelzro
14:37 tokuhiro_ joined #moarvm
14:37 timotimo diakopter: to be honest, if the spec tests all succeed, i don't think you need to hold back that one-line patch :)
14:49 Ven joined #moarvm
15:28 diakopter brrt: hi!
15:29 diakopter timotimo: well, [as jnthn mentioned in privmsg] it's suspect that it helps, since an object should already have that set when it is assigned to an SC to be serialized
15:29 timotimo oh?
15:30 diakopter I'm still looking for the exact right place to ensure it's set correctly as intended
15:30 brrt hi diakopter
15:30 brrt desginish question again
15:30 jnthn Could it be that we don't set the fast lookup thing when deserializing?
15:30 diakopter O_O
15:30 diakopter well I looked there, but I'll look again
15:31 diakopter I thought I fixed it, but it caused another problem [which may be indirectly related or unrelated]
15:31 * diakopter feels determined to solve it!
15:31 timotimo it definitely looks like a juicy target
15:32 diakopter jnthn: but all the wastage is when getidx is called from nqp code, so it's for when objects are being serialized
15:32 diakopter (as supported by the evidence that the improvement is almost entirely in mast/optimize phases
15:32 diakopter )
15:34 brrt labels are inserted, currently, during inorder traversal
15:34 diakopter well, I suppose it's a remote possibility it's for a very few extremely-hot items that were deserialized from the bootstrap
15:35 diakopter (which would make it an even awesomer improvement opportunity!) XD
15:35 brrt when inserting them in the tile list, shall i, a): make special-purpose magic tiles, or b): insert markers for the compiler to tak eover
15:35 brrt i kind of like the markers idea, myself...
15:35 diakopter me2
15:36 timotimo also me
15:36 timotimo seems a bit more explicit and probably not costly in terms of performance, eh?
15:37 diakopter by beer?
15:39 jnthn haha
15:40 timotimo performance by beer?
15:40 jnthn .oO( Beer pressure )
15:40 diakopter FROGGS' quit message
15:40 diakopter lol beer pressure
15:40 diakopter 10:37 -!- FROGGS [~froggs@p54BF18C2.dip0.t-ipconnect.de] has quit [Quit: Connection reset by beer]
15:41 timotimo ah, hehe
15:41 diakopter (for the online clog
15:41 timotimo my weechat filters out joins/parts in many cases
15:42 diakopter aha!
15:43 diakopter jnthn: found it
15:44 diakopter how do I tell make spectest to use https for cloning
15:44 timotimo oof
15:44 timotimo well, if you manually git clone, it should just use that; otherwise GIT_PROTOCOL in env? is that something we invented or does git itself support that?
15:45 hoelzro I think that's something we introduced
15:47 diakopter the spectest checkout doesn't respect --git-protocol to Configure
15:47 diakopter GIT_PROTOCOL doesn't work either
15:47 diakopter sigh
15:48 diakopter fixing I think
15:49 hoelzro you can use git's proxy options, but that unfortunately isn't terribly simple
15:49 timotimo doesn't sound so good
15:49 hoelzro you could also try Git's URL rewriting feature
15:51 hoelzro something like git config url.https.insteadOf = git
15:52 brrt yeah, inserting markers isn't costly,
16:02 kjs_ joined #moarvm
16:18 diakopter *grumble* *grumble*
16:20 vendethiel joined #moarvm
16:34 dalek MoarVM/cache_sc_idx: dab9af8 | diakopter++ | src/6model/s (2 files):
16:34 dalek MoarVM/cache_sc_idx: write sc idx when deserializing, repossessing, and preparing to serialize
16:34 dalek MoarVM/cache_sc_idx: review: https://github.com/MoarVM/MoarVM/commit/dab9af897e
16:34 diakopter jnthn: take a look at that branch?
16:35 jnthn diakopter: Will do after current thing I'm working on :)
16:35 jnthn Or while current thing spectests...
16:36 zakharyas joined #moarvm
16:37 dalek MoarVM/cache_sc_idx: 192a79e | nicholas++ | src/6model/serialization.c:
16:37 dalek MoarVM/cache_sc_idx: Bump minimum serialization format version.
16:37 dalek MoarVM/cache_sc_idx:
16:37 dalek MoarVM/cache_sc_idx: Now that we've rebootstrapped, we no longer need the code to read older
16:37 dalek MoarVM/cache_sc_idx: serialization versions.
16:37 dalek MoarVM/cache_sc_idx:
16:37 dalek MoarVM/cache_sc_idx: Again, mostly removal of if statements with ...->root.version checks, and
16:37 dalek MoarVM/cache_sc_idx: re-indenting because of the blocks this eliminates.
16:37 dalek MoarVM/cache_sc_idx: review: https://github.com/MoarVM/MoarVM/commit/192a79e41f
16:37 dalek MoarVM/cache_sc_idx: 47ab6f3 | hoelzro++ | src/strings/utf16.c:
16:37 dalek MoarVM/cache_sc_idx: Resize buffers as needed when taking a UTF-16 substring
16:37 dalek MoarVM/cache_sc_idx: review: https://github.com/MoarVM/MoarVM/commit/47ab6f3183
16:38 diakopter merge..
16:38 tokuhiro_ joined #moarvm
16:38 ilmari hoelzro++ # UTF-16 buffer resizing
16:39 * ilmari was hoping someone else would do that ;)
16:39 hoelzro =)
16:39 * ilmari has a nagging feeling there's some serious refactoring potential between all the MVM_string_*_encode_substr
16:39 ilmari functions
16:40 ilmari modifying them was very repetititive
16:40 timotimo diakopter: i thought "hey, maybe it's a reposession problem" while AFK, but it seems like you've already considered that properly
16:40 diakopter timotimo: \o/
16:40 timotimo i mean ... just looking at the commit message, not the actual diff
16:40 timotimo but it seems like you were a couple of commits behind from master?
16:41 diakopter Stage start      :   0.000
16:41 diakopter Stage parse      :  46.536
16:41 diakopter Stage syntaxcheck:   0.000
16:41 diakopter Stage ast        :   0.000
16:41 diakopter Stage optimize   :   6.803
16:41 diakopter Stage mast       :  12.416
16:41 diakopter Stage mbc        :   0.257
16:41 diakopter real1m6.150s
16:41 diakopter user1m5.103s
16:41 diakopter sys0m0.928s
16:41 diakopter urp
16:42 timotimo didn't you say you were at about 70 seconds of build time before?
16:44 diakopter the original best was 72 seconds
16:45 diakopter so, 66.1 seconds is a big improvement
16:46 timotimo oh!
16:46 timotimo \o/
16:46 diakopter (yes, spectest clean)
16:46 diakopter don't know about rebootstrap clean though XD XD
17:19 dalek MoarVM: 8380116 | jnthn++ | src/core/frame.c:
17:19 dalek MoarVM: Context-captured frames should remember caller.
17:19 dalek MoarVM:
17:19 dalek MoarVM: Otherwise we cannot traverse it later.
17:19 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/8380116b63
17:19 dalek MoarVM: 308b9b7 | jnthn++ | src/core/interp.c:
17:19 dalek MoarVM: Re-use MVM_frame_context_wrapper for nqp::ctx op.
17:19 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/308b9b72ca
17:20 timotimo 58.69user 0.39system 0:59.06elapsed 100%CPU -> 56.74user 0.38system 0:57.10elapsed 100%CPU
17:21 timotimo turns stage mast from 12.136 to 10.518
17:21 diakopter try a few runs ;)
17:22 diakopter I get like 4-5% variation either way
17:22 timotimo wow
17:29 timotimo oh, i still had your one-line patch
17:29 timotimo silly me
17:31 timotimo now the difference is much more pronounced!
17:31 tokuhiro_ joined #moarvm
17:32 timotimo 1:05 is the actual before-time.
17:33 * jnthn gets on to reviewing the patch :)
17:37 jnthn diakopter: Patch seems good to me; will cherry-pick and test locally :)
17:42 jnthn make test fails :(
17:42 jnthn (In Rakudo
17:42 jnthn All the nativecall tests seem to segfault
17:42 diakopter did you make clean :S
17:42 jnthn yes.
17:42 jnthn :(
17:42 diakopter well spectest was fine :S
17:42 jnthn Clean nqp, make install that, clean rakudo,make install that
17:43 jnthn Does make test work out for you?
17:44 diakopter yah but I haven't pulled the last two things you just did
17:45 jnthn Seems to be a mis-compile
17:46 jnthn Reverting the patch and make test again didn't clear it up; removing NativeCall.pm.moarvm and rebuilding that and make test passed
17:48 jnthn Dinner time; bbl :)
17:48 nwc10 curry? :-)
17:50 jnthn No :)
17:51 diakopter maybe make clean doesn't delete NativeCall.pm.moarvm
17:53 jnthn That'd cause an error always
17:53 jnthn (Wrong version)
17:53 diakopter oh
17:54 jnthn (As in, compiled against wrong version of setting)
17:54 jnthn So I don't think it's that
17:54 diakopter curious
17:59 FROGGS joined #moarvm
18:01 diakopter FROGGS: lol at your quit message
18:01 FROGGS *g*
18:08 tadzik kekeke
18:34 ilmari hoelzro++ # rakudo now passes 'make test spectest' with moarvm compiled with ASAN
18:36 xiaomiao joined #moarvm
18:43 kjs_ joined #moarvm
18:54 domidumont joined #moarvm
19:21 leont joined #moarvm
19:25 zakharyas joined #moarvm
19:26 diakopter___ joined #moarvm
19:30 diakopter___ joined #moarvm
19:33 tokuhiro_ joined #moarvm
19:54 diakopter___ joined #moarvm
20:01 zakharyas joined #moarvm
20:01 dalek MoarVM/cache_sc_idx: 8380116 | jnthn++ | src/core/frame.c:
20:01 dalek MoarVM/cache_sc_idx: Context-captured frames should remember caller.
20:01 dalek MoarVM/cache_sc_idx:
20:01 dalek MoarVM/cache_sc_idx: Otherwise we cannot traverse it later.
20:01 dalek MoarVM/cache_sc_idx: review: https://github.com/MoarVM/MoarVM/commit/8380116b63
20:01 dalek MoarVM/cache_sc_idx: 308b9b7 | jnthn++ | src/core/interp.c:
20:01 dalek MoarVM/cache_sc_idx: Re-use MVM_frame_context_wrapper for nqp::ctx op.
20:01 dalek MoarVM/cache_sc_idx: review: https://github.com/MoarVM/MoarVM/commit/308b9b72ca
20:01 dalek MoarVM/cache_sc_idx: e325b48 | (Matthew Wilson)++ | src/core/ (2 files):
20:01 dalek MoarVM/cache_sc_idx: Merge pull request #304 from MoarVM/master
20:01 dalek MoarVM/cache_sc_idx:
20:01 dalek MoarVM/cache_sc_idx: merge from master
20:01 dalek MoarVM/cache_sc_idx: review: https://github.com/MoarVM/MoarVM/commit/e325b48b9c
20:40 diakopter___ joined #moarvm
20:42 hoelzro the more I use valgrind, the more I love it
20:42 mtj_ joined #moarvm
20:43 arnsholt I attribute my very good grade in a network communications course to already knowing about valgrind
20:43 arnsholt That, and the fact that my laptop at the time was a PPC Mac, which meant that any slipup with network order/host order was immediately highlighted when I tested things between my x86 desktop and PPC laptop
20:44 arnsholt Callgrind is pretty awesome too
21:10 hoelzro yeah, I realized I've only scratched the *grind surface
21:14 zakharyas joined #moarvm
21:22 dalek MoarVM: 83b3ae3 | brrt++ | src/core/frame.c:
21:22 dalek MoarVM: Dynvar lookup check if we're using the JIT code
21:22 dalek MoarVM:
21:22 dalek MoarVM: For some reason, we sometimes 'drop out' the jitcode, into the
21:22 dalek MoarVM: spesh code, and I can't really find out why. But checking
21:22 dalek MoarVM: if this is the case fixes the long-standing panda bug.
21:22 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/83b3ae3838
21:23 jnthn \o/
21:23 jnthn brrt++
21:24 jnthn So hard bug. So small patch.
21:24 jnthn (A good sign. Means you probably fixed the real bug.)
21:26 brrt joined #moarvm
21:27 brrt yes, finally gone :-)
21:27 brrt (long time bus trips are good for something, at least)
21:27 jnthn :)
21:28 brrt although, it is mysterious to me why we'd have a spesh cand, the spesh cand have jitcode, and the frame not being on the jitcode - but on the spesh code
21:30 brrt any idea on how that might happen?
21:33 jnthn No...it's really odd
21:34 brrt doesn't seem to be related to OSR, or anything like that
21:34 jnthn But could be interesting to know in so far as it'd mean we're not using the JITted code when we could, and so may be losing out
21:34 brrt hmmm
21:34 jnthn And deopt would go to the unspesh'd done, so I can't see it being that either...
21:35 brrt also doesn't seem to be happening during deopt, or we should find deopt crashing much more often
21:35 tokuhiro_ joined #moarvm
21:37 brrt i mean before deopt
21:38 brrt maybe worthwhile to check within-rangeness of jit entry label at points where we use it
21:39 brrt anyway, i'll be off tonight, sleep well and all that :-)
21:40 jnthn Yeah, me too soon
21:40 jnthn Crazy early start
21:41 jnthn :(
21:42 brrt sleep well :-)
21:42 jnthn Thanks, you too! o/
22:15 colomon joined #moarvm
22:21 hoelzro should unicode_property_values_hashes live on the interpreter object instead of static memory? valgrind gets pretty mad that we don't clean up after it =/
22:22 mtj_ joined #moarvm
22:36 diakopter___ joined #moarvm
22:38 diakopter___ yah it should be cleaned up
22:45 hoelzro diakopter___: do you think it should be moved under the interpreter object? otherwise cleanup could get messy in a multiple interpreter environment
22:53 diakopter___ hoelzro: well, the MVMInstance, since it's all unchanging data, right?
22:53 hoelzro ah, yes
22:53 diakopter___ oh, you mean multi-Instance
22:53 hoelzro yes
22:54 hoelzro but one per instance (vs one per TC) should be fine, yes?
22:54 diakopter___ I guess the way to do it is make a protected (atomic) refcount of such shared global things
22:54 diakopter___ so that the last instance alive can clean it up
22:57 diakopter___ (where that atomic counter is also global)
23:00 hoelzro so even multiple MVMInstances should share that object? I suppose that would cut down on memory usage quite a bit
23:02 diakopter___ yeah, I think it's worth doing at some point. seems like a quick task
23:03 hoelzro maybe I'll get a round tuit tonight
23:03 diakopter___ obviously it would happen behind the scenes of MVMInstance creation (person writing code to link with libmoar and run multiple instances wouldn't need to worry about this)
23:04 hoelzro right
23:04 hoelzro just a part of create/destroy
23:08 timotimo Writing profiler output to profile-1448149404.2365.html
23:08 timotimo ===SORRY!===
23:08 timotimo KnowHOW methods must be called on object instance with REPR KnowHOWREPR
23:08 timotimo i wonder where this comes from :|
23:08 hoelzro =/
23:16 colomon joined #moarvm
23:37 tokuhiro_ joined #moarvm

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