- precedence.csv regenerated to the actual 14-level chain (postfix and prefix levels, guarded alternatives, definition vs assignment) - glyph-escapes.md regenerated from the lexer: 73 glyphs, exactly one ASCII escape each, verified code points; M1-deferred symbols listed separately; add \middot so every glyph has an escape - math_prog_lang.md: M0/M1 symbol split, canonical handler arrow, one-role semicolon, real precedence table and brace-disambiguation rules; the ten example programs are now embedded verbatim and CI-parsed - Whitepaper (md + tex + appendices): every mpl code block parses or is re-fenced as an explicitly-labelled M1+ design sketch; symbol tables replaced by a pointer to glyph-escapes.md; unbuilt tooling and unmeasured claims reworded as planned/envisioned - docs/ARCHITECTURE.md: status preamble, real grammar excerpt, planned sections labelled as such - DocumentationTest now also covers math_prog_lang.md and the whitepaper - CHANGELOG and DECISIONS.md updated
3.4 KiB
3.4 KiB
Changelog
All notable changes to the Mathematical Programming Language (MPL) project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased
Added
- Gradle wrapper, so
./gradlew buildworks from a fresh clone - CI workflow: grammar build (ANTLR warnings are errors), tests, example parsing
- Documentation test: every ```mpl code block in README, spec and whitepaper must parse
- Canonical call syntax
f(a, b)with nullary callsf() - Wired-in operators:
≜definition,⊕/⊖postfix resources,⇀_ch/↽_chchannels,‧module access, unary minus,/as ASCII alias of÷ - DECISIONS.md recording each design resolution with rejected alternatives
Changed
- One canonical form per construct: guarded alternatives
(c ⟹ r) | fallback,✎output,↯pattern ⟹ exprhandler clauses, exactly one ASCII escape per glyph ;has a single role (sequence separator, trailing permitted)- Identifiers may no longer start with
_, so subscripts lex correctly - precedence.csv and glyph-escapes.md regenerated to match the grammar exactly
- README claims reduced to what CI verifies
- Comprehensive enterprise-level documentation structure
- AGPLv3 license for strong copyleft protection (changed from MIT)
- README transformed into moonshot vision document emphasizing cognitive justice
- Whitepaper updated to v2.0 with educational narrative focus
Fixed
- Grammar compiles: removed mutual left recursion (errors 119/148) and shadowed tokens (warning 184)
- Generated parser package no longer declared twice
- Gradle finds the grammar (src/main/antlr4) and the ParseExamples main class
- Test harness uses CharStreams; supplementary-plane glyphs (𝔹, 𝓜, 🖫) now tokenize
- Examples 03 and 05 parse (canonical handler arrow; real placeholder body)
Removed
- Dead tokens with no parser rule:
?(QUERY),∃,⇐,→,. - Juxtaposition function application (
f x) - C-style ternary and
📤from all documentation
2.0.0 - 2025-01-26
Added
- Complete ANTLR 4 grammar with 70+ mathematical operators
- Support for functional, imperative, concurrent, and object-oriented paradigms
- ASCII escape sequences for all Unicode symbols
- Comprehensive test suite with 663 lines of test code
- 10 example programs demonstrating real-world usage
- Academic whitepaper with technical specification
- Symbol reference guide (glyph-escapes.md)
- Operator precedence table
Changed
- Moved from theoretical concept to working parser implementation
- Established Fatima Test as core design principle
Fixed
- All M0 blocker issues resolved
- Zero shift/reduce conflicts in grammar
- Operator precedence validated through extensive testing
1.0.0 - 2024-12-15
Added
- Initial concept and vision for Mathematical Programming Language
- Basic symbol set proposal
- Preliminary grammar sketch
- Mission statement for cognitive universality
Version History Summary
- 2.0.0 - First working implementation with complete grammar
- 1.0.0 - Initial concept and vision