This is an unordered list of issues - mainly design questions - about the specific implementation of some parts.
Interpreter globals -------------------
We have real globals (e.g. Parrot_base_vtables, Env) and per interpreter/thread globals (e.g. classname_hash). I think best is to have the former attached to the first interpreter and let other interpreters just point to these.
IO Handles/PMCs --------------- Are they real globals? What happens if two threads write to STDOUT/to the same file? See also: Subject: [RfC] Semantics of clone for PIO-objects.
PMC methods ----------- ParrotIO has methods via find_method/invoke. Should that be a general mechanism in default.pmc with one vtable slot for the meth hash?
Calling Conventions ------------------- The return value convention needs some more thoughts. While the caller knows everything about how it calls a sub, it may or may not know, how the sub passes return values.
Exceptions ---------- I presume internal_exception() should throw a real exception. So the exception reason should be classified (severity/reason).
Resumable ops and exceptions ---------------------------- For example the C<loadlib> opcode currently PANIC()s, if the library couldn't be opened. Such opcodes could be changed to throw an exception on failure and allow resuming on the next opcode. Related: Subject: Trapping find_lex failure; case for search_lex? And of course: Don't Panic!
Vtables ------- Almost warnocked: Subject: [RfC] disable unused vtable entries
Vtables 2 --------- Are there any design hints on var/value split of vtables? Currently in a lot of places the address of the vtable is used to check if a class is e.g. a PerlInt. This will not work if that is a tied PerlInt. Other checks are done with vtable->base_type, but a tied PerlInt will have a different class enum too. So how will we check for "some PerlInt" class? What is the subtype? And what are int_type, float_type, num_type, string_type in the vtable?
Event handling -------------- Should I rediff and commit [perl #23039] [PATCH] event handling-2
Thanks for wading through this list and any comments and answers. leo