Calling Gc.compact() in cppia collects the current CppiaClosure/ScriptCallable?
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 22/100
Línea de trabajo
Comienza reproduciendo la secuencia reportada desde hxcpp_set_top_of_stack() y hxRunLibrary() a través de Module.fromData, module.boot(), Type.createInstance, Reflect.callMethod y Gc.compact(). Compara el fallo después de que el método cppia retorna con el caso en que se elimina compact(); se considera terminado cuando la closure sigue siendo utilizable o se han establecido la limitación admitida y la corrección necesaria.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
I am not even sure if the title correctly describes the issue. But it seems to be the case for what I am seeing.
Looking at the stack trace below it seems like the function variable magically becomes null, while it was still usable 2 lines above (function->runFunctionClosure(ctx);)
What I notice is that there is a cpp.vm.Gc.compact() call inside the cppia function. Removing such call seems to fix the problem.
The setup is a bit complex to be isolated. So for now I am going to first describe the setup with text and see if there any insights and I hope it is some obvious gc usage issue. The following logic all happens in the same non-haxe thread:
- Haxe is used as a library in a c++ project and it is initialized with:
hxcpp_set_top_of_stack(); const char *err = hxRunLibrary(); - cppia bytecode is loaded and stored in a Haxe static variable
module = cpp.cppia.Module.fromData(bytes); module.boot(); - a class defined in cppia is initialized (
Type.createInstance(module.resolveClass(name))) and a instance method is invoked viaReflect.callMethod - in such instance method
cpp.vm.Gc.compact()is called - the crash in the screenshot happens, after the cppia method returns
Info:
macos: 15 (arm64)
haxe: 4.3.6
hxcpp: git (96875093ec43e48dc2e1da95b8730e0c122ae017)
- Lenguaje dominante
- C++
- Estrellas
- 330
- Forks
- 232
- Merge medio
- 3 d 5 h
- PR fusionados (30 d)
- 3
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de HaxeFoundation/hxcpp
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
HaxeFoundation/hxcpp#1217 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
HaxeFoundation/hxcpp#1432 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
HaxeFoundation/hxcpp#1431 ·
Los mantenedores suelen responder en 1 día
-
Set up clang formatAbierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 42/100
HaxeFoundation/hxcpp#1430 ·
Los mantenedores suelen responder en 1 día
-
Null<UInt> compared with null gives wrong results (null is cast to 0 by UInt's == / != overloads)Abierto
Dificultad 4/5 1-2 días Aptitud para principiantes 57/100
HaxeFoundation/hxcpp#1427 · 1 comentario ·
Los mantenedores suelen responder en 1 día
Todos los issues de HaxeFoundation/hxcpp
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
KhronosGroup/Vulkan-Tutorial#534 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
Los mantenedores suelen responder en 2 días
-
bug IO
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
MrNeRF/LichtFeld-Studio#3824 ·
Los mantenedores suelen responder en 1 día
-
pnnx: manual tanh GELU fusion loses the approximation modePosiblemente ocupada @ktz03 la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Tencent/ncnn#7175 · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 77/100
throneproj/Throne#2043 ·
Los mantenedores suelen responder en 2 días