Phase 2 planning
With an entire epic of refactoring under our belt, AntForth is lean and mean! It’s time to focus on adding some new functionality. Here’s what I want to add in Phase 2:
-
Add the ability to prefix hex numeric literals with
$and binary numeric literals with%, so that we can input numbers in those bases without changingBASE, which is tedious. These prefixes aren’t in the ANS Forth standard, but they are in the ANS Forth 2012 proposal, so this seems like a good way to go. I’m also adding a0xprefix for hex, because I find that more convenient. -
Fix the remaining ANS Forth Core gaps. This is roughly:
- Double precision arithmetic
- “Picture” number formatting
- any other missing words
- Exception handling
- Multiple vocabularies, custom search order etc
- CP/M file access, & demand-loaded assembler
In the interests of keeping the interpreter small, we will leverage two key
new abilities (multiple voacbularies, CP/M file support) to move the built-in
assembler out to an external ASSEMBLER.FTH file that will be automatically
loaded whenever the CODE word is invoked. Since the assembler is the single
largest builtin component currently, this should provide plenty of space for
new features, without losing any functionality. Having to have a separate
ASSEMBLER.FTH file accessible is a minor inconvenience, but hopefully it’s
worth it. I hope it is joined in the future by other libraries and optional
components.
Planning
I used the retro at the end of the refactoring epic as an opportunity to discuss with the team the broad strokes of what I wanted to achieve in the next phase.
As far as BMAD is concerned, MVP is done so the existing PRD and architecture
documents are defunct - we need to create new ones. We do this in the familiar
way, bmad-create-prd followed by bmad-create-architecture. BMAD is smart
enough to realise what’s happening for both of these, and offers to archive the
old documents before creating fresh ones.
We follow this up with a /bmad-bmm-create-epics-and-stories and mid-way (after
it has created the epics but before it dives into the stories) I call a “party mode”
discussion to check for any howlers.
While developing the stories for aprint 12 it became clear that the LLM was weaseling out of porting all the current assembler functionality to a separate Forth file and planned to leave anything tricky behind - so I nipped that in the bud.
Finally /bmad-bmm-sprint-planning gets our sprint-status.yml all ship-shape, and
we’re finally ready to begin new development.