00:00 vendethiel joined 02:21 vendethiel joined 06:52 lizmat joined 06:56 FROGGS joined 07:01 Ven joined 07:06 zakharyas joined 08:06 FROGGS joined 08:11 colomon joined
masak question: does moar implement its own hashes nowadays? 08:34
I know it used to use uthash
no, looks like we're still on uthash 08:36
FROGGS a modified uthash
masak oh, ok.
FROGGS masak: read 6guts.wordpress.com/2015/05/15/las...any-fixes/
masak so what was it that changed exactly, wrt ordering?
oki. thanks. 08:37
pardon me for saying this. sometimes as I read the MoarVM C source code, it has a very OO feel to it. :) 09:39
even though it's just regular non-OO C.
I wonder what causes that. 09:40
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
like you call methods on a REPR, given a certain object 09:45
masak right, exactly.
though that example cheats a little bit, since anything MOP-related is bound to look like OO because... it is :P
but I mean that the rest does, too. 09:46
to be specific, it looks more OO-y than what little C code I've written in my life.
09:58 colomon joined 10:15 brrt joined 10:52 lizmat joined 11:08 Ven joined 11:34 vendethiel joined 12:08 vendethiel joined 12:30 kjs_ joined 12:34 kjs_ left 12:44 Ven joined, brrt joined
dalek arVM: fc28f88 | timotimo++ | src/ (3 files):
jit throw[cat]{dyn,lex,lexotic}

