diff --git a/CosmOS.png b/CosmOS.png new file mode 100644 index 0000000..80e1594 Binary files /dev/null and b/CosmOS.png differ diff --git a/Media/README.md b/Media/README.md new file mode 100644 index 0000000..926eb88 --- /dev/null +++ b/Media/README.md @@ -0,0 +1,8 @@ +# Media + +Screenshots and anything else that is looked at rather than read or built. + +Nothing here is used by the build or the tests. The repository's README links to what is +in here, and `Tests/docs.sh` checks that every one of those links lands, so a file removed +from here without the link going too will fail the suite rather than becoming a broken +image on the front page. diff --git a/README.md b/README.md index e3ae0c0..c8f7fe5 100644 --- a/README.md +++ b/README.md @@ -55,6 +55,8 @@ make The sources are ISO C and build clean under `-std=c11 -pedantic` with `-Wall -Wextra`. Beyond ISO C they need POSIX.1-2008, which the makefile asks for by name, and `getopt_long` for the long form of the command line options. +Building needs nothing else. **Running the tests needs `bash` and Python 3**, because two of the checking scripts are Python and one of them opens a pseudo-terminal to ask questions a recorded file cannot answer. They also use `stty`, `timeout`, and the usual text utilities: `sed`, `awk`, `grep`, `cmp`, `diff`, `tr`, `sort`, `wc`. + Assemble something and run it: ``` @@ -174,7 +176,7 @@ because a recorded file cannot answer its question: A cycle count is deliberately **not** part of a recorded result. The last line of the emulator's output has the number taken out before anything is compared, keeping only whether the program stopped on its own or ran into its limit, which is behaviour. Two instructions added to CosmOS used to move that number in six unrelated files at once, so a real difference would have arrived in a crowd of meaningless ones. Anything that wants to measure cycles should say so in a test of its own. -To rebuild both tools with the address and undefined behaviour sanitizers and run the suite under them: +To rebuild all three tools with the address and undefined behaviour sanitizers and run the suite under them: ``` make sanitize diff --git a/makefile b/makefile index 7b7fe8e..ed206e1 100644 --- a/makefile +++ b/makefile @@ -11,7 +11,8 @@ PREFIX ?= /usr/local # editing a header rebuilds everything that includes it. DEPFLAGS = -MMD -MP -# Both tools use POSIX interfaces that ISO C does not have: realpath, clock_gettime, +# The emulator and the assembler use POSIX interfaces that ISO C does not have: +# realpath, clock_gettime, # strdup, dirname and getopt. Asking for POSIX.1-2008 by name means the build does # not rely on the compiler happening to default to a mode where those are visible, # and it survives someone overriding CFLAGS, which is why it is kept separate. @@ -104,7 +105,7 @@ test: $(EMU_TARGET) $(ASM_TARGET) $(DSK_TARGET) strict @echo @./Tests/docs.sh -# Rebuild both tools with the address and undefined behaviour sanitizers and run +# Rebuild all three tools with the address and undefined behaviour sanitizers and run # the test suite under them. Slower than 'make test', and worth running before a # release or after anything that touches memory handling. #