From 5ed7c9403d5f17520f386ac1b4c5d566bf264145 Mon Sep 17 00:00:00 2001 From: Leonid Meleshin Date: Wed, 31 Jul 2024 21:35:27 +0400 Subject: [PATCH] refactor: place all benchmarks in subdir --- .github/workflows/benchmark_on_change.yml | 9 +++++++-- .github/workflows/docker.yml | 4 ++++ benchmark.py | 4 ++-- {c-plus-plus => langs/c-plus-plus}/.gitignore | 0 {c-plus-plus => langs/c-plus-plus}/Makefile | 0 {c-plus-plus => langs/c-plus-plus}/benchmark.yml | 0 .../c-plus-plus}/collatz/MaxSequence.cpp | 0 {c-plus-plus => langs/c-plus-plus}/linpack/Linpack.cpp | 0 {c-plus-plus => langs/c-plus-plus}/mandelbrot/Simple.cpp | 0 {c-plus-plus => langs/c-plus-plus}/primes/Atkin.cpp | 0 {c-plus-plus => langs/c-plus-plus}/primes/Simple.cpp | 0 {c-plus-plus => langs/c-plus-plus}/recursion/Tak.cpp | 0 {c-plus-plus => langs/c-plus-plus}/treap/Naive.cpp | 0 {c-sharp => langs/c-sharp}/.gitignore | 0 {c-sharp => langs/c-sharp}/Makefile | 0 {c-sharp => langs/c-sharp}/benchmark.yml | 0 {c-sharp => langs/c-sharp}/mandelbrot/Simple.cs | 0 {c => langs/c}/.gitignore | 0 {c => langs/c}/Makefile | 0 {c => langs/c}/benchmark.yml | 0 {c => langs/c}/primes/Simple.c | 0 {fortran => langs/fortran}/.gitignore | 0 {fortran => langs/fortran}/Makefile | 0 {fortran => langs/fortran}/benchmark.yml | 0 {fortran => langs/fortran}/primes/Simple.f90 | 0 {go => langs/go}/.gitignore | 0 {go => langs/go}/Makefile | 0 {go => langs/go}/benchmark.yml | 0 {go => langs/go}/collatz/MaxSequence.go | 0 {go => langs/go}/linpack/Linpack.go | 0 {go => langs/go}/mandelbrot/Simple.go | 0 {go => langs/go}/primes/Atkin.go | 0 {go => langs/go}/primes/Simple.go | 0 {go => langs/go}/recursion/Tak.go | 0 {go => langs/go}/treap/Naive.go | 0 {java => langs/java}/.gitignore | 0 {java => langs/java}/Makefile | 0 {java => langs/java}/benchmark.yml | 0 {java => langs/java}/collatz/MaxSequence.java | 0 {java => langs/java}/linpack/Linpack.java | 0 {java => langs/java}/mandelbrot/Simple.java | 0 {java => langs/java}/primes/Atkin.java | 0 {java => langs/java}/primes/Simple.java | 0 {java => langs/java}/recursion/Tak.java | 0 {java => langs/java}/treap/Naive.java | 0 {javascript => langs/javascript}/benchmark.yml | 0 {javascript => langs/javascript}/collatz/MaxSequence.js | 0 {javascript => langs/javascript}/linpack/Linpack.js | 0 {javascript => langs/javascript}/mandelbrot/Simple.js | 0 {javascript => langs/javascript}/primes/Atkin.js | 0 {javascript => langs/javascript}/primes/Simple.js | 0 {javascript => langs/javascript}/recursion/Tak.js | 0 {javascript => langs/javascript}/treap/Naive.js | 0 {kotlin => langs/kotlin}/.gitignore | 0 {kotlin => langs/kotlin}/Makefile | 0 {kotlin => langs/kotlin}/benchmark.yml | 0 {kotlin => langs/kotlin}/primes/Simple-JVM.kt | 0 {kotlin => langs/kotlin}/primes/Simple-Native.kt | 0 {kotlin => langs/kotlin}/treap/Naive-JVM.kt | 0 {kotlin => langs/kotlin}/treap/Naive-Native.kt | 0 {lua => langs/lua}/benchmark.yml | 0 {lua => langs/lua}/mandelbrot/Simple.lua | 0 {lua => langs/lua}/primes/Simple.lua | 0 {lua => langs/lua}/recursion/Tak.lua | 0 {lua => langs/lua}/treap/Naive.lua | 0 {perl => langs/perl}/benchmark.yml | 0 {perl => langs/perl}/primes/Simple.pl | 0 {perl => langs/perl}/recursion/Tak.pl | 0 {php => langs/php}/.gitignore | 0 {php => langs/php}/Makefile | 0 {php => langs/php}/benchmark.yml | 0 {php => langs/php}/collatz/MaxSequence.php | 0 {php => langs/php}/composer.json | 0 {php => langs/php}/composer.lock | 0 {php => langs/php}/linpack/Linpack.php | 0 {php => langs/php}/mandelbrot/Simple.php | 0 {php => langs/php}/primes/Atkin.php | 0 {php => langs/php}/primes/Simple.php | 0 {php => langs/php}/recursion/Tak.php | 0 {php => langs/php}/treap/Naive.php | 0 {python => langs/python}/.gitignore | 0 {python => langs/python}/benchmark.yml | 0 {python => langs/python}/collatz/MaxSequence-Numba.py | 0 {python => langs/python}/collatz/MaxSequence.py | 0 {python => langs/python}/linpack/Linpack.py | 0 {python => langs/python}/mandelbrot/Simple-Numba.py | 0 {python => langs/python}/mandelbrot/Simple.py | 0 {python => langs/python}/primes/Atkin.py | 0 {python => langs/python}/primes/Simple-Numba.py | 0 {python => langs/python}/primes/Simple.py | 0 {python => langs/python}/recursion/Tak-Numba.py | 0 {python => langs/python}/recursion/Tak.py | 0 {python => langs/python}/treap/Naive.py | 0 {ruby => langs/ruby}/benchmark.yml | 0 {ruby => langs/ruby}/collatz/MaxSequence.rb | 0 {ruby => langs/ruby}/mandelbrot/Simple.rb | 0 {ruby => langs/ruby}/primes/Atkin.rb | 0 {ruby => langs/ruby}/primes/Simple.rb | 0 {ruby => langs/ruby}/recursion/Tak.rb | 0 {ruby => langs/ruby}/treap/Naive.rb | 0 {rust => langs/rust}/.gitignore | 0 {rust => langs/rust}/Makefile | 0 {rust => langs/rust}/benchmark.yml | 0 {rust => langs/rust}/collatz/MaxSequence.rs | 0 {rust => langs/rust}/mandelbrot/Simple.rs | 0 {rust => langs/rust}/primes/Atkin.rs | 0 {rust => langs/rust}/primes/Simple.rs | 0 {swift => langs/swift}/.gitignore | 0 {swift => langs/swift}/Makefile | 0 {swift => langs/swift}/benchmark.yml | 0 {swift => langs/swift}/primes/Simple.swift | 0 {zig => langs/zig}/.gitignore | 0 {zig => langs/zig}/Makefile | 0 {zig => langs/zig}/primes/Simple.zig | 0 114 files changed, 13 insertions(+), 4 deletions(-) rename {c-plus-plus => langs/c-plus-plus}/.gitignore (100%) rename {c-plus-plus => langs/c-plus-plus}/Makefile (100%) rename {c-plus-plus => langs/c-plus-plus}/benchmark.yml (100%) rename {c-plus-plus => langs/c-plus-plus}/collatz/MaxSequence.cpp (100%) rename {c-plus-plus => langs/c-plus-plus}/linpack/Linpack.cpp (100%) rename {c-plus-plus => langs/c-plus-plus}/mandelbrot/Simple.cpp (100%) rename {c-plus-plus => langs/c-plus-plus}/primes/Atkin.cpp (100%) rename {c-plus-plus => langs/c-plus-plus}/primes/Simple.cpp (100%) rename {c-plus-plus => langs/c-plus-plus}/recursion/Tak.cpp (100%) rename {c-plus-plus => langs/c-plus-plus}/treap/Naive.cpp (100%) rename {c-sharp => langs/c-sharp}/.gitignore (100%) rename {c-sharp => langs/c-sharp}/Makefile (100%) rename {c-sharp => langs/c-sharp}/benchmark.yml (100%) rename {c-sharp => langs/c-sharp}/mandelbrot/Simple.cs (100%) rename {c => langs/c}/.gitignore (100%) rename {c => langs/c}/Makefile (100%) rename {c => langs/c}/benchmark.yml (100%) rename {c => langs/c}/primes/Simple.c (100%) rename {fortran => langs/fortran}/.gitignore (100%) rename {fortran => langs/fortran}/Makefile (100%) rename {fortran => langs/fortran}/benchmark.yml (100%) rename {fortran => langs/fortran}/primes/Simple.f90 (100%) rename {go => langs/go}/.gitignore (100%) rename {go => langs/go}/Makefile (100%) rename {go => langs/go}/benchmark.yml (100%) rename {go => langs/go}/collatz/MaxSequence.go (100%) rename {go => langs/go}/linpack/Linpack.go (100%) rename {go => langs/go}/mandelbrot/Simple.go (100%) rename {go => langs/go}/primes/Atkin.go (100%) rename {go => langs/go}/primes/Simple.go (100%) rename {go => langs/go}/recursion/Tak.go (100%) rename {go => langs/go}/treap/Naive.go (100%) rename {java => langs/java}/.gitignore (100%) rename {java => langs/java}/Makefile (100%) rename {java => langs/java}/benchmark.yml (100%) rename {java => langs/java}/collatz/MaxSequence.java (100%) rename {java => langs/java}/linpack/Linpack.java (100%) rename {java => langs/java}/mandelbrot/Simple.java (100%) rename {java => langs/java}/primes/Atkin.java (100%) rename {java => langs/java}/primes/Simple.java (100%) rename {java => langs/java}/recursion/Tak.java (100%) rename {java => langs/java}/treap/Naive.java (100%) rename {javascript => langs/javascript}/benchmark.yml (100%) rename {javascript => langs/javascript}/collatz/MaxSequence.js (100%) rename {javascript => langs/javascript}/linpack/Linpack.js (100%) rename {javascript => langs/javascript}/mandelbrot/Simple.js (100%) rename {javascript => langs/javascript}/primes/Atkin.js (100%) rename {javascript => langs/javascript}/primes/Simple.js (100%) rename {javascript => langs/javascript}/recursion/Tak.js (100%) rename {javascript => langs/javascript}/treap/Naive.js (100%) rename {kotlin => langs/kotlin}/.gitignore (100%) rename {kotlin => langs/kotlin}/Makefile (100%) rename {kotlin => langs/kotlin}/benchmark.yml (100%) rename {kotlin => langs/kotlin}/primes/Simple-JVM.kt (100%) rename {kotlin => langs/kotlin}/primes/Simple-Native.kt (100%) rename {kotlin => langs/kotlin}/treap/Naive-JVM.kt (100%) rename {kotlin => langs/kotlin}/treap/Naive-Native.kt (100%) rename {lua => langs/lua}/benchmark.yml (100%) rename {lua => langs/lua}/mandelbrot/Simple.lua (100%) rename {lua => langs/lua}/primes/Simple.lua (100%) rename {lua => langs/lua}/recursion/Tak.lua (100%) rename {lua => langs/lua}/treap/Naive.lua (100%) rename {perl => langs/perl}/benchmark.yml (100%) rename {perl => langs/perl}/primes/Simple.pl (100%) rename {perl => langs/perl}/recursion/Tak.pl (100%) rename {php => langs/php}/.gitignore (100%) rename {php => langs/php}/Makefile (100%) rename {php => langs/php}/benchmark.yml (100%) rename {php => langs/php}/collatz/MaxSequence.php (100%) rename {php => langs/php}/composer.json (100%) rename {php => langs/php}/composer.lock (100%) rename {php => langs/php}/linpack/Linpack.php (100%) rename {php => langs/php}/mandelbrot/Simple.php (100%) rename {php => langs/php}/primes/Atkin.php (100%) rename {php => langs/php}/primes/Simple.php (100%) rename {php => langs/php}/recursion/Tak.php (100%) rename {php => langs/php}/treap/Naive.php (100%) rename {python => langs/python}/.gitignore (100%) rename {python => langs/python}/benchmark.yml (100%) rename {python => langs/python}/collatz/MaxSequence-Numba.py (100%) rename {python => langs/python}/collatz/MaxSequence.py (100%) rename {python => langs/python}/linpack/Linpack.py (100%) rename {python => langs/python}/mandelbrot/Simple-Numba.py (100%) rename {python => langs/python}/mandelbrot/Simple.py (100%) rename {python => langs/python}/primes/Atkin.py (100%) rename {python => langs/python}/primes/Simple-Numba.py (100%) rename {python => langs/python}/primes/Simple.py (100%) rename {python => langs/python}/recursion/Tak-Numba.py (100%) rename {python => langs/python}/recursion/Tak.py (100%) rename {python => langs/python}/treap/Naive.py (100%) rename {ruby => langs/ruby}/benchmark.yml (100%) rename {ruby => langs/ruby}/collatz/MaxSequence.rb (100%) rename {ruby => langs/ruby}/mandelbrot/Simple.rb (100%) rename {ruby => langs/ruby}/primes/Atkin.rb (100%) rename {ruby => langs/ruby}/primes/Simple.rb (100%) rename {ruby => langs/ruby}/recursion/Tak.rb (100%) rename {ruby => langs/ruby}/treap/Naive.rb (100%) rename {rust => langs/rust}/.gitignore (100%) rename {rust => langs/rust}/Makefile (100%) rename {rust => langs/rust}/benchmark.yml (100%) rename {rust => langs/rust}/collatz/MaxSequence.rs (100%) rename {rust => langs/rust}/mandelbrot/Simple.rs (100%) rename {rust => langs/rust}/primes/Atkin.rs (100%) rename {rust => langs/rust}/primes/Simple.rs (100%) rename {swift => langs/swift}/.gitignore (100%) rename {swift => langs/swift}/Makefile (100%) rename {swift => langs/swift}/benchmark.yml (100%) rename {swift => langs/swift}/primes/Simple.swift (100%) rename {zig => langs/zig}/.gitignore (100%) rename {zig => langs/zig}/Makefile (100%) rename {zig => langs/zig}/primes/Simple.zig (100%) diff --git a/.github/workflows/benchmark_on_change.yml b/.github/workflows/benchmark_on_change.yml index 106b8b6..fec3fcb 100644 --- a/.github/workflows/benchmark_on_change.yml +++ b/.github/workflows/benchmark_on_change.yml @@ -2,13 +2,18 @@ name: Run Benchmark on Change on: pull_request: - branches: - - master + paths: + - 'langs/**/*' + - '.github/workflows/benchmark_on_change.yml' + - 'benchmark.py' + - 'run_on_changes.py' + jobs: benchmark: runs-on: ubuntu-latest + timeout-minutes: 60 permissions: pull-requests: read diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index ffeb175..671184d 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -50,7 +50,11 @@ jobs: - name: Build and push uses: docker/build-push-action@v6 with: + pull: true context: . push: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} + cache-from: | + ghcr.io/${{ github.repository }}:latest + type=local,src=/tmp/.buildx-cache diff --git a/benchmark.py b/benchmark.py index d431bd7..30e293d 100755 --- a/benchmark.py +++ b/benchmark.py @@ -27,9 +27,9 @@ configurations = [] if args.languages: for language in args.languages: - configurations += glob.glob(language + '/benchmark.yml') + glob.glob(language + '/benchmark.yaml') + configurations += glob.glob('langs' + language + '/benchmark.yml') + glob.glob('langs' + language + '/benchmark.yaml') else: - configurations = glob.glob('*/benchmark.yml') + glob.glob('*/benchmark.yaml') + configurations = glob.glob('langs/*/benchmark.yml') + glob.glob('langs/*/benchmark.yaml') configurations.sort() scripts = ['*'] diff --git a/c-plus-plus/.gitignore b/langs/c-plus-plus/.gitignore similarity index 100% rename from c-plus-plus/.gitignore rename to langs/c-plus-plus/.gitignore diff --git a/c-plus-plus/Makefile b/langs/c-plus-plus/Makefile similarity index 100% rename from c-plus-plus/Makefile rename to langs/c-plus-plus/Makefile diff --git a/c-plus-plus/benchmark.yml b/langs/c-plus-plus/benchmark.yml similarity index 100% rename from c-plus-plus/benchmark.yml rename to langs/c-plus-plus/benchmark.yml diff --git a/c-plus-plus/collatz/MaxSequence.cpp b/langs/c-plus-plus/collatz/MaxSequence.cpp similarity index 100% rename from c-plus-plus/collatz/MaxSequence.cpp rename to langs/c-plus-plus/collatz/MaxSequence.cpp diff --git a/c-plus-plus/linpack/Linpack.cpp b/langs/c-plus-plus/linpack/Linpack.cpp similarity index 100% rename from c-plus-plus/linpack/Linpack.cpp rename to langs/c-plus-plus/linpack/Linpack.cpp diff --git a/c-plus-plus/mandelbrot/Simple.cpp b/langs/c-plus-plus/mandelbrot/Simple.cpp similarity index 100% rename from c-plus-plus/mandelbrot/Simple.cpp rename to langs/c-plus-plus/mandelbrot/Simple.cpp diff --git a/c-plus-plus/primes/Atkin.cpp b/langs/c-plus-plus/primes/Atkin.cpp similarity index 100% rename from c-plus-plus/primes/Atkin.cpp rename to langs/c-plus-plus/primes/Atkin.cpp diff --git a/c-plus-plus/primes/Simple.cpp b/langs/c-plus-plus/primes/Simple.cpp similarity index 100% rename from c-plus-plus/primes/Simple.cpp rename to langs/c-plus-plus/primes/Simple.cpp diff --git a/c-plus-plus/recursion/Tak.cpp b/langs/c-plus-plus/recursion/Tak.cpp similarity index 100% rename from c-plus-plus/recursion/Tak.cpp rename to langs/c-plus-plus/recursion/Tak.cpp diff --git a/c-plus-plus/treap/Naive.cpp b/langs/c-plus-plus/treap/Naive.cpp similarity index 100% rename from c-plus-plus/treap/Naive.cpp rename to langs/c-plus-plus/treap/Naive.cpp diff --git a/c-sharp/.gitignore b/langs/c-sharp/.gitignore similarity index 100% rename from c-sharp/.gitignore rename to langs/c-sharp/.gitignore diff --git a/c-sharp/Makefile b/langs/c-sharp/Makefile similarity index 100% rename from c-sharp/Makefile rename to langs/c-sharp/Makefile diff --git a/c-sharp/benchmark.yml b/langs/c-sharp/benchmark.yml similarity index 100% rename from c-sharp/benchmark.yml rename to langs/c-sharp/benchmark.yml diff --git a/c-sharp/mandelbrot/Simple.cs b/langs/c-sharp/mandelbrot/Simple.cs similarity index 100% rename from c-sharp/mandelbrot/Simple.cs rename to langs/c-sharp/mandelbrot/Simple.cs diff --git a/c/.gitignore b/langs/c/.gitignore similarity index 100% rename from c/.gitignore rename to langs/c/.gitignore diff --git a/c/Makefile b/langs/c/Makefile similarity index 100% rename from c/Makefile rename to langs/c/Makefile diff --git a/c/benchmark.yml b/langs/c/benchmark.yml similarity index 100% rename from c/benchmark.yml rename to langs/c/benchmark.yml diff --git a/c/primes/Simple.c b/langs/c/primes/Simple.c similarity index 100% rename from c/primes/Simple.c rename to langs/c/primes/Simple.c diff --git a/fortran/.gitignore b/langs/fortran/.gitignore similarity index 100% rename from fortran/.gitignore rename to langs/fortran/.gitignore diff --git a/fortran/Makefile b/langs/fortran/Makefile similarity index 100% rename from fortran/Makefile rename to langs/fortran/Makefile diff --git a/fortran/benchmark.yml b/langs/fortran/benchmark.yml similarity index 100% rename from fortran/benchmark.yml rename to langs/fortran/benchmark.yml diff --git a/fortran/primes/Simple.f90 b/langs/fortran/primes/Simple.f90 similarity index 100% rename from fortran/primes/Simple.f90 rename to langs/fortran/primes/Simple.f90 diff --git a/go/.gitignore b/langs/go/.gitignore similarity index 100% rename from go/.gitignore rename to langs/go/.gitignore diff --git a/go/Makefile b/langs/go/Makefile similarity index 100% rename from go/Makefile rename to langs/go/Makefile diff --git a/go/benchmark.yml b/langs/go/benchmark.yml similarity index 100% rename from go/benchmark.yml rename to langs/go/benchmark.yml diff --git a/go/collatz/MaxSequence.go b/langs/go/collatz/MaxSequence.go similarity index 100% rename from go/collatz/MaxSequence.go rename to langs/go/collatz/MaxSequence.go diff --git a/go/linpack/Linpack.go b/langs/go/linpack/Linpack.go similarity index 100% rename from go/linpack/Linpack.go rename to langs/go/linpack/Linpack.go diff --git a/go/mandelbrot/Simple.go b/langs/go/mandelbrot/Simple.go similarity index 100% rename from go/mandelbrot/Simple.go rename to langs/go/mandelbrot/Simple.go diff --git a/go/primes/Atkin.go b/langs/go/primes/Atkin.go similarity index 100% rename from go/primes/Atkin.go rename to langs/go/primes/Atkin.go diff --git a/go/primes/Simple.go b/langs/go/primes/Simple.go similarity index 100% rename from go/primes/Simple.go rename to langs/go/primes/Simple.go diff --git a/go/recursion/Tak.go b/langs/go/recursion/Tak.go similarity index 100% rename from go/recursion/Tak.go rename to langs/go/recursion/Tak.go diff --git a/go/treap/Naive.go b/langs/go/treap/Naive.go similarity index 100% rename from go/treap/Naive.go rename to langs/go/treap/Naive.go diff --git a/java/.gitignore b/langs/java/.gitignore similarity index 100% rename from java/.gitignore rename to langs/java/.gitignore diff --git a/java/Makefile b/langs/java/Makefile similarity index 100% rename from java/Makefile rename to langs/java/Makefile diff --git a/java/benchmark.yml b/langs/java/benchmark.yml similarity index 100% rename from java/benchmark.yml rename to langs/java/benchmark.yml diff --git a/java/collatz/MaxSequence.java b/langs/java/collatz/MaxSequence.java similarity index 100% rename from java/collatz/MaxSequence.java rename to langs/java/collatz/MaxSequence.java diff --git a/java/linpack/Linpack.java b/langs/java/linpack/Linpack.java similarity index 100% rename from java/linpack/Linpack.java rename to langs/java/linpack/Linpack.java diff --git a/java/mandelbrot/Simple.java b/langs/java/mandelbrot/Simple.java similarity index 100% rename from java/mandelbrot/Simple.java rename to langs/java/mandelbrot/Simple.java diff --git a/java/primes/Atkin.java b/langs/java/primes/Atkin.java similarity index 100% rename from java/primes/Atkin.java rename to langs/java/primes/Atkin.java diff --git a/java/primes/Simple.java b/langs/java/primes/Simple.java similarity index 100% rename from java/primes/Simple.java rename to langs/java/primes/Simple.java diff --git a/java/recursion/Tak.java b/langs/java/recursion/Tak.java similarity index 100% rename from java/recursion/Tak.java rename to langs/java/recursion/Tak.java diff --git a/java/treap/Naive.java b/langs/java/treap/Naive.java similarity index 100% rename from java/treap/Naive.java rename to langs/java/treap/Naive.java diff --git a/javascript/benchmark.yml b/langs/javascript/benchmark.yml similarity index 100% rename from javascript/benchmark.yml rename to langs/javascript/benchmark.yml diff --git a/javascript/collatz/MaxSequence.js b/langs/javascript/collatz/MaxSequence.js similarity index 100% rename from javascript/collatz/MaxSequence.js rename to langs/javascript/collatz/MaxSequence.js diff --git a/javascript/linpack/Linpack.js b/langs/javascript/linpack/Linpack.js similarity index 100% rename from javascript/linpack/Linpack.js rename to langs/javascript/linpack/Linpack.js diff --git a/javascript/mandelbrot/Simple.js b/langs/javascript/mandelbrot/Simple.js similarity index 100% rename from javascript/mandelbrot/Simple.js rename to langs/javascript/mandelbrot/Simple.js diff --git a/javascript/primes/Atkin.js b/langs/javascript/primes/Atkin.js similarity index 100% rename from javascript/primes/Atkin.js rename to langs/javascript/primes/Atkin.js diff --git a/javascript/primes/Simple.js b/langs/javascript/primes/Simple.js similarity index 100% rename from javascript/primes/Simple.js rename to langs/javascript/primes/Simple.js diff --git a/javascript/recursion/Tak.js b/langs/javascript/recursion/Tak.js similarity index 100% rename from javascript/recursion/Tak.js rename to langs/javascript/recursion/Tak.js diff --git a/javascript/treap/Naive.js b/langs/javascript/treap/Naive.js similarity index 100% rename from javascript/treap/Naive.js rename to langs/javascript/treap/Naive.js diff --git a/kotlin/.gitignore b/langs/kotlin/.gitignore similarity index 100% rename from kotlin/.gitignore rename to langs/kotlin/.gitignore diff --git a/kotlin/Makefile b/langs/kotlin/Makefile similarity index 100% rename from kotlin/Makefile rename to langs/kotlin/Makefile diff --git a/kotlin/benchmark.yml b/langs/kotlin/benchmark.yml similarity index 100% rename from kotlin/benchmark.yml rename to langs/kotlin/benchmark.yml diff --git a/kotlin/primes/Simple-JVM.kt b/langs/kotlin/primes/Simple-JVM.kt similarity index 100% rename from kotlin/primes/Simple-JVM.kt rename to langs/kotlin/primes/Simple-JVM.kt diff --git a/kotlin/primes/Simple-Native.kt b/langs/kotlin/primes/Simple-Native.kt similarity index 100% rename from kotlin/primes/Simple-Native.kt rename to langs/kotlin/primes/Simple-Native.kt diff --git a/kotlin/treap/Naive-JVM.kt b/langs/kotlin/treap/Naive-JVM.kt similarity index 100% rename from kotlin/treap/Naive-JVM.kt rename to langs/kotlin/treap/Naive-JVM.kt diff --git a/kotlin/treap/Naive-Native.kt b/langs/kotlin/treap/Naive-Native.kt similarity index 100% rename from kotlin/treap/Naive-Native.kt rename to langs/kotlin/treap/Naive-Native.kt diff --git a/lua/benchmark.yml b/langs/lua/benchmark.yml similarity index 100% rename from lua/benchmark.yml rename to langs/lua/benchmark.yml diff --git a/lua/mandelbrot/Simple.lua b/langs/lua/mandelbrot/Simple.lua similarity index 100% rename from lua/mandelbrot/Simple.lua rename to langs/lua/mandelbrot/Simple.lua diff --git a/lua/primes/Simple.lua b/langs/lua/primes/Simple.lua similarity index 100% rename from lua/primes/Simple.lua rename to langs/lua/primes/Simple.lua diff --git a/lua/recursion/Tak.lua b/langs/lua/recursion/Tak.lua similarity index 100% rename from lua/recursion/Tak.lua rename to langs/lua/recursion/Tak.lua diff --git a/lua/treap/Naive.lua b/langs/lua/treap/Naive.lua similarity index 100% rename from lua/treap/Naive.lua rename to langs/lua/treap/Naive.lua diff --git a/perl/benchmark.yml b/langs/perl/benchmark.yml similarity index 100% rename from perl/benchmark.yml rename to langs/perl/benchmark.yml diff --git a/perl/primes/Simple.pl b/langs/perl/primes/Simple.pl similarity index 100% rename from perl/primes/Simple.pl rename to langs/perl/primes/Simple.pl diff --git a/perl/recursion/Tak.pl b/langs/perl/recursion/Tak.pl similarity index 100% rename from perl/recursion/Tak.pl rename to langs/perl/recursion/Tak.pl diff --git a/php/.gitignore b/langs/php/.gitignore similarity index 100% rename from php/.gitignore rename to langs/php/.gitignore diff --git a/php/Makefile b/langs/php/Makefile similarity index 100% rename from php/Makefile rename to langs/php/Makefile diff --git a/php/benchmark.yml b/langs/php/benchmark.yml similarity index 100% rename from php/benchmark.yml rename to langs/php/benchmark.yml diff --git a/php/collatz/MaxSequence.php b/langs/php/collatz/MaxSequence.php similarity index 100% rename from php/collatz/MaxSequence.php rename to langs/php/collatz/MaxSequence.php diff --git a/php/composer.json b/langs/php/composer.json similarity index 100% rename from php/composer.json rename to langs/php/composer.json diff --git a/php/composer.lock b/langs/php/composer.lock similarity index 100% rename from php/composer.lock rename to langs/php/composer.lock diff --git a/php/linpack/Linpack.php b/langs/php/linpack/Linpack.php similarity index 100% rename from php/linpack/Linpack.php rename to langs/php/linpack/Linpack.php diff --git a/php/mandelbrot/Simple.php b/langs/php/mandelbrot/Simple.php similarity index 100% rename from php/mandelbrot/Simple.php rename to langs/php/mandelbrot/Simple.php diff --git a/php/primes/Atkin.php b/langs/php/primes/Atkin.php similarity index 100% rename from php/primes/Atkin.php rename to langs/php/primes/Atkin.php diff --git a/php/primes/Simple.php b/langs/php/primes/Simple.php similarity index 100% rename from php/primes/Simple.php rename to langs/php/primes/Simple.php diff --git a/php/recursion/Tak.php b/langs/php/recursion/Tak.php similarity index 100% rename from php/recursion/Tak.php rename to langs/php/recursion/Tak.php diff --git a/php/treap/Naive.php b/langs/php/treap/Naive.php similarity index 100% rename from php/treap/Naive.php rename to langs/php/treap/Naive.php diff --git a/python/.gitignore b/langs/python/.gitignore similarity index 100% rename from python/.gitignore rename to langs/python/.gitignore diff --git a/python/benchmark.yml b/langs/python/benchmark.yml similarity index 100% rename from python/benchmark.yml rename to langs/python/benchmark.yml diff --git a/python/collatz/MaxSequence-Numba.py b/langs/python/collatz/MaxSequence-Numba.py similarity index 100% rename from python/collatz/MaxSequence-Numba.py rename to langs/python/collatz/MaxSequence-Numba.py diff --git a/python/collatz/MaxSequence.py b/langs/python/collatz/MaxSequence.py similarity index 100% rename from python/collatz/MaxSequence.py rename to langs/python/collatz/MaxSequence.py diff --git a/python/linpack/Linpack.py b/langs/python/linpack/Linpack.py similarity index 100% rename from python/linpack/Linpack.py rename to langs/python/linpack/Linpack.py diff --git a/python/mandelbrot/Simple-Numba.py b/langs/python/mandelbrot/Simple-Numba.py similarity index 100% rename from python/mandelbrot/Simple-Numba.py rename to langs/python/mandelbrot/Simple-Numba.py diff --git a/python/mandelbrot/Simple.py b/langs/python/mandelbrot/Simple.py similarity index 100% rename from python/mandelbrot/Simple.py rename to langs/python/mandelbrot/Simple.py diff --git a/python/primes/Atkin.py b/langs/python/primes/Atkin.py similarity index 100% rename from python/primes/Atkin.py rename to langs/python/primes/Atkin.py diff --git a/python/primes/Simple-Numba.py b/langs/python/primes/Simple-Numba.py similarity index 100% rename from python/primes/Simple-Numba.py rename to langs/python/primes/Simple-Numba.py diff --git a/python/primes/Simple.py b/langs/python/primes/Simple.py similarity index 100% rename from python/primes/Simple.py rename to langs/python/primes/Simple.py diff --git a/python/recursion/Tak-Numba.py b/langs/python/recursion/Tak-Numba.py similarity index 100% rename from python/recursion/Tak-Numba.py rename to langs/python/recursion/Tak-Numba.py diff --git a/python/recursion/Tak.py b/langs/python/recursion/Tak.py similarity index 100% rename from python/recursion/Tak.py rename to langs/python/recursion/Tak.py diff --git a/python/treap/Naive.py b/langs/python/treap/Naive.py similarity index 100% rename from python/treap/Naive.py rename to langs/python/treap/Naive.py diff --git a/ruby/benchmark.yml b/langs/ruby/benchmark.yml similarity index 100% rename from ruby/benchmark.yml rename to langs/ruby/benchmark.yml diff --git a/ruby/collatz/MaxSequence.rb b/langs/ruby/collatz/MaxSequence.rb similarity index 100% rename from ruby/collatz/MaxSequence.rb rename to langs/ruby/collatz/MaxSequence.rb diff --git a/ruby/mandelbrot/Simple.rb b/langs/ruby/mandelbrot/Simple.rb similarity index 100% rename from ruby/mandelbrot/Simple.rb rename to langs/ruby/mandelbrot/Simple.rb diff --git a/ruby/primes/Atkin.rb b/langs/ruby/primes/Atkin.rb similarity index 100% rename from ruby/primes/Atkin.rb rename to langs/ruby/primes/Atkin.rb diff --git a/ruby/primes/Simple.rb b/langs/ruby/primes/Simple.rb similarity index 100% rename from ruby/primes/Simple.rb rename to langs/ruby/primes/Simple.rb diff --git a/ruby/recursion/Tak.rb b/langs/ruby/recursion/Tak.rb similarity index 100% rename from ruby/recursion/Tak.rb rename to langs/ruby/recursion/Tak.rb diff --git a/ruby/treap/Naive.rb b/langs/ruby/treap/Naive.rb similarity index 100% rename from ruby/treap/Naive.rb rename to langs/ruby/treap/Naive.rb diff --git a/rust/.gitignore b/langs/rust/.gitignore similarity index 100% rename from rust/.gitignore rename to langs/rust/.gitignore diff --git a/rust/Makefile b/langs/rust/Makefile similarity index 100% rename from rust/Makefile rename to langs/rust/Makefile diff --git a/rust/benchmark.yml b/langs/rust/benchmark.yml similarity index 100% rename from rust/benchmark.yml rename to langs/rust/benchmark.yml diff --git a/rust/collatz/MaxSequence.rs b/langs/rust/collatz/MaxSequence.rs similarity index 100% rename from rust/collatz/MaxSequence.rs rename to langs/rust/collatz/MaxSequence.rs diff --git a/rust/mandelbrot/Simple.rs b/langs/rust/mandelbrot/Simple.rs similarity index 100% rename from rust/mandelbrot/Simple.rs rename to langs/rust/mandelbrot/Simple.rs diff --git a/rust/primes/Atkin.rs b/langs/rust/primes/Atkin.rs similarity index 100% rename from rust/primes/Atkin.rs rename to langs/rust/primes/Atkin.rs diff --git a/rust/primes/Simple.rs b/langs/rust/primes/Simple.rs similarity index 100% rename from rust/primes/Simple.rs rename to langs/rust/primes/Simple.rs diff --git a/swift/.gitignore b/langs/swift/.gitignore similarity index 100% rename from swift/.gitignore rename to langs/swift/.gitignore diff --git a/swift/Makefile b/langs/swift/Makefile similarity index 100% rename from swift/Makefile rename to langs/swift/Makefile diff --git a/swift/benchmark.yml b/langs/swift/benchmark.yml similarity index 100% rename from swift/benchmark.yml rename to langs/swift/benchmark.yml diff --git a/swift/primes/Simple.swift b/langs/swift/primes/Simple.swift similarity index 100% rename from swift/primes/Simple.swift rename to langs/swift/primes/Simple.swift diff --git a/zig/.gitignore b/langs/zig/.gitignore similarity index 100% rename from zig/.gitignore rename to langs/zig/.gitignore diff --git a/zig/Makefile b/langs/zig/Makefile similarity index 100% rename from zig/Makefile rename to langs/zig/Makefile diff --git a/zig/primes/Simple.zig b/langs/zig/primes/Simple.zig similarity index 100% rename from zig/primes/Simple.zig rename to langs/zig/primes/Simple.zig