Lower core F# expressions, patterns, declarations, and exceptions

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

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
15/100
Tipo de issue
Nueva funcionalidad
Claridad
Necesita aclaración
Estado de actividad
Tranquilo
Stack tecnológico
fsharp
Área
compilers

Línea de trabajo

Comienza con el issue principal #8 y los bloqueadores #33 y #34; después, lee las entradas de decisión #5 y #7, además de los ADRs 0006, 0008, 0015 y 0021. Traza las etapas parse, typecheck, lower, emit, load y execute usando programas propios del compilador. Se considera terminado cuando las familias de lenguajes indicadas hagan lower con semántica explícita de cierres, mutación, excepciones, posiciones de cola y depuración, mientras que las familias no compatibles fallen antes de la publicación.

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

Descripción

wayfinder:task

Parent: #8
Blocked by: #33 and #34

Outcome

Implement target-agnostic lowering for the core batch-language families.

Acceptance criteria

  • Values, functions, applications, locals, mutation, control flow, pattern matches, decision trees, records, unions, classes, structs, interfaces, object expressions, closures, generic operations, and exceptions lower from typed input.
  • Closure conversion, captured mutation, tail positions, exception regions, and debug anchors are explicit.
  • Lowered output uses stable symbolic operands and identities rather than metadata handles or final layout.
  • Each language family runs through parse, typecheck, lower, emit, load, and execute using small compiler-owned programs.
  • Behavioral comparison permits different valid IL while preserving public API, runtime, exception, and debug semantics.
  • Unsupported families fail before successful publication rather than generating placeholder behavior.

Decision inputs

Issues #5 and #7; ADRs 0006, 0008, 0015, and 0021.

This issue inherits the corpus-neutral acceptance policy in #8.

Lenguaje dominante
F#
Estrellas
0
Forks
0
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Abrir en Codespaces

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

  • Sin Dockerfile ni archivo de Docker Compose
  • Tiene una plantilla de pull request
  • Sin guía de contribución

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 TheAngryByrd/fsharp2

Todos los issues de TheAngryByrd/fsharp2

Issues similares

Más issues de Compilers

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.