]> Nishi Git Mirror - gwion.git/commitdiff
:book: Update docs
authorfennecdjay <astor.jeremie@wanadoo.fr>
Wed, 24 Jul 2019 14:41:18 +0000 (16:41 +0200)
committerfennecdjay <astor.jeremie@wanadoo.fr>
Wed, 24 Jul 2019 14:41:18 +0000 (16:41 +0200)
19 files changed:
docs/08_Contributing/03_ContributingTranslation.mdr
docs/09_Benchmarks.md [deleted file]
docs/09_Benchmarks.mdr
docs/assets/benchmark/binary-trees.dat
docs/assets/benchmark/binary-trees.png
docs/assets/benchmark/fib-recurs.dat
docs/assets/benchmark/fib-recurs.png
docs/assets/benchmark/fib.dat
docs/assets/benchmark/fib.png
docs/assets/benchmark/for.dat [new file with mode: 0644]
docs/assets/benchmark/for.png [new file with mode: 0644]
docs/assets/benchmark/method-call.dat
docs/assets/benchmark/method-call.png
docs/assets/benchmark/string-equals.dat [new file with mode: 0644]
docs/assets/benchmark/string-equals.png [new file with mode: 0644]
help/struct_check.sh
tests/benchmark/string_equals.gw [deleted file]
tests/benchmark/string_equals.py [deleted file]
tests/benchmark/string_equals.wren [deleted file]

index 7a9c35b88c297c78ef79d6f348b49d3f34aef3e2..2cd13df4f1ae2c6a400b98f0e9fd2a6c1ddb8d56 100644 (file)
@@ -5,6 +5,10 @@ First off, thank you for considering translating gwion.
 Thanks to the build system, you're gonna get on tracks fast.
 
 
+> You might want to export TRANSLATION_TARGET,
+so you don't have to set it on the command line for commands requiring it  
+`export TRANSLATION_TARGET="xxx"`
+
 ## 1) Init the translation language
 
 You have to make sure there is a directory for your target language (e.g.: fr, en, es_ES ...).
@@ -16,9 +20,6 @@ make translation-init TRANSLATION_TARGET=<xxx>
 Where `<xxx>` is your language of choice.
 It will fail if your language already exists, but this is not a problem.
 
-> You might want to export TRANSLATION_TARGET,
-so you don't have to set it on the command line
-
 ## 2) Edit
 
 Next, you should adjust the translations.
