Camelia, the Perl 6 bug

IRC log for #moarvm, 2013-09-24

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

All times shown according to UTC.

Time Nick Message
01:00 foo_bar_baz joined #moarvm
01:15 benabik joined #moarvm
01:27 diakopter benabik: did you by chance see the quicksort_maker I pushed?
01:28 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.
01:28 diakopter yes, and pig
01:37 diakopter 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 diakopter but if you're just sorting a list of integers, the lvalue expression and comparison value expression are the same
02:03 benabik Where's the code?
02:04 benabik The only quick sort I see is in the NFA repr.
02:04 benabik (via ack -i 'quick[\s_]?sort'
02:05 diakopter in the gcorch branch
02:05 benabik ah sea
02:07 dalek MoarVM/gcorch: 5fd039b | diakopter++ | src/ (5 files):
02:07 dalek MoarVM/gcorch: back to some semblance of stability... still crashes in global destru
02:07 dalek MoarVM/gcorch: review: https://github.com/MoarVM/MoarVM/commit/5fd039b734
03:25 eternaleye joined #moarvm
05:12 not_gerd joined #moarvm
05:12 not_gerd o/
05:14 JimmyZ \o
05:14 eternaleye joined #moarvm
05:14 eternaleye joined #moarvm
05:20 JimmyZ not_gerd: what - means in Makefile? like '-$(CMD)'
05:23 not_gerd JimmyZ: keep going on errors
05:25 not_gerd $(CMD) is what makes NOISY=0/1 work
05:25 JimmyZ not_gerd: thanks. btw: looks like platform/stdint.h is not included
05:26 not_gerd oO - how did that happen?
05:26 JimmyZ hmm. looks like msvc2010+ supports stdint.h?
05:27 not_gerd not sure bout the version, but newer ones do, yes
05:28 JimmyZ I heard it's msvc 2010 or newer
05:29 not_gerd JimmyZ: we include inttypes.h, though, which pulls in stdint.h
05:30 not_gerd all good
05:31 JimmyZ ah
05:32 dalek MoarVM: d50545b | jimmy++ | src/ (2 files):
05:32 dalek MoarVM: Small clean up
05:32 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/d50545bebc
06:11 diakopter hi
06:12 not_gerd ~~
06:35 FROGGS joined #moarvm
06:53 FROGGS o/
06:54 not_gerd »ö«
06:56 FROGGS »¨m«
06:57 FROGGS (dunno how to type combining version)
07:01 TimToady »m̈«  under Gnome, m Ctrl-Shift-u 308
07:03 FROGGS ahh, thanks!
07:04 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
07:05 FROGGS I cant type it here in my XChat, but in my terminal... funny world
07:06 FROGGS I'd love to see that moarmelia the topic :o)
07:09 TimToady camoarlia?
07:09 FROGGS hehe, yeah, that might be nicer *g*
07:11 FROGGS http://xkcd.com/1137/
07:12 FROGGS TimToady: that could be you
07:14 TimToady naw, I'd've used the \x form, not the U+ form ☺
07:16 TimToady me --> 💤
07:17 FROGGS 01f4a4?
07:17 FROGGS :o(
07:17 FROGGS we are all more or less equal when it comes to unicode
07:18 FROGGS "unicode"
07:18 FROGGS U+1F4A4 SLEEPING SYMBOL [So]
07:18 FROGGS ahh
07:18 FROGGS well, I'll get some coffee :o)
07:23 * FROGGS .oO( U+1F4A4 formerly known as prince )
07:31 flussence joined #moarvm
07:43 woosley joined #moarvm
07:44 not_gerd bye, #moarvm
07:44 not_gerd left #moarvm
08:02 flussence joined #moarvm
08:09 JimmyZ jnthn: ping
08:12 jnthn JimmyZ: pong
08:13 JimmyZ jnthn: are you +1 to struct_migration branch?
08:14 JimmyZ jnthn: and How about flatten boot_types and str_consts in instance
08:15 JimmyZ 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.
08:16 JimmyZ yeah, I moved MVMREPROps to reprs.h
08:16 jnthn Why?
08:16 jnthn I don't want it there. So no, -1.
08:16 JimmyZ ok
08:16 jnthn Please stop moving stuff around without being asked ot.
08:16 JimmyZ jnthn: I didn't do it in master
08:16 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.
08:17 jnthn 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?
08:18 jnthn As in, keep the struct but remove the level of indirection?
08:18 JimmyZ yes
08:18 jnthn Hmm
08:18 JimmyZ just like the MVMREPROps flatten
08:18 jnthn Reason?
08:18 jnthn Yeah, but they're kinda hot-path.
08:19 JimmyZ remove the level of indirection, save a cpu instruction.
08:19 JimmyZ yeah, they 'are  kinda hot-path
08:19 jnthn Yeah but in 2013 instruction count matters less than cache behavior.
08:21 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 #moarvm
08:21 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
08:22 JimmyZ jnthn: last one: https://gist.github.com/zhuomingliang/6619027
08:22 jnthn hm, instance wants its members shuffling at some point anyway.
08:22 diakopter simply for the use of autocomplete in msvc ide
08:22 JimmyZ jnthn: It doesn't work, and I don't know why :(
08:22 jnthn JimmyZ: Because you broke deserialization?
08:23 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 #moarvm
08:23 jnthn No, don't do that.
08:23 jnthn The thing is (meant to be) spec'd.
08:24 jnthn We already have some differences between backends over serialization format versioning.
08:24 jnthn We really don't want more.
08:24 JimmyZ ok :)
08:24 jnthn So, it's a bad time to do this.
08:24 jnthn If we even want to do it at all.
08:25 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.
08:26 jnthn JimmyZ: If you just mean "remove the level of indirection", yes, though it feels very micro-opt-y to me.
08:26 JimmyZ OK :)
08:26 jnthn And we're really well before the point in the project where we should be worrying about those...
08:26 diakopter JimmyZ: would you like to work on a .vcproj instead?
08:27 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
08:27 diakopter what do you hate about it?
08:29 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:32 diakopter you lost your self?
08:33 JimmyZ yeah, I spent almost a whole  day to [un]install msvc 2012 and re-install my win7 box
08:35 diakopter what does that have to do with .vcproj in libuv?
08:36 JimmyZ $ mkdir -p build
08:36 JimmyZ $ git clone https://git.chromium.org/external/gyp.git build/gyp
08:37 JimmyZ $ ./gyp_uv -f make
08:37 JimmyZ $ make -C out
08:38 JimmyZ diakopter: you just run vcbuild.bat
08:38 diakopter JimmyZ: I have no idea what you're talking about
08:38 diakopter I couldn't care less about using a .vcproj to build
08:39 diakopter I said I only cared about it for autocomplete
08:39 JimmyZ diakopter: ok, I misunderstand you due to my poor english :(
08:52 diakopter JimmyZ: rather, I blame myself for my abstruse english :(
08:56 jnthn .oO( wtf does "abstruse" mean??? )
08:56 jnthn :P
08:57 diakopter don't be obtuse!
08:57 JimmyZ abs str use
08:58 diakopter hee :)
08:58 jnthn I just suffer an acute vocabulary shortage...
08:58 diakopter irc abuse..
09:00 donaldh joined #moarvm
09:03 dalek MoarVM/flatten: 18699f8 | jimmy++ | src/ (21 files):
09:03 dalek MoarVM/flatten: flatten boot_types and str_consts in struct MVMInstance
09:03 dalek MoarVM/flatten: review: https://github.com/MoarVM/MoarVM/commit/18699f8d84
09:03 FROGGS_ joined #moarvm
09:04 * masak .oO( whatever "abstruse" means, it's somethin a goose can be, apparently... )
09:07 dalek MoarVM: 18699f8 | jimmy++ | src/ (21 files):
09:07 dalek MoarVM: flatten boot_types and str_consts in struct MVMInstance
09:07 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/18699f8d84
09:09 diakopter also, pun on spruce
09:13 woosley joined #moarvm
09:25 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:27 diakopter .. 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:28 diakopter (and those certain bytecode ops can call into other bytecode without lots of overhead)
09:33 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 colomon joined #moarvm
09:34 diakopter that would work
09:36 diakopter 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:37 jnthn True, but that might make for more "fun" if the JITted code wants to call into a non-JITted thing...
09:38 diakopter no I mean it'd do the same thing as the jitrun opcode you mentioned
09:42 jnthn But it'd still have the ->invoke call on the stack?
09:42 jnthn That may not be an issue though if it's tail-call enough... :)
09:43 diakopter no, it'd still return to the interpter, which would return..
09:44 diakopter thing is we should want only one type of calling convention active
09:45 flussence joined #moarvm
09:45 jnthn *nod*
09:47 FROGGS wb jnthn :o)
09:47 arnsholt FROGGS: I replied to your NQP issue, BTW. Can't reproduce =/
09:48 FROGGS arnsholt: it is not mine, it is bonsaikittens
09:49 arnsholt Oh, issue you submitted anyways =)
09:49 diakopter FROGGS: you're not bonsaikitten?
09:49 arnsholt Oh, wrong channel too
09:52 FROGGS diakopter: not that I know :o)
09:58 foo_bar_baz joined #moarvm
10:21 FROGGS jnthn: that is very interesting to know :o)  http://irclog.perlgeek.de/m​oarvm/2013-09-24#i_7623809
10:22 FROGGS that makes me believe again in our code, fwiw
10:23 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
10:23 FROGGS I mean, it is all logical after you explained it :o)
10:24 FROGGS and that explains the problems too I had when trying to add (de)serializing functions...
10:24 jnthn ah :)
10:25 jnthn yes :)
10:25 FROGGS *g*
10:26 jnthn Gee, you take a long weekend away and enough administriva piles up to fill the first morning back at $dayjob...
10:27 FROGGS I hope it was worth it
10:29 jnthn Well, I ate lots and accidentally attended part of a rock festival... :)
10:33 FROGGS (ate lots)++
10:33 FROGGS that is how I choose the location
10:35 BinGOs moarvm still builds on FreeBSD 9.1 with clang.
10:35 BinGOs (x86)
10:36 FROGGS awesome!
10:36 jnthn yay, we didn't break stuff :)
10:36 FROGGS testing on BSD's was already on my todo
11:16 JimmyZ jnthn: ping
11:19 JimmyZ jnthn: speak of http://irclog.perlgeek.de/m​oarvm/2013-09-24#i_7623809, I got other patch doesn't work too. https://gist.github.com/zhuomingliang/6619053. before the patch, these code is already different from nqp@parrot.
11:20 jnthn It can't be that different :)
11:21 jnthn That is, it must read the same sequence of things even if it processes them in a different way eventually.
11:27 * JimmyZ couldn't see the same sequence, i.e: 'num_attrs' :(
11:33 FROGGS it can't be the same sequence, because the structures differ
11:33 FROGGS names <=> names_map or so
11:35 FROGGS compare:
11:35 FROGGS typedef struct { PMC *class_key; PMC *name_map; } P6opaqueNameMap;
11:35 FROGGS struct MVMP6opaqueNameMap { MVMObject *class_key; MVMString **names; MVMuint16 *slots; MVMuint32 num_attrs; };
11:36 jnthn clue is here:
11:36 jnthn if (reader->read_int16(tc, reader) == REFVAR_VM_HASH_STR_VAR) {
11:36 jnthn On the Parrot impl I guess it just calls read_ref to deserialize a Hash
11:36 jnthn On MoarVM we don't want a Hash, we just want the things that would be inside ofone.
11:36 jnthn *of one
11:36 jnthn So we do exactly what deserializing a hash key/value set would do.
11:37 JimmyZ so I guess my patch will work after selfhosting :)
11:37 jnthn Works, yes. Wanted, no.
11:37 jnthn And it won't even work
11:37 jnthn You will have to do an explicit version number change, migration, etc.
11:37 jnthn Whenever changing the serialization format, at least one version back must be supported.
11:38 jnthn Due to bootstrap.
11:39 JimmyZ That's tricky
12:36 jnap joined #moarvm
12:43 colomon joined #moarvm
12:46 moritz joined #moarvm
12:46 jnthn joined #moarvm
12:46 JimmyZ joined #moarvm
12:46 tokuhirom joined #moarvm
12:47 harrow joined #moarvm
12:47 masak joined #moarvm
12:49 donaldh joined #moarvm
13:08 benabik joined #moarvm
13:40 FROGGS[mobile] joined #moarvm
13:58 FROGGS joined #moarvm
14:32 diakopter .
14:32 yoleaux 13:14Z <[Coke]> diakopter: Congrats!
15:03 [Coke] ... on the grant.
15:04 tadzik not on the dot
15:06 FROGGS *g*
15:09 diakopter .
15:13 tadzik CONGRATS
15:30 donaldh joined #moarvm
15:43 timotimo \o/ congrats
16:50 FROGGS joined #moarvm
16:52 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.
16:56 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.
16:59 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.
17:02 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.
17:03 nwc10 jnthn: you are aware of the Perl 5 macro that Chip came up with?
17:03 nwc10 #define STR_WITH_LEN(s)  ("" s ""), (sizeof(s)-1)
17:03 nwc10 ugly, but reliable
17:05 jnthn urgh
17:05 jnthn yes
17:05 jnthn (yes to the ugly/reliable, not to the "did I know of this beast" :))
17:06 nwc10 the C pre-processor string concatentation sandwich with s as the filling is intended to ensure that s is a string literal
17:10 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:11 nwc10 indeed. Been there, done that
17:21 FROGGS jnthn: reboot did it -.-
17:30 jnthn FROGGS: oddness
17:30 jnthn but yay
17:35 FROGGS jnthn: absolutely
17:36 FROGGS that saves my day a bit
17:37 FROGGS yay, so I can do more webstuff :/
19:43 donaldh joined #moarvm
20:09 colomon joined #moarvm
20:11 diakopter joined #moarvm
20:41 colomon joined #moarvm
20:42 jnap joined #moarvm
21:14 colomon joined #moarvm
21:36 jnap joined #moarvm
21:37 BenGoldberg joined #moarvm
22:48 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.
22:50 jnthn phew, think I finally caught up code reviewing the commits :)
23:12 diakopter :)
23:17 diakopter not_gerd: you around?
23:46 jnap joined #moarvm
23:47 krunen joined #moarvm
23:47 woolfy joined #moarvm
23:54 jnap joined #moarvm
23:54 BenGoldberg joined #moarvm
23:54 masak joined #moarvm
23:54 d^_^b joined #moarvm
23:54 Woodi joined #moarvm
23:54 pmichaud joined #moarvm
23:54 Util joined #moarvm
23:54 rblackwe_ joined #moarvm
23:54 PerlJam joined #moarvm
23:54 chipdude joined #moarvm

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