An open API service indexing awesome lists of open source software.

https://github.com/plsyssec/icarus

🏅 A domain-specific language for trustworthy JIT implementation
https://github.com/plsyssec/icarus

Last synced: 3 months ago
JSON representation

🏅 A domain-specific language for trustworthy JIT implementation

Awesome Lists containing this project

README

          

# ~~Cachet~~ Icarus

_Note: renaming is still in progress._

## Syntax highlighting

A syntax highlighting plugin for Vim/Neovim can be found in the `contrib/vim/` directory. It is
updated as the language evolves.

## Prerequisites

1. Clone this repository with the `-r` (recursive) flag, or run `git submodule init` / `git
submodule update` to initialize submodules after cloning.
2. Make sure the `sponge` command from [moreutils](https://joeyh.name/code/moreutils/) is
available in your `PATH`.
3. Install the [`dotnet` CLI](https://docs.microsoft.com/en-us/dotnet/core/tools/).
4. Build Boogie with `./scripts/build-boogie.sh`.
5. Build Corral with `./scripts/build-corral.sh`.

## Testing scripts

A helper script is available to compile Cachet source files from the `notes/` directory.

```
./scripts/compile.sh
```

will compile `notes/.cachet`, producing `out/.h`, `out/.inc`, and
`out/.bpl`.

After compiling, samples can be verified with `./scripts/verify.sh`.

```
./scripts/verify.sh
```

will run the Corral verifier on `out/.bpl`. Note we're using a small
[fork](https://github.com/PLSysSec/corral/tree/cachet) of Corral, vendored in this repository under
`vendor/corral`.

You can do both with a single command by running `./scripts/compile-and-verify.sh `.