Skip to content

[Grading] Team: Rachel, Melissa, Jean #31

Open

Description

@Ray-M05

Repository URL

https://github.com/Jean1408Man/Hulk-Compiler

Branch

main

Team Members

Rachel Mojena González C312
Melissa Maureen Sales Brito C311
Jean Manuel Martínez Pardo C312

Features Implemented

  • Minimal requirements: expressions, functions, variables, conditionals, loops
  • Type system and type checking (with explicit and inferred annotations)
  • OOP: classes, inheritance, polymorphism, is/as
  • Iterables / for loops
  • Vectors / arrays
  • Protocols
  • Functors (first-class functions)
  • Macros

Activity

  1. added
    gradingCompiler project submission for automated grading
    on Jun 15, 2026
  2. github-actions commented on Jun 15, 2026

    @github-actions

    ⏳ HULK Grading running on https://github.com/Jean1408Man/Hulk-Compiler @ branch _Noresponse_...

  3. github-actions commented on Jun 15, 2026

    @github-actions

    ⏳ HULK Grading running on https://github.com/Jean1408Man/Hulk-Compiler @ branch _Noresponse_...

  4. github-actions commented on Jun 15, 2026

    @github-actions

    🤖 HULK Grading Report — 2026-06-15 06:07 UTC

    Repo: https://github.com/Jean1408Man/Hulk-Compiler

    📦 Build

    ❌ Build failed

    Fix build errors and comment /regrade to re-run.

  5. github-actions commented on Jun 15, 2026

    @github-actions

    🤖 HULK Grading Report — 2026-06-15 06:07 UTC

    Repo: https://github.com/Jean1408Man/Hulk-Compiler

    📦 Build

    ❌ Build failed

    Fix build errors and comment /regrade to re-run.

  6. Ray-M05 commented on Jun 15, 2026

    @Ray-M05
    Author

    /regrade

  7. github-actions commented on Jun 15, 2026

    @github-actions

    ⏳ HULK Grading running on https://github.com/Jean1408Man/Hulk-Compiler @ branch main...

  8. github-actions commented on Jun 15, 2026

    @github-actions

    🤖 HULK Grading Report — 2026-06-15 06:10 UTC

    Repo: https://github.com/Jean1408Man/Hulk-Compiler

    📦 Build

    ✅ Build successful

    📄 Report

    ✅ REPORT.md found (2,523 words)

    🧪 Tests

    Category Passed Total Status
    ok/minimal 20 20 ✅
    ok/types 10 10 ✅
    ok/oop 10 10 ✅
    errors/lexical 6 6 ✅
    errors/syntactic 10 10 ✅
    errors/semantic 15 15 ✅
    ok/extras 9 10 ➖

    ❌ Failures

    • ok/extras/for_even_count: compilation failed (exit 2): (3,26) SYNTACTIC: syntax error, unexpected IF, expecting IDENTIFIER, STRING_LITE
    • ok/macros/define_block: compilation failed (exit 2): (1,17) SYNTACTIC: syntax error, unexpected COLON, expecting END, IDENTIFIER, STR
    • ok/macros/define_chain: compilation failed (exit 2): (1,16) SYNTACTIC: syntax error, unexpected COLON, expecting END, IDENTIFIER, STR
    • ok/macros/define_conditional: compilation failed (exit 2): (1,14) SYNTACTIC: syntax error, unexpected COLON, expecting END, IDENTIFIER, STR
    • ok/macros/define_hygiene: compilation failed (exit 2): (1,18) SYNTACTIC: syntax error, unexpected COLON, expecting END, IDENTIFIER, STR
    • ok/macros/define_loop: compilation failed (exit 2): (1,20) SYNTACTIC: syntax error, unexpected COLON, expecting END, IDENTIFIER, STR
    • ok/macros/define_nested: compilation failed (exit 2): (1,14) SYNTACTIC: syntax error, unexpected COLON, expecting END, IDENTIFIER, STR
    • ok/macros/define_recursive_expand: compilation failed (exit 2): (1,22) SYNTACTIC: syntax error, unexpected COLON, expecting END, IDENTIFIER, STR
    • ok/macros/simple_define: compilation failed (exit 2): (1,16) SYNTACTIC: syntax error, unexpected COLON, expecting END, IDENTIFIER, STR
    • ok/arrays/array_2d: compilation failed (exit 1): (1,19) LEXICAL: Carácter inválido: '['.
    • ok/arrays/array_auto_init: compilation failed (exit 1): (1,14) LEXICAL: Carácter inválido: '['.
    • ok/arrays/array_basic: compilation failed (exit 1): (1,14) LEXICAL: Carácter inválido: '['.
    • ok/arrays/array_literal: compilation failed (exit 1): (1,14) LEXICAL: Carácter inválido: '['.
    • ok/arrays/array_mutation: compilation failed (exit 1): (1,16) LEXICAL: Carácter inválido: '['.
    • ok/arrays/array_pass: compilation failed (exit 1): (1,29) LEXICAL: Carácter inválido: '['.
    • ok/arrays/array_size: compilation failed (exit 1): (2,18) LEXICAL: Carácter inválido: '['.
    • ok/arrays/array_sum: compilation failed (exit 1): (1,14) LEXICAL: Carácter inválido: '['.
    • ok/interfaces/interface_basic: compilation failed (exit 2): (1,11) SYNTACTIC: Solo se permite una expresion global final
    • ok/interfaces/interface_inherit_compat: compilation failed (exit 2): (1,11) SYNTACTIC: Solo se permite una expresion global final
    • ok/interfaces/interface_multiple_impl: compilation failed (exit 2): (1,11) SYNTACTIC: Solo se permite una expresion global final
    • (and 9 more…)

    🔖 Status

    ✅ Ready for review. All required tests pass and REPORT.md is present.

  9. Ray-M05 commented on Jun 16, 2026

    @Ray-M05
    Author

    /regrade

  10. github-actions commented on Jun 16, 2026

    @github-actions

    ⏳ HULK Grading running on https://github.com/Jean1408Man/Hulk-Compiler @ branch main...

  11. github-actions commented on Jun 16, 2026

    @github-actions

    🤖 HULK Grading Report — 2026-06-16 20:33 UTC

    Repo: https://github.com/Jean1408Man/Hulk-Compiler

    📦 Build

    ✅ Build successful

    📄 Report

    ✅ REPORT.md found (2,523 words)

    🧪 Tests

    Category Passed Total Status
    ok/minimal 20 20 ✅
    ok/types 10 10 ✅
    ok/oop 10 10 ✅
    errors/lexical 6 6 ✅
    errors/syntactic 10 10 ✅
    errors/semantic 15 15 ✅
    ok/extras 10 10 ➖

    ❌ Failures

    • ok/macros/define_block: compilation failed (exit 2): (1,17) SYNTACTIC: syntax error, unexpected COLON, expecting END, IDENTIFIER, STR
    • ok/macros/define_chain: compilation failed (exit 2): (1,16) SYNTACTIC: syntax error, unexpected COLON, expecting END, IDENTIFIER, STR
    • ok/macros/define_conditional: compilation failed (exit 2): (1,14) SYNTACTIC: syntax error, unexpected COLON, expecting END, IDENTIFIER, STR
    • ok/macros/define_hygiene: compilation failed (exit 2): (1,18) SYNTACTIC: syntax error, unexpected COLON, expecting END, IDENTIFIER, STR
    • ok/macros/define_loop: compilation failed (exit 2): (1,20) SYNTACTIC: syntax error, unexpected COLON, expecting END, IDENTIFIER, STR
    • ok/macros/define_nested: compilation failed (exit 2): (1,14) SYNTACTIC: syntax error, unexpected COLON, expecting END, IDENTIFIER, STR
    • ok/macros/define_recursive_expand: compilation failed (exit 2): (1,22) SYNTACTIC: syntax error, unexpected COLON, expecting END, IDENTIFIER, STR
    • ok/macros/simple_define: compilation failed (exit 2): (1,16) SYNTACTIC: syntax error, unexpected COLON, expecting END, IDENTIFIER, STR
    • ok/arrays/array_2d: compilation failed (exit 1): (1,19) LEXICAL: Carácter inválido: '['.
    • ok/arrays/array_auto_init: compilation failed (exit 1): (1,14) LEXICAL: Carácter inválido: '['.
    • ok/arrays/array_basic: compilation failed (exit 1): (1,14) LEXICAL: Carácter inválido: '['.
    • ok/arrays/array_literal: compilation failed (exit 1): (1,14) LEXICAL: Carácter inválido: '['.
    • ok/arrays/array_mutation: compilation failed (exit 1): (1,16) LEXICAL: Carácter inválido: '['.
    • ok/arrays/array_pass: compilation failed (exit 1): (1,29) LEXICAL: Carácter inválido: '['.
    • ok/arrays/array_size: compilation failed (exit 1): (2,18) LEXICAL: Carácter inválido: '['.
    • ok/arrays/array_sum: compilation failed (exit 1): (1,14) LEXICAL: Carácter inválido: '['.
    • ok/interfaces/interface_basic: compilation failed (exit 2): (1,11) SYNTACTIC: Solo se permite una expresion global final
    • ok/interfaces/interface_inherit_compat: compilation failed (exit 2): (1,11) SYNTACTIC: Solo se permite una expresion global final
    • ok/interfaces/interface_multiple_impl: compilation failed (exit 2): (1,11) SYNTACTIC: Solo se permite una expresion global final
    • ok/interfaces/interface_param: compilation failed (exit 2): (1,11) SYNTACTIC: Solo se permite una expresion global final
    • (and 8 more…)

    🔖 Status

    ✅ Ready for review. All required tests pass and REPORT.md is present.

  12. Ray-M05 commented on Jun 19, 2026

    @Ray-M05
    Author

    /regrade

  13. github-actions commented on Jun 19, 2026

    @github-actions

    ⏳ HULK Grading running on https://github.com/Jean1408Man/Hulk-Compiler @ branch main...

  14. github-actions commented on Jun 19, 2026

    @github-actions

    🤖 HULK Grading Report — 2026-06-19 06:36 UTC

    Repo: https://github.com/Jean1408Man/Hulk-Compiler

    📦 Build

    ✅ Build successful

    📄 Report

    ✅ REPORT.md found (3,012 words)

    🧪 Tests

    Category Passed Total Status
    ok/minimal 20 20 ✅
    ok/types 10 10 ✅
    ok/oop 10 10 ✅
    errors/lexical 6 6 ✅
    errors/syntactic 10 10 ✅
    errors/semantic 15 15 ✅
    ok/extras 10 10 ➖

    ❌ Failures

    • ok/macros/define_block: compilation failed (exit 2): (1,17) SYNTACTIC: error de sintaxis, no se esperaba COLON, se esperaba END, IDEN
    • ok/macros/define_chain: compilation failed (exit 2): (1,16) SYNTACTIC: error de sintaxis, no se esperaba COLON, se esperaba END, IDEN
    • ok/macros/define_conditional: compilation failed (exit 2): (1,14) SYNTACTIC: error de sintaxis, no se esperaba COLON, se esperaba END, IDEN
    • ok/macros/define_hygiene: compilation failed (exit 2): (1,18) SYNTACTIC: error de sintaxis, no se esperaba COLON, se esperaba END, IDEN
    • ok/macros/define_loop: compilation failed (exit 2): (1,20) SYNTACTIC: error de sintaxis, no se esperaba COLON, se esperaba END, IDEN
    • ok/macros/define_nested: compilation failed (exit 2): (1,14) SYNTACTIC: error de sintaxis, no se esperaba COLON, se esperaba END, IDEN
    • ok/macros/define_recursive_expand: compilation failed (exit 2): (1,22) SYNTACTIC: error de sintaxis, no se esperaba COLON, se esperaba END, IDEN
    • ok/macros/simple_define: compilation failed (exit 2): (1,16) SYNTACTIC: error de sintaxis, no se esperaba COLON, se esperaba END, IDEN
    • ok/arrays/array_2d: compilation failed (exit 1): (1,19) LEXICAL: Carácter inválido: '['.
    • ok/arrays/array_auto_init: compilation failed (exit 1): (1,14) LEXICAL: Carácter inválido: '['.
    • ok/arrays/array_basic: compilation failed (exit 1): (1,14) LEXICAL: Carácter inválido: '['.
    • ok/arrays/array_literal: compilation failed (exit 1): (1,14) LEXICAL: Carácter inválido: '['.
    • ok/arrays/array_mutation: compilation failed (exit 1): (1,16) LEXICAL: Carácter inválido: '['.
    • ok/arrays/array_pass: compilation failed (exit 1): (1,29) LEXICAL: Carácter inválido: '['.
    • ok/arrays/array_size: compilation failed (exit 1): (2,18) LEXICAL: Carácter inválido: '['.
    • ok/arrays/array_sum: compilation failed (exit 1): (1,14) LEXICAL: Carácter inválido: '['.
    • ok/interfaces/interface_basic: compilation failed (exit 2): (1,11) SYNTACTIC: Solo se permite una expresion global final
    • ok/interfaces/interface_inherit_compat: compilation failed (exit 2): (1,11) SYNTACTIC: Solo se permite una expresion global final
    • ok/interfaces/interface_multiple_impl: compilation failed (exit 2): (1,11) SYNTACTIC: Solo se permite una expresion global final
    • ok/interfaces/interface_param: compilation failed (exit 2): (1,11) SYNTACTIC: Solo se permite una expresion global final
    • (and 8 more…)

    🔖 Status

    ✅ Ready for review. All required tests pass and REPORT.md is present.

  15. apiad commented on Jun 22, 2026

    @apiad
    Member

    /regrade

  16. github-actions commented on Jun 22, 2026

    @github-actions

    ⏳ HULK Grading running on https://github.com/Jean1408Man/Hulk-Compiler @ branch main...

  17. github-actions commented on Jun 22, 2026

    @github-actions

    🤖 HULK Grading Report — 2026-06-22 14:41 UTC

    Repo: https://github.com/Jean1408Man/Hulk-Compiler

    📦 Build

    ✅ Build successful

    📄 Report

    ✅ REPORT.md found (3,012 words)

    🧪 Tests

    Category Passed Total Status
    ok/minimal 20 20 ✅
    ok/types 10 10 ✅
    ok/oop 10 10 ✅
    errors/lexical 6 6 ✅
    errors/syntactic 10 10 ✅
    errors/semantic 15 15 ✅
    ok/extras 10 10 ➖

    ❌ Failures

    • ok/macros/define_block: compilation failed (exit 2): (1,17) SYNTACTIC: error de sintaxis, no se esperaba COLON, se esperaba END, IDEN
    • ok/macros/define_chain: compilation failed (exit 2): (1,16) SYNTACTIC: error de sintaxis, no se esperaba COLON, se esperaba END, IDEN
    • ok/macros/define_conditional: compilation failed (exit 2): (1,14) SYNTACTIC: error de sintaxis, no se esperaba COLON, se esperaba END, IDEN
    • ok/macros/define_hygiene: compilation failed (exit 2): (1,18) SYNTACTIC: error de sintaxis, no se esperaba COLON, se esperaba END, IDEN
    • ok/macros/define_loop: compilation failed (exit 2): (1,20) SYNTACTIC: error de sintaxis, no se esperaba COLON, se esperaba END, IDEN
    • ok/macros/define_nested: compilation failed (exit 2): (1,14) SYNTACTIC: error de sintaxis, no se esperaba COLON, se esperaba END, IDEN
    • ok/macros/define_recursive_expand: compilation failed (exit 2): (1,22) SYNTACTIC: error de sintaxis, no se esperaba COLON, se esperaba END, IDEN
    • ok/macros/simple_define: compilation failed (exit 2): (1,16) SYNTACTIC: error de sintaxis, no se esperaba COLON, se esperaba END, IDEN
    • ok/arrays/array_2d: compilation failed (exit 1): (1,19) LEXICAL: Carácter inválido: '['.
    • ok/arrays/array_auto_init: compilation failed (exit 1): (1,14) LEXICAL: Carácter inválido: '['.
    • ok/arrays/array_basic: compilation failed (exit 1): (1,14) LEXICAL: Carácter inválido: '['.
    • ok/arrays/array_literal: compilation failed (exit 1): (1,14) LEXICAL: Carácter inválido: '['.
    • ok/arrays/array_mutation: compilation failed (exit 1): (1,16) LEXICAL: Carácter inválido: '['.
    • ok/arrays/array_pass: compilation failed (exit 1): (1,29) LEXICAL: Carácter inválido: '['.
    • ok/arrays/array_size: compilation failed (exit 1): (2,18) LEXICAL: Carácter inválido: '['.
    • ok/arrays/array_sum: compilation failed (exit 1): (1,14) LEXICAL: Carácter inválido: '['.
    • ok/lambdas/lambda_as_arg: compilation failed (exit 2): (1,19) SYNTACTIC: error de sintaxis, no se esperaba LPAREN, se esperaba IDENTIFI
    • ok/lambdas/lambda_basic: compilation failed (exit 2): (1,8) SYNTACTIC: error de sintaxis, no se esperaba LPAREN, se esperaba IDENTIFIE
    • ok/lambdas/lambda_closure: compilation failed (exit 2): (2,15) SYNTACTIC: error de sintaxis, no se esperaba LPAREN, se esperaba IDENTIFI
    • ok/lambdas/lambda_compose: compilation failed (exit 2): (1,21) SYNTACTIC: error de sintaxis, no se esperaba LPAREN, se esperaba IDENTIFI
    • (and 2 more…)

    🔖 Status

    ✅ Ready for review. All required tests pass and REPORT.md is present.

  18. apiad commented on Jul 2, 2026

    @apiad
    Member

    📋 Reporte técnico detallado

    🔍 Evaluación Automática — Claude Code

    Repositorio: https://github.com/Jean1408Man/Hulk-Compiler | Rama: main | Tests: 2026-06-22

    Arquitectura del Compilador

    C++20, pipeline de 8 fases con 3 IRs y 5 binarios de inspección. lexer → parser → AST → binding → inferencia → typecheck → HulkIR → BannerIR → BannerVM. Se producen hulk_lexer, hulk_parser_demo, hulk_semantic, hulk_eval (evaluador de árbol) y hulk_backend (con --emit-banner, --emit-banner-compiled, --run-banner, --restricted-inference), más el binario final hulk que compila IR embebido (Makefile:L96-284, src/backend/main.cpp:L17-60). El lexer usa construcción de Thompson canónica sobre expresiones regulares con combinadores lit/range/seq/alt/star/plus/opt (src/lexer/regex/thompson.cpp:L37-95) — todas las variantes clásicas verificadas — y simulación NFA con cierre-ε sin determinizar (nfa_simulator.cpp:L52-104), maximal munch por sobrescritura de la mejor aceptación y desempate por priority = orden de declaración. El parser es LALR(1) generado por tools/parsergen/parsergen.cpp (1607 líneas), un generador propio completo: parsea directivas %token/%type/%left/%right/%nonassoc, construye FIRST/GO_TO/closure LR(1) canónico (L809-869), y fusiona a LALR por igualdad de core sets (merge_lalr_states, L879-929) — la construcción canónica de Bison. Resolución shift/reduce por precedencia+asociatividad (resolve_shift_reduce, L975-1005); conflictos remanentes se comparan contra doc/parser/expected_conflicts.txt en make parser-sync-check-own. Como oráculo paralelo se incluye una gramática Bison (src/parser/grammar.y, 26 KB) validable con parser-sync-check-bison. La VM BANNER (src/vm/banner_vm.cpp, ~1000 LOC) es de bytecode con 42 opcodes: aritmética, lógica, control, Param+Call/VCall/SCall, Allocate/GetAttr/SetAttr (layout aplanado con slots consistentes en toda la jerarquía, banner_vm.h:L86-89), IsType/AsType, builtins numéricos. Heap con mark-and-sweep (vm_heap.h), free-lists en objetos y strings, handles generacionales, límites configurables por VMOptions (max_frames=100k, max_steps=10M, max_heap=1M). El evaluador de árbol (camino A, src/eval/) usa un HulkValue = variant<Nil,double,string,bool,shared_ptr<HulkObject>> independiente — dos caminos de ejecución que sirven como oráculos diferenciales mutuos.

    Resultados de Tests

    • 71/71 obligatorios + 10/10 extras pasan según CI 2026-06-22.
    • Fallas confirmadas (todas de features NO marcadas):
      • ok/arrays (8 tests, falla léxica [): no existen tokens LBracket/RBracket en token_kind.hpp:L4-83; lexer_rules.cpp:L18-58 no define reglas para [/].
      • ok/macros (8 tests): sin token Define/Macro, sin reglas de parser, sin nodo AST. El equipo no marcó macros.
      • ok/lambdas: sin LambdaExpr en AST, sin tipo función en los 7 kinds de HulkType, sin token ->. El => solo aparece en function/method_decl de una línea (hulk.grammar:L131,L276).

    Lo que el Compilador Implementa

    Semántica en 4 sub-fases (analyzer.cpp:L228-257): SemanticPolicyChecker (política de anotación), binding con SymbolResolver que produce resolution_map: unordered_map<Expr*, ResolutionResult> con 10 kinds (Variable/Param/Synthetic/Function/BuiltinFunction/BuiltinConstant/Type/Method/Attribute/Unresolved, symbol_resolver.h:L71-114), inferencia de tipos de punto fijo con max_iterations=10 (type_inferencer.cpp:L46), y type checking sobre unordered_map<Expr*, HulkType>. Mapas laterales, AST inmutable — el reporte cita correctamente a Roslyn como referencia.

    Sistema de tipos con 7 kinds (hulk_type.h:L14-21: Number/String/Boolean/Void/Object/Unknown/Error), Error absorbente que corta cascadas, LCA vía cadena parent_name para inferir tipos de if/else. Sin polimorfismo paramétrico.

    Builtins reales: Range es un tipo builtin con vtable (semantic_tables.cpp:L36-49), no azúcar; protocolo Iterable builtin con next(): Boolean y current(): Object (L51-60); funciones print, sqrt, sin, cos, exp, log, rand, range (L62-82); constantes PI, E (L84-93). Extensión no documentada: el sufijo T* genera un sub-protocolo T* extends Iterable con current(): T (semantic_tables.cpp:L141-163) para iterables tipados.

    BANNER VM ejecución: VCall despacha por vtable del receptor (banner_vm.cpp:L359-385); SCall fija tipo de partida para base(...) (L386-411); IsType y AsType sobre cadena de herencia; GC se dispara en cada alocación de object/string (Concat, ConcatSpace, Allocate) con collect_if_needed + enforce_heap_limit.

    Extensión declarada: type holes explícitos _ / auto en cualquier posición de anotación (bindings let, parámetros, retornos, atributos) + bandera --restricted-inference que hace error omitir anotación. El predicado require_annotation(has_annotation, is_type_hole, span) en analyzer.cpp:L79-83 es literalmente idéntico al pseudocódigo del REPORT.md §6. Ortogonal: la bandera no cambia el algoritmo, solo la política de aceptación.

    Discrepancias entre Reporte y Código

    REPORT.md (503 líneas, ~3012 palabras) es muy fiel al código. Solo dos discrepancias notables:

    1. §2 "Análisis semántico" describe tres sub-fases (binding, inferencia, typecheck); en analyzer.cpp:L228-257 hay cuatro — el SemanticPolicyChecker corre antes que las tres restantes. Es una simplificación descriptiva.
    2. §3 "A.11 Iterables" no menciona la sintaxis T* (sub-protocolo tipado generado on-demand por ensure_typed_iterable_protocol), a pesar de ser una extensión sintáctica real.

    El resto es exacto: los 7 kinds de tipo, la construcción de Thompson, LALR(1) por parsergen, los 42 opcodes de la VM, el layout aplanado con slots consistentes, el mark-and-sweep con handles generacionales, el pipeline de tres IRs y los binarios por fase.

    Features Opcionales

    • ✅ minimal — 20 casos en tests/hulk/ok/minimal/.
    • ✅ types — 10 casos en types/ + 10 en oop/; herencia, self, base(...), override.
    • ✅ OOP + is/as — dispatch virtual real vía VCall+vtable (banner_vm.cpp:L359-385); IsType/AsType con cadena de herencia (L413-427).
    • ✅ iterables — protocolo Iterable builtin + tipo Range real; for desazucarado a while sobre next()/current() (ir_gen.cpp:L241-309); extensión no marcada: sub-protocolos tipados T*.
    • ✅ protocols — ProtocolDecl (src/ast/protocols/), gramática (hulk.grammar:L173-213), conformancia estructural (SemanticTables::type_conforms_to_protocol).
    • ❌ vectors — no marcado, no implementado (sin tokens [/]).
    • ❌ functors — no marcado, no implementado (sin tipo función en HulkType).
    • ❌ macros — no marcado, no implementado (sin token Define).

    Extensión propia declarada: type holes explícitos con _/auto y bandera --restricted-inference. Cobertura dedicada en tests/extension/valid_*.hulk e invalid_*.hulk, más tests/end-to-end/cases/08_inference/ y 09_restricted/.

    Diagnóstico de Fallas Principales

    Las 3 categorías de fallas (arrays, macros, lambdas) son 100% atribuibles a features NO marcadas por el equipo en el issue #31. No hay ninguna funcionalidad prometida que esté rota.

    • ok/arrays (8 tests, falla léxica [): ausencia total en NFA — token_kind.hpp no tiene LBracket/RBracket, lexer_rules.cpp no los define. Cualquier [ genera un Error token que detiene el parseo.
    • ok/macros (8 tests): ausencia total — sin token Define, sin regla de parser, sin nodo AST.
    • ok/lambdas: ausencia total — sin LambdaExpr, sin tipo función, sin token ->.

    Costo aproximado de fix (no requerido por el issue):

    • Arrays new T[n], a[i]: ~250-400 LOC (2 tokens + 2 producciones + NewArrayExpr + IndexExpr + builtin runtime).
    • Macros define: ~250-400 LOC (token + regla + fase de expansión sintáctica pre-semántica).
    • Lambdas: ~600-1000 LOC (variante AST, tipo función, closures o desazucarado a clase con apply, codegen con captura).

    Conclusión

    Compilador completo, sólido y bien documentado. La calidad de implementación —parser generator LALR(1)+LALR propio y completo (tools/parsergen/parsergen.cpp, 1607 LOC canónicas), lexer con construcción de Thompson verificada línea a línea sobre las 6 variantes, VM BANNER con 42 opcodes + mark-and-sweep + layout aplanado + handles generacionales, 3 IRs con puntos de emisión inspeccionables, y dos caminos de ejecución (evaluador de árbol + BannerVM) que sirven como oráculos diferenciales mutuos— supera lo típico de un proyecto docente. La extensión de type holes explícitos (_/auto + --restricted-inference) está bien motivada (resuelve la ambigüedad "olvidé anotar" vs "delegué al compilador"), cuidadosamente implementada como un SemanticPolicyChecker ortogonal al algoritmo de inferencia, y cuenta con cobertura de tests dedicada. El REPORT.md (~3012 palabras) es muy fiel al código, con solo dos discrepancias menores. Todas las fallas de test corresponden exactamente a features no marcadas por el equipo (arrays, macros, lambdas); nada roto en lo prometido. Trabajo destacable que hace ingeniería real en cada fase.

  19. added a commit that references this issue on Jul 2, 2026
  20. Ray-M05 commented on Sep 14, 2026

    @Ray-M05
    Author

    pendiente a revisión de extraordinario de LP

  21. apiad commented on Sep 15, 2026

    @apiad
    Member

    Revisado. La §6 critica el diseño de HULK y no su compilador, y la §8 documenta T* completa, con gramática, semántica, modos de fallo y tests. Las dos están también en el PDF. LP sube a 5. Notas finales: CMP 5 / LP 5.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    gradingCompiler project submission for automated grading

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions