diff --git a/clean.sh b/clean.sh index 3d4c4be0..31624d74 100755 --- a/clean.sh +++ b/clean.sh @@ -4,4 +4,5 @@ rm jvm/code.class rm -r rust/target rm -rf kotlin/code.jar rm dart/code +rm lua/code rm -f swift/code diff --git a/compile.sh b/compile.sh index 5c7f1566..6736ed90 100755 --- a/compile.sh +++ b/compile.sh @@ -5,4 +5,5 @@ RUSTFLAGS="-Zlocation-detail=none" cargo +nightly build --manifest-path rust/Car kotlinc -include-runtime kotlin/code.kt -d kotlin/code.jar #kotlinc-native -include-runtime kotlin/code.kt -d kotlin/code dart compile exe dart/code.dart -o dart/code --target-os=macos -swiftc -O -parse-as-library -Xcc -funroll-loops -Xcc -march=native -Xcc -ftree-vectorize -Xcc -ffast-math swift/code.swift -o swift/code +luajit -b lua/code.lua lua/code +swiftc -O -parse-as-library -Xcc -funroll-loops -Xcc -march=native -Xcc -ftree-vectorize -Xcc -ffast-math swift/code.swift -o swift/code \ No newline at end of file diff --git a/fibonacci/lua/code.lua b/fibonacci/lua/code.lua new file mode 100644 index 00000000..0f00db81 --- /dev/null +++ b/fibonacci/lua/code.lua @@ -0,0 +1,16 @@ +local function fibbonacci(n) + if n == 0 then + return 0 + end + if n == 1 then + return 1 + end + return fibbonacci(n - 1) + fibbonacci(n - 2) +end + +local u = arg[1] +local r = 0 +for i = 1, u - 1 do + r = r + fibbonacci(i) +end +print(r) diff --git a/loops/lua/code.lua b/loops/lua/code.lua new file mode 100644 index 00000000..dfc1b1ee --- /dev/null +++ b/loops/lua/code.lua @@ -0,0 +1,13 @@ +math.randomseed(os.time()) +local u = arg[1] +local r = math.random(0, 10000) +local a = {} + +for i = 0, 10000 - 1 do + for j = 0, 100000 - 1 do + a[i] = (a[i] or 0) + j % u + end + a[i] = a[i] + r +end + +print(a[r]) diff --git a/run.sh b/run.sh index c52a434a..8a015469 100755 --- a/run.sh +++ b/run.sh @@ -25,6 +25,8 @@ run "Java" "java jvm.code 40" run "PHP" "php ./php/code.php 40" run "R" "Rscript ./r/code.R 40" run "Dart" "./dart/code 40" +run "LuaJIT" "luajit ./lua/code 40" +run "Lua" "lua ./lua/code.lua 40" run "Swift" "./swift/code 40" run "Julia" "julia ./julia/code.jl 40" run "Ruby" "ruby ./ruby/code.rb 40"