added: release 0.1.1 page
authorBrendan Hansen <brendan.f.hansen@gmail.com>
Mon, 15 May 2023 15:45:20 +0000 (10:45 -0500)
committerBrendan Hansen <brendan.f.hansen@gmail.com>
Mon, 15 May 2023 15:45:20 +0000 (10:45 -0500)
www/news-articles/index.json
www/news-articles/release-0.1.1.html [new file with mode: 0644]

index 3a5d45a6753c2fdb6d9b5929b38793b1385fbb8e..04210d5ada3ac19f4a02c1469ea081037a386009 100644 (file)
@@ -1,9 +1,9 @@
 [
     {
-        "name": "Onyx's Memory Model",
-        "path": "memory_model",
-        "date": "29th April 2023",
-        "description": "A explanation of the memory model employed by Onyx."
+        "name": "Beta Release 0.1.1",
+        "path": "release-0.1.1",
+        "date": "15th May 2023",
+        "description": "Onyx's beta 0.1.1 release"
     },
     {
         "name": "Onyx's Custom Runtime",
diff --git a/www/news-articles/release-0.1.1.html b/www/news-articles/release-0.1.1.html
new file mode 100644 (file)
index 0000000..6a668e7
--- /dev/null
@@ -0,0 +1,109 @@
+<h1>Beta Release 0.1.1</h1>
+
+<p>
+    This release of Onyx brings minor changes and additions, with some general bugfixes.
+</p>
+
+<h2>WASI Improvements</h2>
+<p>
+    Much of the work done in this release was focused on improving the support of the <a href="https://wasi.dev">WASI</a> runtime.
+    WASI has seen new features in the past couple of months, with support for things like threads and accepting socket connections.
+    Onyx is adding support for these features as they become relatively standardized.
+</p>
+
+<p>
+    This release, Onyx adds support for <a href="https://github.com/WebAssembly/wasi-threads">WASI Threads</a>.
+    It uses the same API for threads that already existed, but now programs targetting the WASI runtime can also use it. Note, for now it is required to pass the <code>--multi-threaded</code> argument when compiling to use threads.
+</p>
+
+<h2>Foreign Block Tags</h2>
+<p>
+    You can now place tags on procedures defined in a <code>#foreign</code> block.
+</p>
+
+<pre class="hljs"><code class="language-onyx">Metadata :: struct {
+    name: str;
+}
+
+#foreign "module" {
+    @Metadata.{ "metadata name" }
+    foreign_procedure :: () -> void ---
+}</code></pre>
+
+<p>
+    These tags can be accessed in the following way.
+</p>
+
+<pre class="hljs"><code class="language-onyx">use runtime
+
+for block: runtime.info.foreign_blocks {
+    for func: block.funcs {
+        tags: [] any = func.tags;
+        // ...
+    }
+}
+</code></pre>
+
+<p>
+    This feature is the baseline for creating sophisticated binding generators.
+</p>
+
+<h2>Onyx Package Manager</h2>
+<p>
+    The Onyx package manager is more stable and looks a bit better now.
+</p>
+<p>
+    It also now has rudimentary support for package templates.
+    Simply run <code>onyx pkg new 'template_name' 'destination_directory'</code>.
+    There is a single pre-installed template called <code>default</code> that gives you a simple project.
+</p>
+<pre class="hljs"><code class="language-sh">$ onyx pkg new default example-project
+Name of the project: example-project
+Description of the project: Description of the project
+Git repository for project: 
+Author name: Brendan Hansen
+    Creating  example-project/.gitignore
+    Creating  example-project/onyx-lsp.ini
+    Creating  example-project/onyx-pkg.ini
+    Creating  example-project/src/main.onyx
+     Running  git init
+</code></pre>
+
+<h2>Changelog</h2>
+<pre>
+Additions:
+* Ability to have tags on `#foreign` block procedures.
+    - This will enable the creation different binding generators, such jsbindgen.
+* WASI support for threads at the platform layer.
+    - Requires passing '--multi-threaded' CLI flag.
+* `#distinct` types can now be made over any type.
+    - Used to be only primitives.
+* New `logo-new-256.ico` for favicon on website.
+* `u8.to_upper` and `u8.to_lower`
+* `iter.empty`
+* `json.Value->as_array_iter()`, `json.Value->as_map_iter()`
+* `onyx pkg new` for creating a project from a template
+* `#load_all_recursive` to recursively load all `.onyx` files in a directory.
+
+Removals:
+
+Changes:
+* Undefined function imports in `onyx run` no longer cause an immediate error.
+    - Instead, an error is produced when the function is called.
+* API for time remains the same, but reduced dependencies on external time things,
+    like strftime, localtime and mktime.
+* Ergnomic improvements to `onyx pkg`.
+* Not relying on time for random number seeding, if cryptographic random number generation is possible.
+    - Using `getrandom` on Linux, and `BcryptGenRandom` on Windows.
+    - Using `random_get` on WASI.
+
+Bugfixes:
+* Fixed missing `use core` in `optional.onyx`.
+    - Fixes `Optional.reset` and `Optional.hash`
+* Fixed missing newline in `onyx help build` documentation.
+* Fixed WASI compilation due to misconfigured environment code.
+* Fixed WASI `__dir_open` permissions.
+* Fixed `core.encoding.ini` clearing the temporary allocator.
+</pre>
+
+