Rewrite module loading in order to be smaller
Los mantenedores suelen responder en 2 días
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 25/100
- Tipo de issue
- Refactorización
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- c, erlang
- Área
- compilers, embedded-iot
Línea de trabajo
Start with the module loading and parsing implementation in opcodesswitch.h, where IMPL_CODE_LOADER enables the current code. Investigate how the mega-switch handles opcode definitions and BIF calls, then assess whether a table-driven parsing loop can reduce flash usage and detect missing BIFs. Done means a smaller loader that checks consistency and avoids crashes from missing BIFs.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Module code loading / parsing is implemented in opcodesswitch.h when IMPL_CODE_LOADER is defined, that relies on the mega-switch and a lot on inlined code.
As a consequence the compile code takes a lot of space.
The whole functionality can be replaced with a smaller parsing loop that relies on some kind of opcode definition table, saving quite a lot of space on flash memory.
Last but not least, a good smarter implementation, should verify consistency and avoid some issues, such as calling missing BIFs (it causes a crash).
- Lenguaje dominante
- Erlang
- Estrellas
- 2.3k
- Forks
- 171
- Merge medio
- 5 d 11 h
- PR fusionados (30 d)
- 19
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
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 atomvm/AtomVM
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
Los mantenedores suelen responder en 2 días
-
unicode:characters_to_list/binary return an uninitialized term for a non-chardata argumentPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 77/100
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 67/100
atomvm/AtomVM#2435 · 1 comentario · 1 reacción ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
atomvm/AtomVM#2429 · 1 reacción ·
Los mantenedores suelen responder en 2 días
Todos los issues de atomvm/AtomVM
Issues similares
-
chat compiler
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
HerringtonDarkholme/hd-lang#1613 · 3 comentarios ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 Medio día Aptitud para principiantes 64/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 4 días
-
bug parser
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
nanyx-lang/nanyx#493 ·
Los mantenedores suelen responder en 1 día
-
from-agent
Dificultad 2/5 1-3 horas Aptitud para principiantes 64/100