Perl 6 - the future is here, just unevenly distributed

IRC log for #moarvm, 2014-04-30

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

All times shown according to UTC.

Time Nick Message
00:52 japhb TimToady, nwc10: I wrote a 'concurrency' branch for Net--IRC, which I was holding off on merging at least until r-m's threading was as solid as r-j's.  That seems to be very close, if not already there.  I had also wanted to updated it for async I/O, which I know has landed in r-m -- but I'm sufficiently backlogged that I don't know how stable it is.
00:53 japhb In any case, with a concurrent IRC bot on r-m, it should be very doable to start dogfooding long-lived Perl 6 services for our channels.
00:54 * japhb is scrabbling for tuits as hard as he can ...
01:08 FROGGS_ joined #moarvm
01:37 btyler joined #moarvm
01:55 woosley joined #moarvm
02:25 donaldh joined #moarvm
06:47 FROGGS joined #moarvm
06:58 jnthn japhb: Don't know of any issues in the async sockets, but they're heavily under-tried so far
06:58 jnthn japhb: We do have some bugs in general conc stuff still
06:59 * jnthn is also hunting tuits :)
07:00 jnthn I guess tomorrow is May Day, so in theory I have time to hack up some stuff :)
07:28 zakharyas joined #moarvm
07:35 donaldh_ joined #moarvm
08:18 * timotimo replaces a couple of if (thing) with if (!MVM_is_null(tc, thing)) in the perl6 ops file
08:19 timotimo no joy, though.
08:21 timotimo the symptom is we've got an outer that's a null pointer from an MVMCode and we only check if outer->outer is null
08:22 timotimo not quite sure why it happens that we're looking at a code entirely without an outer
08:24 timotimo apparently in capture outers we are trying to set the outer's outer to something, which can hardly work if the outer itself doesn't exist
08:24 timotimo and now i can't look at outer without thinking it's wrong
08:25 timotimo checking that for null lets us continue a bit, but i'm not sure if it'll lead to something functional
08:26 timotimo well, it gets us through the core.setting compilation and restricted.setting now fails with Cannot invoke null object
08:28 timotimo hm. we're trying to MapIter.$!block ~~ Inf
08:29 timotimo and then the line self.isNaN ?? $a.isNan !! $a == self inside Numeric breaks
08:33 moritz that looks distinctly wrong
08:33 moritz is there both a isNaN and a isNan method?
08:33 timotimo er. typo.
08:33 timotimo it's isNaN both times
08:34 moritz seems like it could be simplified to self.isNaN || $a == self
08:34 timotimo anyway. that's where we try to invoke a null object. so i guess the problem is somewhere hidden deep within the guts of moar/rakudo rather than directly here
08:34 moritz (I know that's not what you're getting it)
08:35 timotimo hmm, any number ~~ NaN?
08:35 moritz m: say 42 ~~ NaN
08:35 camelia rakudo-moar c9f223: OUTPUT«False␤»
08:35 timotimo how does that code give false?
08:36 moritz m: say 42 == NaN
08:36 camelia rakudo-moar c9f223: OUTPUT«False␤»
08:36 moritz ah, never mind
08:36 moritz I'm confused
08:36 moritz it's correct in there
08:37 timotimo ah!
08:37 timotimo it refers to $a and then self
08:37 timotimo that makes more sense.
08:37 moritz right
08:37 timotimo if you *could* improve that bit of code, you could become a rich man :P
08:38 timotimo Real already defines isNaN to just return Bool::False
08:39 timotimo maybe that could be defined "is pure", but i don't think it makes much of a difference.
08:40 moritz only subroutines profit from 'is pure' atm
08:40 timotimo OK
08:40 timotimo once spesh gets to inlining methods, this'd get very cheap
08:40 timotimo but that seems a bit far off at the moment
08:41 timotimo AFK for now.
09:01 jnthn timotimo: Feel free to gist me your patch; it will give me a good hint to the issue if nothing else. :)
09:01 jnthn oh, nm, you pash already
09:01 jnthn will look at it later...on the train home :)
09:46 woosley joined #moarvm
10:14 timotimo that sounds like "much later" though? :(
10:24 jnthn well, it's today at least :P
10:32 nwc10 it's better than "tomorrow". eg https://twitter.com/elonmusk/status/461055064438628353
11:52 jnthn hah. Another class who're sufficinetly into the exercises, cake break is uninteresting. Or maybe it's just the large serving of beef at lunchtime. :)
11:53 nwc10 at least you won't go horse shouting at them to get them to return from a break. :-)
11:57 jnthn .oO( I didn't say I'm a pony, I said I'm a little horse... )
12:52 colomon joined #moarvm
13:08 btyler joined #moarvm
13:26 btyler joined #moarvm
13:36 btyler joined #moarvm
13:53 FROGGS[mobile] joined #moarvm
13:57 FROGGS[mobile] joined #moarvm
14:05 btyler joined #moarvm
14:25 donaldh joined #moarvm
14:59 FROGGS joined #moarvm
17:05 jnthn timotimo: Your patch is in the right direction but it is really wrong to MVM_is_null on a frame...
17:05 jnthn It only ever makes sense on an MVMObject
17:07 timotimo ah, fair enough
17:07 jnthn All the other bits look good though
17:12 timotimo that mildly surprises me :)
17:14 timotimo trying to boot a self-made usb linux and gettting a different error every time
17:14 timotimo but mostly superblock problems during mounting or checking the filesystem
17:47 LLamaRider joined #moarvm
18:36 dalek MoarVM/vm-null: 456e099 | jonathan++ | src/core/frame.c:
18:36 dalek MoarVM/vm-null: Update invocation handling for VMNull.
18:36 dalek MoarVM/vm-null: review: https://github.com/MoarVM/MoarVM/commit/456e0993e7
19:03 dalek MoarVM/vm-null: 0d28951 | jonathan++ | src/core/hll.c:
19:03 dalek MoarVM/vm-null: Factor VMNull into null HLL mapping.
19:03 dalek MoarVM/vm-null: review: https://github.com/MoarVM/MoarVM/commit/0d289510cb
19:31 japhb Using IO::Notification.watch_path($dir) on r-m -- I only get changes directly in that directory, not recursively.  Is that intended?  Is there anyway to get the recursive behavior?
19:33 timotimo it is intended, we shall build a perl6-level solution for that
19:36 japhb timotimo: How can that possibly be efficient?  I thought you really need to tell the file-watcher service/daemon/whatever the whole tree you wanted to look at, so that it could take advantage of OS-/FS-level support for doing that efficiently?
19:37 timotimo don't ask me
19:37 timotimo it's probably just what libuv gives us
19:39 jnthn japhb: Write a module.
19:39 jnthn japhb: There's no portable OS support for it.
19:39 jnthn japhb: You'd be horrified how horribly OSes suck at this.
19:39 btyler japhb: I was toying with watchers in go lately, and apparently the main issue is that not all platforms provide a decent recursive watch: https://github.com/howeyc/fsnotify/issues/56#issuecomment-36683923
19:39 jnthn Windows is one of the better ones, and it's still crap.
19:40 timotimo how can windows be better than my favourite OS, linux, at ANYTHING!
19:47 japhb bak
19:47 japhb OK, makes sense, I'll look at that bug btyler.
19:47 japhb jnthn: :-/
19:48 lee_ OS X has FSEvents which is decent imo
19:49 japhb timotimo: For all I hate Windows (I *earned* it, BTW), I have to say that from day 1 WinNT had an *excellent* system performance monitoring system, that I didn't see replicated in free software for a long time.  "top is good enough!" they all cried.  :-P
19:50 japhb Hell, I *still* miss perfmon
19:55 timotimo :D
19:55 timotimo do you know perf, btw?
19:55 timotimo that thing is pretty amazing
19:55 timotimo and what systemd does with cgroups is cool
20:00 japhb timotimo: I had not used perf before, no -- though it seems to be at a somewhat different level, just skimming the help.
20:01 japhb One of perfmon's greatest assets was being explorable.  If you understood basic OS design and HW subsystems, you could find a LOT of useful info.
20:03 timotimo OIC
20:06 rurban_ joined #moarvm
20:10 japhb ... and correlate various stats easily.  Plus, a fair number of services exported perfmon stat data, sorta like D counters nowadays, so you could go "I see how MS SQL is pounding the OS right now, even though it's not thrashing the disk."
20:12 dalek MoarVM/vm-null: b641763 | jonathan++ | src/ (15 files):
20:12 dalek MoarVM/vm-null: Make array and hash use VMNulls; fix fallout.
20:12 dalek MoarVM/vm-null:
20:12 dalek MoarVM/vm-null: With this, NQP still builds/passes tests.
20:12 dalek MoarVM/vm-null: review: https://github.com/MoarVM/MoarVM/commit/b641763c2d
20:21 dalek MoarVM/vm-null: 71dd456 | jonathan++ | src/core/hll.c:
20:21 dalek MoarVM/vm-null: Use MVM_is_null in gethllsym.
20:21 dalek MoarVM/vm-null: review: https://github.com/MoarVM/MoarVM/commit/71dd45645c
20:28 japhb I missed it in the backlog ... what's the advantage of VMNull?
20:29 nwc10 was on #perl6
20:29 nwc10 19:58 < jnthn> lazy allocation of containers - including $!, $/ and $_
20:31 dalek MoarVM/vm-null: bf37fe2 | jonathan++ | src/core/interp.c:
20:31 dalek MoarVM/vm-null: Use MVM_is_null in sp_findmeth.
20:31 dalek MoarVM/vm-null: review: https://github.com/MoarVM/MoarVM/commit/bf37fe2682
20:31 jnthn japhb: Also, null not actually being a C null that explodes wiht a SEGV.
20:35 japhb Nice on both counts.
20:36 japhb nwc10: Clearly my attempt to stay real-time on #moarvm and let #perl6 backlog grow is biting me in the tookus.  :-)
20:42 dalek MoarVM/vm-null: 32269a0 | jonathan++ | src/ (2 files):
20:42 dalek MoarVM/vm-null: A couple more placs MVM_is_null is needed.
20:42 dalek MoarVM/vm-null:
20:42 dalek MoarVM/vm-null: With this, Rakudo builds and sanity-tests again.
20:42 dalek MoarVM/vm-null: review: https://github.com/MoarVM/MoarVM/commit/32269a0c97
20:46 nwc10 jnthn: you were clean on make test on Rakudo without that
20:46 nwc10 will update and leave it running, but I'm going to bed
20:47 jnthn k
20:47 jnthn spectest with that isn't too bad. Have to get to S17 before I see new failure.
20:47 nwc10 the goalposts, they keep moving
20:48 nwc10 "this week^W5 minutes" :-)
20:51 jnthn Will work on those S17 fails at home
20:51 jnthn gotta detrain
20:51 jnthn bbiab
20:51 nwc10 hopefully last-week jnthn was organised with the fridge
20:52 nwc10 in that context, that's much better than 5-minute-ago jnthn
21:10 jnthn There's 2 imperial IPAs, an oatmeal stout, and a...corriander ale (?!)
21:10 cognominal__ joined #moarvm
21:13 FROGGS hehe
21:13 FROGGS I like that "(?!)"
21:23 donaldh_ joined #moarvm
22:04 jnthn Turns out the coriander ale is actually a trippel!
22:04 jnthn And quite tasty too
22:05 FROGGS what is a trippel?
22:07 FROGGS http://www.beeradvocate.com/beer/profile/192/1054/
22:08 jnthn Yes, that's the one
22:08 FROGGS On the taste, wow, very hoppy. Didn’t expect that. Bitter for a trippel. Very little sweetness. I’m not detecting any citrus or sweet-ish floral tastes that you might associate with a Belgian trippel. Nor any trace of this coriander. 7.8% ABV, so it packs a punch. The complexity might be there, but my taste buds have surrendered to the hops.
22:08 FROGGS hehe
22:08 FROGGS I could never say such things about a beer :o)
22:09 jnthn FROGGS: http://en.wikipedia.org/wiki/Tripel
22:10 jnthn Yes, it is bitter from its style. otoh I drink IPAs all the time so I'm finding the bitterness pretty fine :)
22:10 jnthn *for its style
22:11 FROGGS ahh, I see
22:11 dalek MoarVM/vm-null: 405b1ec | jnthn++ | src/io/eventloop.c:
22:11 dalek MoarVM/vm-null: Do VM null check in event loop.
22:11 dalek MoarVM/vm-null: review: https://github.com/MoarVM/MoarVM/commit/405b1ec9a6
22:11 jnthn That probably fixes the S17 regressions
23:27 japhb Watching /usr/local/google/home/gjb/foss/git/japhb-talks for changes
23:27 japhb Noticed change at lightning-talk
23:27 japhb Generated 1 presentation and updated index
23:27 japhb \o/
23:27 jnthn :)
23:27 japhb That ... is ... awesome.
23:29 japhb The one problem is that moar is idling at 103% CPU right now
23:29 japhb Is the notifications thread busy waiting?
23:31 jnthn It's not meant to be.
23:31 jnthn But I've observed that to.
23:31 jnthn So, "not by design".
23:31 jnthn *too
23:31 jnthn But something's up.
23:32 japhb Fair enough.
23:32 jnthn Didn't have chance to investigate yet. It's on the todo list.
23:33 japhb For now, I'm content to burn a core on my desktop to have near-instant updates while I'm iterating on a slide deck, but I'm glad the bug's on the todo list.
23:34 jnthn The IO::Notifications stuff is bleeding edge, in the "still bleeding" sense. :)
23:34 * japhb notes that chrome is burning another core or so ... remember when cores were actually *precious*?
23:34 japhb *chuckle*
23:41 japhb FWIW, watching a tree of directories is relatively easy: https://github.com/japhb/japhb-talks/blob/master/tools/make-presentations#L119
23:42 japhb Over half the complexity of that already short function is that File::Find doesn't have either skip functionality or matching/ignoring with general Code.
23:46 jnthn Still, cute solution. And merging the supplies is what I'd expect.
23:46 jnthn OK, rest time here :)
23:46 jnthn 'night
23:46 japhb Good night!

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