From 4a2d00be83efb08ae6b4ba36dc02f1a4de4e2bca Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Thu, 1 Jul 2021 22:48:27 -0500 Subject: [PATCH] initial commit --- README.md | 0 build.sh | 10 ++++++++++ data/dummy.onyx | 7 +++++++ data/test.wasm | Bin 0 -> 68177 bytes src/build.onyx | 12 ++++++++++++ src/main.onyx | 16 ++++++++++++++++ 6 files changed, 45 insertions(+) create mode 100644 README.md create mode 100755 build.sh create mode 100644 data/dummy.onyx create mode 100644 data/test.wasm create mode 100644 src/build.onyx create mode 100644 src/main.onyx diff --git a/README.md b/README.md new file mode 100644 index 0000000..e69de29 diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..714b2bf --- /dev/null +++ b/build.sh @@ -0,0 +1,10 @@ + +ONYX_MODULE_DIRECTORY=/home/brendan/dev/c/onyx + +FLAGS= +[ ! -z "$DEBUG" ] && FLAGS=--print-function-mappings + +onyx -V --no-colors $FLAGS \ + -I $ONYX_MODULE_DIRECTORY \ + src/build.onyx + diff --git a/data/dummy.onyx b/data/dummy.onyx new file mode 100644 index 0000000..7995cb5 --- /dev/null +++ b/data/dummy.onyx @@ -0,0 +1,7 @@ +#load "core/std" + +use package core + +main :: (args: [] cstr) { + println("Hello World!"); +} diff --git a/data/test.wasm b/data/test.wasm new file mode 100644 index 0000000000000000000000000000000000000000..f676e3510a913da98fe000cacb83859f59ffb6f8 GIT binary patch literal 68177 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 gzRChrK)g#wKIesw&$B5$ayXsK&q(a}4dL