-
Notifications
You must be signed in to change notification settings - Fork 1
Home
Matt Windsor edited this page Feb 10, 2021
·
25 revisions
NOTE: The documentation on this wiki is unusably outdated and kept here for archival purposes (and possible mining for future documentation projects) only.
Also see the README.
- Supported architectures and compilers
- Configuration
- Generating input
- Standard flags accepted by every subcommand.
-
Filtering predicates: the syntax of
-filter-compilers
and-filter-machines
flags. - The C subset
act
understands internally.
act
interfaces with several external tools (besides compilers), which need their own set-up and configuration:
- C preprocessor (for interpreting raw C files)
- Herd (for simulating C and assembly behaviours)
- Litmus (for sampling assembly behaviours from the local machine)
- Memalloy (for generating Test input)
These are the main test drivers; they combine many of the tasks done by the smaller sub-commands in the process of running tests.
- Compare: compare litmus output across compilers.
- Test: test compilers using Herd and a Memalloy-style input corpus.
-
C: various utilities for dealing with C files and C litmus tests; most of these expect input in the known C subset.
- C Delitmus: convert a C litmus test into a compilable C11 program.
- C Explain: dump various facts about a C file or litmus test.
- C Fuzz: experimental and unfinished mutation of C litmus tests.
-
Asm: various utilities for dealing with assembly files and assembly litmus tests; many commands also accept C files, given a compiler, and run the compiler first before proceeding as normal.
-
Asm Explain (formerly
explain
): annotate an assembly file withact
's analysis. - Asm Litmusify: convert a single assembly file to a litmus test.
-
Asm Explain (formerly
-
Configure: various tools for dealing with
act
configuration. -
Regress: regression tests (used mainly by
act
's build process).
- Code conventions: why things are how they are
- Converting assembly to litmus: observational notes on how we might sanitise assembly output
These are the constituent (private) libraries of act
's codebase (excluding language, compiler, and simulator specific libraries, which are currently also in the codebase and pulled in by toplevel
).
-
utils
: General utility library -
act_common
: Act common library
-
abstract
: Abstract program model -
language
: Language abstraction layer
-
lib/sanitiser_
(to be moved): Sanitiser -
lib/explainer_
(to be moved): Explainer -
tester
: Test runner (used for Test) -
sim
: Simulator abstraction layer
-
toplevel
:act
subcommands -
bin
: theact
command itself
These pages discuss bits of act
's design in detail.
-
Overall design: making sense of
act
's module soup -
Filters:
act
's usual abstraction for processes that take file input and return file output