Legacy bs_put_utf8/16/32 raise unsupported at a non-byte-aligned offset
Los mantenedores suelen responder en 2 días
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 76/100
Línea de trabajo
Lee OP_BS_PUT_UTF8, OP_BS_PUT_UTF16 y OP_BS_PUT_UTF32 en opcodesswitch.h, junto con las funciones auxiliares bitstring_insert_utf8/16/32 y el cambio de #2357. Reproduce el problema con código compilado con erlc +no_bs_create_bin +no_bs_match +no_type_opt y ejecútalo en el intérprete. El trabajo estará terminado cuando los opcodes heredados acepten offsets no alineados a bytes y los ejemplos produzcan las bitstrings mostradas.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
With the legacy construction opcodes (code compiled by OTP 24 or older, or with +no_bs_create_bin), a utf8, utf16 or utf32 segment that does not start on a byte boundary raises unsupported:
C = id($a),
<<1:1, C/utf8>> %% OTP 27 <<176,1:1>> AtomVM unsupported
<<1:1, C/utf16>> %% OTP 27 <<128,48,1:1>> AtomVM unsupported
<<1:1, C/utf32>> %% OTP 27 <<128,0,0,48,1:1>> AtomVM unsupported
<<C/utf8, 1:1, C/utf8>> %% OTP 27 <<97,176,1:1>> AtomVM unsupported
Compiled with OTP 27 erlc +no_bs_create_bin +no_bs_match +no_type_opt and run on the interpreter (the JIT compiler does not accept these opcodes).
Cause: OP_BS_PUT_UTF8, OP_BS_PUT_UTF16 and OP_BS_PUT_UTF32 in opcodesswitch.h still reject ctx->bs_offset % 8 != 0 before calling bitstring_insert_utf8/16/32. With #2357 those helpers write at any bit offset (bs_create_bin already uses them that way), so the three checks can be removed once #2357 is merged.
- 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 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
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Los mantenedores suelen responder en 2 días
Todos los issues de atomvm/AtomVM
Issues similares
-
bot-found bug priority: P3
Dificultad 2/5 1-3 horas Aptitud para principiantes 83/100
madenvel/KalinkaPlayer#543 ·
-
type: bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 67/100
ynput/ayon-usd-resolver#117 ·
Los mantenedores suelen responder en 1 día
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 2 días
-
🚨 Transformers v5.23.0 removes `ProcessingKwargs._defaults` which is used by Qwen-Omni / Gemma3Abiertoquestion
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
modelscope/ms-swift#10538 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
nautechsystems/nautilus_trader#5631 ·
Los mantenedores suelen responder en 1 día