Commit Graph

18 Commits

Author SHA1 Message Date
Kartik K. Agaram 4eda8c599c debugging helper: heap remaining 2021-08-10 22:47:30 -07:00
Kartik K. Agaram 0e9503d739 print call stack on all low-level errors 2021-05-15 00:15:24 -07:00
Kartik K. Agaram 540fd66473 a little bit more information when lookup fails
Basically this should never, ever happen until I start reclaiming heap
memory. I believe the only reason it happens is unprotected writes to address
0 or thereabouts.
2021-05-07 15:28:17 -07:00
Kartik K. Agaram 3b1f23f5d7 expand stack to 16MB
It's also no longer contiguous with code.
2021-04-25 21:29:42 -07:00
Kartik K. Agaram 22a95bd813 expand memory to 2GB
It requires more than 1GB to fill the screen with a chessboard pattern
using the definition in shell/iterative-definitions.limg.

I also speed up the chessboard program by clearing the screen up front
and then only rendering the white pixels.
2021-04-25 15:56:34 -07:00
Kartik Agaram 8185a605c6 expand heap to Qemu default 2021-04-25 08:08:47 -07:00
Kartik K. Agaram 8c7aaa6b96 revert experiment: expand heap
There are several things in the codebase right now that don't seem sustainable.
I need to take them out and bring them back in more gradually.
2021-04-18 11:56:10 -07:00
Kartik K. Agaram 6e6e840e88 experiment: expand heap 2021-04-18 11:56:10 -07: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
Kartik Agaram b628655722 7526 2021-01-16 09:29:21 -08:00
Kartik Agaram ae1089cb76 7483 2021-01-09 08:46:37 -08:00
Kartik Agaram 4cbe0ba1ac 7138 - type-check array 'length' instruction 2020-10-29 00:03:19 -07:00
Kartik Agaram 5462619d96 6742 - support for formatting in fake screens
We still need a few primitives, but we can implement these as needed. I'm
ready to call the fake screen done.
2020-09-07 14:18:48 -07:00
Kartik Agaram 01b72aa064 6659
Tighten up some function signatures.
2020-07-18 19:33:39 -07:00
Kartik Agaram 02b7f9bd89 6658 2020-07-18 15:56:32 -07:00
Kartik Agaram e2b55208b2 6643 2020-07-13 21:52:26 -07:00
Kartik Agaram 34dd228eb2 6627 2020-07-10 21:08:26 -07:00
Kartik Agaram c09c91e185 6612 - reorganize layers 2020-07-05 12:13:28 -07:00