Commit Graph

15 Commits

Author SHA1 Message Date
Kartik K. Agaram 827dd4a7fe start throwing error on duplicate label
One less error that's only in the bootstrap phase.

On the other hand, for simplicity I got rid of the ability to override
the Entry label. One less special case, but we're also going further
from the ability to run subsets of layers. We haven't really been
exercising it for a long time, though (commit 7842, March 2021 when we
made baremetal the default).
2021-08-22 21:09:28 -07:00
Kartik K. Agaram b625c6304e support non-line-oriented processing in next-word
Immediately this simplifies support for comments in image data.
2021-07-29 20:07:13 -07:00
Kartik K. Agaram ff8ec9bcff insert a compile phase to emit some debug info 2021-05-14 11:54:42 -07:00
Kartik K. Agaram 63a9263aff .
Fix a stack bug in survey_baremetal. I'm not sure how my tests weren't
crashing, but I won't bother digging further.
2021-05-14 08:09:04 -07:00
Kartik K. Agaram cd6412129f .
Yet another step in the slow divergence of survey_baremetal from its survey_elf
roots.
2021-05-09 13:21:08 -07:00
Kartik K. Agaram e35d4f46fd . 2021-03-15 09:17:15 -07:00
Kartik K. Agaram ee81002eb0 . 2021-03-14 23:24:02 -07:00
Kartik K. Agaram fba0a56add . 2021-03-14 22:56:51 -07:00
Kartik K. Agaram da438fa9f5 treat boot.hex as a SubX file 2021-03-14 21:36:31 -07:00
Kartik K. Agaram 6525ccc8ec survey_baremetal: padding between segments
Optional.
2021-03-14 19:35:03 -07:00
Kartik K. Agaram 1dc1a65ea0 survey_baremetal: support /imm8 2021-03-14 19:25:39 -07:00
Kartik K. Agaram 499aad0bc7 survey: document starting address of each segment 2021-03-14 19:19:56 -07:00
Kartik K. Agaram 9c4cd6db4a some cleanup in a translation phase 2021-03-13 23:26:06 -08:00
Kartik K. Agaram de7713d974 7867 2021-03-07 21:05:45 -08:00
Kartik K. Agaram 71e4f38129 7842 - new directory organization
Baremetal is now the default build target and therefore has its sources
at the top-level. Baremetal programs build using the phase-2 Mu toolchain
that requires a Linux kernel. This phase-2 codebase which used to be at
the top-level is now under the linux/ directory. Finally, the phase-2 toolchain,
while self-hosting, has a way to bootstrap from a C implementation, which
is now stored in linux/bootstrap. The bootstrap C implementation uses some
literate programming tools that are now in linux/bootstrap/tools.

So the whole thing has gotten inverted. Each directory should build one
artifact and include the main sources (along with standard library). Tools
used for building it are relegated to sub-directories, even though those
tools are often useful in their own right, and have had lots of interesting
programs written using them.

A couple of things have gotten dropped in this process:
  - I had old ways to run on just a Linux kernel, or with a Soso kernel.
    No more.
  - I had some old tooling for running a single test at the cursor. I haven't
    used that lately. Maybe I'll bring it back one day.

The reorg isn't done yet. Still to do:
  - redo documentation everywhere. All the README files, all other markdown,
    particularly vocabulary.md.
  - clean up how-to-run comments at the start of programs everywhere
  - rethink what to do with the html/ directory. Do we even want to keep
    supporting it?

In spite of these shortcomings, all the scripts at the top-level, linux/
and linux/bootstrap are working. The names of the scripts also feel reasonable.
This is a good milestone to take stock at.
2021-03-03 22:21:03 -08:00