|
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
|
|||