KOS_OP_IMPORT_STAR
Style: EXTRA (
CONST,COUNT,NOARG,NOARG). Row:a0= cpool module name str (or None),a1= level.Stack: no effect.
Semantics: Import the leaf module and bind its public names into the current frame namespace, matching Python’s
from MODULE import *. Name selection follows CPython’simport_all_from: when the module defines__all__(a sequence of str; a non-str entry is aTypeError) exactly those names are bound; otherwise everydir(module)name that does not start with an underscore. Existing bindings are overwritten.Compiler restriction: the
import-all-fromspecial emits this opcode only at module top level; it is a compile error inside a function, lambda,let, or class body.Invariants:
a0is a str or None.Compiler form: Pre-compile extra operand is a 4-tuple
(name, level, 0, 0).Implementation:
koskari/lib/opcode/IMPORT_STAR.c
Example: (import-all-from os.path) – bind os.path’s public names. Extra row: ("os.path", 0, 0, 0).
index |
opcode |
arg |
arg view |
comment |
|---|---|---|---|---|
0 |
IMPORT_STAR |
0 |
0 (“os.path”, 0, …) |
bind public names; stack: […] |
1 |
CONST |
1 |
1 (None) |
statement value |
2 |
RETURN |
1 |
1 |
Note: There is no KOS_OP_CAPTURE_FRAME (or similar) in
koskari/lib/opcodes.incl today. Any future stack/frame introspection opcode
would be added there first, then documented here.