Ein online-Spielplatz um DDP auszuprobieren.
Erreichbar unter https://spiel.ddp.im
Inspiriert von anderen Sprachen wie Go, Rust und Dart.
dark mode | light mode |
---|---|
- Ein Linux Betriebssystem (das Linux-exklusive seccomp feature wird benutzt)
- Go (mindestens version 1.22.2)
- npm
- Die Spielplatz und Kompilierer Repositories klonen
- Den Kompilierer bauen
make install-dependencies
ausführen
Um das Programm zu starten führt man run.sh
aus.
Das Makefile sollte dann alle Abhängigkeiten automatisch installieren (eventuell muss das sudo Passwort angegeben werden).
Wahrscheinlich benötigt run.sh
root permissions. In diesem Fall müssen auch Umgebungsvariablen angegeben werden:
sudo PATH="$PATH" DDPPATH="$DDPPATH" ./run.sh
- Das Spielplatz Repository klonen
- Die entsprechende LLVM Version von https://github.com/llvm/llvm-project/releases/tag/llvmorg-12.0.0 herunterladen
- Docker starten
./docker-build.sh <llvm_archive>
auführen, wobei<llvm_archive>
der Pfad zur heruntergeladenen LLVM Version ist
Bsp.:
wget https://github.com/llvm/llvm-project/releases/download/llvmorg-12.0.0/clang+llvm-12.0.0-x86_64-linux-gnu-ubuntu-20.04.tar.xz
./docker-build.sh clang+llvm-12.0.0-x86_64-linux-gnu-ubuntu-20.04.tar.xz
Das Docker Image kann mit docker run -p 8080:8080 ddp-spielplatz
als container gestartet werden.
Der Spielplatz sollte jetzt unter http://localhost:8080/ erreicht werden können.
Man kann im root des Projektes eine config.json
Datei erstellen um das Programm einszustellen.
Die standart Konfigurationsdatei sieht so aus.
{
"port": "8080",
"exe_cache_duration": "1m",
"run_timeout": "30s",
"memory_limit_bytes": 4294967296,
"cpu_limit_percent": 50,
"max_concurrent_processes": 50,
"process_aquire_timeout": "3s",
"useHTTPS": false,
"certPath": "",
"keyPath": "",
"pprof": false,
"log_level": "INFO"
}