diff --git a/docs/09_Benchmarks.md b/docs/09_Benchmarks.md
deleted file mode 100644 (file)
index bc87638..0000000
+++ /dev/null
@@ -1,238 +0,0 @@
-# Benchmarks
-
-We'll need a bash script
-
-<link rel=styleSheet href="../assets/doc.css" TYPE="text/css"><div id="org-categories"><ul class="lev1"><li><a href="#">Show the code</a></li><ul class="lev2"><a href="#">
-``` sh
-#!/bin/sh
-language=("gwion" "wren" "lua")
-extension=("gw" "wren" "lua")
-test_dir="tests/benchmark"
-plot_script="bench.plot"
-: "${repeats:=10}"
-
-run() {
-  perf stat -r"$repeats" "$1" "$test_dir/$3.$2" 2>&1 | grep "time elapsed" |
-    sed 's/ *\([0-9]*\),\([0-9]*\) .* seconds time elapsed *( +- *\([0-9]*\),\([0-9]*\)% )/\1.\2 \3.\4/'
-}
-
-get_list() {
-  for file in $test_dir/*.gw
-  do basename "$file" .gw
-  done
-}
-
-get_test() {
-  for (( i=0; i<=$(( ${#language[@]} -1 )); i++ ))
-  do echo "${language[$i]} $(run "${language[$i]}" "${extension[$i]}" "$1")"
-  done > "docs/assets/benchmark/$1.dat"
-}
-
-plot() {
-  gnuplot -e "bench='$1'" "$plot_script"
-}
-
-for bench in $(get_list)
-do
-echo $bench
-  get_test "$bench"
-  plot "$bench"
-  echo "### $bench"
-  echo '<link rel=styleSheet href="../assets/doc.css" TYPE="text/css"><div id="org-categories"><ul class="lev1"><li><a href="#">Show the code</a></li><ul class="lev2"><a href="#">'
-  echo "\`\`\`"
-  cat "$test_dir/$bench.gw"
-  echo "\`\`\`"
-  echo '</a></a></li></ul></ul></div>'
-  echo "![](assets/benchmark/$bench.png)"
-done
-```
-</a></a></li></ul></ul></div>
-
-### and a gnuplot script
-
-<link rel=styleSheet href="../assets/doc.css" TYPE="text/css"><div id="org-categories"><ul class="lev1"><li><a href="#">Show the code</a></li><ul class="lev2"><a href="#">
-``` plot
-set terminal png truecolor
-
-#if (!exists("bench"))
-#  bench = 'bench'
-if (!exists("test_dir"))
-  test_dir = 'tests/benchmark'
-
-dat_name = sprintf("docs/assets/benchmark/%s.dat", bench)
-
-stats dat_name using 0:2 noout
-max = STATS_max_y+(0.1*STATS_max_y)
-
-set title bench
-set output sprintf("docs/assets/benchmark/%s.png", bench)
-set xrange [-0.5:((ceil(STATS_max_x))+0.5)]
-set yrange [0:max]
-set boxwidth 0.50
-set nokey
-set xtics nomirror
-set ytics nomirror
-
-set style fill transparent solid 0.25 # partial transparency
-set style fill noborder # no separate top/bottom lines
-
-plot dat_name using 0:2:($2*($3/100.0)):xtic(2) with boxerrorbar lc "blue" notitle, \
-  '' using 0:(max-(0.05*max)):1 with labels
-```
-</a></a></li></ul></ul></div>
-
-## Show the results
-Then just run it
-binary-trees
-### binary-trees
-<link rel=styleSheet href="../assets/doc.css" TYPE="text/css"><div id="org-categories"><ul class="lev1"><li><a href="#">Show the code</a></li><ul class="lev2"><a href="#">
-```
-// Ported from the Wren version.
-
-class Tree {
-  int item;
-  Tree @left, right;
-
-  fun static Tree new_Tree(int it, int depth) {
-    Tree t;
-    it => t.item;
-    if (depth > 0) {
-      it + it => int item2;
-      --depth;
-      Tree.new_Tree(item2 - 1, depth) @=> t.left;
-      Tree.new_Tree(item2, depth) @=> t.right;
-    }
-    return t;
-  }
-
-  fun int check() {
-    if (!left)
-      return item;
-    return item + left.check() - right.check();
-  }
-}
-
-4 => int minDepth;
-12 => int maxDepth;
-maxDepth + 1 => int stretchDepth;
-
-<<< "stretch tree of depth ", stretchDepth, " check: ",
-  Tree.new_Tree(0, stretchDepth).check() >>>;
-
-Tree.new_Tree(0, maxDepth) @=> Tree@ longLivedTree;
-
-// iterations = 2 ** maxDepth
-1 => int iterations;
-for (int d; d < maxDepth; ++d)
-  2 *=> iterations;
-
-minDepth => int depth;
-while (depth < stretchDepth) {
-  int check;
-  for (int i; i < iterations; ++i)
-    Tree.new_Tree(i, depth).check() + Tree.new_Tree(-i, depth).check() +=> check;
-
-  <<< iterations * 2, " trees of depth ", depth, " check: ", check >>>;
-  4 /=> iterations;
-  2 +=> depth;
-}
-
-<<< "long lived tree of depth ", maxDepth, " check: ", longLivedTree.check() >>>;
-```
-</a></a></li></ul></ul></div>
-![](assets/benchmark/binary-trees.png)
-fib
-### fib
-<link rel=styleSheet href="../assets/doc.css" TYPE="text/css"><div id="org-categories"><ul class="lev1"><li><a href="#">Show the code</a></li><ul class="lev2"><a href="#">
-```
-class Fib {
-  fun static int get(int n) {
-    if (n < 2) return n;
-    return get(n - 1) + get(n - 2);
-  }
-}
-repeat(5)
-  <<< Fib.get(28) >>>;
-```
-</a></a></li></ul></ul></div>
-![](assets/benchmark/fib.png)
-fib-recurs
-### fib-recurs
-<link rel=styleSheet href="../assets/doc.css" TYPE="text/css"><div id="org-categories"><ul class="lev1"><li><a href="#">Show the code</a></li><ul class="lev2"><a href="#">
-```
-fun int recursive_fib(int n) {
-    if (n < 2)
-        return n;
-    else
-        return recursive_fib(n - 2) + recursive_fib(n - 1);
-}
-//<<< 5 => recursive_fib >>>;
-<<< 40 => recursive_fib >>>;
-```
-</a></a></li></ul></ul></div>
-![](assets/benchmark/fib-recurs.png)
-method-call
-### method-call
-<link rel=styleSheet href="../assets/doc.css" TYPE="text/css"><div id="org-categories"><ul class="lev1"><li><a href="#">Show the code</a></li><ul class="lev2"><a href="#">
-```
-class Toggle {
-  bool state;
-  fun bool value() { return state; }
-  fun Toggle activate() {
-    !state => state;
-    return this;
-  }
-}
-
-class NthToggle extends Toggle {
-  int count, countMax;
-  fun Toggle activate() {
-    if(++count >= countMax) {
-      (this $ Toggle).activate();
-      0 => count;
-    }
-    return this;
-  }
-}
-
-100000 => int n;
-
-Toggle toggle;
-true => bool val => toggle.state;
-
-repeat(n) {
-  toggle.activate().value() => val;
-  toggle.activate().value() => val;
-  toggle.activate().value() => val;
-  toggle.activate().value() => val;
-  toggle.activate().value() => val;
-  toggle.activate().value() => val;
-  toggle.activate().value() => val;
-  toggle.activate().value() => val;
-  toggle.activate().value() => val;
-  toggle.activate().value() => val;
-}
-
-<<< toggle.value() >>>;
-
-NthToggle ntoggle;
-true => val => ntoggle.state;
-3 => ntoggle.countMax;
-
-repeat(n) {
-  ntoggle.activate().value() => val;
-  ntoggle.activate().value() => val;
-  ntoggle.activate().value() => val;
-  ntoggle.activate().value() => val;
-  ntoggle.activate().value() => val;
-  ntoggle.activate().value() => val;
-  ntoggle.activate().value() => val;
-  ntoggle.activate().value() => val;
-  ntoggle.activate().value() => val;
-  ntoggle.activate().value() => val;
-}
-
-<<< ntoggle.value() >>>;
-```
-</a></a></li></ul></ul></div>
-![](assets/benchmark/method-call.png)
index 92ad35c88bab3e327dc7dd3b0196e8be39c27a1b..34a60725b851eca95b7053570caf6eb2b06d220d 100644 (file)
@@ -24,7 +24,10 @@ get_list() {
 
 get_test() {
   for (( i=0; i<=$(( ${#language[@]} -1 )); i++ ))
-  do echo "${language[$i]} $(run "${language[$i]}" "${extension[$i]}" "$1")"
+  do
+    if [ -f "$test_dir/$1.${extension[$i]}" ]
+    then echo "${language[$i]} $(run "${language[$i]}" "${extension[$i]}" "$1")"
+    fi
   done > "docs/assets/benchmark/$1.dat"
 }
 
index b1e8e6f56896c8cb57b77a1ae9568c8a07fddb33..5fbff080e52bdfc43d1d114eb0d8531ddf27f452 100644 (file)
@@ -1,3 +1,3 @@
-gwion 0.18819 0.63
-wren 0.24076 2.13
-lua 0.32172 0.82
+gwion 0.19427 0.91
+wren 0.234493 0.25
+lua 0.3426 6.66
index 26a4742220992df87a1481a0c21515c3c0bad71b..56d241a542e43e1bbf660e17453865792a9cde3e 100644 (file)
Binary files a/docs/assets/benchmark/binary-trees.png and b/docs/assets/benchmark/binary-trees.png differ
index 0d9504d64268775e3139feb595cb78d6f56be432..772f9241ba5d112b221f6eba635a6d755f8fbbc3 100644 (file)
@@ -1,3 +1,4 @@
-gwion 5.4137 0.34
-wren 13.5268 0.22
-lua 7.2720 0.33
+gwion 5.5088 0.55
+wren 13.830 0.81
+lua 7.4549 0.33
+
index 7b7cc503459669a49970f4f9e253f8428482a9b5..3c05462133f741345ef99bbb7ca4c2cbb3f9385a 100644 (file)
Binary files a/docs/assets/benchmark/fib-recurs.png and b/docs/assets/benchmark/fib-recurs.png differ
index 92e1c1ff494f692ba6f5a592b1c35be4f9df9f6c..29fb524be8cfbe945f2eb6789385b72b79823ec8 100644 (file)
@@ -1,3 +1,3 @@
-gwion 0.086401 0.30
-wren 0.220461 0.23
-lua 0.22028 0.93
+gwion 0.08750 1.21
+wren 0.22008 1.21
+lua 0.22026 0.70
index 4cafb8af470e55c3d27a4db70678cbe336cb0e57..c9c3ad06651f5a2e427df8db0a8fe99260bc8d0e 100644 (file)
Binary files a/docs/assets/benchmark/fib.png and b/docs/assets/benchmark/fib.png differ
diff --git a/docs/assets/benchmark/for.dat b/docs/assets/benchmark/for.dat
new file mode 100644 (file)
index 0000000..d4c00ea
--- /dev/null
@@ -0,0 +1,3 @@
+gwion 0.037861 1.04
+wren 0.085946 0.68
+lua 0.055855 0.75
diff --git a/docs/assets/benchmark/for.png b/docs/assets/benchmark/for.png
new file mode 100644 (file)
index 0000000..88f4190
Binary files /dev/null and b/docs/assets/benchmark/for.png differ
index efe2c151dc72e741dd76617382de54a7bceaa95c..1c40e01eafa3b77d35954d41ce955a65b47f5ae5 100644 (file)
@@ -1,3 +1,3 @@
-gwion 0.091115 0.35
-wren 0.107178 0.46
-lua 0.25818 1.72
+gwion 0.098407 0.66
+wren 0.114304 0.58
+lua 0.26571 1.24
index e95476e58eae0450e5cb36a0cddf24c8aeb68e8c..ee3cdc4121203dff933ec35a21d76bb104bb4f52 100644 (file)
Binary files a/docs/assets/benchmark/method-call.png and b/docs/assets/benchmark/method-call.png differ
diff --git a/docs/assets/benchmark/string-equals.dat b/docs/assets/benchmark/string-equals.dat
new file mode 100644 (file)
index 0000000..6f6fbc5
--- /dev/null
@@ -0,0 +1,2 @@
+gwion 0.165975 0.47
+wren 0.184180 0.38
diff --git a/docs/assets/benchmark/string-equals.png b/docs/assets/benchmark/string-equals.png
new file mode 100644 (file)
index 0000000..9782d6d
Binary files /dev/null and b/docs/assets/benchmark/string-equals.png differ
index 0b74aec15c64e786a4a20c8b9eb009742688d28e..1dc9877ce260a5f82cc44d4b1761546b2192237c 100755 (executable)
@@ -4,4 +4,4 @@
 pahole -s ${PRG} | while read -r name size gap
 do [ "$size" -gt 64 ] && echo "$name $size"
    [ "$gap" -gt 0 ] && echo "$name has a gap"
-done | grep -v IO_FILE | grep -v __jmp_buf_tag | grep -v yyguts_t
+done #| grep -v IO_FILE | grep -v __jmp_buf_tag | grep -v yyguts_t
diff --git a/tests/benchmark/string_equals.gw b/tests/benchmark/string_equals.gw
deleted file mode 100644 (file)
index 6dfa7e6..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-int count;
-for (int i; i < 1000000; ++i) {
-  if ("abc" == "abc") ++count;
-  if ("a slightly longer string" ==
-      "a slightly longer string") ++count;
-  if ("a significantly longer string but still not overwhelmingly long string" ==
-      "a significantly longer string but still not overwhelmingly long string") ++count;
-
-  if ("" == "abc") ++count;
-  if ("abc" == "abcd") ++count;
-  if ("changed one character" == "changed !ne character") ++count;
-#!  if ("123" == 123) ++count
-  if ("a slightly longer string" ==
-      "a slightly longer string!") ++count;
-  if ("a slightly longer string" ==
-      "a slightly longer strinh") ++count;
-  if ("a significantly longer string but still not overwhelmingly long string" ==
-      "another") ++count;
-}
-
-<<< count >>>;
diff --git a/tests/benchmark/string_equals.py b/tests/benchmark/string_equals.py
deleted file mode 100644 (file)
index 8829b5c..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-from __future__ import print_function
-
-import time
-start = time.clock()
-
-count = 0
-for i in range(0, 1000000):
-  if "abc" == "abc":
-    count = count + 1
-  if "a slightly longer string" == \
-     "a slightly longer string":
-      count = count + 1
-  if "a significantly longer string but still not overwhelmingly long string" == \
-     "a significantly longer string but still not overwhelmingly long string":
-      count = count + 1
-
-  if "" == "abc":
-    count = count + 1
-  if "abc" == "abcd":
-    count = count + 1
-  if "changed one character" == "changed !ne character":
-    count = count + 1
-  if "123" == 123: count = count + 1
-  if "a slightly longer string" == \
-     "a slightly longer string!":
-      count = count + 1
-  if "a slightly longer string" == \
-     "a slightly longer strinh":
-      count = count + 1
-  if "a significantly longer string but still not overwhelmingly long string" == \
-     "another":
-      count = count + 1
-
-print(count)
-print("elapsed: " + str(time.clock() - start))
diff --git a/tests/benchmark/string_equals.wren b/tests/benchmark/string_equals.wren
deleted file mode 100644 (file)
index 0c87bcc..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-var start = System.clock
-
-var count = 0
-for (i in 1..1000000) {
-  if ("abc" == "abc") count = count + 1
-  if ("a slightly longer string" ==
-      "a slightly longer string") count = count + 1
-  if ("a significantly longer string but still not overwhelmingly long string" ==
-      "a significantly longer string but still not overwhelmingly long string") count = count + 1
-
-  if ("" == "abc") count = count + 1
-  if ("abc" == "abcd") count = count + 1
-  if ("changed one character" == "changed !ne character") count = count + 1
-  if ("123" == 123) count = count + 1
-  if ("a slightly longer string" ==
-      "a slightly longer string!") count = count + 1
-  if ("a slightly longer string" ==
-      "a slightly longer strinh") count = count + 1
-  if ("a significantly longer string but still not overwhelmingly long string" ==
-      "another") count = count + 1
-}
-
-System.print(count)
-System.print("elapsed: %(System.clock - start)")