github.com/moarvm/moarvm | IRC logs at irclog.perlgeek.de/moarvm/today
Set by moderator on 17 September 2013.
01:00 foo_bar_baz joined 01:15 benabik joined
diakopter benabik: did you by chance see the quicksort_maker I pushed? 01:27
benabik diakopter: Does it use Hadoop? Because that's the only thing I've seen for like two weeks. 01:28
benabik is getting eaten by the class he's TAing.
diakopter yes, and pig
no, it's a quicksort algorithm macro that takes (optionally different) expressions for the element lvalues and comparison values.. so you can compare indirect values from arrays of pointers without passing around function pointers 01:37
but if you're just sorting a list of integers, the lvalue expression and comparison value expression are the same
benabik Where's the code? 02:03
The only quick sort I see is in the NFA repr. 02:04
(via ack -i 'quick[\\s_]?sort'
diakopter in the gcorch branch 02:05
benabik ah sea
dalek arVM/gcorch: 5fd039b | diakopter++ | src/ (5 files):
back to some semblance of stability... still crashes in global destru
02:07
03:25 eternaleye joined 05:12 not_gerd joined
not_gerd o/ 05:12
JimmyZ \\o 05:14
05:14 eternaleye joined
JimmyZ not_gerd: what - means in Makefile? like '-$(CMD)' 05:20
not_gerd JimmyZ: keep going on errors 05:23
$(CMD) is what makes NOISY=0/1 work 05:25
JimmyZ not_gerd: thanks. btw: looks like platform/stdint.h is not included
not_gerd oO - how did that happen? 05:26
JimmyZ hmm. looks like msvc2010+ supports stdint.h?
not_gerd not sure bout the version, but newer ones do, yes 05:27
JimmyZ I heard it's msvc 2010 or newer 05:28
not_gerd JimmyZ: we include inttypes.h, though, which pulls in stdint.h 05:29
all good 05:30
JimmyZ ah 05:31
dalek arVM: d50545b | jimmy++ | src/ (2 files):
Small clean up
05:32
diakopter hi 06:11
not_gerd ~~ 06:12
06:35 FROGGS joined
FROGGS o/ 06:53
not_gerd »ö« 06:54
FROGGS »¨m« 06:56
(dunno how to type combining version) 06:57
TimToady »m̈« under Gnome, m Ctrl-Shift-u 308 07:01
FROGGS ahh, thanks! 07:03
TimToady though now my firefox is misplacing the mark, sigh 07:04
FROGGS not that easy to do actually... but I guess I can order a keybord with an ctrl+shift+u key in near future
I cant type it here in my XChat, but in my terminal... funny world 07:05
I'd love to see that moarmelia the topic :o) 07:06
TimToady camoarlia? 07:09
FROGGS hehe, yeah, that might be nicer *g*
xkcd.com/1137/ 07:11
TimToady: that could be you 07:12
TimToady naw, I'd've used the \\x form, not the U+ form ☺ 07:14
me --> ???? 07:16
FROGGS 01f4a4? 07:17
:o(
we are all more or less equal when it comes to unicode
"unicode" 07:18
U+1F4A4 SLEEPING SYMBOL [So]
ahh
well, I'll get some coffee :o)
FROGGS .oO( U+1F4A4 formerly known as prince ) 07:23
07:31 flussence joined 07:43 woosley joined
not_gerd bye, #moarvm 07:44
07:44 not_gerd left 08:02 flussence joined
JimmyZ jnthn: ping 08:09
jnthn JimmyZ: pong 08:12
JimmyZ jnthn: are you +1 to struct_migration branch? 08:13
jnthn: and How about flatten boot_types and str_consts in instance 08:14
just like the MVMREPROps flatten 08:15
jnthn JimmyZ: I saw you move some stuff out of 6model.h that I think wants to stay in there.
JimmyZ yeah, I moved MVMREPROps to reprs.h 08:16
jnthn Why?
I don't want it there. So no, -1.
JimmyZ ok
jnthn Please stop moving stuff around without being asked ot.
JimmyZ jnthn: I didn't do it in master
jnthn I need Moar in a shape where I can easily work on it, not where I have to guess the latest place somebody thought it was a good idea to shove something.
And I like that 6model.h describes the whole structure of objects and the object system in one place. 08:17
JimmyZ and How about flatten boot_types and str_consts in instance?
jnthn As in, keep the struct but remove the level of indirection? 08:18
JimmyZ yes
jnthn Hmm
JimmyZ just like the MVMREPROps flatten
jnthn Reason?
Yeah, but they're kinda hot-path.
JimmyZ remove the level of indirection, save a cpu instruction. 08:19
yeah, they 'are kinda hot-path
jnthn Yeah but in 2013 instruction count matters less than cache behavior.
JimmyZ so are you +1 to it? :-) 08:21
jnthn I don't mind either way...other than I'll be typing -> instead of . instinctively for a bit... :P
08:21 FROGGS joined
JimmyZ OK, I'd like to do it ;) 08:21
diakopter speaking of.. if someone would like to work on a .vcproj I'd be eternally grateful
JimmyZ jnthn: last one: gist.github.com/zhuomingliang/6619027 08:22
jnthn hm, instance wants its members shuffling at some point anyway.
diakopter simply for the use of autocomplete in msvc ide
JimmyZ jnthn: It doesn't work, and I don't know why :(
jnthn JimmyZ: Because you broke deserialization?
JimmyZ jnthn: well, I hope changed a bunch of write_int to write_int16 or 32 to save some file size 08:23
jnthn JimmyZ: Any time you wish to evolve the serialization format you have to support back-compact
08:23 woosley joined
jnthn No, don't do that. 08:23
The thing is (meant to be) spec'd.
We already have some differences between backends over serialization format versioning. 08:24
We really don't want more.
JimmyZ ok :)
jnthn So, it's a bad time to do this.
If we even want to do it at all.
JimmyZ so I can flatten boot_types and str_consts in instance? 08:25
jnthn Reason it breaks though is that the cross-comp runs on Parrot and so spits out the original format.
JimmyZ: If you just mean "remove the level of indirection", yes, though it feels very micro-opt-y to me. 08:26
JimmyZ OK :)
jnthn And we're really well before the point in the project where we should be worrying about those...
diakopter JimmyZ: would you like to work on a .vcproj instead?
jnthn Thankfully, this micro-opt doesn't really give us any technical debt, though... 08:27
JimmyZ diakopter: nope, Libuv has about four .vcproj, and I hate it
diakopter what do you hate about it?
JimmyZ I lost my self, and It was a pain to [un]install msvc 2012. and I got to re-isntall my win7 :P 08:29
diakopter you lost your self? 08:32
JimmyZ yeah, I spent almost a whole day to [un]install msvc 2012 and re-install my win7 box 08:33
diakopter what does that have to do with .vcproj in libuv? 08:35
JimmyZ $ mkdir -p build 08:36
$ git clone git.chromium.org/external/gyp.git build/gyp
$ ./gyp_uv -f make 08:37
$ make -C out
diakopter: you just run vcbuild.bat 08:38
diakopter JimmyZ: I have no idea what you're talking about
I couldn't care less about using a .vcproj to build
I said I only cared about it for autocomplete 08:39
JimmyZ diakopter: ok, I misunderstand you due to my poor english :(
diakopter JimmyZ: rather, I blame myself for my abstruse english :( 08:52
jnthn
.oO( wtf does "abstruse" mean??? )
08:56
:P
diakopter don't be obtuse! 08:57
JimmyZ abs str use
diakopter hee :) 08:58
jnthn I just suffer an acute vocabulary shortage...
diakopter irc abuse..
09:00 donaldh joined
dalek arVM/flatten: 18699f8 | jimmy++ | src/ (21 files):
flatten boot_types and str_consts in struct MVMInstance
09:03
09:03 FROGGS_ joined
masak .oO( whatever "abstruse" means, it's somethin a goose can be, apparently... ) 09:04
dalek arVM: 18699f8 | jimmy++ | src/ (21 files):
flatten boot_types and str_consts in struct MVMInstance
09:07
diakopter also, pun on spruce 09:09
09:13 woosley joined
diakopter jnthn: I was chatting with Gerd about the jit ideas.. in order to prevent nested runloops we'll need to drop back to a trampoline of sorts one call outside the interpreter loop to call a jitted routine... so for that we'd have a simple thread-local linked-list of things-to-run... which when that's empty falls back to a libuv-esque event loop (probably our own though, but still using the lock-free queue libuv provides) 09:25
.. and then the things that currently modify the interpreter PC and cur_frame will need to do something fancier like make a pseudo-call so it can call into bytecode if needed from jitted code 09:27
(and those certain bytecode ops can call into other bytecode without lots of overhead) 09:28
jnthn We could reserve an opcode to be the JIT trampoline and invoking a JITted thing just points the interp to run that next... 09:33
09:33 colomon joined
diakopter that would work 09:34
another option is to hang the jitted thing off the staticcode (well, we'd do that, right?) and have the ->invoke thingie do that instead of the normal stack swap 09:36
jnthn True, but that might make for more "fun" if the JITted code wants to call into a non-JITted thing... 09:37
diakopter no I mean it'd do the same thing as the jitrun opcode you mentioned 09:38
jnthn But it'd still have the ->invoke call on the stack? 09:42
That may not be an issue though if it's tail-call enough... :)
diakopter no, it'd still return to the interpter, which would return.. 09:43
thing is we should want only one type of calling convention active 09:44
09:45 flussence joined
jnthn *nod* 09:45
FROGGS wb jnthn :o) 09:47
arnsholt FROGGS: I replied to your NQP issue, BTW. Can't reproduce =/
FROGGS arnsholt: it is not mine, it is bonsaikittens 09:48
arnsholt Oh, issue you submitted anyways =) 09:49
diakopter FROGGS: you're not bonsaikitten?
arnsholt Oh, wrong channel too
FROGGS diakopter: not that I know :o) 09:52
09:58 foo_bar_baz joined
FROGGS jnthn: that is very interesting to know :o) irclog.perlgeek.de/moarvm/2013-09-24#i_7623809 10:21
that makes me believe again in our code, fwiw 10:22
jnthn Being able to cross-comp is why the serialization format is something to try and keep standard and spec'd. :) 10:23
FROGGS yeah
I mean, it is all logical after you explained it :o)
and that explains the problems too I had when trying to add (de)serializing functions... 10:24
jnthn ah :)
yes :) 10:25
FROGGS *g*
jnthn Gee, you take a long weekend away and enough administriva piles up to fill the first morning back at $dayjob... 10:26
FROGGS I hope it was worth it 10:27
jnthn Well, I ate lots and accidentally attended part of a rock festival... :) 10:29
FROGGS (ate lots)++ 10:33
that is how I choose the location
BinGOs moarvm still builds on FreeBSD 9.1 with clang. 10:35
(x86)
FROGGS awesome! 10:36
jnthn yay, we didn't break stuff :)
FROGGS testing on BSD's was already on my todo
JimmyZ jnthn: ping 11:16
jnthn: speak of irclog.perlgeek.de/moarvm/2013-09-24#i_7623809, I got other patch doesn't work too. gist.github.com/zhuomingliang/6619053. before the patch, these code is already different from nqp@parrot. 11:19
jnthn It can't be that different :) 11:20
That is, it must read the same sequence of things even if it processes them in a different way eventually. 11:21
JimmyZ couldn't see the same sequence, i.e: 'num_attrs' :( 11:27
FROGGS it can't be the same sequence, because the structures differ 11:33
names <=> names_map or so
compare: 11:35
typedef struct { PMC *class_key; PMC *name_map; } P6opaqueNameMap;
struct MVMP6opaqueNameMap { MVMObject *class_key; MVMString **names; MVMuint16 *slots; MVMuint32 num_attrs; };
jnthn clue is here: 11:36
if (reader->read_int16(tc, reader) == REFVAR_VM_HASH_STR_VAR) {
On the Parrot impl I guess it just calls read_ref to deserialize a Hash
On MoarVM we don't want a Hash, we just want the things that would be inside ofone.
*of one
So we do exactly what deserializing a hash key/value set would do.
JimmyZ so I guess my patch will work after selfhosting :) 11:37
jnthn Works, yes. Wanted, no.
And it won't even work
You will have to do an explicit version number change, migration, etc.
Whenever changing the serialization format, at least one version back must be supported.
Due to bootstrap. 11:38
JimmyZ That's tricky 11:39
12:36 jnap joined 12:43 colomon joined 12:46 moritz joined, jnthn joined, JimmyZ joined, tokuhirom joined 12:47 harrow joined, masak joined 12:49 donaldh joined 13:08 benabik joined 13:40 FROGGS[mobile] joined 13:58 FROGGS joined
diakopter . 14:32
yoleaux 13:14Z <[Coke]> diakopter: Congrats!
[Coke] ... on the grant. 15:03
tadzik not on the dot 15:04
FROGGS *g* 15:06
diakopter . 15:09
tadzik CONGRATS 15:13
15:30 donaldh joined
timotimo \\o/ congrats 15:43
16:50 FROGGS joined
jnthn .tell not_gerd in b431a11, I suspect the code following "/* Identify REPRs by address of name string */" is fragile. For example, two different libraries trying to register the same REPR name would have the string constants at different addresses. I'd just do a strcmp there. 16:52
yoleaux jnthn: I'll pass your message to not_gerd.
jnthn .tell JimmyZ 3c49a76a claims to to make things more consistent, but makes function names inconsistent with the op names that delegate to them. D'oh. 16:56
yoleaux jnthn: I'll pass your message to JimmyZ.
jnthn .tell JimmyZ though, there's no strong convention there anyway, looking at a bunch of the others... 16:59
yoleaux jnthn: I'll pass your message to JimmyZ.
jnthn .tell JimmyZ 6c8aa5c replaces a MVM_string_ascii_decode_nt with a MVM_string_ascii_decode and an explicit count, which is a silly idea in general as it makes it easy to change the string and forget to update the count. Please don't do/undo such changes. 17:02
yoleaux jnthn: I'll pass your message to JimmyZ.
nwc10 jnthn: you are aware of the Perl 5 macro that Chip came up with? 17:03
#define STR_WITH_LEN(s) ("" s ""), (sizeof(s)-1)
ugly, but reliable
jnthn urgh 17:05
yes
(yes to the ugly/reliable, not to the "did I know of this beast" :))
nwc10 the C pre-processor string concatentation sandwich with s as the filling is intended to ensure that s is a string literal 17:06
jnthn I can live with something like that, anyways. It's just that having a string literal and then manually counting the number of chars is just asking for bugs. 17:10
nwc10 indeed. Been there, done that 17:11
FROGGS jnthn: reboot did it -.- 17:21
jnthn FROGGS: oddness 17:30
but yay
FROGGS jnthn: absolutely 17:35
that saves my day a bit 17:36
yay, so I can do more webstuff :/ 17:37
19:43 donaldh joined 20:09 colomon joined 20:11 diakopter joined 20:41 colomon joined 20:42 jnap joined 21:14 colomon joined 21:36 jnap joined 21:37 BenGoldberg joined
jnthn .tell JimmyZ in 208ee87d, body->states[i][j].arg.s = reader->read_str(tc, reader); needs doing with MVM_ASSIGN_REF so it gets the wb 22:48
yoleaux jnthn: I'll pass your message to JimmyZ.
jnthn phew, think I finally caught up code reviewing the commits :) 22:50
diakopter :) 23:12
not_gerd: you around? 23:17
23:46 jnap joined 23:47 krunen joined, woolfy joined 23:54 jnap joined, BenGoldberg joined, masak joined, d^_^b joined, Woodi joined, pmichaud joined, Util joined, rblackwe_ joined, PerlJam joined, chipdude joined