about summary refs log tree commit diff stats
path: root/subx/071read-line.subx
diff options
context:
space:
mode:
authorKartik Agaram <vc@akkartik.com>2019-05-17 19:22:42 -0700
committerKartik Agaram <vc@akkartik.com>2019-05-17 19:31:18 -0700
commitd2308421a7d0f9cab0476c0aff6de9d55d6b7f42 (patch)
treec03f18df7464921a2409f221af7501561bbd008d /subx/071read-line.subx
parent72853d07bb3cfed09f57ee36b582f8f35fee74e4 (diff)
downloadmu-d2308421a7d0f9cab0476c0aff6de9d55d6b7f42.tar.gz
start of new syntax for segment headers
Right now SubX defines headers with the following syntax:

  ```
  === ...
  ```

The `...` can be either a numeric address or a name. Numeric addresses
are useful for tests where we want to check addresses of individual instructions.
Names are useful in real programs where we want to add to a segment in
many places.

This approach has long seemed a mess. It's hard to explain, and there's
a certain amount of historical evolution that led to it that should be
irrelevant to comprehend the current state of the codebase. I started out
assuming the first segment was always code, before adding the special names
'code' and 'data'. We pretend to support more than two segments but we
don't really.

To simplify the code and explanation we'll move to a new syntax:

  ```
  === <name> <address>
  ```

Code will always belong in the special name 'code', but it no longer has
to be first.

We need to migrate both our SubX-in-SubX phases and the C++ version. The
plan is to start from the top down and update bootstrapping phases that've
already been built (see commit 5102 for the list of phases). This commit
updates pack.subx. Current state:

  ✓ hex.subx (no changes required)
    survey.subx
  ✓ pack.subx (fixed here)
    assort.subx
    dquotes.subx
Diffstat (limited to 'subx/071read-line.subx')
0 files changed, 0 insertions, 0 deletions