freenode/#clasp - IRC Chatlog
Search
13:32:29
Bike
drmeister: i have header stamp and rack stamp reading working. what can i use for wrapped and derivative objects to test?
13:50:33
drmeister
It's definitely the Clang AST and some of the clangTooling.cc exposed classes are derivable_objects.
14:02:46
Bike
i mean, i wrote a reader for wrapped stamps, and used it on a variant-value, and nothing crashed
15:00:28
Bike
ok. what's the equivalent of class-stamp-for-instances, so that i can verify the numbers?
15:13:27
Bike
where tags might be weird. the stamp for ast-tooling:variant-values is 2713, which has a low two bits of 1, which indicates a rack object, rather than a wrapped object
15:20:50
drmeister
The where tag in the header stamp is correct, the where tags in the wrapped and derived objects look wrong. That threw me for a bit.
15:22:39
drmeister
But then I don't think I set up in the scraper where tags for the wrapped and derived objects to match the one in the header. The header where tag is the only one that matters.
15:24:04
drmeister
It might be good to fix the scraper so that the where tags are all consistent so we avoid future surprises. OTOH I modified the core__instance_stamp function to return the object stamp and the header stamp as two values.
15:24:55
Bike
i'm not sure about my design for the operator though, it has kind of weird semantics - it both sets a variable and branches
15:25:29
drmeister
Yeah - they have to be correct. Instance_O, FuncallableInstance_O, ClassRep_O must all have the rack where tag. WrappedPointer_O must have the wrapped where tag and DerivableCxxObject_O must have the derivable where tag.
15:27:33
Bike
in the compiled dtree, getting the stamp and branching based on the where tag are all in the same instruction, since you never need to do them separately anyway
15:31:19
Bike
by the way, we might be able to differentiate classes on wrapped/derivedness pretty easily? it looks like wrapped object classes are of class core:clbind-cxx-class, and derived object classes have a core:derivable-cxx-class in their class precedence list
17:24:35
drmeister
Ok - how does that help? Would it be better to confine the wrapped stamps and derivable stamps to separate ranges?
17:25:06
drmeister
Let me put it this way. If there would be an advantage to confine those stamps then I could arrange the runtime to do that. It would take some work though.
17:30:24
drmeister
Great - that saves me a bunch of work. I also don't like the idea of putting limits on stamp ranges for certain kinds of objects.
17:31:10
Bike
the point is having some way to tell the _classes_ apart. at compile time where we can be a little slow, too
21:25:40
Bike
i'm getting what is i think a recursive C++ exception from a bad format string - i think we had that in here earlier