1272: bash script; simple gcd example (#2421)
This commit is contained in:
committed by
GitHub
parent
acbe85fa95
commit
309354d9e1
@@ -1,3 +1,42 @@
|
||||
# Using WebAssembly from Bash
|
||||
|
||||
... more coming soon
|
||||
## Getting started and simple example
|
||||
|
||||
First up you'll want to start a new module:
|
||||
|
||||
```text
|
||||
$ mkdir -p gcd-bash
|
||||
$ cd gcd-bash
|
||||
$ touch gcd.wat gcd.sh
|
||||
```
|
||||
|
||||
Next, copy this example WebAssembly text module into your project. It exports a function for calculating the greatest common denominator of two numbers.
|
||||
|
||||
## `gcd.wat`
|
||||
|
||||
```wat
|
||||
{{#include ../examples/gcd.wat}}
|
||||
```
|
||||
|
||||
Create a bash script that will invoke GCD three times.
|
||||
|
||||
## `gcd.sh`
|
||||
|
||||
```bash
|
||||
#!/bin/bash
|
||||
|
||||
function gcd() {
|
||||
# Cast to number; default = 0
|
||||
local x=$(($1))
|
||||
local y=$(($2))
|
||||
# Invoke GCD from module; suppress stderr
|
||||
local result=$(wasmtime examples/gcd.wat --invoke gcd $x $y 2>/dev/null)
|
||||
echo "$result"
|
||||
}
|
||||
|
||||
# main
|
||||
for num in "27 6" "6 27" "42 12"; do
|
||||
set -- $num
|
||||
echo "gcd($1, $2) = $(gcd "$1" "$2")"
|
||||
done
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user