--- # anything < 10 ms on my system is arbitrarily tagged :fast # anything > ~100 ms on my system is tagged :slow bash: name: Bash groups: - fast - script version: '%{compiler} --version | head -n1' command: - bash - hello.bash crystal: name: Crystal groups: - compiled - fast - native - slow-compile source: hello.cr compile: '%{compiler} build --release -o %{target} %{source}' command: hello.cr.out env: CRYSTAL_CACHE_DIR: .crystal deno: name: JavaScript (Deno) groups: - js - script version: '%{compiler} version | head -n1' command: - deno - hello.js dmd: name: D (DMD) groups: - compiled - d - fast - native source: hello.d compile: '%{compiler} -O -of=%{target} %{source}' version: '%{compiler} --version | head -n1' command: hello.dmd.d.out g++: name: C++ (g++) groups: - c++ - compiled - cpp - fast - native source: hello.cpp compile: '%{compiler} -O3 -o %{target} %{source}' version: '%{compiler} --version | head -n1' command: hello.gpp.out gcc: name: C (gcc) groups: - c - compiled - fast - native source: hello.c compile: '%{compiler} -O3 -o %{target} %{source}' version: '%{compiler} --version | head -n1' command: hello.gcc.out gdc: name: D (GDC) groups: - compiled - d - fast - native source: hello.d compile: '%{compiler} -O3 -o %{target} %{source}' version: '%{compiler} --version | head -n1' command: hello.gdc.d.out ghc: name: Haskell (GHC) groups: - compiled - fast - haskell - native source: hello.hs compile: '%{compiler} -v0 -O2 -outputdir .ghc -o %{target} %{source}' command: hello.hs.out go: name: Go groups: - compiled - fast - native source: hello.go compile: '%{compiler} build -o %{target} %{source}' version: '%{compiler} version' command: hello.go.out graalvm-js: name: JavaScript (GraalVM) groups: - js - script version: '%{compiler} --version' command: - js - hello.js javac: name: Java groups: - compiled - java - jvm source: HelloJava.java version: '%{compiler} -version' command: - java - HelloJava java-native: name: Java Native (GraalVM) groups: - compiled - fast - java - native - slow-compile compiler: native-image source: HelloJava.class command: hello.java.out kotlinc-native: name: Kotlin Native groups: - compiled - fast - kotlin - native - slow-compile source: HelloKotlin.kt compiler: konanc version: '%{compiler} -version' command: hello.kt.out kotlinc: name: Kotlin groups: - compiled - jvm - kotlin - slow source: HelloKotlin.kt target: HelloKotlinKt.class compile: '%{compiler} %{source}' version: '%{compiler} -version' command: - kotlin - HelloKotlinKt ldc: name: D (LDC) groups: - compiled - d - fast - native source: hello.d compile: '%{compiler} -O3 -o %{target} %{source}' command: hello.ldc.d.out lua: name: Lua groups: - fast - luas - script version: '%{compiler} -v' command: - lua - hello.lua luajit: name: LuaJIT groups: - fast - luas - script version: '%{compiler} -v' command: - luajit - hello.lua nim: name: Nim groups: - compiled - fast - native source: hello.nim compile: '%{compiler} compile --out:%{target} --opt:speed --verbosity:0 --hints:off %{source}' version: '%{compiler} --version | head -n1' command: hello.nim.out node: name: JavaScript (Node.js) groups: - js - script command: - node - hello.js quickjs: name: JavaScript (QuickJS) groups: - fast - js - script version: '%{compiler} --help | head -n1' command: - qjs - hello.js perl5: name: Perl groups: - fast - perl - script # trim perl's lengthy version output version: "%{compiler} -MConfig -le 'print qq($^V $Config{archname})'" command: - perl - hello.pl perl6: name: Perl 6 groups: - perl - script command: - perl6 - hello.p6 python2: name: Python 2 groups: - python - script command: - python2 - hello.py python3: name: Python 3 groups: - python - script command: - python3 - hello.py ruby: name: Ruby groups: - rubies - script command: - ruby - hello.rb rustc: name: Rust groups: - compiled - fast - native source: hello.rs compile: '%{compiler} -O -o %{target} %{source}' command: hello.rs.out scalac: name: Scala groups: - compiled - jvm - slow - slowest source: HelloScala.scala compile: '%{compiler} %{source}' version: '%{compiler} -version' command: - scala - HelloScala truffle-ruby: name: Ruby (TruffleRuby) groups: - rubies - script version: '%{compiler} --version' command: - truffleruby - hello.rb