Rewrite module loading in order to be smaller
I maintainer di solito rispondono entro 2 giorni
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 25/100
- Tipo di issue
- Refactoring
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- c, erlang
- Ambito
- compilers, embedded-iot
Direzione di ricerca
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.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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).
- Lingua principale
- Erlang
- Stelle
- 2.3k
- Fork
- 171
- Merge medio
- 5g 11h
- PR unite (30g)
- 19
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di atomvm/AtomVM
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
I maintainer di solito rispondono entro 2 giorni
-
unicode:characters_to_list/binary return an uninitialized term for a non-chardata argumentForse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 77/100
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
atomvm/AtomVM#2435 · 1 commento · 1 reazione ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
atomvm/AtomVM#2429 · 1 reazione ·
I maintainer di solito rispondono entro 2 giorni
Tutte le issue di atomvm/AtomVM
Issue simili
-
bug lexer
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
I maintainer di solito rispondono entro 1 giorno
-
SELECT RANK association name is not declared inside RANK DEFAULT: "Variable 'q' is not declared"Apertaarrays bug medium priority semantics
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
voidzero-dev/oxc-angular-compiler#686 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
godotengine/godot#125272 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 73/100
I maintainer di solito rispondono entro 1 giorno