Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

No integer/float subtype: integral floats print as integers, next(t, k) with float k computed at runtime continues (#42 literal-only)

Abierto
#49 0 comentarios 0 reacciones 0 asignados Ver en GitHub

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
12/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
lua
Área
compilers

Línea de trabajo

Start with GAPS.md, which does not yet declare this gap, and with the three Lua snippets in the issue body, which show the reference output against EigenLua's current output. The next(t, k) float-key check lives on the fix-small-4 branch and only matches float literals passed at the call site. Done means either the runtime carries an integer/float subtype so the three snippets match as a Tier D row, or GAPS.md lists the consequences (integral-float printing, // and % by zero, the next cursor quirk, math.type).

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

bug eigenscript-gap

Found by the blind critic for fix-small-4 (#40/#42/#44/#45). Reproduces on origin/main 9536f4c.

EigenLua has no integer/float subtype at runtime: every Lua number becomes an EigenScript num. Several reference behaviours depend on the subtype:

print(1.0, "10.0"+1, math.type("10.0"+1))   -- ref: 1.0  11.0  float
print("1.0" // "0")                         -- ref: inf
local t = {}; t[1] = "one"; t[2.0] = "two"
local k = 1.0
print(pcall(next, t, k))                    -- ref: false  invalid key to 'next'

eigenlua: 1 11 integer, attempt to divide by zero, true 2 two.

The fix-small-4 branch makes next(t, 1.0) match only when a float literal is passed to next(...) or pcall(next, ...), using call-site metadata. A float that is computed, stored in a variable or table, passed through a vararg or select, or sent through coroutine.wrap(next) / pcall(pcall, next, ...) still continues instead of raising. Existing D rows that diverge for this reason: int_one_vs_one, str_format_num, ops_matrix (u- gives -0 float), and others.

GAPS.md does not declare this gap.

Done when

Either the runtime carries the subtype, so that the three lines above MATCH as a Tier D row, or GAPS.md declares the gap and lists the observable consequences (integral-float printing, // and % by zero, the next cursor quirk, math.type).

Lenguaje dominante
Lua
Estrellas
0
Forks
0
Merge medio
54 min
PR fusionados (30 d)
19

Preparar el entorno

Abrir en Codespaces

Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de InauguralSystems/EigenLua

Todos los issues de InauguralSystems/EigenLua

Issues similares

Más issues de Lua

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.