Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dramforever/fiveth
A stack-based language implemented in RISC-V assembly
https://github.com/dramforever/fiveth
assembly forth-like riscv
Last synced: about 1 month ago
JSON representation
A stack-based language implemented in RISC-V assembly
- Host: GitHub
- URL: https://github.com/dramforever/fiveth
- Owner: dramforever
- Created: 2023-08-12T12:10:33.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-03-21T18:27:07.000Z (9 months ago)
- Last Synced: 2024-03-21T19:41:57.396Z (9 months ago)
- Topics: assembly, forth-like, riscv
- Language: Assembly
- Homepage:
- Size: 106 KB
- Stars: 16
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Fiveth
A stack-based language implemented in RISC-V assembly.
## Building and running Fiveth
- Edit `config.mk` to suit your environment
- `make` to build the programWith the default config this should end a message like:
```
* Build complete: build/fiveth
```The default configuration is to run an interactive Fiveth shell that works under
a 64-bit RISC-V Linux environment. You can now:- `make qemu` to run it in QEMU user-mode emulation
- `make run` to run it directly, if you are actually on RISC-VTry typing some simple Fiveth programs. Outputs are shown after a semicolon.
```
0 > 1 2 + . ; 3
0 > 10 [ . ] count ; 0 1 2 3 4 5 6 7 8 9
0 > "Hello, world!" s. ; Hello, world!
```Press Ctrl-D to quit. [`docs/shell.md`](docs/shell.md) has more details on
running and using the Fiveth interactive shell.## Installing the required tools
On Ubuntu 22.04:
```console
# apt install qemu-user make
# # If using GNU toolchain
# apt install gcc-riscv64-linux-gnu
# # If using LLVM toolchain
# apt install clang lld
```If you have Nix, you can try to use the provided `shell.nix` or `flake.nix`.
On other systems, you can try to acquire a LLVM toolchain or a RISC-V toolchain,
as well as GNU make. To run Fiveth in an emulator, `qemu-riscv64` can be used to
emulate a Linux binary but is only supported on Linux hosts.