On Thu, Sep 04, 2008 at 09:48:09AM -0700, chromatic via RT wrote: > > I don't think we need any specialized opcodes for this -- simply > > being able to introspect and dynamically modify the current > > interpreter's HLL mapping tables ought to be sufficient. > > > > (Introspection of HLL mappings is likely to end up being important > > for the compiler toolkit related libraries anyway, so that a toolkit > > can generate correct mapping code in the places where Parrot doesn't > > already handle it.) > > How would the interface look? Are methods on the > Interpreter PMC appropriate, or do you have something else in mind?
I don't have a specific interface in mind. Methods on an Interpreter PMC would be just fine, and are probably preferable: ## Map Parrot C<String> to Perl 6 C<Str> .local pmc core_type, hll_type, interp core_type = get_class 'String' hll_type = get_class 'Str' interp = getinterp interp.'hll_map'(core_type, hll_type) But it could also be potentially be done with a hash-like interface of some sort similar to how we do other interpreter-introspection types of things: .local pmc interp, hllmap interp = getinterp hllmap = inter['hllmap'] ## use a hash-like interface on hllmap to query/set mappings hllmap['String'] = 'Str' I suspect that the hash-like interface is less likely now that we have eliminated integer type ids from the PIR-level programming interface -- which probably argues for a method-based approach instead. Pm