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



Reply via email to