Perl 6 - the future is here, just unevenly distributed

IRC log for #moarvm, 2015-06-02

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

All times shown according to UTC.

Time Nick Message
00:00 vendethiel joined #moarvm
02:21 vendethiel joined #moarvm
06:52 lizmat joined #moarvm
06:56 FROGGS joined #moarvm
07:01 Ven joined #moarvm
07:06 zakharyas joined #moarvm
08:06 FROGGS joined #moarvm
08:11 colomon joined #moarvm
08:34 masak question: does moar implement its own hashes nowadays?
08:34 masak I know it used to use uthash
08:36 masak no, looks like we're still on uthash
08:36 FROGGS a modified uthash
08:36 masak oh, ok.
08:36 FROGGS masak: read https://6guts.wordpress.com/2015/05/15/last-week-smaller-hashes-faster-startup-and-many-fixes/
08:36 masak so what was it that changed exactly, wrt ordering?
08:37 masak oki. thanks.
09:39 masak pardon me for saying this. sometimes as I read the MoarVM C source code, it has a very OO feel to it. :)
09:39 masak even though it's just regular non-OO C.
09:40 masak I wonder what causes that.
09:44 masak partly, I think, it's that the MVM_* prefixes feel like namespacing, by convention binding some functions to some structs.
09:44 FROGGS ohh, there is OO stuff
09:45 FROGGS like you call methods on a REPR, given a certain object
09:45 masak right, exactly.
09:45 masak though that example cheats a little bit, since anything MOP-related is bound to look like OO because... it is :P
09:46 masak but I mean that the rest does, too.
09:46 masak to be specific, it looks more OO-y than what little C code I've written in my life.
09:58 colomon joined #moarvm
10:15 brrt joined #moarvm
10:52 lizmat joined #moarvm
11:08 Ven joined #moarvm
11:34 vendethiel joined #moarvm
12:08 vendethiel joined #moarvm
12:30 kjs_ joined #moarvm
12:34 kjs_ left #moarvm
12:44 Ven joined #moarvm
12:44 brrt joined #moarvm
12:45 dalek MoarVM: fc28f88 | timotimo++ | src/ (3 files):
12:45 dalek MoarVM: jit throw[cat]{dyn,lex,lexotic}
12:45 dalek MoarVM:
12:45 dalek MoarVM: currently hangs execution.
12:45 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/fc28f88392
12:46 dalek joined #moarvm
13:04 brrt shouldn't dalek say something about a merge
13:05 brrt it is a merge
13:08 arnsholt It usually does, but I think it has to infer that it's a merge from the data it receives
13:08 arnsholt In this case, it sent too many messages to the server in too little time and was killed by the server
13:09 arnsholt Not uncommon when you push several commits at once
13:15 brrt the thing is, it doesn't *have* to infer that, as a merge commit always has more than one parent
13:26 FROGGS brrt: it just checks if there are more than N commits, and then prints a single line mentioning a heuristic branch merge
13:29 brrt can we change the implementation of dalek?
13:32 FROGGS I think so... lemme check
13:36 FROGGS brrt: https://github.com/perl6/infrastructure-doc/blob/master/hosts/hack.p6c.org.pod#dalek
13:38 FROGGS if (@{ $blob->{commits} } > 15) {
13:38 FROGGS common::put(\@tgt, "Heuristic branch merge: pushed " . @{ $blob->{commits} } . " commits to $project by " . $blob->{pusher}{name});
13:38 FROGGS so yes, we can change that
13:50 brrt yay
13:51 * brrt kind of likes the perl5 style 'this ref is an array in scalar context' syntactic magic in that line
13:51 brrt but i have to go now
13:51 brrt bbiab
13:52 FROGGS brrt: but there is not a clean flag in the json blurb that highlights merge commits
14:51 masak waitwait -- so, all this time dalek has been unable to tell when something's a merge simply because its author didn't know Git?
15:23 PerlJam ... and no one itched enough to scratch by looking at dalek source closely.
15:24 PerlJam brrt++ though
17:12 vendethiel joined #moarvm
17:35 FROGGS joined #moarvm
17:48 vendethiel joined #moarvm
18:44 lizmat joined #moarvm
19:06 vendethiel joined #moarvm
19:15 Peter_R joined #moarvm
19:37 jnthn evening, #moarvm
19:37 timotimo welcome back, Mister Jnthn!
19:37 timotimo (english doesn't really have a miss/misses equivalent for men, so ...)
19:39 timotimo jnthn: i was the one who told you to post the patch you had so far for the concurrency stability fixes, but i ended up not looking at that patch at all ;(
19:42 japhb jnthn!  Good to see you again.  How was (and where were) the festivities?
19:44 jnthn japhb: They were in Kherson, and they were really great. :)
19:44 jnthn timotimo: Well, maybe I'll get to that tomorrow amongst new apartment stuffs :)
19:45 zakharyas joined #moarvm
19:45 japhb Southern Ukraine?  Is that where the newly-minted spouse is from?
19:46 japhb Also, congrats again!
19:46 japhb Where are you moving to?
19:46 jnthn japhb: Indeed
19:46 jnthn japhb: Prague
19:46 japhb Still going to work for Edument?
19:46 jnthn Yes, though a new branch of it in .cz (and, yes, we'll be hiring :P)
19:48 japhb Are you the first employee there?  :-)
19:48 jnthn Yes :)
19:49 timotimo pretty neat
19:49 jnthn Yes :)
19:50 timotimo i would be interested in becoming an edument employee if i had teaching skills
19:51 jnthn timotimo: We don't *just* do teaching, we build stuff too
19:52 timotimo ah
19:52 timotimo hmm
19:52 timotimo so there's even positions where traveling a lot wouldn't be necessary?
19:53 timotimo anyway, BBIAB
19:55 jnthn timotimo: Yes, there's already a couple of folks who have such an arrangement.
19:56 FROGGS hi jnthn
19:57 * jnthn git pulls nqp and hopes he won't have to pull stage0 updates over Edge...
19:57 jnthn o/ FROGGS
19:57 jnthn *phew*, didn't
19:57 jnthn interp.c
19:57 jnthn src\core\interp.c(4768) : error C2036: 'void *' : unknown size
19:57 jnthn src\core\interp.c(4775) : error C2036: 'void *' : unknown size
19:57 jnthn oops?
19:57 jnthn Whozdunnit? :)
19:59 FROGGS jnthn: https://github.com/MoarVM/MoarVM/commit/bf680c5139cad2764bc3fd1f62f3db79bf57af14
20:00 jnthn ugh, github + edge = slow
20:01 jnthn uh, yes, it actually does pointer arith on a void pointer. D'oh.
20:01 jnthn I...didn't know that compiled *anywhere*
20:01 brrt joined #moarvm
20:01 jnthn Does anyone know the semantics it actually compiles with somewhere? :P
20:03 brrt \o jnthn
20:03 jnthn I'm guessing char *
20:03 jnthn From the code
20:03 brrt congratulations are in order i suppose :-)
20:03 jnthn o/ brrt
20:04 jnthn :)
20:05 * brrt thinks gcc treats void* as char*
20:06 brrt and wonders what other ways there'd be to do it
20:06 jnthn .oO( "latin corn gas out" would be out of order... )
20:06 brrt but .cz, very nice
20:07 brrt so yes, char* is correct
20:07 jnthn Goodness, bigintops.c is very upset too
20:08 brrt yes. timotimo spent some time trying to get &next to inline and concluded (or theorized) that it didn't happen because different equal P6int objects were logged as unequal
20:08 brrt because they didn't enter the int cache
20:08 brrt and so forced them into the int cache with arithmetic ops
20:10 jnthn mp_int *tmp[2] = { NULL, NULL }; \
20:10 jnthn I think that's the line that upsets it
20:10 vendethiel joined #moarvm
20:12 japhb jnthn: Did you ever post somewhere the Evject module from the last section of your objects intersect concurrency talk?
20:12 * brrt thinks msvc is being maybe a bit too picky
20:12 brrt by the way, haven't they (MS) open-sourced that yet?
20:13 jnthn oh, I misread...
20:14 jnthn It was an easy fix when I looked at the correct macro :)
20:14 jnthn japhb: Um...I'm not sure I did
20:14 japhb Er ... can you?  :-D
20:14 brrt oh, i have another question. where... could one implement e.g. isatty
20:15 brrt because in src/io/io.c we work on MVMOSHandles which are fully abstract
20:16 brrt and there doesn't seem to be an easy way to get a file handle that fore sure has either a regular fd integer or an uv_file_t
20:16 jnthn japhb: Not in a very orderly way, but https://gist.github.com/jnthn/da27ded3fbf06df7c54a
20:17 timotimo damn, on my machine i didn't get big chunks of errors
20:17 jnthn brrt: It'd probably need to be behind the abstraction
20:17 brrt on your machine you don't have msvc :-P
20:17 timotimo i shall fix that tonight
20:17 timotimo well, it's still not supposed to be upset :(
20:17 brrt then it'd go in MVMIOSyncReadable i presume?
20:18 brrt hardly the one-liner i'd expected
20:18 dalek MoarVM: 97f62b8 | FROGGS++ | src/6model/reprs/C (2 files):
20:18 dalek MoarVM: allow str type in attrs in CStruct and CUnion
20:18 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/97f62b8429
20:18 brrt (the fix for adding isatty i mean)
20:18 japhb jnthn: OK, thank you.  :-)
20:19 FROGGS the patch will fix this:
20:19 FROGGS m: use NativeCall; class Foo is repr<CStruct> { has str $.bar is rw }; my $foo = Foo.new(bar => "bar"); say $foo; $foo.bar = "baz"; say $foo
20:19 camelia rakudo-moar c2a57e: OUTPUT«CStruct: invalid native binding to object attribute␤  in block <unit> at /tmp/g_73EDiX6z:1␤␤»
20:19 dalek MoarVM: 6211ce4 | jnthn++ | src/ (2 files):
20:19 dalek MoarVM: Fix build on MSVC.
20:19 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/6211ce4ab0
20:19 FROGGS jnthn: still builds on linux fwiw
20:20 jnthn brrt: Hm, that doesn't feel quite like it fits...
20:20 jnthn brrt: But there sn't a better hook to hang it off at the moment, I don't think
20:39 * brrt doesn't know, either
20:39 brrt eof hangs on MVMSyncReadable, and isatty is similar....
20:39 brrt actually, hang on, that's wrong
20:40 brrt isatty should hang on MVMIOSyncWritable if anything
20:41 brrt hmm
20:41 brrt no, it is actually independent
20:41 jnthn Yeah, that was my conclusion too...
20:41 brrt (stdin and stdout can both be tty-ish)
20:43 jnthn Also there are things you cna do with something that *is* a tty
20:44 brrt aye, which is why you want to know it in the first place
20:44 brrt python, fwiw, implements isatty using a function in the os module
20:44 jnthn I wonder if we should just expose underlying file hands somehow
20:45 jnthn (descriptors I mean)
20:45 jnthn And punt such things to module space
20:45 brrt that's ok with me too, but MVMOSHandle's can be anything
20:45 timotimo well, there's ioctls and such that you may want to call on given file handles
20:45 timotimo even more so for sockets
20:45 jnthn Sure, but an os_handle function on the IO vtable could cut it
20:46 brrt yes. or we could do the parrotty thing and get the fd as a getint reprop :-P
20:47 jnthn no, we couldn't :P
20:47 jnthn We're meant to make different mistakes :)
20:48 jnthn In a few years, of course, non of the IO stuff should be written in C, but all written in NQP and using well-optimized native calling into C code on all the platforms that matter. :)
20:48 jnthn *none
20:48 jnthn But we're not ready for that yet. :)
20:48 brrt i suppose not :-)
20:49 timotimo when we have nativecall optimized to emit extremely tight calls at the jit level (and possibly at spesh'd or even interp'd level, too, if that's at all feasible), game dev with perl6 will be much more doable
20:50 timotimo but GLR is the tighter bottleneck at the moment, i think
20:50 jnthn *nod*
20:51 timotimo otherwise you'd be grabbing the $!storage out of your Arrays and use nqp::iter
20:53 brrt i don't think i've quite followed the whole GLR discussion
20:53 timotimo can you imagine that the send-more-money-subs benchmark has list iteration methods at the top of all the listings?
20:54 timotimo whether it be exclusive time spent or scalars or MVMCode objects allocated
20:54 timotimo there's a whole whooping lot of overhead to iterating over a non-lazy non-iterator-backed list at the moment
20:54 timotimo all for the benefit of supporting lazy/infinite or iterator-backed lists properly
20:55 timotimo and until Parcel gets done away with in some way, we have quite a lot of "coercion" calls to things like .list, .flat, ... all over the place
20:55 brrt hmmyes
20:56 brrt is GLR part of jnthn's work, too?
20:56 FROGGS more like pmichaud++'s work atm me thinks
20:56 FROGGS and TimToady++ did some (more visible) cleanup already
20:56 timotimo that's right; though TimToady ... yeah
20:59 brrt right, ok
20:59 brrt i suppose that will cause some fallout too
21:04 FROGGS probably, yes
21:04 timotimo likely
21:05 FROGGS parenthesis need to be added or removed here an there and binding can be omitted in other places I hope
21:06 jnthn GLR ain't supposed to be part of my work..
21:06 FROGGS gnight
21:06 jnthn 'night FROGGS
21:11 brrt goodnight
21:11 brrt in that case it's best to keep it out :-)
22:02 vendethiel joined #moarvm

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