Perl 6 - the future is here, just unevenly distributed

IRC log for #moarvm, 2014-04-21

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

All times shown according to UTC.

Time Nick Message
01:26 FROGGS__ joined #moarvm
02:11 colomon joined #moarvm
02:26 woosley joined #moarvm
07:33 FROGGS joined #moarvm
10:34 dalek MoarVM: f48f2eb | jnthn++ | / (5 files):
10:34 dalek MoarVM: Implement file watchers.
10:34 dalek MoarVM:
10:34 dalek MoarVM: On top of what libuv provides, and hopefully fairly portably. If we
10:34 dalek MoarVM: want recursive watching and so forth, better to implement that in
10:34 dalek MoarVM: Perl 6 rather than C.
10:34 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/f48f2eb244
10:42 brother joined #moarvm
10:49 colomon joined #moarvm
11:26 dalek MoarVM: 07b36b0 | jnthn++ | src/ (9 files):
11:26 dalek MoarVM: Add infrastructure for cancellation.
11:26 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/07b36b02c8
11:26 dalek MoarVM: 61c8cc7 | jnthn++ | src/io/timers.c:
11:26 dalek MoarVM: Implement cancellation of timers.
11:26 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/61c8cc70f4
12:03 nwc10 gosh, the MoarVM build is like the prototype ARM thermal envelope
12:36 btyler joined #moarvm
12:38 jnthn nwc10: heh, that reference is obscure enough to leave on wondering if it's a compliment or not :P
12:38 dalek joined #moarvm
13:41 LLamaRider joined #moarvm
13:54 vincent21 joined #moarvm
14:25 nwc10 I can't actually find a useful "citation", but I'm sure I did recently read the story about how they knew they couldn't afford to make the chip with a ceramic packaging
14:25 nwc10 and they didn't have a way to calculate the power consumption, so they just played it safe
14:25 nwc10 *very* safe as it turned out
14:41 vincent21 joined #moarvm
15:27 timotimo i still don't get it :)
15:27 timotimo how does that apply?
15:29 colomon joined #moarvm
15:33 FROGGS I understand it as that the build system is playing safe in a way that there is no guessing, but knowing or dying
15:34 timotimo oh, ok
15:35 FROGGS which would be the Perl 6 approach anyway...
15:41 bcode joined #moarvm
16:07 nwc10 no, it was that jnthn wanted the build to be fast
16:07 nwc10 he rather overshot "fast"
16:11 jnthn nwc10: How fast can you build a MoarVM? :)
16:12 nwc10 real    0m4.968s
16:12 nwc10 user    0m8.739s
16:12 nwc10 sys     0m3.147s
16:12 jnthn o.O
16:12 nwc10 from clean, with ccache
16:12 JimmyZ time make -j8
16:12 JimmyZ real    0m10.248s
16:12 JimmyZ user    0m28.807s
16:12 JimmyZ sys     0m10.310s
16:12 nwc10 "my" machine has 24 cores
16:12 jnthn core blimey...
16:13 JimmyZ 1 core here..
16:13 FROGGS real0m13.927s
16:13 FROGGS user0m37.892s
16:13 FROGGS sys0m3.719s
16:13 nwc10 it's a production-grade server
16:13 FROGGS 2 cores with HT enabled
16:13 nwc10 it's not mine.
16:14 FROGGS and now recompile parrot *g*
16:14 FROGGS </troll>
16:14 nwc10 not sure how many real, or if it's 12 with HT
16:14 FROGGS could be two six-cores with ht
16:14 FROGGS (but could be anything else too)
16:18 nwc10 looks to be. dmesg suggests that it's one of these: http://ark.intel.com/products/47926/intel-xeon-processor-l5640-12m-cache-2_26-ghz-5_86-gts-intel-qpi
16:18 nwc10 well, 2 of those
16:18 nwc10 so, heck, actually it's old.
16:19 FROGGS we usually have these at work also
16:22 nwc10 equivalent parrot configure, build and install is
16:22 nwc10 real    0m24.775s
16:22 nwc10 user    2m58.766s
16:22 nwc10 sys     0m25.024s
16:22 nwc10 when it works
16:23 nwc10 (looks like there is an intermittent parallel build failure - presumably a missing dependency
16:24 hoelzro joined #moarvm
16:25 FROGGS I can't even build 6.3 fwiw
16:25 nwc10 I was building "Release 6.3.0 (supported release)"
16:36 moritz who supports it? :-)
16:53 rurban_ parrot does
16:53 rurban_ what's the problem?
16:54 rurban_ like: clean make with -j4 fails?
16:58 FROGGS rurban_: hmmm, I do not get the error anymore, it it failed like "Cannot find auto/expect.pm" during Configure
16:59 rurban_ that's a new probe, hmm. I'll check
17:00 FROGGS but I do not get that anymore for 6.1, 6.2, 6.3 and HEAD
17:02 rurban_ This probe came with 6.2.0
17:05 FROGGS rurban_: I'd just provide more information when I hit this problem again, okay?
17:15 FROGGS jnthn: is that the right time to make hyperops multi threaded on moar?
17:17 rurban_ FROGGS: yes, please. sound like an interesting MANIFEST or git pull problem
17:17 FROGGS rurban_: k, will do
18:02 btyler joined #moarvm
18:52 vincent21 left #moarvm
19:07 brrt joined #moarvm
19:09 brrt hey, #moarvm, i've just been informed that indeed i'll be building moar's JIT compiler for the summer
19:09 brrt :-D
19:09 colomon \o/
19:09 colomon GSoC?
19:10 brrt yes
19:10 jnthn \o/
19:10 colomon brrt++
19:10 brrt tnx :-)
19:10 jnthn ++brrt ;
19:10 jnthn brrt++ too, for making it this far :)
19:10 jnthn .oO( I've just been informed I'll be mentoring for GSoC this summer... :D )
19:10 FROGGS \o/
19:10 FROGGS brrt++
19:11 brrt yes that too :-D
19:11 brrt and timotimo++ too
19:11 lizmat brrt++, jnthn++
19:11 lizmat and timotimo++  something to mention in the weekly  :-)
19:12 brrt so i'm really excited of course
19:12 brrt i've been reading up on dynasm
19:13 jnthn :)
19:13 brrt its basically a): an assembler-in-a-header-file and b): a preprocesor for that assembler
19:14 jnthn Yeah...afaict it basically turns the thing you write into instructions for the assembler...
19:14 brrt (actually, the assembler is split over both the header file and the preprocesor in a way)
19:15 brrt and i think its probably best to focus on x64
19:16 FROGGS that would be state of the art, yes
19:18 jnthn Yes, that's my preferred focus too
19:18 brrt yes, and also - many more registers, 64 bit registers, etc
19:19 jnthn aye ;)
19:20 brrt and excellent documentation, i might add
19:21 brrt (and dynasm fits well into a makefile-based-build)
19:22 moritz brrt: have you seen that blog post where a brainfuck JIT compiler is built?
19:22 timotimo oh, it is monday!
19:22 timotimo i totally forgot!
19:22 moritz blog.reverberate.org/2012/12/hello-jit-world-joy-of-simple-jits.html # this one
19:23 moritz oh, and brrt++ jnthn++ timotimo++
19:23 timotimo brrt++ jnthn++ :)
19:24 brrt yes i did moritz :-) it was on hacker news recently? i've the source code checked out
19:24 jnthn timotimo: Well, doing it now menas it's after my brunch merge
19:24 jnthn uh, branch
19:25 timotimo the asyncops branch?
19:25 jnthn yeah
19:25 jnthn well, async in Rakudo
19:26 moritz brrt: dunno, I remember it from when it came out, it was on HN and reddit then
19:28 zakharyas joined #moarvm
19:29 brrt its a good article, if perhaps the only good documentation of dynasm
19:31 timotimo we only have async I/O for sockets thus far?
19:34 jnthn timotimo: Yeah, not files yet
19:34 jnthn timotimo: Though also there is timers, file watchers, and signals.
19:34 jnthn timotimo: So you can winch up your code...
19:34 timotimo yay :)
19:34 timotimo i must find another excuse to continue procrastinating that project :|
19:36 jnthn Damn, you were gonna be the way I knew if the signals thing worked :P
19:36 timotimo i could just as well build a few simple test applications first :)
19:36 timotimo i'll probably have something soon enough that we'll get it tested a bit for the next release :P
19:37 jnthn Also nice that on https://www.google-melange.com/gsoc/projects/list/google/gsoc2014 I see the LWP one too :)
19:37 timotimo yes! \o/
19:37 jnthn Hopefully we can get async variants of those in there somewhere too :)
19:38 timotimo those things are public, so i'm free to write about them on my blog?
19:39 timotimo i mean the gsoc applications being accepted
19:39 brrt moritz++ , FROGGS++ for the LWP project
19:39 jnthn yes, page just linked to is public
19:39 timotimo great!
19:39 FROGGS I don't see it yet :/
19:40 FROGGS ahh, now I do :o)
19:40 timotimo i'll also link to the gists for crappy webserver and crappy LWP if that's all right
19:41 jnthn But they're SO crappy!
19:41 jnthn Make sure to say so :)
19:41 timotimo i will
19:43 timotimo where should i link for an example on timers? roast perhaps?
19:44 jnthn Dunno
19:45 brrt i see parrot indirectly got a student as well
19:45 brrt good luck for them
19:46 timotimo indirectly?
19:46 jnthn timotimo: I dunno, just show Supply.merge(Supply.interval(2).map({ 'tick' }), Supply.interval(2, 1).map({ 'tock' })).tap(&say); sleep 10; :)
19:47 * timotimo builds a fresh rakudo
19:48 moritz m: Supply.merge(Supply.interval(2).map({ 'tick' }), Supply.interval(2, 1).map({ 'tock' })).tap(&say); sleep 10;
19:48 camelia rakudo-moar 544ed9: OUTPUT«(signal )Unhandled exception in code scheduled on thread 140555843340032␤Cannot call method 'more' on a null object␤  in block  at src/gen/m-CORE.setting:18947␤  in block  at src/gen/m-CORE.setting:18494␤  in method more at src/gen/m-CORE.setting:1…»
19:48 timotimo :D
19:48 brrt http://brrt-to-the-future.blogspot.nl/ :-)
19:48 jnthn 544ed9? That's no HEAD...
19:50 moritz last build died with
19:50 moritz Stage jast       : Method 'jast' not found for invocant of class 'NQPMu' in  (gen/jvm/stage2/QAST.nqp:3813)
19:50 jnthn moritz: oh, and all 3 backends have to build?
19:51 jnthn I think FROGGS++ fixed that but I guess we need to bump NQP_REVISION?
19:51 moritz jnthn: yes
19:51 FROGGS <dalek> rakudo/nom: e974894 | (Tobias Leich)++ | tools/build/NQP_REVISION:
19:51 FROGGS <dalek> rakudo/nom: bump nqp rev for unbreak of pointies in if
19:51 FROGGS <dalek> rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e974894efd
19:52 moritz I guess it didn't try to rebuild after that
19:52 moritz aye, it rebuilds at 8 minutes past the full hour
20:04 timotimo supplies based on timers (so Supply.interval) has been supported on JVM for a bit longer now, right?
20:05 TimToady does the sampler pick the first event in every interval, or a randome event in every interval?
20:05 TimToady *random
20:05 TimToady seems like the first event is going to be subject to timing coincidences if production is cyclic
20:06 jnthn TimToady: yeah... "last one" is another option.
20:06 TimToady that's also problematic
20:06 jnthn Yeah
20:06 jnthn First one is easiest to implement
20:06 TimToady how 'bout replace the last one based on decreasing probablility
20:06 jnthn oh wait, we meant opposite things by last :)
20:06 jnthn Hm :)
20:07 jnthn Yeah, that's not bad.
20:07 TimToady I think there's even an RC entry for that algo :)
20:08 jnthn TimToady: http://www.introtorx.com/content/v1.0.10621.0/13_TimeShiftedSequences.html#Sample is how they have it in Rx, fwiw
20:08 jnthn Not saying we have to go that way, just another data point
20:09 jnthn latest can make sense if your data is such that newer is always better, but you want to throttle the rate it comes at you.
20:11 lizmat are we speccing Supply.sample here?
20:11 lizmat with e.g. named param :last
20:11 TimToady discussing semantics, anyway
20:11 lizmat :first
20:11 lizmat :any
20:11 lizmat ?
20:12 lizmat each of this accepting a number
20:12 jnthn I can see use cases either way, so maybe we do want to support more than one of them.
20:12 jnthn a number? :)
20:12 TimToady 5 last values?
20:13 jnthn Thing is, the adverbs seem mutually exclusive...
20:13 TimToady so maybe just a different method name
20:13 jnthn yeah
20:13 TimToady .sample-recent vs .sample-random
20:14 timotimo i must have been asleep for most of last week ... i don't really recall many things i could report except timers, async i/o, many supply methods (lizmat++) and the release
20:15 lizmat timotimo: Mouq's 17f4ee310239e1dd3d84c2205e479fdce8a7b966
20:16 timotimo oooh! good one!
20:16 lizmat lue's e63497d3e6efe4da929048c2a277cda70c12643d
20:16 jnthn Various assorted Rakudo threading bugs got fixed along the way too
20:17 lizmat Nami-Doc's e5725364c4479b6c8d0c3149e33350ca9d1a221f
20:18 lizmat Donald Hunter's 626fd391b8c3d820d2509ab560687cea1c81a10f
20:18 * lizmat shuts up :-)
20:27 dalek MoarVM: 4a8dac6 | (Tobias Leich)++ | src/io/ (3 files):
20:27 dalek MoarVM: stat the target of a symlink when we query for filesize
20:27 dalek MoarVM:
20:27 dalek MoarVM: This will also follow symlinks after symlinks to get to an actual file.
20:27 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/4a8dac66b8
20:31 timotimo brrt: please add another s to my last name on your first blog post :)
20:32 brrt sure :-)
20:33 brrt Paulssen, is it?
20:34 timotimo yup
20:34 brrt changed it :-)
20:39 brrt i'll try to be at the dutch perl workshop this friday, but i can't promise anything
20:40 jnthn brrt: OK. I'll see you there, if you can :)
20:40 brrt yes, if i can't be there, maybe we could meetup later that day?
20:40 brrt utrecht is only 2 hours' train away from me
20:40 jnthn I'm staying that evening in Utrecht, I belive.
20:41 jnthn And have nothing to do but hang out with Perl people :)
20:41 jnthn So should work.
20:41 jnthn I dunno exactly what the post-conf plans are but we can figure a way to meet up.
20:41 brrt sure
20:41 brrt i'm going to sleep in a few minutes, so i'll speak to you tomorrow :-)
20:42 brrt bye o/
20:42 brrt left #moarvm
20:45 jnthn o/
20:51 btyler joined #moarvm
21:42 dalek MoarVM: a75ad37 | (Tobias Leich)++ | src/io/fileops.c:
21:42 dalek MoarVM: return a value in all cases in follow_symlinks
21:42 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/a75ad37cf9
21:48 dalek MoarVM: 73f8fe1 | (Tobias Leich)++ | src/io/ (3 files):
21:48 dalek MoarVM: rename follow_symlinks to make clear it stats
21:48 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/73f8fe1e3e

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