Commit Graph

66 Commits

Author SHA1 Message Date
Kartik K. Agaram
ee1b0d19b6 . 2021-10-10 08:35:59 -07:00
Kartik K. Agaram
38909fbce0 . 2021-09-01 14:21:04 -07:00
Kartik K. Agaram
982dfeb217 . 2021-08-11 19:44:20 -07:00
Kartik K. Agaram
7670161ca4 . 2021-08-11 19:25:27 -07:00
Kartik K. Agaram
350a255134 new tool: creating a data disk 2021-08-10 08:59:00 -07:00
Kartik K. Agaram
78357b8852 . 2021-07-16 08:38:43 -07:00
Kartik Agaram
372367f59a html: better highlighting for int registers 2021-06-26 20:55:36 -07:00
Kartik Agaram
f7a7db83ef .
Drop some long-obsolete tooling. I no longer use iTerm2.
2021-06-26 08:39:05 -07:00
Kartik Agaram
614d0ecff4 . 2021-06-15 20:56:41 -07:00
Kartik Agaram
c6343de7b0 . 2021-05-02 00:00:54 -07:00
Kartik Agaram
f0e146fc7b . 2021-05-01 23:52:28 -07:00
Kartik Agaram
c2aeba0a11 . 2021-03-24 09:12:32 -07:00
Kartik Agaram
754d813bc5 . 2021-03-23 23:02:41 -07:00
Kartik Agaram
3120f938c6 . 2021-03-23 22:27:59 -07:00
Kartik Agaram
895093b3cf . 2021-03-23 17:41:31 -07:00
Kartik Agaram
c4199646d7 . 2021-03-23 17:34:07 -07:00
Kartik Agaram
3350c34a74 . 2021-03-23 17:31:08 -07:00
Kartik K. Agaram
2d306e2a98 7846 2021-03-04 00:11:23 -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
Kartik Agaram
74ed21ab14 7746 2021-02-14 16:48:02 -08:00
Kartik Agaram
8cff1c04e3 7745 2021-02-14 16:29:19 -08:00
Kartik Agaram
9ebe6b3876 7688 2021-02-06 22:05:24 -08:00
Kartik Agaram
762107fdc2 7476 2020-12-30 09:39:50 -08:00
Kartik Agaram
00c4d61221 7472 2020-12-29 21:20:36 -08:00
Kartik Agaram
395f736d1a 7464 2020-12-29 19:28:56 -08:00
Kartik Agaram
490b26d061 7426 2020-12-27 10:57:44 -08:00
Kartik Agaram
761001dadc 7405 2020-12-26 14:29:02 -08:00
Kartik Agaram
dd60a1d73c 7252 2020-11-16 20:44:02 -08:00
Kartik Agaram
6ecece2e70 7236 2020-11-14 20:02:01 -08:00
Kartik Agaram
236cf88a3e 7233 - fix some warnings from gcc 9
Make strncpy a little less error-prone.
Just use memcpy where that suffices:
  https://stackoverflow.com/questions/56782248/gcc-specified-bound-depends-on-the-length-of-the-source-argument/56782476#56782476
2020-11-13 20:53:32 -08:00
Kartik Agaram
91a5f3e103 6774 2020-09-11 00:59:56 -07:00
Kartik Agaram
de0e57d3ce 6674 2020-07-25 15:35:43 -07:00
Kartik Agaram
1c349ac7c5 6631 2020-07-11 00:02:29 -07:00
Kartik Agaram
3ccb2c8328 6617 2020-07-05 15:48:17 -07:00
Kartik Agaram
cf28645f8a 6610 - tweak the Linux boot image generator
So far we hardcoded the translation process and it only supported SubX.
Now we pass in an ELF binary and outsource how it's generated.
2020-07-05 10:38:18 -07:00
Kartik Agaram
02dade7b22 - 2020-05-18 00:44:50 -07:00
Kartik Agaram
1de6f28042 mu.subx: make handles in Primitives easier to read 2020-05-18 00:44:49 -07:00
Kartik Agaram
5170e27ce8 6207 - tweaks while creating a video
https://futureofcoding.org/two-minute-week
2020-04-19 09:32:46 -07:00
Kartik Agaram
28746b3666 6123 - runtime helper for initializing arrays
I built this in 3 phases:
a) create a helper in the bootstrap VM to render the state of the stack.
b) interactively arrive at the right function (tools/stack_array.subx)
c) pull the final solution into the standard library (093stack_allocate.subx)

As the final layer says, this may not be the fastest approach for most
(or indeed any) Mu programs. Perhaps it's better on balance for the compiler
to just emit n/4 `push` instructions.

(I'm sure this solution can be optimized further.)
2020-03-11 17:21:59 -07:00
Kartik Agaram
6a28260f19 6003 2020-02-09 21:12:41 -08:00
Kartik Agaram
8fa733606c 6002 2020-02-09 21:03:04 -08:00
Kartik Agaram
75bb5e4ab1 5910
Trace browser: Don't let the background color get too light, and cycle
back to darker shades so I'm not squinting at low depths.
2020-01-20 02:58:31 -08:00
Kartik Agaram
b89ce8e455 5900 2020-01-19 17:53:06 -08:00
Kartik Agaram
ab837e8f6c 5899 2020-01-19 17:52:25 -08:00
Kartik Agaram
6070c23e5e 5897 - rename comparison instructions
Signed and unsigned don't quite capture the essence of what the different
combinations of x86 flags are doing for SubX. The crucial distinction is
that one set of comparison operators is for integers and the second is
for addresses.
2020-01-16 18:31:12 -08:00
Kartik Agaram
564ced70fd 5891 2020-01-14 01:52:54 -08:00
Kartik Agaram
fa786ea791 5884 2020-01-12 14:52:07 -08:00
Kartik Agaram
194d100792 5881 2020-01-10 10:35:17 -08:00
Kartik Agaram
c9bda4d13e 5875 2020-01-02 15:23:01 -08:00
Kartik Agaram
ffb1bab667 5870 2020-01-02 12:46:57 -08:00