currently hangs execution.
12:45
12:46 dalek joined
brrt shouldn't dalek say something about a merge 13:04
it is a merge 13:05
arnsholt It usually does, but I think it has to infer that it's a merge from the data it receives 13:08
In this case, it sent too many messages to the server in too little time and was killed by the server
Not uncommon when you push several commits at once 13:09
brrt the thing is, it doesn't *have* to infer that, as a merge commit always has more than one parent 13:15
FROGGS brrt: it just checks if there are more than N commits, and then prints a single line mentioning a heuristic branch merge 13:26
brrt can we change the implementation of dalek? 13:29
FROGGS I think so... lemme check 13:32
brrt: github.com/perl6/infrastructure-do....pod#dalek 13:36
if (@{ $blob->{commits} } > 15) { 13:38
common::put(\@tgt, "Heuristic branch merge: pushed " . @{ $blob->{commits} } . " commits to $project by " . $blob->{pusher}{name});
so yes, we can change that
brrt yay 13:50
brrt kind of likes the perl5 style 'this ref is an array in scalar context' syntactic magic in that line 13:51
but i have to go now
bbiab
FROGGS brrt: but there is not a clean flag in the json blurb that highlights merge commits 13:52
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? 14:51
PerlJam ... and no one itched enough to scratch by looking at dalek source closely. 15:23
brrt++ though 15:24
17:12 vendethiel joined 17:35 FROGGS joined 17:48 vendethiel joined 18:44 lizmat joined 19:06 vendethiel joined 19:15 Peter_R joined
jnthn evening, #moarvm 19:37
timotimo welcome back, Mister Jnthn!
(english doesn't really have a miss/misses equivalent for men, so ...)
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:39
japhb jnthn! Good to see you again. How was (and where were) the festivities? 19:42
jnthn japhb: They were in Kherson, and they were really great. :) 19:44
timotimo: Well, maybe I'll get to that tomorrow amongst new apartment stuffs :)
19:45 zakharyas joined
japhb Southern Ukraine? Is that where the newly-minted spouse is from? 19:45
Also, congrats again! 19:46
Where are you moving to?
jnthn japhb: Indeed
japhb: Prague
japhb Still going to work for Edument?
jnthn Yes, though a new branch of it in .cz (and, yes, we'll be hiring :P)
japhb Are you the first employee there? :-) 19:48
jnthn Yes :)
timotimo pretty neat 19:49
jnthn Yes :)
timotimo i would be interested in becoming an edument employee if i had teaching skills 19:50
jnthn timotimo: We don't *just* do teaching, we build stuff too 19:51
timotimo ah 19:52
hmm
so there's even positions where traveling a lot wouldn't be necessary?
anyway, BBIAB 19:53
jnthn timotimo: Yes, there's already a couple of folks who have such an arrangement. 19:55
FROGGS hi jnthn 19:56
jnthn git pulls nqp and hopes he won't have to pull stage0 updates over Edge... 19:57
o/ FROGGS
*phew*, didn't
interp.c
src\core\interp.c(4768) : error C2036: 'void *' : unknown size
src\core\interp.c(4775) : error C2036: 'void *' : unknown size
oops?
Whozdunnit? :)
FROGGS jnthn: github.com/MoarVM/MoarVM/commit/bf...79bf57af14 19:59
jnthn ugh, github + edge = slow 20:00
uh, yes, it actually does pointer arith on a void pointer. D'oh. 20:01
I...didn't know that compiled *anywhere*
20:01 brrt joined
jnthn Does anyone know the semantics it actually compiles with somewhere? :P 20:01
brrt \o jnthn 20:03
jnthn I'm guessing char *
From the code
brrt congratulations are in order i suppose :-)
jnthn o/ brrt
:) 20:04
brrt thinks gcc treats void* as char* 20:05
and wonders what other ways there'd be to do it 20:06
jnthn
.oO( "latin corn gas out" would be out of order... )
brrt but .cz, very nice
so yes, char* is correct 20:07
jnthn Goodness, bigintops.c is very upset too
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
because they didn't enter the int cache
and so forced them into the int cache with arithmetic ops
jnthn mp_int *tmp[2] = { NULL, NULL }; \ 20:10
I think that's the line that upsets it
20:10 vendethiel joined
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
by the way, haven't they (MS) open-sourced that yet?
jnthn oh, I misread... 20:13
It was an easy fix when I looked at the correct macro :) 20:14
japhb: Um...I'm not sure I did
japhb Er ... can you? :-D
brrt oh, i have another question. where... could one implement e.g. isatty
because in src/io/io.c we work on MVMOSHandles which are fully abstract 20:15
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 gist.github.com/jnthn/da27ded3fbf06df7c54a
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
brrt on your machine you don't have msvc :-P
timotimo i shall fix that tonight
well, it's still not supposed to be upset :(
brrt then it'd go in MVMIOSyncReadable i presume?
hardly the one-liner i'd expected 20:18
dalek arVM: 97f62b8 | FROGGS++ | src/6model/reprs/C (2 files):
allow str type in attrs in CStruct and CUnion
brrt (the fix for adding isatty i mean)
japhb jnthn: OK, thank you. :-)
FROGGS the patch will fix this: 20:19
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
camelia rakudo-moar c2a57e: OUTPUTĀ«CStruct: invalid native binding to object attributeā¤ in block <unit> at /tmp/g_73EDiX6z:1ā¤ā¤Ā»
dalek arVM: 6211ce4 | jnthn++ | src/ (2 files):
Fix build on MSVC.
FROGGS jnthn: still builds on linux fwiw
jnthn brrt: Hm, that doesn't feel quite like it fits... 20:20
brrt: But there sn't a better hook to hang it off at the moment, I don't think
brrt doesn't know, either 20:39
eof hangs on MVMSyncReadable, and isatty is similar....
actually, hang on, that's wrong
isatty should hang on MVMIOSyncWritable if anything 20:40
hmm 20:41
no, it is actually independent
jnthn Yeah, that was my conclusion too...
brrt (stdin and stdout can both be tty-ish)
jnthn Also there are things you cna do with something that *is* a tty 20:43
brrt aye, which is why you want to know it in the first place 20:44
python, fwiw, implements isatty using a function in the os module
jnthn I wonder if we should just expose underlying file hands somehow
(descriptors I mean) 20:45
And punt such things to module space
brrt that's ok with me too, but MVMOSHandle's can be anything
timotimo well, there's ioctls and such that you may want to call on given file handles
even more so for sockets
jnthn Sure, but an os_handle function on the IO vtable could cut it
brrt yes. or we could do the parrotty thing and get the fd as a getint reprop :-P 20:46
jnthn no, we couldn't :P 20:47
We're meant to make different mistakes :)
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
*none
But we're not ready for that yet. :)
brrt i suppose not :-)
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:49
but GLR is the tighter bottleneck at the moment, i think 20:50
jnthn *nod*
timotimo otherwise you'd be grabbing the $!storage out of your Arrays and use nqp::iter 20:51
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?
whether it be exclusive time spent or scalars or MVMCode objects allocated 20:54
there's a whole whooping lot of overhead to iterating over a non-lazy non-iterator-backed list at the moment
all for the benefit of supporting lazy/infinite or iterator-backed lists properly
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
is GLR part of jnthn's work, too? 20:56
FROGGS more like pmichaud++'s work atm me thinks
and TimToady++ did some (more visible) cleanup already
timotimo that's right; though TimToady ... yeah
brrt right, ok 20:59
i suppose that will cause some fallout too
FROGGS probably, yes 21:04
timotimo likely
FROGGS parenthesis need to be added or removed here an there and binding can be omitted in other places I hope 21:05
jnthn GLR ain't supposed to be part of my work.. 21:06
FROGGS gnight
jnthn 'night FROGGS
brrt goodnight 21:11
in that case it's best to keep it out :-)
22:02 vendethiel joined