aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKartik Agaram <vc@akkartik.com>2020-01-02 01:41:55 -0800
committerKartik Agaram <vc@akkartik.com>2020-01-02 02:01:41 -0800
commit9e5e87ca3776efa5f0d772ed8cf348bf6ee4d08e (patch)
tree5134d5ff1629cb5262e5feda38831456a2d1467d
parentdf8498fb8294cb07d02076cf3881617b5af07974 (diff)
downloadmu-9e5e87ca3776efa5f0d772ed8cf348bf6ee4d08e.tar.gz
5865
Give the bootstrap C++ program a less salient name.
-rw-r--r--001help.cc16
-rw-r--r--002test.cc4
-rw-r--r--003trace.cc2
-rw-r--r--010---vm.cc2
-rw-r--r--030---translate.cc8
-rw-r--r--032---operands.cc2
-rw-r--r--036labels.cc8
-rw-r--r--039debug.cc8
-rw-r--r--052kernel-string-equal.subx4
-rw-r--r--Readme.md40
-rw-r--r--SubX-addressing-modes.md4
-rwxr-xr-xbootstrap (renamed from subx)2
-rwxr-xr-xbuild20
-rwxr-xr-xbuild_and_test_until2
-rwxr-xr-xclean2
-rwxr-xr-xrun_one_test2
-rwxr-xr-xtest_apps88
-rwxr-xr-xtest_layers4
-rwxr-xr-xtranslate_subx_debug2
-rwxr-xr-xtranslate_subx_emulated18
20 files changed, 119 insertions, 119 deletions
diff --git a/001help.cc b/001help.cc
index d5e2b9a2..9dcc99e9 100644
--- a/001help.cc
+++ b/001help.cc
@@ -66,22 +66,22 @@ void init_help() {
"programming directly in machine code, but you have to stick to the\n"
"instructions it supports.\n"
"\n"
- "== Ways to invoke subx\n"
+ "== Ways to invoke bootstrap\n"
"- Run tests:\n"
- " subx test\n"
+ " bootstrap test\n"
"- See this message:\n"
- " subx --help\n"
+ " bootstrap --help\n"
"- Convert a textual SubX program into a standard ELF binary that you can\n"
" run on your computer:\n"
- " subx translate input1.subx input2.subx ... -o <output ELF binary>\n"
+ " bootstrap translate input1.subx input2.subx ... -o <output ELF binary>\n"
"- Run a SubX binary using SubX itself (for better error messages):\n"
- " subx run <ELF binary>\n"
+ " bootstrap run <ELF binary>\n"
"\n"
"== Debugging aids\n"
"- Add '--trace' to any of these commands to save a trace to disk at the end.\n"
" This can run out of memory for long-running commands.\n"
- "- Add '--debug' to add information to traces. 'subx --debug translate' will\n"
- " save metadata to disk that 'subx --debug --trace run' uses to make traces\n"
+ "- Add '--debug' to add information to traces. 'bootstrap --debug translate'\n"
+ " will save metadata to disk that 'bootstrap --trace run' uses to make traces\n"
" more informative.\n"
"- Add '--dump --trace' to emit a trace incrementally to stderr.\n"
" This approach will work even for long-running programs.\n"
@@ -92,7 +92,7 @@ void init_help() {
"\n"
"To start learning how to write SubX programs, see Readme.md (particularly\n"
"the section on the x86 instruction set) and then run:\n"
- " subx help\n"
+ " bootstrap help\n"
);
// End Help Texts
}
diff --git a/002test.cc b/002test.cc
index f25e331f..9424cc1a 100644
--- a/002test.cc
+++ b/002test.cc
@@ -1,6 +1,6 @@
//: A simple test harness. To create new tests, define functions starting with
//: 'test_'. To run all tests so defined, run:
-//: $ ./mu test
+//: $ ./bootstrap test
//:
//: Every layer should include tests, and can reach into previous layers.
//: However, it seems like a good idea never to reach into tests from previous
@@ -72,7 +72,7 @@ if (Run_tests) {
:(after "End Main")
//: Raise other unrecognized sub-commands as errors.
-//: We couldn't do this until now because we want `./subx test` to always
+//: We couldn't do this until now because we want `./bootstrap test` to always
//: succeed, no matter how many layers are included in the build.
cerr << "nothing to do\n";
return 1;
diff --git a/003trace.cc b/003trace.cc
index b4776d44..25b21825 100644
--- a/003trace.cc
+++ b/003trace.cc
@@ -190,7 +190,7 @@ void trace_stream::newline() {
if (should_incrementally_print_trace()) {
dump_trace_line(cerr, t);
}
- // Hack: on 'subx --trace --dump', emit only to stderr, not 'last_run'.
+ // Hack: on 'bootstrap --trace --dump', emit only to stderr, not 'last_run'.
if (Dump_trace) past_lines.pop_back(); // economize on memory
// End trace Commit
}
diff --git a/010---vm.cc b/010---vm.cc
index d67667f7..a0724760 100644
--- a/010---vm.cc
+++ b/010---vm.cc
@@ -362,7 +362,7 @@ if (key == "opcodes") {
cerr << " f3 " << p->first << ": " << p->second << '\n';
for (map<string, string>::iterator p = Name_f3_0f.begin(); p != Name_f3_0f.end(); ++p)
cerr << " f3 0f " << p->first << ": " << p->second << '\n';
- cerr << "Run `subx help instructions` for details on words like 'r32' and 'disp8'.\n"
+ cerr << "Run `bootstrap help instructions` for details on words like 'r32' and 'disp8'.\n"
"For complete details on these instructions, consult the IA-32 manual (volume 2).\n"
"There's various versions of it online, such as https://c9x.me/x86.\n"
"The mnemonics in brackets will help you locate each instruction.\n";
diff --git a/030---translate.cc b/030---translate.cc
index b950fce7..3c4c7f2f 100644
--- a/030---translate.cc
+++ b/030---translate.cc
@@ -10,10 +10,10 @@ if (is_equal(argv[1], "translate")) {
// Outside of tests, traces must be explicitly requested.
if (Trace_file.is_open()) Trace_stream = new trace_stream;
reset();
- // Begin subx translate
+ // Begin bootstrap translate
program p;
string output_filename;
- for (int i = /*skip 'subx translate'*/2; i < argc; ++i) {
+ for (int i = /*skip 'bootstrap translate'*/2; i < argc; ++i) {
if (is_equal(argv[i], "-o")) {
++i;
if (i >= argc) {
@@ -53,7 +53,7 @@ if (is_equal(argv[1], "translate")) {
unlink(output_filename.c_str());
return 1;
}
- // End subx translate
+ // End bootstrap translate
return 0;
}
@@ -63,7 +63,7 @@ void transform(program& p) {
}
void print_translate_usage() {
- cerr << "Usage: subx translate file1 file2 ... -o output\n";
+ cerr << "Usage: bootstrap translate file1 file2 ... -o output\n";
}
// write out a program to a bare-bones ELF file
diff --git a/032---operands.cc b/032---operands.cc
index 5d434319..f02ee3a5 100644
--- a/032---operands.cc
+++ b/032---operands.cc
@@ -21,7 +21,7 @@ put_new(Help, "instructions",
"The complete list of operand types: mod, subop, r32 (register), rm32\n"
"(register or memory), scale, index, base, disp8, disp16, disp32, imm8,\n"
"imm32.\n"
- "Each of these has its own help page. Try reading 'subx help mod' next.\n"
+ "Each of these has its own help page. Try reading 'bootstrap help mod' next.\n"
);
:(before "End Help Contents")
cerr << " instructions\n";
diff --git a/036labels.cc b/036labels.cc
index 6f7fdbfe..aff7e08a 100644
--- a/036labels.cc
+++ b/036labels.cc
@@ -179,7 +179,7 @@ void compute_byte_indices_for_labels(const segment& code, map<string, int32_t>&
}
:(before "End Globals")
-bool Dump_debug_info = false; // currently used only by 'subx translate'
+bool Dump_debug_info = false; // currently used only by 'bootstrap translate'
ofstream Labels_file;
ofstream Source_lines_file;
:(before "End Commandline Options")
@@ -188,14 +188,14 @@ else if (is_equal(*arg, "--debug")) {
// End --debug Settings
}
//: wait to open "labels" for writing until we're sure we aren't trying to read it
-:(after "Begin subx translate")
+:(after "Begin bootstrap translate")
if (Dump_debug_info) {
cerr << "saving address->label information to 'labels'\n";
Labels_file.open("labels");
cerr << "saving address->source information to 'source_lines'\n";
Source_lines_file.open("source_lines");
}
-:(before "End subx translate")
+:(before "End bootstrap translate")
if (Dump_debug_info) {
Labels_file.close();
Source_lines_file.close();
@@ -373,7 +373,7 @@ void test_duplicate_Entry_label() {
}
// This test could do with some refactoring.
-// We're duplicating the flow inside `subx translate`, but without
+// We're duplicating the flow inside `bootstrap translate`, but without
// reading/writing files.
// We can't just use run(string) because most of our tests allow programs
// without 'Entry' labels, as a convenience.
diff --git a/039debug.cc b/039debug.cc
index e3dd8073..bb306b06 100644
--- a/039debug.cc
+++ b/039debug.cc
@@ -1,12 +1,12 @@
//:: Some helpers for debugging.
-//: Load the 'map' file generated during 'subx --debug translate' when running
-//: 'subx --debug --trace run'.
+//: Load the 'map' file generated during 'bootstrap --debug translate' when running
+//: 'bootstrap --trace run'.
//: (It'll only affect the trace.)
:(before "End Globals")
-map</*address*/uint32_t, string> Symbol_name; // used only by 'subx run'
-map</*address*/uint32_t, string> Source_line; // used only by 'subx run'
+map</*address*/uint32_t, string> Symbol_name; // used only by 'bootstrap run'
+map</*address*/uint32_t, string> Source_line; // used only by 'bootstrap run'
:(before "End --debug Settings")
load_labels();
load_source_lines();
diff --git a/052kernel-string-equal.subx b/052kernel-string-equal.subx
index 57b5b1ec..f63ef9ed 100644
--- a/052kernel-string-equal.subx
+++ b/052kernel-string-equal.subx
@@ -8,8 +8,8 @@
# null-terminated 'kernel string' with a length-prefixed 'SubX string'.
#
# To run (from the subx directory):
-# $ ./subx translate 05[0-2]*.subx -o /tmp/tmp52
-# $ ./subx run /tmp/tmp52 # runs a series of tests
+# $ ./bootstrap translate 05[0-2]*.subx -o /tmp/tmp52
+# $ ./bootstrap run /tmp/tmp52 # runs a series of tests
# ...... # all tests pass
#
# (We can't yet run the tests when given a "test" commandline argument,
diff --git a/Readme.md b/Readme.md
index b80be576..bc6f37cd 100644
--- a/Readme.md
+++ b/Readme.md
@@ -90,20 +90,20 @@ x86 machine code. Here's a program (`apps/ex1.subx`) that returns 42:
You can generate tiny zero-dependency ELF binaries from SubX that run on Linux.
```sh
- $ ./subx translate init.linux apps/ex1.subx -o apps/ex1 # on Linux or BSD or Mac
+ $ ./bootstrap translate init.linux apps/ex1.subx -o apps/ex1 # on Linux or BSD or Mac
$ ./apps/ex1 # only on Linux
$ echo $?
42
```
-(Running `subx` requires a C++ compiler, transparently invoking it as
+(Running `bootstrap` requires a C++ compiler, transparently invoking it as
necessary.)
You can run the generated binaries on an interpreter/VM for better error
messages.
```sh
- $ ./subx run apps/ex1 # on Linux or BSD or Mac
+ $ ./bootstrap run apps/ex1 # on Linux or BSD or Mac
$ echo $?
42
```
@@ -111,11 +111,11 @@ messages.
Emulated runs can generate a trace that permits [time-travel debugging](https://github.com/akkartik/mu/blob/master/tools/browse_trace.readme.md).
```sh
- $ ./subx --debug translate init.linux apps/factorial.subx -o apps/factorial
+ $ ./bootstrap --debug translate init.linux apps/factorial.subx -o apps/factorial
saving address->label information to 'labels'
saving address->source information to 'source_lines'
- $ ./subx --debug --trace run apps/factorial
+ $ ./bootstrap --debug --trace run apps/factorial
saving trace to 'last_run'
$ tools/browse_trace last_run # text-mode debugger UI
@@ -125,20 +125,20 @@ You can write tests for your programs. The entire stack is thoroughly covered
by automated tests. SubX's tagline: tests before syntax.
```sh
- $ ./subx test
- $ ./subx run apps/factorial test
+ $ ./bootstrap test
+ $ ./bootstrap run apps/factorial test
```
You can use SubX to translate itself. For example, running natively on Linux:
```sh
# generate translator phases using the C++ translator
- $ ./subx translate init.linux 0*.subx apps/subx-params.subx apps/hex.subx -o hex
- $ ./subx translate init.linux 0*.subx apps/subx-params.subx apps/survey.subx -o survey
- $ ./subx translate init.linux 0*.subx apps/subx-params.subx apps/pack.subx -o pack
- $ ./subx translate init.linux 0*.subx apps/subx-params.subx apps/assort.subx -o assort
- $ ./subx translate init.linux 0*.subx apps/subx-params.subx apps/dquotes.subx -o dquotes
- $ ./subx translate init.linux 0*.subx apps/subx-params.subx apps/tests.subx -o tests
+ $ ./bootstrap translate init.linux 0*.subx apps/subx-params.subx apps/hex.subx -o hex
+ $ ./bootstrap translate init.linux 0*.subx apps/subx-params.subx apps/survey.subx -o survey
+ $ ./bootstrap translate init.linux 0*.subx apps/subx-params.subx apps/pack.subx -o pack
+ $ ./bootstrap translate init.linux 0*.subx apps/subx-params.subx apps/assort.subx -o assort
+ $ ./bootstrap translate init.linux 0*.subx apps/subx-params.subx apps/dquotes.subx -o dquotes
+ $ ./bootstrap translate init.linux 0*.subx apps/subx-params.subx apps/tests.subx -o tests
$ chmod +x hex survey pack assort dquotes tests
# use the generated translator phases to translate SubX programs
@@ -159,7 +159,7 @@ Or, running in a VM on other platforms (much slower):
```sh
$ ./translate_subx_emulated init.linux ex1.subx # generates identical a.elf to above
- $ ./subx run a.elf
+ $ ./bootstrap run a.elf
$ echo $?
42
```
@@ -382,8 +382,8 @@ rudimentary but hopefully still workable toolkit:
* Generate a trace for the failing test while running your program in emulated
mode (`subx run`):
```
- $ ./subx translate input.subx -o binary
- $ ./subx --trace run binary arg1 arg2 2>trace
+ $ ./bootstrap translate input.subx -o binary
+ $ ./bootstrap --trace run binary arg1 arg2 2>trace
```
The ability to generate a trace is the essential reason for the existence of
`subx run` mode. It gives far better visibility into program internals than
@@ -392,8 +392,8 @@ rudimentary but hopefully still workable toolkit:
* As a further refinement, it is possible to render label names in the trace
by adding a second flag to both the `translate` and `run` commands:
```
- $ ./subx --debug translate input.subx -o binary
- $ ./subx --debug --trace run binary arg1 arg2 2>trace
+ $ ./bootstrap --debug translate input.subx -o binary
+ $ ./bootstrap --debug --trace run binary arg1 arg2 2>trace
```
`subx --debug translate` emits a mapping from label to address in a file
called `labels`. `subx --debug --trace run` reads in the `labels` file at
@@ -731,10 +731,10 @@ a) Try running the tests:
$ ./test_apps
```
-b) Check out the online help. Try typing just `./subx`, and then `./subx
+b) Check out the online help. Try typing just `./bootstrap`, and then `./bootstrap
help`.
-c) Familiarize yourself with `./subx help opcodes`. You'll spend a lot of time
+c) Familiarize yourself with `./bootstrap help opcodes`. You'll spend a lot of time
with it. (It's also [in this repo](https://github.com/akkartik/mu/blob/master/opcodes).)
[Here](https://lobste.rs/s/qglfdp/subx_minimalist_assembly_language_for#c_o9ddqk)
are some tips on my setup for quickly finding the right opcode for any
diff --git a/SubX-addressing-modes.md b/SubX-addressing-modes.md
index 271de294..cdb056ee 100644
--- a/SubX-addressing-modes.md
+++ b/SubX-addressing-modes.md
@@ -107,8 +107,8 @@ reader's burden. Here's the order I've been using after opcodes:
Try running this example now:
```sh
-$ ./subx translate init.linux apps/ex3.subx -o apps/ex3
-$ ./subx run apps/ex3
+$ ./bootstrap translate init.linux apps/ex3.subx -o apps/ex3
+$ ./bootstrap run apps/ex3
$ echo $?
55
```
diff --git a/subx b/bootstrap
index 257e2f13..b16da072 100755
--- a/subx
+++ b/bootstrap
@@ -2,4 +2,4 @@
# Run SubX VM, first compiling if necessary.
set -e
-./build && ./subx_bin "$@"
+./build && ./bootstrap_bin "$@"
diff --git a/build b/build
index 96cfc313..6a654fd0 100755
--- a/build
+++ b/build
@@ -3,9 +3,9 @@
# non-zero exit status only on error during building
set -e # stop immediately on error
-# [0-9]*.cc -> subx.cc -> subx_bin
-# (layers) | |
-# tangle $CXX
+# [0-9]*.cc -> bootstrap.cc -> bootstrap_bin
+# (layers) | |
+# tangle $CXX
# can also be called with a layer to only build until
# $ ./build --until 050
@@ -87,17 +87,17 @@ older_than tools/tangle tools/tangle.cc && {
}
LAYERS=$(tools/enumerate --until $UNTIL_LAYER |grep '.cc$')
-older_than subx.cc $LAYERS tools/enumerate tools/tangle && {
+older_than bootstrap.cc $LAYERS tools/enumerate tools/tangle && {
# no update here; rely on 'update' calls downstream
- tools/tangle $LAYERS > subx.cc
+ tools/tangle $LAYERS > bootstrap.cc
}
-grep -h "^[^[:space:]#].*) {$" subx.cc |grep -v ":.*(" |sed 's/ {.*/;/' |update function_list
-grep -h "^\s*void test_" subx.cc |sed 's/^\s*void \(.*\)() {.*/\1,/' |update test_list
-grep -h "^\s*void test_" subx.cc |sed 's/^\s*void \(.*\)() {.*/"\1",/' |update test_name_list
+grep -h "^[^[:space:]#].*) {$" bootstrap.cc |grep -v ":.*(" |sed 's/ {.*/;/' |update function_list
+grep -h "^\s*void test_" bootstrap.cc |sed 's/^\s*void \(.*\)() {.*/\1,/' |update test_list
+grep -h "^\s*void test_" bootstrap.cc |sed 's/^\s*void \(.*\)() {.*/"\1",/' |update test_name_list
-older_than subx_bin subx.cc *_list && {
- $CXX $CFLAGS subx.cc -o subx_bin
+older_than bootstrap_bin bootstrap.cc *_list && {
+ $CXX $CFLAGS bootstrap.cc -o bootstrap_bin
}
exit 0
diff --git a/build_and_test_until b/build_and_test_until
index 710e1d55..6f0782e1 100755
--- a/build_and_test_until
+++ b/build_and_test_until
@@ -15,4 +15,4 @@ then
echo $1 > .until
fi
-./build --until $1 && ./subx_bin test $2
+./build --until $1 && ./bootstrap_bin test $2
diff --git a/clean b/clean
index 693599a9..7a0eda83 100755
--- a/clean
+++ b/clean
@@ -2,7 +2,7 @@
set -e
set -v
-rm -rf subx.cc subx_bin* *_list
+rm -rf bootstrap.cc bootstrap_bin* *_list
rm -rf .until
test $# -gt 0 && exit 0 # convenience: 'clean top-level' to leave subsidiary tools alone
rm -rf tools/enumerate tools/tangle tools/*_list tools/*.dSYM
diff --git a/run_one_test b/run_one_test
index bc237c12..a67cfffa 100755
--- a/run_one_test
+++ b/run_one_test
@@ -20,4 +20,4 @@ fi
set -e
./debug_translate init.linux $(echo $FILES) /tmp/run_one_test.subx
-CFLAGS=$CFLAGS ./subx --debug --trace run a.elf
+CFLAGS=$CFLAGS ./bootstrap --debug --trace run a.elf
diff --git a/test_apps b/test_apps
index eaf102e8..7b5f0bb1 100755
--- a/test_apps
+++ b/test_apps
@@ -28,10 +28,10 @@ echo "== translating and running using C++"
# example programs
echo ex1
-./subx translate init.$OS apps/ex1.subx -o apps/ex1
+./bootstrap translate init.$OS apps/ex1.subx -o apps/ex1
test "$1" = 'record' || git diff --exit-code apps/ex1
test $EMULATED && {
- ./subx run apps/ex1 || ret=$?
+ ./bootstrap run apps/ex1 || ret=$?
test $ret -eq 42 # life, the universe and everything
}
test $NATIVE && {
@@ -40,10 +40,10 @@ test $NATIVE && {
}
echo ex2
-./subx translate init.$OS apps/ex2.subx -o apps/ex2
+./bootstrap translate init.$OS apps/ex2.subx -o apps/ex2
test "$1" = 'record' || git diff --exit-code apps/ex2
test $EMULATED && {
- ./subx run apps/ex2 || ret=$?
+ ./bootstrap run apps/ex2 || ret=$?
test $ret -eq 2 # 1 + 1
}
test $NATIVE && {
@@ -52,10 +52,10 @@ test $NATIVE && {
}
echo ex3
-./subx translate init.$OS apps/ex3.subx -o apps/ex3
+./bootstrap translate init.$OS apps/ex3.subx -o apps/ex3
test "$1" = 'record' || git diff --exit-code apps/ex3
test $EMULATED && {
- ./subx run apps/ex3 || ret=$?
+ ./bootstrap run apps/ex3 || ret=$?
test $ret -eq 55 # 1 + 2 + ... + 10
}
test $NATIVE && {
@@ -64,10 +64,10 @@ test $NATIVE && {
}
echo ex4
-./subx translate init.$OS apps/ex4.subx -o apps/ex4
+./bootstrap translate init.$OS apps/ex4.subx -o apps/ex4
test "$1" = 'record' || git diff --exit-code apps/ex4
test $EMULATED && {
- echo a | ./subx run apps/ex4 >ex4.out || true
+ echo a | ./bootstrap run apps/ex4 >ex4.out || true
test `cat ex4.out` = 'a'
}
test $NATIVE && {
@@ -76,10 +76,10 @@ test $NATIVE && {
}
echo ex5
-./subx translate init.$OS apps/ex5.subx -o apps/ex5
+./bootstrap translate init.$OS apps/ex5.subx -o apps/ex5
test "$1" = 'record' || git diff --exit-code apps/ex5
test $EMULATED && {
- echo a | ./subx run apps/ex5 >ex5.out || true
+ echo a | ./bootstrap run apps/ex5 >ex5.out || true
test `cat ex5.out` = 'a'
}
test $NATIVE && {
@@ -88,10 +88,10 @@ test $NATIVE && {
}
echo ex6
-./subx translate init.$OS apps/ex6.subx -o apps/ex6
+./bootstrap translate init.$OS apps/ex6.subx -o apps/ex6
test "$1" = 'record' || git diff --exit-code apps/ex6
test $EMULATED && {
- ./subx run apps/ex6 >ex6.out || true
+ ./bootstrap run apps/ex6 >ex6.out || true
test "`cat ex6.out`" = 'Hello, world!'
}
test $NATIVE && {
@@ -100,10 +100,10 @@ test $NATIVE && {
}
echo ex7
-./subx translate init.$OS apps/ex7.subx -o apps/ex7
+./bootstrap translate init.$OS apps/ex7.subx -o apps/ex7
test "$1" = 'record' || git diff --exit-code apps/ex7
test $EMULATED && {
- ./subx run apps/ex7 || ret=$?
+ ./bootstrap run apps/ex7 || ret=$?
test $ret -eq 97 # 'a'
}
test $NATIVE && {
@@ -112,10 +112,10 @@ test $NATIVE && {
}
echo ex8
-./subx translate init.$OS apps/ex8.subx -o apps/ex8
+./bootstrap translate init.$OS apps/ex8.subx -o apps/ex8
test "$1" = 'record' || git diff --exit-code apps/ex8
test $EMULATED && {
- ./subx run apps/ex8 abcd || ret=$?
+ ./bootstrap run apps/ex8 abcd || ret=$?
test $ret -eq 4 # length('abcd')
}
test $NATIVE && {
@@ -124,10 +124,10 @@ test $NATIVE && {
}
echo ex9
-./subx translate init.$OS apps/ex9.subx -o apps/ex9
+./bootstrap translate init.$OS apps/ex9.subx -o apps/ex9
test "$1" = 'record' || git diff --exit-code apps/ex9
test $EMULATED && {
- ./subx run apps/ex9 z x || ret=$?
+ ./bootstrap run apps/ex9 z x || ret=$?
test $ret -eq 2 # 'z' - 'x'
}
test $NATIVE && {
@@ -136,12 +136,12 @@ test $NATIVE && {
}
echo ex10
-./subx translate init.$OS apps/ex10.subx -o apps/ex10
+./bootstrap translate init.$OS apps/ex10.subx -o apps/ex10
test "$1" = 'record' || git diff --exit-code apps/ex10
test $EMULATED && {
- ./subx run apps/ex10 abc abc || ret=$?
+ ./bootstrap run apps/ex10 abc abc || ret=$?
test $ret -eq 1 # equal
- ./subx run apps/ex10 abc abcd # 0; not equal
+ ./bootstrap run apps/ex10 abc abcd # 0; not equal
}
test $NATIVE && {
apps/ex10 abc abc || ret=$?
@@ -150,10 +150,10 @@ test $NATIVE && {
}
echo ex11
-./subx translate init.$OS apps/ex11.subx -o apps/ex11
+./bootstrap translate init.$OS apps/ex11.subx -o apps/ex11
test "$1" = 'record' || git diff --exit-code apps/ex11
test $EMULATED && {
- ./subx run apps/ex11
+ ./bootstrap run apps/ex11
echo
}
test $NATIVE && {
@@ -162,20 +162,20 @@ test $NATIVE && {
}
echo ex12
-./subx translate init.$OS apps/ex12.subx -o apps/ex12
+./bootstrap translate init.$OS apps/ex12.subx -o apps/ex12
test "$1" = 'record' || git diff --exit-code apps/ex12
-test $EMULATED && ./subx run apps/ex12 # final byte of mmap'd address is well-nigh guaranteed to be 0
+test $EMULATED && ./bootstrap run apps/ex12 # final byte of mmap'd address is well-nigh guaranteed to be 0
test $NATIVE && apps/ex12
# Larger apps that use the standard library.
echo factorial
-./subx translate init.$OS 0*.subx apps/factorial.subx -o apps/factorial
+./bootstrap translate init.$OS 0*.subx apps/factorial.subx -o apps/factorial
test "$1" = 'record' || git diff --exit-code apps/factorial
test $EMULATED && {
- ./subx run apps/factorial || ret=$?
+ ./bootstrap run apps/factorial || ret=$?
test $ret -eq 120 # factorial(5)
- ./subx run apps/factorial test
+ ./bootstrap run apps/factorial test
echo
}
test $NATIVE && {
@@ -186,10 +186,10 @@ test $NATIVE && {
}
echo crenshaw2-1
-./subx translate init.$OS 0*.subx apps/crenshaw2-1.subx -o apps/crenshaw2-1
+./bootstrap translate init.$OS 0*.subx apps/crenshaw2-1.subx -o apps/crenshaw2-1
test "$1" = 'record' || git diff --exit-code apps/crenshaw2-1
test $EMULATED && {
- ./subx run apps/crenshaw2-1 test
+ ./bootstrap run apps/crenshaw2-1 test
echo
}
test $NATIVE && {
@@ -198,10 +198,10 @@ test $NATIVE && {
}
echo crenshaw2-1b
-./subx translate init.$OS 0*.subx apps/crenshaw2-1b.subx -o apps/crenshaw2-1b
+./bootstrap translate init.$OS 0*.subx apps/crenshaw2-1b.subx -o apps/crenshaw2-1b
test "$1" = 'record' || git diff --exit-code apps/crenshaw2-1b
test $EMULATED && {
- ./subx run apps/crenshaw2-1b test
+ ./bootstrap run apps/crenshaw2-1b test
echo
}
test $NATIVE && {
@@ -210,10 +210,10 @@ test $NATIVE && {
}
echo handle
-./subx translate init.$OS 0*.subx apps/handle.subx -o apps/handle
+./bootstrap translate init.$OS 0*.subx apps/handle.subx -o apps/handle
test "$1" = 'record' || git diff --exit-code apps/handle
test $EMULATED && {
- ./subx run apps/handle > handle.out 2>&1 || true
+ ./bootstrap run apps/handle > handle.out 2>&1 || true
grep -q 'lookup succeeded' handle.out || { echo "missing success test"; exit 1; }
grep -q 'lookup failed' handle.out || { echo "missing failure test"; exit 1; }
}
@@ -228,10 +228,10 @@ test $NATIVE && {
for phase in hex survey pack assort dquotes tests
do
echo $phase
- ./subx translate init.$OS 0*.subx apps/subx-params.subx apps/$phase.subx -o apps/$phase
+ ./bootstrap translate init.$OS 0*.subx apps/subx-params.subx apps/$phase.subx -o apps/$phase
test "$1" = 'record' || git diff --exit-code apps/hex
test $EMULATED && {
- ./subx run apps/$phase test
+ ./bootstrap run apps/$phase test
echo
}
test $NATIVE && {
@@ -246,10 +246,10 @@ done
# to go beyond functionality of the C++ bootstrap.
echo sigils
-./subx translate init.$OS 0*.subx apps/subx-params.subx apps/sigils.subx -o apps/sigils
+./bootstrap translate init.$OS 0*.subx apps/subx-params.subx apps/sigils.subx -o apps/sigils
[ "$1" != record ] && git diff --exit-code apps/sigils
test $EMULATED && {
- ./subx run apps/sigils test
+ ./bootstrap run apps/sigils test
echo
}
test `uname` = 'Linux' && {
@@ -259,10 +259,10 @@ test `uname` = 'Linux' && {
echo calls
cat init.$OS 0*.subx apps/subx-params.subx apps/calls.subx | apps/sigils > a.sigils
-./subx translate a.sigils -o apps/calls
+./bootstrap translate a.sigils -o apps/calls
[ "$1" != record ] && git diff --exit-code apps/calls
test $EMULATED && {
- ./subx run apps/calls test
+ ./bootstrap run apps/calls test
echo
}
test `uname` = 'Linux' && {
@@ -272,10 +272,10 @@ test `uname` = 'Linux' && {
echo braces
cat init.$OS 0*.subx apps/subx-params.subx apps/braces.subx | apps/calls | apps/sigils > a.sigils
-./subx translate a.sigils -o apps/braces
+./bootstrap translate a.sigils -o apps/braces
[ "$1" != record ] && git diff --exit-code apps/braces
test $EMULATED && {
- ./subx run apps/braces test
+ ./bootstrap run apps/braces test
echo
}
test `uname` = 'Linux' && {
@@ -285,10 +285,10 @@ test `uname` = 'Linux' && {
echo mu
cat init.$OS 0*.subx apps/mu.subx | apps/braces | apps/calls | apps/sigils > a.sigils
-./subx translate a.sigils -o apps/mu
+./bootstrap translate a.sigils -o apps/mu
[ "$1" != record ] && git diff --exit-code apps/mu
test $EMULATED && {
- ./subx run apps/mu test
+ ./bootstrap run apps/mu test
echo
}
test `uname` = 'Linux' && {
diff --git a/test_layers b/test_layers
index bf487c09..568a0f21 100755
--- a/test_layers
+++ b/test_layers
@@ -21,8 +21,8 @@ done
for f in [0-9]*.subx
do
echo "=== $f"
- ./subx translate init.linux $(tools/enumerate --until $f |grep '\.subx$') -o a.elf
- ./subx run a.elf test
+ ./bootstrap translate init.linux $(tools/enumerate --until $f |grep '\.subx$') -o a.elf
+ ./bootstrap run a.elf test
echo
test `uname` = 'Linux' && {
chmod +x a.elf
diff --git a/translate_subx_debug b/translate_subx_debug
index f5754f37..d9038f39 100755
--- a/translate_subx_debug
+++ b/translate_subx_debug
@@ -26,6 +26,6 @@ cat a.braces |apps/calls > a.calls
echo " sigils"
cat a.calls |apps/sigils > a.sigils
-subx --debug translate a.sigils -o a.elf
+./bootstrap --debug translate a.sigils -o a.elf
chmod +x a.elf
diff --git a/translate_subx_emulated b/translate_subx_emulated
index 639d924e..0eab2c32 100755
--- a/translate_subx_emulated
+++ b/translate_subx_emulated
@@ -21,30 +21,30 @@ set -e
./build
echo " braces"
-cat $* |./subx_bin run apps/braces > a.braces
+cat $* |./bootstrap_bin run apps/braces > a.braces
echo " calls"
-cat a.braces |./subx_bin run apps/calls > a.calls
+cat a.braces |./bootstrap_bin run apps/calls > a.calls
echo " sigils"
-cat a.calls |./subx_bin run apps/sigils > a.sigils
+cat a.calls |./bootstrap_bin run apps/sigils > a.sigils
echo " tests"
-cat a.sigils |./subx_bin run apps/tests > a.tests
+cat a.sigils |./bootstrap_bin run apps/tests > a.tests
echo " dquotes"
-cat a.tests |./subx_bin run apps/dquotes > a.dquotes
+cat a.tests |./bootstrap_bin run apps/dquotes > a.dquotes
echo " assort"
-cat a.dquotes |./subx_bin run apps/assort > a.assort
+cat a.dquotes |./bootstrap_bin run apps/assort > a.assort
echo " pack"
-cat a.assort |./subx_bin run apps/pack > a.pack
+cat a.assort |./bootstrap_bin run apps/pack > a.pack
echo " survey"
-cat a.pack |./subx_bin run apps/survey > a.survey
+cat a.pack |./bootstrap_bin run apps/survey > a.survey
echo " hex"
-cat a.survey |./subx_bin run apps/hex > a.elf
+cat a.survey |./bootstrap_bin run apps/hex > a.elf
chmod +x a.elf