This repository uses a devcontainer.json
file to allow you to quickly get started.
Using Codespaces is required for the workshop
- Login to your GitHub account
- Fork this repository
- Click the green
<> Code
button - Press
...
and thenNew with options...
- Change
Machine type
to4-core
- Then
Create codespace
- Wait a ~3 minutes while the image is loading ☕
- Press
Show log
to see progress
- Press
Remember to shut down your codespace here when you're finished.
I recommend switching to the GitHub Dark
theme, because the LLVM IR syntax highlighting works better there. When prompted by the CMake tools, just close the notifications:
At a later date you can set things up locally with Docker Desktop
- Install/Update Docker Desktop (alternatives)
- Start Docker Desktop
- Install Visual Studio Code
- Clone and open this repository in VS Code (use the HTTPS protocol)
- Install the Dev Containers extension in VS Code (you should be prompted for recommended extensions)
- Click the blue 'Reopen in Container' button when prompted (you can also find it in the command palette)
For more detailed steps, check out the Dev Containers tutorial. The instructions after this assume you are running inside the container.
Because the host filesystem is mounted inside the container you may need to configure Git to not automatically convert line endings:
git config --global core.autocrlf false
Additionally it's recommended to configure Docker to use the WSL 2 backend.
To build the project, press the Build
button in the status bar:
You will be prompted for a preset, select clang
and the build will start:
Alternatively you can build with the following commands:
cmake --preset clang
cmake --build build
To verify if the environment is set up correctly, run:
llvm-config --prefix
Expected output:
/cxx-common/install
The ${workspaceFolder}/build
directory will also be added to your PATH
, so you can easily access your tools from anywhere. To verify, run the following command:
remill-lift --version
Expected output:
remill-lift version v4.1.0-160-g7f091d4
Commit Hash: 7f091d4256060c254fcd15f35fd8b9bd6abd157f
Commit Date: 2024-07-17 12:32:00 -0400
Last commit by: Duncan Ogilvie [[email protected]]
Commit Subject: [Remove [[gnu::const]] (readnone) from __remill intrinsics (#710)]