activeContext
Active Context: Modelica 3.6 Grammar Alignment (in progress)
Current focus
Align parser productions from Modelica concrete syntax 3.4 to 3.6 for the implemented grammar surface, while preserving backward compatibility for existing tests/usages.
Recently completed
Modernized Raku module file extensions from
.pm6to.rakumodunderlib/.Updated
META6.jsonprovidesmappings to explicitly point at.rakumodmodule files.Updated
README.mdrepository layout documentation to referencelib/Grammar/Modelica.rakumod.Added Docker assets for local test workflows:
Dockerfile(Raku test image usingrakudo-star).dockerignoreMakefiletargets fordocker-build,docker-test, anddocker-shell
Added GitHub Actions workflow at
.github/workflows/ci.ymlthat builds the Docker image and runs tests in-container.Updated
README.mdwith Docker usage, convenience targets, and CI documentation.Implemented targeted Modelica 3.6 grammar updates:
Added
description/description_stringproductions inlib/Grammar/Modelica/Expressions.rakumod.Kept
comment/string_commentas backward-compatible aliases.Added
function_partial_applicationand integrated it intofunction_argumentandfunction_arguments.Updated
import_clauseinlib/Grammar/Modelica/ClassDefinition.rakumodto explicitly supportname .*/name.*via' .* 'alternative.Migrated class-related rules in
ClassDefinition.rakumodfrom<comment>/<string_comment>references to<description>/<description_string>.Updated tests in
t/ClassDefinition.tandt/Expressions.tto cover new 3.6 forms while preserving existing behavior checks.
Active decisions
Use Docker as the canonical execution environment for tests to reduce host/toolchain drift.
Keep CI execution path aligned with local Docker execution by running tests from the same container image.
Keep legacy CI config files in repo for now, but treat GitHub Actions as the active CI path.
Prefer modern Raku module packaging conventions (
.rakumod) to avoid deprecated extension warnings.Apply 3.6 updates incrementally with compatibility aliases to avoid broad breakage in downstream grammar modules/tests.
Prioritize parser-level concrete syntax deltas (grammar productions) over semantic/spec clarification changes.
Next steps
Validate updated grammar/tests in an environment with
raku+prove(ormake/Docker CLI) available on PATH.If any failures surface, refine
function_argumentsambiguity handling and update tests accordingly.Optionally pin a specific
rakudo-startag instead oflatestfor stronger reproducibility.Consider retiring legacy
.travis.ymlandappveyor.ymlonce migration is fully confirmed.Continue broader parser modernization tasks from
projectbrief.mdafter 3.6 sync validation.