Replace time-based GC with allocation-count trigger, migrate all Create factories to GCList::Create(), fix VFSPath root path, reorder TObject variant
Build and Deploy on Tag / 🔨 Build for PowerPC (push) Successful in 1m11s
Build and Deploy on Tag / 🔨 Build for everything else (git.tesses.org/tesses50/linux-riscv64:latest, riscv64-linux-gnu, riscv64) (push) Successful in 3m22s
Build and Deploy on Tag / 🔨 Build for everything else (git.tesses.org/tesses50/linux-x64:latest, x86_64-linux-gnu, amd64) (push) Successful in 3m34s
Build and Deploy on Tag / 🔨 Build for everything else (git.tesses.org/tesses50/linux-arm:latest, arm-linux-gnueabihf, arm7) (push) Successful in 3m37s
Build and Deploy on Tag / 🔨 Build for everything else (git.tesses.org/tesses50/linux-arm64:latest, aarch64-linux-gnu, arm64) (push) Successful in 3m39s
Build and Deploy on Tag / 🔨 Build for everything else (git.tesses.org/tesses50/linux-x86:latest, i386-linux-gnu, 386) (push) Successful in 55s
Build and Deploy on Tag / update-tap (push) Failing after 4m8s

This commit is contained in:
2026-09-01 05:15:43 -05:00
parent 56b74dc6fc
commit 2430b62232
38 changed files with 888 additions and 806 deletions
+9 -12
View File
@@ -9,22 +9,12 @@ bool TClassEnvironment::HasConstForSet(std::string key) {
TClassEnvironment *TClassEnvironment::Create(GCList *gc, TEnvironment *env,
TClassObject *obj) {
TClassEnvironment *env2 = new TClassEnvironment(env, obj);
std::shared_ptr<GC> _gc = gc->GetGC();
gc->Add(env2);
_gc->Watch(env2);
return env2;
return gc->Create<TClassEnvironment>(env, obj);
}
TClassEnvironment *TClassEnvironment::Create(GCList &gc, TEnvironment *env,
TClassObject *obj) {
TClassEnvironment *env2 = new TClassEnvironment(env, obj);
std::shared_ptr<GC> _gc = gc.GetGC();
gc.Add(env2);
_gc->Watch(env2);
return env2;
return gc.Create<TClassEnvironment>(env, obj);
}
TClassEnvironment::TClassEnvironment(TEnvironment *env, TClassObject *obj) {
this->env = env;
@@ -33,6 +23,7 @@ TClassEnvironment::TClassEnvironment(TEnvironment *env, TClassObject *obj) {
bool TClassEnvironment::HasVariable(std::string key) {
if (key == "this")
return true;
auto current_function = GC::GetCurrentFunction();
if (this->clsObj->HasValue(current_function == nullptr
? ""
: current_function->callable->className,
@@ -49,6 +40,8 @@ bool TClassEnvironment::HasVariableOrFieldRecurse(std::string key,
bool setting) {
if (key == "this")
return true;
auto current_function = GC::GetCurrentFunction();
std::string clsName = current_function == nullptr
? ""
: current_function->callable->className;
@@ -63,6 +56,7 @@ TObject TClassEnvironment::GetVariable(std::string key) {
if (key == "this")
return this->clsObj;
auto current_function = GC::GetCurrentFunction();
std::string clsName = current_function == nullptr
? ""
: current_function->callable->className;
@@ -75,6 +69,7 @@ void TClassEnvironment::SetVariable(std::string key, TObject value) {
if (key == "this")
return;
auto current_function = GC::GetCurrentFunction();
std::string clsName = current_function == nullptr
? ""
: current_function->callable->className;
@@ -90,6 +85,7 @@ TObject TClassEnvironment::GetVariable(GCList &ls, std::string key) {
if (key == "this")
return this->clsObj;
auto current_function = GC::GetCurrentFunction();
std::string clsName = current_function == nullptr
? ""
: current_function->callable->className;
@@ -107,6 +103,7 @@ TObject TClassEnvironment::SetVariable(GCList &ls, std::string key, TObject v) {
if (key == "this")
return this->clsObj;
auto current_function = GC::GetCurrentFunction();
std::string clsName = current_function == nullptr
? ""
: current_function->callable->className;