Merge branch 'main' into sandbox

This commit is contained in:
blueloveTH 2026-08-11 17:02:32 +08:00
commit eec32b9c63
3 changed files with 17 additions and 0 deletions

View File

@ -2547,6 +2547,8 @@ static Error* compile_normal_import(Compiler* self, c11_sbuf* buf) {
} }
c11_string* path = c11_sbuf__submit(buf); c11_string* path = c11_sbuf__submit(buf);
c11_sbuf__ctor(buf);
int path_index = Ctx__add_const_string(ctx(), c11_string__sv(path)); int path_index = Ctx__add_const_string(ctx(), c11_string__sv(path));
c11_string__delete(path); c11_string__delete(path);

View File

@ -56,8 +56,19 @@ static void py_ModuleInfo__dtor(py_ModuleInfo* mi) {
c11_string__delete(mi->path); c11_string__delete(mi->path);
} }
static bool module__repr__(int argc, py_Ref argv) {
PY_CHECK_ARGC(1);
py_ModuleInfo* self = py_touserdata(argv);
c11_sbuf buf;
c11_sbuf__ctor(&buf);
pk_sprintf(&buf, "<module '%s'>", self->path->data);
c11_sbuf__py_submit(&buf, py_retval());
return true;
}
py_Type pk_module__register() { py_Type pk_module__register() {
py_Type type = pk_newtype("module", tp_object, NULL, (py_Dtor)py_ModuleInfo__dtor, false, true); py_Type type = pk_newtype("module", tp_object, NULL, (py_Dtor)py_ModuleInfo__dtor, false, true);
py_bindmagic(type, __repr__, module__repr__);
return type; return type;
} }

View File

@ -0,0 +1,4 @@
import os, math
assert repr(os) == "<module 'os'>"
assert repr(math) == "<module 'math'>"