Camelia, the Perl 6 bug

IRC log for #moarvm, 2013-09-13

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

All times shown according to UTC.

Time Nick Message
00:39 jnap joined #moarvm
01:50 colomon joined #moarvm
02:13 cognominal joined #moarvm
03:14 Mouq joined #moarvm
04:22 flussence joined #moarvm
04:49 foo_bar_baz joined #moarvm
05:54 johnny5_ joined #moarvm
06:03 lizmat joined #moarvm
06:07 FROGGS joined #moarvm
08:22 JimmyZ jnthn: Is there any reason that repr function always needs 'STABLE(obj), obj, OBJECT_BODY(obj)' args? how about reduce to only 'obj'?
08:22 JimmyZ .tell jnthn Is there any reason that repr function always needs 'STABLE(obj), obj, OBJECT_BODY(obj)' args? how about reduce to only 'obj'?
08:22 yoleaux JimmyZ: I'll pass your message to jnthn.
08:23 jnthn Yes, there's a reason! Why'd I pass 3 things if I could get away with 1? :P
08:23 yoleaux 08:22Z <JimmyZ> jnthn: Is there any reason that repr function always needs 'STABLE(obj), obj, OBJECT_BODY(obj)' args? how about reduce to only 'obj'?
08:23 jnthn It's 'cus REPRs can support being inlined into others.
08:24 jnthn And that means you need at least the first and third
08:24 woolfy joined #moarvm
08:24 jnthn the second (obj itself) we pass on MoarVM also as you tend to need it for GC rooting in various places.
08:25 jnthn There's a bunch of stuff in reprconv.c which is what you probably want to be using in most places, which hides these details
08:26 JimmyZ jnthn: Is it safe to make all 'static this_repr' alloc at comipling time instead of by using malloc()?
08:27 jnthn JimmyZ: Only after we make ->name not be an MVMString.
08:27 jnthn I think I saw a not_gerd++ patch flash by that did that...
08:28 JimmyZ jnthn: Is MVMContainerSpec->name actually useful?
08:29 not_gerd joined #moarvm
08:29 not_gerd o/
08:29 diakopter o/
08:29 not_gerd jnthn: not a patch, just an issue so we won't forget about it
08:29 JimmyZ I didn't see it be used anyplace
08:29 jnthn not_gerd: ah, ok
08:29 not_gerd and I'm using it for the C types stuff I'm doing
08:29 not_gerd (which will of course break if you have more than 1 instance)
08:31 JimmyZ Is immutable staic this_repr a problem for mutil instance?
08:33 not_gerd JimmyZ: once we've gotten rid of the MVMString, it should be fine
08:33 not_gerd also note that the code is actully broken in master
08:33 not_gerd we use the static variable this_repr in type_object_for()
08:35 not_gerd creating a 2nd instance will overwrite that static variable and subsequent calls will see the repr with the wrong name
08:35 JimmyZ Ok, I ask about 'Is MVMContainerSpec->name actually useful?' because it's a MVMString too. and if it is not actually used, I'd like to remove it
08:36 JimmyZ or s/useful/used/
08:41 JimmyZ not_gerd: If you I got a patch to make ->name not be an MVMString, I will the left LHF :P
08:41 JimmyZ s/you I/you/
08:41 JimmyZ s/will/will do/
08:41 jnthn not_gerd: Yes, I added it to fix a bug in your original port of the code. See 354226e6.
08:41 jnthn um, JimmyZ ^^
08:42 jnthn So no, don't remove it, I don't want to have to spend another hour re-finding that segfault. :)
08:42 JimmyZ jnthn: not this one, I meant code_pair_spec->name            = MVM_string_ascii_decode_nt(tc, tc->instance->VMString, "code_pair");
08:43 JimmyZ I greped the rakudo and nqp, lookis it not used.
08:43 jnthn JimmyZ: I thought it was needed sa part of serializing a container spec...
08:43 not_gerd JimmyZ: I think you could make the reprs static variables right now
08:43 not_gerd the result will be as broken as master
08:44 JimmyZ not_gerd: in master?
08:44 not_gerd JimmyZ: creating multiple instances should already pick up the wrong name
08:44 diakopter jnthn: serializing containerspec? :) didn't see that...
08:44 JimmyZ I didn't see it too
08:45 JimmyZ since there is already a key named code_pair
08:45 JimmyZ and this one look like not be used
08:46 woolfy left #moarvm
08:48 dalek MoarVM/ctypes: 15132d2 | (Gerhard R)++ | src/native/VMBlob.c:
08:48 dalek MoarVM/ctypes: Make gc_mark() of VMBlob a bit smarter
08:48 dalek MoarVM/ctypes: review: https://github.com/MoarVM/MoarVM/commit/15132d2e61
08:48 dalek MoarVM/ctypes: 0eaaf2c | (Gerhard R)++ | src/native/ (2 files):
08:48 dalek MoarVM/ctypes: Dispatch CScalar containers via vtable instead of switch
08:48 dalek MoarVM/ctypes: review: https://github.com/MoarVM/MoarVM/commit/0eaaf2cc7c
08:52 foo_bar_baz joined #moarvm
09:01 JimmyZ jnthn: nvm, I see it
09:05 jnthn JimmyZ: Sorry, not ignoring you, just packing for Frankfurt...
09:05 jnthn JimmyZ: I've a gut feeling it's needed but don't have time to dig at the moment...
09:37 dalek MoarVM/static-repr: 9b4c495 | (Gerhard R)++ | src/6model/reprs. (2 files):
09:37 dalek MoarVM/static-repr: Provide static versions of default REPR sub-vtables
09:37 dalek MoarVM/static-repr: review: https://github.com/MoarVM/MoarVM/commit/9b4c495f9e
09:38 dalek MoarVM: 934aa2e | jimmy++ | src/6model/ (3 files):
09:38 dalek MoarVM: added Container spec deserialization
09:38 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/934aa2ed93
09:40 JimmyZ not_gerd: ^^ makes MVMContainerSpec static
09:52 not_gerd JimmyZ: nice
09:53 JimmyZ not_gerd++ for the idea :P
10:00 * JimmyZ decommutes
10:08 dalek MoarVM: 8b5455a | (Gerhard R)++ | src/strings/ascii. (2 files):
10:08 dalek MoarVM: Add missing const to MVM_string_ascii_decode*()
10:08 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/8b5455a131
10:51 dalek MoarVM/static-repr: 0439d5e | (Gerhard R)++ | src/strings/ascii. (2 files):
10:51 dalek MoarVM/static-repr: Add missing const to MVM_string_ascii_decode*()
10:51 dalek MoarVM/static-repr: review: https://github.com/MoarVM/MoarVM/commit/0439d5ed49
10:51 dalek MoarVM/static-repr: 522eaae | (Gerhard R)++ | src/ (6 files):
10:51 dalek MoarVM/static-repr: Hack-in char* REPR names
10:51 dalek MoarVM/static-repr:
10:51 dalek MoarVM/static-repr: There appear to be no new failures in selftest
10:51 dalek MoarVM/static-repr: review: https://github.com/MoarVM/MoarVM/commit/522eaae87d
10:51 not_gerd JimmyZ: ^^
10:52 not_gerd should get you started
11:23 woolfy joined #moarvm
11:41 lizmat joined #moarvm
11:47 BabsSeed joined #moarvm
12:02 cognominal joined #moarvm
12:05 cognominal__ joined #moarvm
12:18 woolfy left #moarvm
12:30 JimmyZ not_gerd: ok :)
12:33 FROGGS[mobile] joined #moarvm
12:38 JimmyZ not_gerd: why do we need MVMString *repr_names[MVM_REPR_CORE_COUNT]?
12:41 not_gerd JimmyZ: we need to put the MVMString* corresponding to the char* somewhere
12:41 not_gerd and register that address so they won't be collected
12:42 JimmyZ not_gerd: so repr_names is only used in serialization and reprname op?
12:43 not_gerd they are also the keys of the repr_name_to_id_hash
12:45 not_gerd which we apparently do not use for anything(?)
12:45 JimmyZ I can't follow you ...
12:46 JimmyZ for (?) part
12:47 dalek MoarVM: 04e354a | jimmy++ | src/6model/serialization.c:
12:47 dalek MoarVM: version cleans up in serialization.c
12:47 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/04e354ae53
12:47 not_gerd JimmyZ: we add repr names to a hash so we can look up their IDs
12:47 not_gerd but I don't see where we actually do that
12:48 JimmyZ I didn't too.
12:48 JimmyZ if  repr_names is only used in serialization and reprname op, I'd like to remove it too :P
12:51 not_gerd it needs to be generalized to support registering reprs at runtime
12:51 not_gerd for the core reprs, it should indeed not be necessary
12:55 JimmyZ not_gerd: it's by repr_name_to_id_hash, not repr_names
12:55 not_gerd JimmyZ: does the hash keep its keys alive on its own?
12:56 not_gerd see https://github.com/MoarVM/MoarVM/c​ompare/master...static-repr#L1L196
12:57 jnap joined #moarvm
13:02 JimmyZ not_gerd: I can't understand the evil hack :(
13:06 not_gerd JimmyZ: we need to put a pointer to the repr name somewhere so we can register it as a permanent gc root
13:06 not_gerd if it'S a core repr, that's instance->repr_names
13:07 not_gerd if it's not, I'm just allocating a place to stash them that gets leaked ;)
13:07 not_gerd note that right now, I don't think we have any non-core reprs
13:07 not_gerd so instead, you could just make it throw
13:09 not_gerd if (ID >= MVM_REPR_CORE_COUNT) MVM_exception_throw(...);
13:09 not_gerd MVM_gc_root_add_permanent(tc, (MVMCollectable **)(tc->instance->repr_names + ID));
13:13 JimmyZ not_gerd: I think adding MVMString *name to MVMREPRHashEntry is ok, just like MVMContainerRegistry
13:14 JimmyZ so I'd rename MVMREPRHashEntry to MVMReprRegistry :P
13:14 not_gerd sounds sensible
13:15 not_gerd not sure about the name, but putting the MVMString* there ;)
13:17 diakopter yikes
13:17 diakopter need a & in that gc_root_add line
13:18 diakopter er
13:18 diakopter nm
13:18 diakopter JimmyZ: "if  repr_names is only used in serialization and reprname op, I'd like to remove it too :P"  why???
13:24 JimmyZ diakopter: Thare are already a lot of place to save name
13:28 crab2313 joined #moarvm
13:28 diakopter there needed to be a lookup by name hash
13:30 JimmyZ diakopter: there are
13:31 diakopter there are what
13:31 JimmyZ HashEntry
13:31 JimmyZ a lookup by name hash
13:31 diakopter I don't know what you're saying
13:32 diakopter I said "I added X because we needed it" and you replied "X exists"
13:34 jnap joined #moarvm
13:57 dalek MoarVM/static-repr: 6a46815 | jimmy++ | src/ (17 files):
13:57 dalek MoarVM/static-repr: some name renaming
13:57 dalek MoarVM/static-repr: review: https://github.com/MoarVM/MoarVM/commit/6a46815e7c
13:57 dalek MoarVM/static-repr: f457efa | jimmy++ | src/6model/reprs/HashAttrStore.c:
13:57 dalek MoarVM/static-repr: make HashAttrStore this_repr static
13:57 dalek MoarVM/static-repr: review: https://github.com/MoarVM/MoarVM/commit/f457efa383
14:02 not_gerd JimmyZ: you shouldn't initialize attr_funcs, pos_funcs, ... to NULL
14:02 not_gerd use MVM_REPR_DEFAULT_ATTR_FUNCS, ... instead
14:03 not_gerd (that'S what I added them for)
14:03 benabik joined #moarvm
14:07 JimmyZ not_gerd: OK
14:08 dalek MoarVM/static-repr: 4475e4c | jimmy++ | src/6model/reprs/ (4 files):
14:08 dalek MoarVM/static-repr: make some reprs this_repr static
14:08 dalek MoarVM/static-repr: review: https://github.com/MoarVM/MoarVM/commit/4475e4ca5a
14:12 cognominal joined #moarvm
14:18 FROGGS joined #moarvm
14:23 dalek MoarVM/static-repr: 0d66ad6 | jimmy++ | src/6model/reprs/MVM (4 files):
14:23 dalek MoarVM/static-repr: make some reprs this_repr static
14:23 dalek MoarVM/static-repr: review: https://github.com/MoarVM/MoarVM/commit/0d66ad69af
14:38 dalek MoarVM/static-repr: 03518ea | jimmy++ | src/6model/reprs/MVM (6 files):
14:38 dalek MoarVM/static-repr: make some reprs this_repr static
14:38 dalek MoarVM/static-repr: review: https://github.com/MoarVM/MoarVM/commit/03518ea089
14:46 JimmyZ good night
14:52 FROGGS[mobile] joined #moarvm
15:19 FROGGS[mobile] joined #moarvm
16:05 benabik joined #moarvm
16:20 BabsSeed joined #moarvm
17:52 FROGGS[mobile] joined #moarvm
18:02 lee_ joined #moarvm
18:37 nwc10 This thing is logged? I don't care.
18:38 nwc10 OMFG. HP-UX is still not 100% ANSI C89 conformant.
18:38 nwc10 fflush(NULL) affects stdin. If it's a pipe. WRONG.
18:39 nwc10 maybe next year. For the 25th anniversary.
19:28 FROGGS[mobile]2 joined #moarvm
19:51 foo_bar_baz joined #moarvm
20:53 woolfy joined #moarvm
20:56 not_gerd joined #moarvm
20:56 jnthn JimmyZ: Stop asking to remove stuff. We're still in the middle of putting things together, ffs.
20:56 yoleaux 12:41Z <nwc10> jnthn: http://act.useperl.at/apw2013/main # Registration open
20:58 jnthn .tell nwc10 Well, I registered at least...
20:58 yoleaux jnthn: I'll pass your message to nwc10.
21:07 FROGGS joined #moarvm
21:14 lizmat joined #moarvm
21:31 dalek MoarVM/static-repr: eb6f67f | jimmy++ | src/6model/reprs/HashAttrStore.c:
21:31 dalek MoarVM/static-repr: make HashAttrStore this_repr static
21:31 dalek MoarVM/static-repr: review: https://github.com/MoarVM/MoarVM/commit/eb6f67f86c
21:31 dalek MoarVM/static-repr: c77b513 | jimmy++ | src/6model/reprs/ (4 files):
21:31 dalek MoarVM/static-repr: make some reprs this_repr static
21:32 dalek joined #moarvm
21:32 woolfy left #moarvm
22:24 japhb joined #moarvm
22:57 larks joined #moarvm

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