Skip to content

Tags: avwohl/uplm80

Tags

v0.3.1

Toggle v0.3.1's commit message
Bump version to 0.3.1

Bug-fix release: issue #7 codegen crash (BinaryOpKind dispatch +
ADDRESS struct-member typing) and issue #6 PL/M-80 v4.0 conditional
directives (left-margin $ control lines, no $COND needed, $ELSEIF).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012AR93TrodYEW3FJWTEnfWx

v0.3.0

Toggle v0.3.0's commit message
Bump version to 0.3.0; pin uplox>=3.2.0

_plm_parser.py was regenerated against uplox 3.2.0's emitter and now
exports K. ast_view + codegen + _SynthToken were migrated to drive
binop_kind / unop_kind off K-based identity compares. SemVer minor
because the K re-export grows uplm80's public surface.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

v0.2.32

Toggle v0.2.32's commit message
Bump version to 0.2.32; pin upeepz80>=0.2.3, uplox>=3.1.1

v0.2.31

Toggle v0.2.31's commit message
Bump version to 0.2.31; ship data/plm_full.json in the wheel

The 0.2.30 wheel only declared "py.typed" in package-data, so the
data/plm_full.json bundle didn't get included. uplm80.frontend
would hit FileNotFoundError on uplm80/data/plm_full.json the
moment a fresh `pip install uplm80` user tried to compile
anything. Add "data/*.json" to package-data and re-release.

Same defect existed in uc_core 0.3.1 — fixed in parallel as
uc_core 0.3.2.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

v0.2.30

Toggle v0.2.30's commit message
pyproject: tighten uplox dep to >=3.0.0

uplox 3.0.0 is the rename milestone; 2.x doesn't exist on PyPI and
would be incompatible (different module name). Tighten the floor.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

v0.2.29

Toggle v0.2.29's commit message
Bump version to 0.2.29

Two real codegen fixes since 0.2.28:

- DJNZ-loop GOTO stranded BC on the stack when the body branched out
  to a label outside the loop. Subsequent CALL/RET in the procedure
  ran with a corrupt return address. Skip the DJNZ optimization when
  the body contains a GOTO.
- Binary-expression evaluator kept one operand alive in DE across the
  evaluation of the other operand. Opaque procedure callees clobbered
  DE behind the register allocator's back, silently corrupting the
  saved operand. Spill to the SP stack when the unevaluated subtree
  fails _expr_preserves_de.

Plus internal cleanup: dead 8080 code branches removed, single-member
Target enum + unused target plumbing dropped, stale 8080 doc claims
fixed across pyproject/INSTALL/README/RPi guide, README "Project
Structure" refreshed for plox + upeepz80 split, requires-python
relaxed to >=3.10.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

v0.2.26

Toggle v0.2.26's commit message
Bump version to 0.2.26

v0.2.7

Toggle v0.2.7's commit message
Update for upeep80 0.2.0 InputSyntax API

- Pass InputSyntax.I8080 to PeepholeOptimizer since codegen uses 8080 mnemonics
- Bump upeep80 dependency to >=0.2.0
- Bump version to 0.2.7

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>