mirror of
https://github.com/extism/extism.git
synced 2026-01-09 13:57:55 -05:00
7230657f6f4d8ce5efee291f171ca45782d8c3fe
686 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
abb31ee7de |
feat(dlang): Add a D host SDK (#412)
See [dlang.org](https://dlang.org). SDK Coverage: ~91.30% (21/23) ## Issues - [x] These symbols are undefined in the latest release ([v0.5.2](https://github.com/extism/extism/releases/tag/v0.5.2)): > Undefined symbols for architecture x86_64: > "_extism_plugin_id" > "_extism_plugin_new_error_free" Using `libextism` compiled from source does _not_ have this issue. - [ ] `dub lint` reads many intermediate targets files: https://github.com/dlang/dub/issues/2700 ## Todo List - [x] Flesh out initial binding - [ ] Cover host API: - [x] `ExtismFunctionType` See `FunctionType` alias. - [x] `extism_plugin_id` - [x] `extism_plugin_new_error_free` - [ ] `extism_plugin_error` - [ ] Add unit tests - [x] Add usage example --------- Co-authored-by: zach <zachshipko@gmail.com> |
||
|
|
30322dba23 |
chore(deps-dev): Bump ex_doc from 0.30.7 to 0.30.9 in /elixir (#536)
Bumps [ex_doc](https://github.com/elixir-lang/ex_doc) from 0.30.7 to 0.30.9. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/elixir-lang/ex_doc/blob/main/CHANGELOG.md">ex_doc's changelog</a>.</em></p> <blockquote> <h2>v0.30.9 (2023-10-20)</h2> <ul> <li> <p>Bug fixes</p> <ul> <li>Fix a scenario where invalid assets would be generated</li> </ul> </li> <li> <p>Enhancements</p> <ul> <li>Add admonition EPUB styles</li> </ul> </li> </ul> <h2>v0.30.8 (2023-10-17)</h2> <ul> <li>Bug fixes <ul> <li>Fix regression in umbrella applications</li> </ul> </li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
8ff9b9a015 | chore: support wasmtime 14.0.0 (#529) | ||
|
|
728ee84b73 |
doc: add runtime/README.md and libextism/README.md (#526)
C: https://github.com/extism/extism/blob/new-readmes/libextism/README.md Rust: https://github.com/extism/extism/blob/new-readmes/runtime/README.md Also includes some small usability improvements I stumbled across when working on the docs |
||
|
|
2c82b928ab |
ci(dotnet): publish nuget packages for all supported environments (#523)
NuGet supports the distribution of native binaries. We already provide a win-x64 package, this PR adds packages for the other environments. We will be publishing these NuGet packages: - Extism.runtime.linux-arm64 - Extism.runtime.linux-musl-arm64 - Extism.runtime.linux-x64 - Extism.runtime.osx-arm64 - Extism.runtime.osx-x64 - Extism.runtime.win-x64 (msvc) - Extism.runtime.all -> this is a meta package that referencs all other packages. The idea is, in the getting started guides we instruct the user to take a dependency on `Extism.Sdk` and `Extism.runtime.all`. This will make sure their apps work on all supported operating systems automatically. Otherwise, they can just take a dependency on what they care about This PR also adds a dependency on [MinVer](https://github.com/adamralph/minver) which make sure packages are automatically versioned based on git tags. Related to #486 |
||
|
|
eb05381297 |
chore(deps-dev): Bump @babel/traverse from 7.19.6 to 7.23.2 in /node (#517)
Bumps [@babel/traverse](https://github.com/babel/babel/tree/HEAD/packages/babel-traverse) from 7.19.6 to 7.23.2. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/babel/babel/releases"><code>@babel/traverse</code>'s releases</a>.</em></p> <blockquote> <h2>v7.23.2 (2023-10-11)</h2> <p><strong>NOTE</strong>: This release also re-publishes <code>@babel/core</code>, even if it does not appear in the linked release commit.</p> <p>Thanks <a href="https://github.com/jimmydief"><code>@jimmydief</code></a> for your first PR!</p> <h4>🐛 Bug Fix</h4> <ul> <li><code>babel-traverse</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/16033">#16033</a> Only evaluate own String/Number/Math methods (<a href="https://github.com/nicolo-ribaudo"><code>@nicolo-ribaudo</code></a>)</li> </ul> </li> <li><code>babel-preset-typescript</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/16022">#16022</a> Rewrite <code>.tsx</code> extension when using <code>rewriteImportExtensions</code> (<a href="https://github.com/jimmydief"><code>@jimmydief</code></a>)</li> </ul> </li> <li><code>babel-helpers</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/16017">#16017</a> Fix: fallback to typeof when toString is applied to incompatible object (<a href="https://github.com/JLHwung"><code>@JLHwung</code></a>)</li> </ul> </li> <li><code>babel-helpers</code>, <code>babel-plugin-transform-modules-commonjs</code>, <code>babel-runtime-corejs2</code>, <code>babel-runtime-corejs3</code>, <code>babel-runtime</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/16025">#16025</a> Avoid override mistake in namespace imports (<a href="https://github.com/nicolo-ribaudo"><code>@nicolo-ribaudo</code></a>)</li> </ul> </li> </ul> <h4>Committers: 5</h4> <ul> <li>Babel Bot (<a href="https://github.com/babel-bot"><code>@babel-bot</code></a>)</li> <li>Huáng Jùnliàng (<a href="https://github.com/JLHwung"><code>@JLHwung</code></a>)</li> <li>James Diefenderfer (<a href="https://github.com/jimmydief"><code>@jimmydief</code></a>)</li> <li>Nicolò Ribaudo (<a href="https://github.com/nicolo-ribaudo"><code>@nicolo-ribaudo</code></a>)</li> <li><a href="https://github.com/liuxingbaoyu"><code>@liuxingbaoyu</code></a></li> </ul> <h2>v7.23.1 (2023-09-25)</h2> <p>Re-publishing <code>@babel/helpers</code> due to a publishing error in 7.23.0.</p> <h2>v7.23.0 (2023-09-25)</h2> <p>Thanks <a href="https://github.com/lorenzoferre"><code>@lorenzoferre</code></a> and <a href="https://github.com/RajShukla1"><code>@RajShukla1</code></a> for your first PRs!</p> <h4>🚀 New Feature</h4> <ul> <li><code>babel-plugin-proposal-import-wasm-source</code>, <code>babel-plugin-syntax-import-source</code>, <code>babel-plugin-transform-dynamic-import</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/15870">#15870</a> Support transforming <code>import source</code> for wasm (<a href="https://github.com/nicolo-ribaudo"><code>@nicolo-ribaudo</code></a>)</li> </ul> </li> <li><code>babel-helper-module-transforms</code>, <code>babel-helpers</code>, <code>babel-plugin-proposal-import-defer</code>, <code>babel-plugin-syntax-import-defer</code>, <code>babel-plugin-transform-modules-commonjs</code>, <code>babel-runtime-corejs2</code>, <code>babel-runtime-corejs3</code>, <code>babel-runtime</code>, <code>babel-standalone</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/15878">#15878</a> Implement <code>import defer</code> proposal transform support (<a href="https://github.com/nicolo-ribaudo"><code>@nicolo-ribaudo</code></a>)</li> </ul> </li> <li><code>babel-generator</code>, <code>babel-parser</code>, <code>babel-types</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/15845">#15845</a> Implement <code>import defer</code> parsing support (<a href="https://github.com/nicolo-ribaudo"><code>@nicolo-ribaudo</code></a>)</li> <li><a href="https://redirect.github.com/babel/babel/pull/15829">#15829</a> Add parsing support for the "source phase imports" proposal (<a href="https://github.com/nicolo-ribaudo"><code>@nicolo-ribaudo</code></a>)</li> </ul> </li> <li><code>babel-generator</code>, <code>babel-helper-module-transforms</code>, <code>babel-parser</code>, <code>babel-plugin-transform-dynamic-import</code>, <code>babel-plugin-transform-modules-amd</code>, <code>babel-plugin-transform-modules-commonjs</code>, <code>babel-plugin-transform-modules-systemjs</code>, <code>babel-traverse</code>, <code>babel-types</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/15682">#15682</a> Add <code>createImportExpressions</code> parser option (<a href="https://github.com/JLHwung"><code>@JLHwung</code></a>)</li> </ul> </li> <li><code>babel-standalone</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/15671">#15671</a> Pass through nonce to the transformed script element (<a href="https://github.com/JLHwung"><code>@JLHwung</code></a>)</li> </ul> </li> <li><code>babel-helper-function-name</code>, <code>babel-helper-member-expression-to-functions</code>, <code>babel-helpers</code>, <code>babel-parser</code>, <code>babel-plugin-proposal-destructuring-private</code>, <code>babel-plugin-proposal-optional-chaining-assign</code>, <code>babel-plugin-syntax-optional-chaining-assign</code>, <code>babel-plugin-transform-destructuring</code>, <code>babel-plugin-transform-optional-chaining</code>, <code>babel-runtime-corejs2</code>, <code>babel-runtime-corejs3</code>, <code>babel-runtime</code>, <code>babel-standalone</code>, <code>babel-types</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/15751">#15751</a> Add support for optional chain in assignments (<a href="https://github.com/nicolo-ribaudo"><code>@nicolo-ribaudo</code></a>)</li> </ul> </li> <li><code>babel-helpers</code>, <code>babel-plugin-proposal-decorators</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/15895">#15895</a> Implement the "decorator metadata" proposal (<a href="https://github.com/nicolo-ribaudo"><code>@nicolo-ribaudo</code></a>)</li> </ul> </li> <li><code>babel-traverse</code>, <code>babel-types</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/15893">#15893</a> Add <code>t.buildUndefinedNode</code> (<a href="https://github.com/liuxingbaoyu"><code>@liuxingbaoyu</code></a>)</li> </ul> </li> <li><code>babel-preset-typescript</code></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/babel/babel/blob/main/CHANGELOG.md"><code>@babel/traverse</code>'s changelog</a>.</em></p> <blockquote> <h2>v7.23.2 (2023-10-11)</h2> <h4>🐛 Bug Fix</h4> <ul> <li><code>babel-traverse</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/16033">#16033</a> Only evaluate own String/Number/Math methods (<a href="https://github.com/nicolo-ribaudo"><code>@nicolo-ribaudo</code></a>)</li> </ul> </li> <li><code>babel-preset-typescript</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/16022">#16022</a> Rewrite <code>.tsx</code> extension when using <code>rewriteImportExtensions</code> (<a href="https://github.com/jimmydief"><code>@jimmydief</code></a>)</li> </ul> </li> <li><code>babel-helpers</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/16017">#16017</a> Fix: fallback to typeof when toString is applied to incompatible object (<a href="https://github.com/JLHwung"><code>@JLHwung</code></a>)</li> </ul> </li> <li><code>babel-helpers</code>, <code>babel-plugin-transform-modules-commonjs</code>, <code>babel-runtime-corejs2</code>, <code>babel-runtime-corejs3</code>, <code>babel-runtime</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/16025">#16025</a> Avoid override mistake in namespace imports (<a href="https://github.com/nicolo-ribaudo"><code>@nicolo-ribaudo</code></a>)</li> </ul> </li> </ul> <h2>v7.23.0 (2023-09-25)</h2> <h4>🚀 New Feature</h4> <ul> <li><code>babel-plugin-proposal-import-wasm-source</code>, <code>babel-plugin-syntax-import-source</code>, <code>babel-plugin-transform-dynamic-import</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/15870">#15870</a> Support transforming <code>import source</code> for wasm (<a href="https://github.com/nicolo-ribaudo"><code>@nicolo-ribaudo</code></a>)</li> </ul> </li> <li><code>babel-helper-module-transforms</code>, <code>babel-helpers</code>, <code>babel-plugin-proposal-import-defer</code>, <code>babel-plugin-syntax-import-defer</code>, <code>babel-plugin-transform-modules-commonjs</code>, <code>babel-runtime-corejs2</code>, <code>babel-runtime-corejs3</code>, <code>babel-runtime</code>, <code>babel-standalone</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/15878">#15878</a> Implement <code>import defer</code> proposal transform support (<a href="https://github.com/nicolo-ribaudo"><code>@nicolo-ribaudo</code></a>)</li> </ul> </li> <li><code>babel-generator</code>, <code>babel-parser</code>, <code>babel-types</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/15845">#15845</a> Implement <code>import defer</code> parsing support (<a href="https://github.com/nicolo-ribaudo"><code>@nicolo-ribaudo</code></a>)</li> <li><a href="https://redirect.github.com/babel/babel/pull/15829">#15829</a> Add parsing support for the "source phase imports" proposal (<a href="https://github.com/nicolo-ribaudo"><code>@nicolo-ribaudo</code></a>)</li> </ul> </li> <li><code>babel-generator</code>, <code>babel-helper-module-transforms</code>, <code>babel-parser</code>, <code>babel-plugin-transform-dynamic-import</code>, <code>babel-plugin-transform-modules-amd</code>, <code>babel-plugin-transform-modules-commonjs</code>, <code>babel-plugin-transform-modules-systemjs</code>, <code>babel-traverse</code>, <code>babel-types</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/15682">#15682</a> Add <code>createImportExpressions</code> parser option (<a href="https://github.com/JLHwung"><code>@JLHwung</code></a>)</li> </ul> </li> <li><code>babel-standalone</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/15671">#15671</a> Pass through nonce to the transformed script element (<a href="https://github.com/JLHwung"><code>@JLHwung</code></a>)</li> </ul> </li> <li><code>babel-helper-function-name</code>, <code>babel-helper-member-expression-to-functions</code>, <code>babel-helpers</code>, <code>babel-parser</code>, <code>babel-plugin-proposal-destructuring-private</code>, <code>babel-plugin-proposal-optional-chaining-assign</code>, <code>babel-plugin-syntax-optional-chaining-assign</code>, <code>babel-plugin-transform-destructuring</code>, <code>babel-plugin-transform-optional-chaining</code>, <code>babel-runtime-corejs2</code>, <code>babel-runtime-corejs3</code>, <code>babel-runtime</code>, <code>babel-standalone</code>, <code>babel-types</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/15751">#15751</a> Add support for optional chain in assignments (<a href="https://github.com/nicolo-ribaudo"><code>@nicolo-ribaudo</code></a>)</li> </ul> </li> <li><code>babel-helpers</code>, <code>babel-plugin-proposal-decorators</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/15895">#15895</a> Implement the "decorator metadata" proposal (<a href="https://github.com/nicolo-ribaudo"><code>@nicolo-ribaudo</code></a>)</li> </ul> </li> <li><code>babel-traverse</code>, <code>babel-types</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/15893">#15893</a> Add <code>t.buildUndefinedNode</code> (<a href="https://github.com/liuxingbaoyu"><code>@liuxingbaoyu</code></a>)</li> </ul> </li> <li><code>babel-preset-typescript</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/15913">#15913</a> Add <code>rewriteImportExtensions</code> option to TS preset (<a href="https://github.com/nicolo-ribaudo"><code>@nicolo-ribaudo</code></a>)</li> </ul> </li> <li><code>babel-parser</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/15896">#15896</a> Allow TS tuples to have both labeled and unlabeled elements (<a href="https://github.com/yukukotani"><code>@yukukotani</code></a>)</li> </ul> </li> </ul> <h4>🐛 Bug Fix</h4> <ul> <li><code>babel-plugin-transform-block-scoping</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/15962">#15962</a> fix: <code>transform-block-scoping</code> captures the variables of the method in the loop (<a href="https://github.com/liuxingbaoyu"><code>@liuxingbaoyu</code></a>)</li> </ul> </li> </ul> <h4>💅 Polish</h4> <ul> <li><code>babel-traverse</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/15797">#15797</a> Expand evaluation of global built-ins in <code>@babel/traverse</code> (<a href="https://github.com/lorenzoferre"><code>@lorenzoferre</code></a>)</li> </ul> </li> <li><code>babel-plugin-proposal-explicit-resource-management</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/15985">#15985</a> Improve source maps for blocks with <code>using</code> declarations (<a href="https://github.com/nicolo-ribaudo"><code>@nicolo-ribaudo</code></a>)</li> </ul> </li> </ul> <h4>🔬 Output optimization</h4> <ul> <li><code>babel-core</code>, <code>babel-helper-module-transforms</code>, <code>babel-plugin-transform-async-to-generator</code>, <code>babel-plugin-transform-classes</code>, <code>babel-plugin-transform-dynamic-import</code>, <code>babel-plugin-transform-function-name</code>, <code>babel-plugin-transform-modules-amd</code>, <code>babel-plugin-transform-modules-commonjs</code>, <code>babel-plugin-transform-modules-umd</code>, <code>babel-plugin-transform-parameters</code>, <code>babel-plugin-transform-react-constant-elements</code>, <code>babel-plugin-transform-react-inline-elements</code>, <code>babel-plugin-transform-runtime</code>, <code>babel-plugin-transform-typescript</code>, <code>babel-preset-env</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/15984">#15984</a> Inline <code>exports.XXX =</code> update in simple variable declarations (<a href="https://github.com/nicolo-ribaudo"><code>@nicolo-ribaudo</code></a>)</li> </ul> </li> </ul> <h2>v7.22.20 (2023-09-16)</h2> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
c5fce439d1 |
chore(deps-dev): Bump @types/node from 20.6.5 to 20.8.6 in /node (#515)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 20.6.5 to 20.8.6. <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> |
||
|
|
f0f2d59d8f |
chore(deps-dev): Bump ex_doc from 0.30.6 to 0.30.7 in /elixir (#513)
Bumps [ex_doc](https://github.com/elixir-lang/ex_doc) from 0.30.6 to 0.30.7. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/elixir-lang/ex_doc/blob/main/CHANGELOG.md">ex_doc's changelog</a>.</em></p> <blockquote> <h2>v0.30.7 (2023-10-15)</h2> <ul> <li> <p>Bug fixes</p> <ul> <li>Do not crash on EDoc type annotations</li> <li>Do not crash on functions without name</li> <li>Handle remote types in records</li> <li>Fix scrolling to top on iOS</li> <li>Fix invalid output markup for “hover link” headings</li> </ul> </li> <li> <p>Enhancements</p> <ul> <li>Support any String.Chars as the extra page name</li> <li>Improve screen reader accessibility</li> <li>Add <code>:skip_code_autolink_to</code> option</li> </ul> </li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
8cd8135414 |
chore(deps-dev): Bump typedoc from 0.25.1 to 0.25.2 in /node (#502)
Bumps [typedoc](https://github.com/TypeStrong/TypeDoc) from 0.25.1 to 0.25.2. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/TypeStrong/TypeDoc/releases">typedoc's releases</a>.</em></p> <blockquote> <h2>v0.25.2</h2> <h3>Features</h3> <ul> <li>Added <code>navigationLeaves</code> option to remove branches from the navigation tree, <a href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2382">#2382</a>.</li> <li>Added <code>sortEntryPoints</code> option (defaults to true) to allow disabling entry point sorting, <a href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2393">#2393</a>.</li> <li>Improved support for multi-word searches, <a href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2400">#2400</a>.</li> </ul> <h3>Bug Fixes</h3> <ul> <li>Fixed conversion of <code>@template</code> constraints on JSDoc defined type parameters, <a href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2389">#2389</a>.</li> <li>Invalid link validation is now correctly suppressed before all projects have been converted in packages mode, <a href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2403">#2403</a>.</li> <li>Fixed tsconfig handling for projects using a solution-style tsconfig, <a href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2406">#2406</a>.</li> <li>Fixed broken settings icons caused by icon caching introduced in 0.25.1, <a href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2408">#2408</a>.</li> <li>Corrected module comment handling on declaration files containing a single <code>declare module "foo"</code>, <a href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2401">#2401</a>.</li> </ul> <h3>Thanks!</h3> <ul> <li><a href="https://github.com/schiem"><code>@schiem</code></a></li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/TypeStrong/typedoc/blob/master/CHANGELOG.md">typedoc's changelog</a>.</em></p> <blockquote> <h2>v0.25.2 (2023-10-08)</h2> <h3>Features</h3> <ul> <li>Added <code>navigationLeaves</code> option to remove branches from the navigation tree, <a href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2382">#2382</a>.</li> <li>Added <code>sortEntryPoints</code> option (defaults to true) to allow disabling entry point sorting, <a href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2393">#2393</a>.</li> <li>Improved support for multi-word searches, <a href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2400">#2400</a>.</li> </ul> <h3>Bug Fixes</h3> <ul> <li>Fixed conversion of <code>@template</code> constraints on JSDoc defined type parameters, <a href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2389">#2389</a>.</li> <li>Invalid link validation is now correctly suppressed before all projects have been converted in packages mode, <a href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2403">#2403</a>.</li> <li>Fixed tsconfig handling for projects using a solution-style tsconfig, <a href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2406">#2406</a>.</li> <li>Fixed broken settings icons caused by icon caching introduced in 0.25.1, <a href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2408">#2408</a>.</li> <li>Corrected module comment handling on declaration files containing a single <code>declare module "foo"</code>, <a href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2401">#2401</a>.</li> </ul> <h3>Thanks!</h3> <ul> <li><a href="https://github.com/schiem"><code>@schiem</code></a></li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
94f42413ab |
chore(deps): Bump @types/ref-array-di from 1.2.5 to 1.2.6 in /node (#491)
Bumps [@types/ref-array-di](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/ref-array-di) from 1.2.5 to 1.2.6. <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/ref-array-di">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> |
||
|
|
2ef701ae00 |
chore(deps-dev): Bump @babel/traverse from 7.20.13 to 7.23.2 in /browser (#518)
Bumps [@babel/traverse](https://github.com/babel/babel/tree/HEAD/packages/babel-traverse) from 7.20.13 to 7.23.2. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/babel/babel/releases"><code>@babel/traverse</code>'s releases</a>.</em></p> <blockquote> <h2>v7.23.2 (2023-10-11)</h2> <p><strong>NOTE</strong>: This release also re-publishes <code>@babel/core</code>, even if it does not appear in the linked release commit.</p> <p>Thanks <a href="https://github.com/jimmydief"><code>@jimmydief</code></a> for your first PR!</p> <h4>🐛 Bug Fix</h4> <ul> <li><code>babel-traverse</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/16033">#16033</a> Only evaluate own String/Number/Math methods (<a href="https://github.com/nicolo-ribaudo"><code>@nicolo-ribaudo</code></a>)</li> </ul> </li> <li><code>babel-preset-typescript</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/16022">#16022</a> Rewrite <code>.tsx</code> extension when using <code>rewriteImportExtensions</code> (<a href="https://github.com/jimmydief"><code>@jimmydief</code></a>)</li> </ul> </li> <li><code>babel-helpers</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/16017">#16017</a> Fix: fallback to typeof when toString is applied to incompatible object (<a href="https://github.com/JLHwung"><code>@JLHwung</code></a>)</li> </ul> </li> <li><code>babel-helpers</code>, <code>babel-plugin-transform-modules-commonjs</code>, <code>babel-runtime-corejs2</code>, <code>babel-runtime-corejs3</code>, <code>babel-runtime</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/16025">#16025</a> Avoid override mistake in namespace imports (<a href="https://github.com/nicolo-ribaudo"><code>@nicolo-ribaudo</code></a>)</li> </ul> </li> </ul> <h4>Committers: 5</h4> <ul> <li>Babel Bot (<a href="https://github.com/babel-bot"><code>@babel-bot</code></a>)</li> <li>Huáng Jùnliàng (<a href="https://github.com/JLHwung"><code>@JLHwung</code></a>)</li> <li>James Diefenderfer (<a href="https://github.com/jimmydief"><code>@jimmydief</code></a>)</li> <li>Nicolò Ribaudo (<a href="https://github.com/nicolo-ribaudo"><code>@nicolo-ribaudo</code></a>)</li> <li><a href="https://github.com/liuxingbaoyu"><code>@liuxingbaoyu</code></a></li> </ul> <h2>v7.23.1 (2023-09-25)</h2> <p>Re-publishing <code>@babel/helpers</code> due to a publishing error in 7.23.0.</p> <h2>v7.23.0 (2023-09-25)</h2> <p>Thanks <a href="https://github.com/lorenzoferre"><code>@lorenzoferre</code></a> and <a href="https://github.com/RajShukla1"><code>@RajShukla1</code></a> for your first PRs!</p> <h4>🚀 New Feature</h4> <ul> <li><code>babel-plugin-proposal-import-wasm-source</code>, <code>babel-plugin-syntax-import-source</code>, <code>babel-plugin-transform-dynamic-import</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/15870">#15870</a> Support transforming <code>import source</code> for wasm (<a href="https://github.com/nicolo-ribaudo"><code>@nicolo-ribaudo</code></a>)</li> </ul> </li> <li><code>babel-helper-module-transforms</code>, <code>babel-helpers</code>, <code>babel-plugin-proposal-import-defer</code>, <code>babel-plugin-syntax-import-defer</code>, <code>babel-plugin-transform-modules-commonjs</code>, <code>babel-runtime-corejs2</code>, <code>babel-runtime-corejs3</code>, <code>babel-runtime</code>, <code>babel-standalone</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/15878">#15878</a> Implement <code>import defer</code> proposal transform support (<a href="https://github.com/nicolo-ribaudo"><code>@nicolo-ribaudo</code></a>)</li> </ul> </li> <li><code>babel-generator</code>, <code>babel-parser</code>, <code>babel-types</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/15845">#15845</a> Implement <code>import defer</code> parsing support (<a href="https://github.com/nicolo-ribaudo"><code>@nicolo-ribaudo</code></a>)</li> <li><a href="https://redirect.github.com/babel/babel/pull/15829">#15829</a> Add parsing support for the "source phase imports" proposal (<a href="https://github.com/nicolo-ribaudo"><code>@nicolo-ribaudo</code></a>)</li> </ul> </li> <li><code>babel-generator</code>, <code>babel-helper-module-transforms</code>, <code>babel-parser</code>, <code>babel-plugin-transform-dynamic-import</code>, <code>babel-plugin-transform-modules-amd</code>, <code>babel-plugin-transform-modules-commonjs</code>, <code>babel-plugin-transform-modules-systemjs</code>, <code>babel-traverse</code>, <code>babel-types</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/15682">#15682</a> Add <code>createImportExpressions</code> parser option (<a href="https://github.com/JLHwung"><code>@JLHwung</code></a>)</li> </ul> </li> <li><code>babel-standalone</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/15671">#15671</a> Pass through nonce to the transformed script element (<a href="https://github.com/JLHwung"><code>@JLHwung</code></a>)</li> </ul> </li> <li><code>babel-helper-function-name</code>, <code>babel-helper-member-expression-to-functions</code>, <code>babel-helpers</code>, <code>babel-parser</code>, <code>babel-plugin-proposal-destructuring-private</code>, <code>babel-plugin-proposal-optional-chaining-assign</code>, <code>babel-plugin-syntax-optional-chaining-assign</code>, <code>babel-plugin-transform-destructuring</code>, <code>babel-plugin-transform-optional-chaining</code>, <code>babel-runtime-corejs2</code>, <code>babel-runtime-corejs3</code>, <code>babel-runtime</code>, <code>babel-standalone</code>, <code>babel-types</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/15751">#15751</a> Add support for optional chain in assignments (<a href="https://github.com/nicolo-ribaudo"><code>@nicolo-ribaudo</code></a>)</li> </ul> </li> <li><code>babel-helpers</code>, <code>babel-plugin-proposal-decorators</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/15895">#15895</a> Implement the "decorator metadata" proposal (<a href="https://github.com/nicolo-ribaudo"><code>@nicolo-ribaudo</code></a>)</li> </ul> </li> <li><code>babel-traverse</code>, <code>babel-types</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/15893">#15893</a> Add <code>t.buildUndefinedNode</code> (<a href="https://github.com/liuxingbaoyu"><code>@liuxingbaoyu</code></a>)</li> </ul> </li> <li><code>babel-preset-typescript</code></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/babel/babel/blob/main/CHANGELOG.md"><code>@babel/traverse</code>'s changelog</a>.</em></p> <blockquote> <h2>v7.23.2 (2023-10-11)</h2> <h4>🐛 Bug Fix</h4> <ul> <li><code>babel-traverse</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/16033">#16033</a> Only evaluate own String/Number/Math methods (<a href="https://github.com/nicolo-ribaudo"><code>@nicolo-ribaudo</code></a>)</li> </ul> </li> <li><code>babel-preset-typescript</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/16022">#16022</a> Rewrite <code>.tsx</code> extension when using <code>rewriteImportExtensions</code> (<a href="https://github.com/jimmydief"><code>@jimmydief</code></a>)</li> </ul> </li> <li><code>babel-helpers</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/16017">#16017</a> Fix: fallback to typeof when toString is applied to incompatible object (<a href="https://github.com/JLHwung"><code>@JLHwung</code></a>)</li> </ul> </li> <li><code>babel-helpers</code>, <code>babel-plugin-transform-modules-commonjs</code>, <code>babel-runtime-corejs2</code>, <code>babel-runtime-corejs3</code>, <code>babel-runtime</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/16025">#16025</a> Avoid override mistake in namespace imports (<a href="https://github.com/nicolo-ribaudo"><code>@nicolo-ribaudo</code></a>)</li> </ul> </li> </ul> <h2>v7.23.0 (2023-09-25)</h2> <h4>🚀 New Feature</h4> <ul> <li><code>babel-plugin-proposal-import-wasm-source</code>, <code>babel-plugin-syntax-import-source</code>, <code>babel-plugin-transform-dynamic-import</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/15870">#15870</a> Support transforming <code>import source</code> for wasm (<a href="https://github.com/nicolo-ribaudo"><code>@nicolo-ribaudo</code></a>)</li> </ul> </li> <li><code>babel-helper-module-transforms</code>, <code>babel-helpers</code>, <code>babel-plugin-proposal-import-defer</code>, <code>babel-plugin-syntax-import-defer</code>, <code>babel-plugin-transform-modules-commonjs</code>, <code>babel-runtime-corejs2</code>, <code>babel-runtime-corejs3</code>, <code>babel-runtime</code>, <code>babel-standalone</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/15878">#15878</a> Implement <code>import defer</code> proposal transform support (<a href="https://github.com/nicolo-ribaudo"><code>@nicolo-ribaudo</code></a>)</li> </ul> </li> <li><code>babel-generator</code>, <code>babel-parser</code>, <code>babel-types</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/15845">#15845</a> Implement <code>import defer</code> parsing support (<a href="https://github.com/nicolo-ribaudo"><code>@nicolo-ribaudo</code></a>)</li> <li><a href="https://redirect.github.com/babel/babel/pull/15829">#15829</a> Add parsing support for the "source phase imports" proposal (<a href="https://github.com/nicolo-ribaudo"><code>@nicolo-ribaudo</code></a>)</li> </ul> </li> <li><code>babel-generator</code>, <code>babel-helper-module-transforms</code>, <code>babel-parser</code>, <code>babel-plugin-transform-dynamic-import</code>, <code>babel-plugin-transform-modules-amd</code>, <code>babel-plugin-transform-modules-commonjs</code>, <code>babel-plugin-transform-modules-systemjs</code>, <code>babel-traverse</code>, <code>babel-types</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/15682">#15682</a> Add <code>createImportExpressions</code> parser option (<a href="https://github.com/JLHwung"><code>@JLHwung</code></a>)</li> </ul> </li> <li><code>babel-standalone</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/15671">#15671</a> Pass through nonce to the transformed script element (<a href="https://github.com/JLHwung"><code>@JLHwung</code></a>)</li> </ul> </li> <li><code>babel-helper-function-name</code>, <code>babel-helper-member-expression-to-functions</code>, <code>babel-helpers</code>, <code>babel-parser</code>, <code>babel-plugin-proposal-destructuring-private</code>, <code>babel-plugin-proposal-optional-chaining-assign</code>, <code>babel-plugin-syntax-optional-chaining-assign</code>, <code>babel-plugin-transform-destructuring</code>, <code>babel-plugin-transform-optional-chaining</code>, <code>babel-runtime-corejs2</code>, <code>babel-runtime-corejs3</code>, <code>babel-runtime</code>, <code>babel-standalone</code>, <code>babel-types</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/15751">#15751</a> Add support for optional chain in assignments (<a href="https://github.com/nicolo-ribaudo"><code>@nicolo-ribaudo</code></a>)</li> </ul> </li> <li><code>babel-helpers</code>, <code>babel-plugin-proposal-decorators</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/15895">#15895</a> Implement the "decorator metadata" proposal (<a href="https://github.com/nicolo-ribaudo"><code>@nicolo-ribaudo</code></a>)</li> </ul> </li> <li><code>babel-traverse</code>, <code>babel-types</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/15893">#15893</a> Add <code>t.buildUndefinedNode</code> (<a href="https://github.com/liuxingbaoyu"><code>@liuxingbaoyu</code></a>)</li> </ul> </li> <li><code>babel-preset-typescript</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/15913">#15913</a> Add <code>rewriteImportExtensions</code> option to TS preset (<a href="https://github.com/nicolo-ribaudo"><code>@nicolo-ribaudo</code></a>)</li> </ul> </li> <li><code>babel-parser</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/15896">#15896</a> Allow TS tuples to have both labeled and unlabeled elements (<a href="https://github.com/yukukotani"><code>@yukukotani</code></a>)</li> </ul> </li> </ul> <h4>🐛 Bug Fix</h4> <ul> <li><code>babel-plugin-transform-block-scoping</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/15962">#15962</a> fix: <code>transform-block-scoping</code> captures the variables of the method in the loop (<a href="https://github.com/liuxingbaoyu"><code>@liuxingbaoyu</code></a>)</li> </ul> </li> </ul> <h4>💅 Polish</h4> <ul> <li><code>babel-traverse</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/15797">#15797</a> Expand evaluation of global built-ins in <code>@babel/traverse</code> (<a href="https://github.com/lorenzoferre"><code>@lorenzoferre</code></a>)</li> </ul> </li> <li><code>babel-plugin-proposal-explicit-resource-management</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/15985">#15985</a> Improve source maps for blocks with <code>using</code> declarations (<a href="https://github.com/nicolo-ribaudo"><code>@nicolo-ribaudo</code></a>)</li> </ul> </li> </ul> <h4>🔬 Output optimization</h4> <ul> <li><code>babel-core</code>, <code>babel-helper-module-transforms</code>, <code>babel-plugin-transform-async-to-generator</code>, <code>babel-plugin-transform-classes</code>, <code>babel-plugin-transform-dynamic-import</code>, <code>babel-plugin-transform-function-name</code>, <code>babel-plugin-transform-modules-amd</code>, <code>babel-plugin-transform-modules-commonjs</code>, <code>babel-plugin-transform-modules-umd</code>, <code>babel-plugin-transform-parameters</code>, <code>babel-plugin-transform-react-constant-elements</code>, <code>babel-plugin-transform-react-inline-elements</code>, <code>babel-plugin-transform-runtime</code>, <code>babel-plugin-transform-typescript</code>, <code>babel-preset-env</code> <ul> <li><a href="https://redirect.github.com/babel/babel/pull/15984">#15984</a> Inline <code>exports.XXX =</code> update in simple variable declarations (<a href="https://github.com/nicolo-ribaudo"><code>@nicolo-ribaudo</code></a>)</li> </ul> </li> </ul> <h2>v7.22.20 (2023-09-16)</h2> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
18b01b5d16 |
fix: undo change to extism_memory_bytes left over from debugging (#519)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: zshipko <zshipko@users.noreply.github.com> |
||
|
|
6e0fd3baa1 |
fix(build): release-python: disable unused poetry caching
This workflow only _uploads_ existing artifacts, so keeping a poetry cache around just, uh, breaks the workflow since there's no `Poetry.lock` to cache. |
||
|
|
09961010f6 | v1.0.0-rc0 v1.0.0-rc0 | ||
|
|
c893faede4 |
fix(kernel): update outdated implementation of MemoryBlock::next_ptr (#509)
`MemoryBlock::next_ptr` used to calculate the offset to the data of the next block, but it should be returning the start of the `MemoryBlock` structure in memory. Also updates the tests for this case. This was discovered when trying to update the kernel in the go-sdk: https://github.com/extism/go-sdk/pull/32 --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: zshipko <zshipko@users.noreply.github.com> |
||
|
|
6f4b43bedc |
feat: add benchmarking, optimize bounds checking in the kernel (#505)
- Adds benchmarking, run with `cargo bench` or `cargo criterion` - Adds `MemoryRoot::pointer_in_bounds_fast` to do less precise bounds checking in loads/stores --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: zshipko <zshipko@users.noreply.github.com> |
||
|
|
a9835da614 |
fix(rust): return extism_error message from Plugin::call if it is set (#508)
|
||
|
|
64fd246b73 |
feat: kernel hardening (#499)
- Kernel-specific tests - Add bounds checking to the kernel, which can toggled using the `bounds-checking` feature - Next week I will do some benchmarking to determine the runtime performance impact of bounds checking and can consider if it should be relaxed for certain operations (mainly stores/loads) --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: zshipko <zshipko@users.noreply.github.com> |
||
|
|
59e8335f17 |
feat(build): GHA release-python now releases extism_sys packages (#498)
This changes the workflow slightly: whenever we publish a draft release, download our `*.whl` assets from that release and publish them to PyPI. |
||
|
|
703cacda91 | v0.5.3 | ||
|
|
bc56d7303a |
docs: Add readme, bump convert crate (#495)
Co-authored-by: zach <zach@dylibso.com> |
||
|
|
e7ffc1dd6b | ci: fix name | ||
|
|
d994f081f9 |
chore: prepare extism-convert to be released (#494)
|
||
|
|
583befbaef |
chore(deps-dev): Bump @types/node from 20.6.2 to 20.6.5 in /node (#484)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 20.6.2 to 20.6.5. <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> |
||
|
|
4c9dc6f6e4 |
chore(deps): Update ffi requirement from ~> 1.15.5 to ~> 1.16.1 in /ruby (#485)
Updates the requirements on [ffi](https://github.com/ffi/ffi) to permit the latest version. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/ffi/ffi/blob/master/CHANGELOG.md">ffi's changelog</a>.</em></p> <blockquote> <h2>1.16.1 / 2023-09-24</h2> <p>Fixed:</p> <ul> <li>Fix compiling the builtin libffi. <a href="https://redirect.github.com/ffi/ffi/issues/1049">#1049</a></li> </ul> <h2>1.16.0 / 2023-09-23</h2> <p>Fixed:</p> <ul> <li>Fix an issue with signed bitmasks when using flags on the most significant bit. <a href="https://redirect.github.com/ffi/ffi/issues/949">#949</a></li> <li>Fix FFI::Pointer#initialize using NUM2LL instead of NUM2ULL.</li> <li>Fix FFI::Type#inspect to properly display the constant name. <a href="https://redirect.github.com/ffi/ffi/issues/1002">#1002</a></li> <li>Use libffi closure allocations on hppa-Linux. <a href="https://redirect.github.com/ffi/ffi/issues/1017">#1017</a> Previously they would segfault.</li> <li>Fix class name of Symbol#inspect.</li> <li>Fix MSVC support of libtest. <a href="https://redirect.github.com/ffi/ffi/issues/1028">#1028</a></li> <li>Fix attach_function of functions ending in ? or ! <a href="https://redirect.github.com/ffi/ffi/issues/971">#971</a></li> </ul> <p>Added:</p> <ul> <li>Convert all C-based classes to TypedData and use write barriers. <a href="https://redirect.github.com/ffi/ffi/issues/994">#994</a>, <a href="https://redirect.github.com/ffi/ffi/issues/995">#995</a>, <a href="https://redirect.github.com/ffi/ffi/issues/996">#996</a>, <a href="https://redirect.github.com/ffi/ffi/issues/997">#997</a>, <a href="https://redirect.github.com/ffi/ffi/issues/998">#998</a>, <a href="https://redirect.github.com/ffi/ffi/issues/999">#999</a>, <a href="https://redirect.github.com/ffi/ffi/issues/1000">#1000</a>, <a href="https://redirect.github.com/ffi/ffi/issues/1001">#1001</a>, <a href="https://redirect.github.com/ffi/ffi/issues/1003">#1003</a>, <a href="https://redirect.github.com/ffi/ffi/issues/1004">#1004</a>, <a href="https://redirect.github.com/ffi/ffi/issues/1005">#1005</a>, <a href="https://redirect.github.com/ffi/ffi/issues/1006">#1006</a>, <a href="https://redirect.github.com/ffi/ffi/issues/1007">#1007</a>, <a href="https://redirect.github.com/ffi/ffi/issues/1008">#1008</a>, <a href="https://redirect.github.com/ffi/ffi/issues/1009">#1009</a>, <a href="https://redirect.github.com/ffi/ffi/issues/1010">#1010</a>, <a href="https://redirect.github.com/ffi/ffi/issues/1011">#1011</a>, <a href="https://redirect.github.com/ffi/ffi/issues/1012">#1012</a> This results in less pressure on the garbage collector, since the objects can be promoted to the old generation, which means they only get marked on major GC.</li> <li>Implement <code>ObjectSpace.memsize_of()</code> of all C-based classes.</li> <li>Make FFI Ractor compatible. <a href="https://redirect.github.com/ffi/ffi/issues/1023">#1023</a> Modules extended per <code>extend FFI::Library</code> need to be frozen in order to be used by non-main Ractors. This can be done by calling <code>freeze</code> below of all C interface definitions. <ul> <li>In a Ractor it's possible to: <ul> <li>load DLLs and call its functions, access its global variables</li> <li>use builtin typedefs</li> <li>use and modify ractor local typedefs</li> <li>define callbacks</li> <li>receive async callbacks from non-ruby threads</li> <li>use frozen FFI::Library based modules with all attributes (enums, structs, typedefs, functions, callbacks)</li> <li>invoke frozen functions and callbacks defined in the main Ractor</li> <li>use FFI::Struct definitions from the main Ractor</li> </ul> </li> <li>In a Ractor it's impossible to: <ul> <li>create new FFI::Library based modules</li> <li>create new FFI::Struct definitions</li> <li>use custom global typedefs</li> <li>use non-frozen FFI::Library based modules</li> </ul> </li> </ul> </li> <li>Allow type retrieval of attached functions+variables. <a href="https://redirect.github.com/ffi/ffi/issues/1023">#1023</a></li> <li>Make FFI classes <code>GC.compact</code> friendly. <a href="https://redirect.github.com/ffi/ffi/issues/1021">#1021</a></li> <li>Update libffi and disable custom trampoline when using libffi closure allocation. <a href="https://redirect.github.com/ffi/ffi/issues/1020">#1020</a> This is because libffi changed the way how closures are allocated to static trampolines.</li> <li>Add types.conf for loongarch64-linux. <a href="https://redirect.github.com/ffi/ffi/issues/943">#943</a></li> <li>Add types.conf for sw_64-linux (Shen Wei 64-bit, based on Alpha). <a href="https://redirect.github.com/ffi/ffi/issues/1018">#1018</a></li> <li>Add support for aarch64-windows. <a href="https://redirect.github.com/ffi/ffi/issues/1035">#1035</a></li> <li>Windows: Update LoadLibrary error message to include error code. <a href="https://redirect.github.com/ffi/ffi/issues/1026">#1026</a></li> <li>Allow private release method for FFI::ManagedStruct and FFI::AutoPointer. <a href="https://redirect.github.com/ffi/ffi/issues/1029">#1029</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
08db39c153 |
chore: bump wasmtime lower bound to 13.0.0, remove wasi-nn support (#483)
- Updates to wasmtime 13.0.0 as the lowest supported version - Removes `wasmtime-wasi-nn` support because it now takes parameters to specify particular backends and registries during initialization. Since I don't think anyone is using the `nn` feature I chose to remove it for now, but we could also expand the manifest to add these options. |
||
|
|
75a8495772 |
cleanup(runtime): remove restrictions around memory.max_pages option, fix crash (#482)
- Removes restrictions around when `memory.max_pages` setting can be used. Before we used `wasmtime::MemoryLimiter` it was hard to determine how much was being allocated at runtime, so we used to calculate the totals statically, which required every module to have a maximum memory set at compile time. This PR allows `memory.max` to be used on any module! - Fixes a crash when the `memory.max_pages` field is set - Adds a test that checks for failure when allocating more than configured |
||
|
|
be646480b9 |
fix(build): remove windows gnu wheel builds (#481)
Maturin on Windows struggles with GNU headers. Since we have windows MSVC wheel builds, this commit disables windows GNU wheel builds. Also: fix a bug where the produced wheels did not include any extism functions. |
||
|
|
8426e1a0a6 |
feat(build): add extism-maturin wheel builds (#480)
Build the python native library along with libextism since they change at roughly the same rate; we can pull the resulting wheels into python-sdk as needed. Reduce the release job into a single matrix of `OS x RUST TARGET` – this unifies the macos, windows, and linux builds into a single job. --- **BREAKING CHANGE**: This changes the trigger for the release workflow. Instead of being triggered by the creation of a release, it is triggered by pushing new git tags. It will catch `v*` – `v0.5.0`, `v200.0.1-dev` for example. The workflow creates a draft release. |
||
|
|
00ccb5be9d | docs: Add note about stable branch (#479) | ||
|
|
6e8c28b0e9 |
fix(main): improve the way the kernel calculates how many pages to allocate (#472)
Same as #471 for `main` branch --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: zshipko <zshipko@users.noreply.github.com> |
||
|
|
98a4244915 |
chore(deps): Update toml requirement from 0.7 to 0.8 (#459)
Updates the requirements on [toml](https://github.com/toml-rs/toml) to permit the latest version. <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
326a4c86a8 |
chore(deps): Update cbindgen requirement from 0.25 to 0.26 (#460)
Updates the requirements on [cbindgen](https://github.com/mozilla/cbindgen) to permit the latest version. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/mozilla/cbindgen/releases">cbindgen's releases</a>.</em></p> <blockquote> <h2>0.26.0</h2> <ul> <li>Fix swapping of <code>>>=</code> and <code><<=</code> in constants.</li> <li>Add support for #[deprecated] (<a href="https://redirect.github.com/mozilla/cbindgen/issues/860">#860</a>).</li> <li>Built-in support for bitflags 2.0.</li> <li>Support for "C-unwind" ABI.</li> <li>Generate bindings for non-public extern items if they are #[no_mangle].</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/mozilla/cbindgen/blob/master/CHANGES">cbindgen's changelog</a>.</em></p> <blockquote> <h1>0.26.0</h1> <pre><code> * Fix swapping of `>>=` and `<<=` in constants. * Add support for #[deprecated] ([#860](https://github.com/mozilla/cbindgen/issues/860)). * Built-in support for bitflags 2.0. * Support for "C-unwind" ABI. * Generate bindings for non-public extern items if they are #[no_mangle]. </code></pre> <h2>0.25.0</h2> <pre><code> * Re-release of yanked 0.24.6 as a major release * Update MSRV to 1.57 * Support variadic arguments (`...`) ([#805](https://github.com/mozilla/cbindgen/issues/805)) * Add --depfile option ([#820](https://github.com/mozilla/cbindgen/issues/820)) * Breaking changes: The `Config` struct now has a private member. </code></pre> <h2>0.24.6 (YANKED: depfile option was breaking, see <a href="https://redirect.github.com/mozilla/cbindgen/issues/841">#841</a>)</h2> <pre><code> * Update MSRV to 1.57 * Support variadic arguments (`...`) ([#805](https://github.com/mozilla/cbindgen/issues/805)) * Add --depfile option ([#820](https://github.com/mozilla/cbindgen/issues/820)) </code></pre> <h2>0.24.5</h2> <pre><code> * Don't enforce tempfile version. </code></pre> <h2>0.24.4</h2> <pre><code> * Move expand infinite recursion fix ([#799](https://github.com/mozilla/cbindgen/issues/799)) * Add with_cpp_compat to the builder ([#796](https://github.com/mozilla/cbindgen/issues/796)) * Handle never type in return position consistently ([#780](https://github.com/mozilla/cbindgen/issues/780)) * Fix warnings ([#816](https://github.com/mozilla/cbindgen/issues/816), [#819](https://github.com/mozilla/cbindgen/issues/819)) * Updated documentation ([#788](https://github.com/mozilla/cbindgen/issues/788), [#791](https://github.com/mozilla/cbindgen/issues/791), [#792](https://github.com/mozilla/cbindgen/issues/792), [#810](https://github.com/mozilla/cbindgen/issues/810), [#823](https://github.com/mozilla/cbindgen/issues/823)) </code></pre> <h2>0.24.3</h2> <pre><code> * Make struct expressions correctly generated through typedefs ([#768](https://github.com/mozilla/cbindgen/issues/768)). </code></pre> <h2>0.24.2</h2> <pre><code> * Make bitfield operators use explicit constructors. </code></pre> <h2>0.24.1</h2> <pre><code> * Add support for unary negation ([#765](https://github.com/mozilla/cbindgen/issues/765)). * Make more bitfield operators constexpr ([#765](https://github.com/mozilla/cbindgen/issues/765)). </code></pre> <h2>0.24.0</h2> <pre><code> * Basic const generic support ([#759](https://github.com/mozilla/cbindgen/issues/759), [#760](https://github.com/mozilla/cbindgen/issues/760) [#762](https://github.com/mozilla/cbindgen/issues/762)). </code></pre> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
1ec4fda8fc |
chore(deps-dev): Bump @types/node from 20.6.0 to 20.6.2 in /node (#461)
[//]: # (dependabot-start) ⚠️ **Dependabot is rebasing this PR** ⚠️ Rebasing might not happen immediately, so don't worry if this takes some time. Note: if you make any changes to this PR yourself, they will take precedence over the rebase. --- [//]: # (dependabot-end) Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 20.6.0 to 20.6.2. <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> |
||
|
|
e7452a6f44 |
chore(deps-dev): Bump @types/ffi-napi from 4.0.7 to 4.0.8 in /node (#462)
Bumps [@types/ffi-napi](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/ffi-napi) from 4.0.7 to 4.0.8. <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/ffi-napi">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> |
||
|
|
d815b31352 |
chore(deps-dev): Bump jest and @types/jest in /node (#463)
Bumps [jest](https://github.com/jestjs/jest/tree/HEAD/packages/jest) and
[@types/jest](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/jest).
These dependencies needed to be updated together.
Updates `jest` from 29.6.4 to 29.7.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/jestjs/jest/releases">jest's
releases</a>.</em></p>
<blockquote>
<h2>v29.7.0</h2>
<h2>Features</h2>
<ul>
<li><code>[create-jest]</code> Add <code>npm init</code> / <code>yarn
create</code> initialiser for Jest projects (<a
href="https://redirect.github.com/jestjs/jest/pull/14453">#14465</a>)</li>
<li><code>[jest-validate]</code> Allow deprecation warnings for unknown
options (<a
href="https://redirect.github.com/jestjs/jest/pull/14499">#14499</a>)</li>
</ul>
<h2>Fixes</h2>
<ul>
<li><code>[jest-resolver]</code> Replace unmatched capture groups in
<code>moduleNameMapper</code> with empty string instead of
<code>undefined</code> (<a
href="https://redirect.github.com/jestjs/jest/pull/14507">#14507</a>)</li>
<li><code>[jest-snapshot]</code> Allow for strings as well as template
literals in inline snapshots (<a
href="https://redirect.github.com/jestjs/jest/pull/14465">#14465</a>)</li>
<li><code>[@jest/test-sequencer]</code> Calculate test runtime if
<code>perStats.duration</code> is missing (<a
href="https://redirect.github.com/jestjs/jest/pull/14473">#14473</a>)</li>
</ul>
<h2>Performance</h2>
<ul>
<li><code>[@jest/create-cache-key-function]</code> Cache access of
<code>NODE_ENV</code> and <code>BABEL_ENV</code> (<a
href="https://redirect.github.com/jestjs/jest/pull/14455">#14455</a>)</li>
</ul>
<h2>Chore & Maintenance</h2>
<ul>
<li><code>[jest-cli]</code> Move internal config initialisation logic to
the <code>create-jest</code> package (<a
href="https://redirect.github.com/jestjs/jest/pull/14453">#14465</a>)</li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/bawjensen"><code>@bawjensen</code></a>
made their first contribution in <a
href="https://redirect.github.com/jestjs/jest/pull/14465">jestjs/jest#14465</a></li>
<li><a
href="https://github.com/malaviya-parth"><code>@malaviya-parth</code></a>
made their first contribution in <a
href="https://redirect.github.com/jestjs/jest/pull/14467">jestjs/jest#14467</a></li>
<li><a
href="https://github.com/niklasholm"><code>@niklasholm</code></a> made
their first contribution in <a
href="https://redirect.github.com/jestjs/jest/pull/14507">jestjs/jest#14507</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/jestjs/jest/compare/v29.6.4...v29.7.0">https://github.com/jestjs/jest/compare/v29.6.4...v29.7.0</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/jestjs/jest/blob/main/CHANGELOG.md">jest's
changelog</a>.</em></p>
<blockquote>
<h2>29.7.0</h2>
<h3>Features</h3>
<ul>
<li><code>[create-jest]</code> Add <code>npm init</code> / <code>yarn
create</code> initialiser for Jest projects (<a
href="https://redirect.github.com/jestjs/jest/pull/14453">#14465</a>)</li>
<li><code>[jest-validate]</code> Allow deprecation warnings for unknown
options (<a
href="https://redirect.github.com/jestjs/jest/pull/14499">#14499</a>)</li>
</ul>
<h3>Fixes</h3>
<ul>
<li><code>[jest-resolver]</code> Replace unmatched capture groups in
<code>moduleNameMapper</code> with empty string instead of
<code>undefined</code> (<a
href="https://redirect.github.com/jestjs/jest/pull/14507">#14507</a>)</li>
<li><code>[jest-snapshot]</code> Allow for strings as well as template
literals in inline snapshots (<a
href="https://redirect.github.com/jestjs/jest/pull/14465">#14465</a>)</li>
<li><code>[@jest/test-sequencer]</code> Calculate test runtime if
<code>perStats.duration</code> is missing (<a
href="https://redirect.github.com/jestjs/jest/pull/14473">#14473</a>)</li>
</ul>
<h3>Performance</h3>
<ul>
<li><code>[@jest/create-cache-key-function]</code> Cache access of
<code>NODE_ENV</code> and <code>BABEL_ENV</code> (<a
href="https://redirect.github.com/jestjs/jest/pull/14455">#14455</a>)</li>
</ul>
<h3>Chore & Maintenance</h3>
<ul>
<li><code>[jest-cli]</code> Move internal config initialisation logic to
the <code>create-jest</code> package (<a
href="https://redirect.github.com/jestjs/jest/pull/14453">#14465</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="
|
||
|
|
28074af2b9 |
ci: automate PRs to build canonical version of extism-runtime.wasm (#473)
Closes #469 This PR adds a github workflow that is triggered by updates to the `kernel/` directory or `runtime/src/extism-kernel.wasm` - it builds the kernel, including using `wasm-strip` and makes a PR against any PR that has a kernel module that doesn't match the expected output. I had considered making this run when the PR is merged into main, but this approach gives us a chance to run CI with the generated wasm file. I think automatically adding a commit would be simpler, but this way seems more transparent. --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: zshipko <zshipko@users.noreply.github.com> |
||
|
|
016e9158ef |
fix(main): Fixes rounding issue in kernel num_pages (#468)
This is #466 for the `main` branch Co-authored-by: Benjamin Eckel <bhelx@simst.im> |
||
|
|
d040c8b8a8 |
fix(kernel): avoid allocating 0-length blocks (#465)
Fixes an issue where the kernel was able to allocate empty blocks, causing some weird memory issues. |
||
|
|
ab458ebd44 |
feat(build): Add "latest" snapshot builds (#457)
Add a "latest" snapshot that other libraries can use to test against the latest version of Extism. Add caching for builds triggered by pushes to `main`. |
||
|
|
cb55e52506 |
feat: Add extism-convert crate and use it for input/output to plugin calls (#443)
- Adds `extism-convert` crate with `ToBytes`, `FromBytes` and `FromBytesOwned` traits - This serves as a single interface for reading/writing rich types from WebAssembly linear memory. - Supports `Json` and `Msgpack` and `Protobuf` encodings out-of-the-box - Updates `Plugin::call` to take `ToBytes` as the input argument and return a `FromBytes` value - Adds `host_fn!` macro to simplify host function creation - Cleans up generated documentation a little - PR for the Rust PDK: https://github.com/extism/rust-pdk/pull/31 - Adds a `typed_plugin!` macro to implement type-safe wrappers around `Plugin` - After this we should focus on adding similar type-conversion helpers to the SDKs and other PDKs to make it easier to use across languages. For example, a Python host running a Rust plugin using Msgpack encoded types. ## Examples ### Calling a function Instead of the untyped, bytes-only `call` function: ```rust let output = plugin.call("func_name", "my data").unwrap(); let output: MyType = serde_json::from_slice(&output).unwrap(); ``` We can now use richer types to encode/decode our values directly when using `call`: ```rust let Json(output) = plugin.call::<_, Json<MyType>>("func_name", "my data").unwrap(); ``` ### Allocating inside of a host function The same interface works for host functions, so instead of: ```rust fn hello_world( plugin: &mut CurrentPlugin, inputs: &[Val], outputs: &mut [Val], _user_data: UserData, ) -> Result<(), Error> { let handle = plugin.memory_handle_val(&inputs[0])?; let input = plugin.memory_read_str(handle)?; let output = plugin.memory_alloc_bytes(&input).unwrap(); outputs[0] = output.into(); Ok(()) } ``` Becomes: ```rust fn hello_world( plugin: &mut CurrentPlugin, inputs: &[Val], outputs: &mut [Val], _user_data: UserData, ) -> Result<(), Error> { let my_value: String = plugin.memory_get_val(&inputs[0])?; let output = plugin.memory_new(&my_value)?; outputs[0] = plugin.memory_to_val(output); Ok(()) } ``` Although this isn't much of an improvement, using the `host_fn` macro, we can really begin to see how the above function is really just an identity function: ```rust host_fn!(hello_world(a: String) -> String { a }); ``` ### typed_plugin! `typed_plugin!` is used to make a typed wrapper around a Plugin: ```rust /// Create the typed plugin typed_plugin!(Testing { count_vowels(&str) -> Json<Count> }); /// Create the `Plugin` and convert it to `Testing` wrapper let mut plugin: Testing = Plugin::new(WASM, [f], true).unwrap().into(); /// Call the `count_vowels` function: let Json(output0): Json<Count> = plugin.count_vowels("abc123")?; ``` It could make sense to convert `host_fn` and/or `typed_plugin` to proc-macros at some point, but for now they work and provide some flexibility in experimenting with the interfaces. Another future update could be to figure out a nice way to make it so input can be written in multiple chunks, so the entire input doesn't have to get copied into memory at once. |
||
|
|
4377cbd7a0 | chore(browser): bump package version (#454) | ||
|
|
e1a5b01ede |
feat(browser): Allow Initialization of Plugin from WebAssembly.Module (#453)
Allows for initializing an extism plugin from a `WebAssembly.Module` like: ```js const ctx = new ExtismContext(); const p = await ctx.newPlugin(new WebAssembly.Module(wasm), []); ``` |
||
|
|
de19168540 |
feat(ocaml): add missing flags to extism-call executable (#451)
`extism-call` is a test program using the OCaml SDK, this PR adds the missing flags to make it a little more useful for general testing/ |
||
|
|
2bf5ac75c0 |
feat(ruby): Host functions and clean up FFI code (#442)
Adds support for host functions and cleans up some of the FFI code.
## API
To make a host function, you can pass a proc to `Function::new`:
```ruby
func = proc do |current_plugin, inputs, outputs, user_data|
input = current_plugin.input_as_bytes(inputs.first)
current_plugin.return_string(outputs.first, "#{input} #{user_data}")
end
f = Extism::Function.new('transform_string', [Extism::ValType::I64], [Extism::ValType::I64], func, 'My User Data')
plugin = Extism::Plugin.new(host_manifest, [f], true)
result = plugin.call('reflect_string', 'Hello, World!')
assert_equal result, 'Hello, World! My User Data'
```
If your function is in a module or a class, you can use
`method(name).to_proc`. Example:
```ruby
module Test
def self.my_function(current_plugin, inputs, outputs, user_data)
input = current_plugin.input_as_bytes(inputs.first)
current_plugin.return_string(outputs.first, "#{input} #{user_data}")
end
end
func = Test.method(:my_function).to_proc
f = Extism::Function.new('my_function', [Extism::ValType::I64], [Extism::ValType::I64], func, 'My User Data')
```
`current_plugin` is of the type CurrentPlugin which has some helpful
methods:
* `CurrentPlugin#memory_at_offset(int)` returns a `Memory` object given
a memory pointer
* `CurrentPlugin#free(Memory)` frees the memory
* `CurrentPlugin#alloc(int)` allocates new memory and returns a `Memory`
* `CurrentPlugin#input_as_bytes(Value)` returns the bytes for the given
input param
* `CurrentPlugin#return_bytes(Value, Array)` Sets the array of bytes to
the return for the given output value
* `CurrentPlugin#input_as_bytes(Value, String)` Sets the string to the
return for the given output value
|
||
|
|
3e92b05db0 |
chore(deps-dev): Bump typedoc from 0.25.0 to 0.25.1 in /node (#448)
Bumps [typedoc](https://github.com/TypeStrong/TypeDoc) from 0.25.0 to 0.25.1. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/TypeStrong/TypeDoc/releases">typedoc's releases</a>.</em></p> <blockquote> <h2>v0.25.1</h2> <h3>Features</h3> <ul> <li>Added <code>stripYamlFrontmatter</code> config option to remove YAML frontmatter from README.md, <a href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2381">#2381</a>.</li> <li>Added <code>--excludeCategories</code> config option to remove reflections present in any excluded category, <a href="https://redirect.github.com/TypeStrong/TypeDoc/issues/1407">#1407</a>.</li> <li>If no tsconfig.json file is present, TypeDoc will now attempt to compile without setting any compiler options, <a href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2304">#2304</a>.</li> <li>Navigation is now written to a JS file and built dynamically, which significantly decreases document generation time with large projects and also provides large space benefits. Themes may now override <code>DefaultTheme.buildNavigation</code> to customize the displayed navigation tree, <a href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2287">#2287</a>. Note: This change renders <code>navigation.fullTree</code> obsolete. If you set it, TypeDoc will warn that it is being ignored. It will be removed in v0.26.</li> <li>The search index is now compressed before writing, which reduces most search index sizes by ~5-10x.</li> <li>TypeDoc will now attempt to cache icons when <code>DefaultThemeRenderContext.icons</code> is overwritten by a custom theme. Note: To perform this optimization, TypeDoc relies on <code>DefaultThemeRenderContext.iconCache</code> being rendered within each page. TypeDoc does it in the <code>defaultLayout</code> template.</li> <li>Cache URL derivation during generation, <a href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2386">#2386</a>.</li> </ul> <h3>Bug Fixes</h3> <ul> <li><code>@property</code> now works as expected if used to override a method's documentation.</li> <li>Deprecated functions/methods are now correctly rendered with a struck-out name.</li> <li><code>--watch</code> mode works again, <a href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2378">#2378</a>.</li> <li>Improved support for optional names within JSDoc types, <a href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2384">#2384</a>.</li> <li>Fixed duplicate rendering of reflection flags on signature parameters, <a href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2385">#2385</a>.</li> <li>TypeDoc now handles the <code>intrinsic</code> keyword if TS intrinsic types are included in documentation.</li> <li><code>--exclude</code> is now respected when expanding globs in entry points, <a href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2376">#2376</a>.</li> </ul> <h3>Thanks!</h3> <ul> <li><a href="https://github.com/ajesshope"><code>@ajesshope</code></a></li> <li><a href="https://github.com/HemalPatil"><code>@HemalPatil</code></a></li> <li><a href="https://github.com/hrueger"><code>@hrueger</code></a></li> <li><a href="https://github.com/typhonrt"><code>@typhonrt</code></a></li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/TypeStrong/typedoc/blob/master/CHANGELOG.md">typedoc's changelog</a>.</em></p> <blockquote> <h2>v0.25.1 (2023-09-04)</h2> <h3>Features</h3> <ul> <li>Added <code>stripYamlFrontmatter</code> config option to remove YAML frontmatter from README.md, <a href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2381">#2381</a>.</li> <li>Added <code>--excludeCategories</code> config option to remove reflections present in any excluded category, <a href="https://redirect.github.com/TypeStrong/TypeDoc/issues/1407">#1407</a>.</li> <li>If no tsconfig.json file is present, TypeDoc will now attempt to compile without setting any compiler options, <a href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2304">#2304</a>.</li> <li>Navigation is now written to a JS file and built dynamically, which significantly decreases document generation time with large projects and also provides large space benefits. Themes may now override <code>DefaultTheme.buildNavigation</code> to customize the displayed navigation tree, <a href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2287">#2287</a>. Note: This change renders <code>navigation.fullTree</code> obsolete. If you set it, TypeDoc will warn that it is being ignored. It will be removed in v0.26.</li> <li>The search index is now compressed before writing, which reduces most search index sizes by ~5-10x.</li> <li>TypeDoc will now attempt to cache icons when <code>DefaultThemeRenderContext.icons</code> is overwritten by a custom theme. Note: To perform this optimization, TypeDoc relies on <code>DefaultThemeRenderContext.iconCache</code> being rendered within each page. TypeDoc does it in the <code>defaultLayout</code> template.</li> <li>Cache URL derivation during generation, <a href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2386">#2386</a>.</li> </ul> <h3>Bug Fixes</h3> <ul> <li><code>@property</code> now works as expected if used to override a method's documentation.</li> <li>Deprecated functions/methods are now correctly rendered with a struck-out name.</li> <li><code>--watch</code> mode works again, <a href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2378">#2378</a>.</li> <li>Improved support for optional names within JSDoc types, <a href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2384">#2384</a>.</li> <li>Fixed duplicate rendering of reflection flags on signature parameters, <a href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2385">#2385</a>.</li> <li>TypeDoc now handles the <code>intrinsic</code> keyword if TS intrinsic types are included in documentation.</li> <li><code>--exclude</code> is now respected when expanding globs in entry points, <a href="https://redirect.github.com/TypeStrong/TypeDoc/issues/2376">#2376</a>.</li> </ul> <h3>Thanks!</h3> <ul> <li><a href="https://github.com/ajesshope"><code>@ajesshope</code></a></li> <li><a href="https://github.com/HemalPatil"><code>@HemalPatil</code></a></li> <li><a href="https://github.com/hrueger"><code>@hrueger</code></a></li> <li><a href="https://github.com/typhonrt"><code>@typhonrt</code></a></li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
4caee2de1a |
chore(deps-dev): Bump @types/node from 20.5.9 to 20.6.0 in /node (#449)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 20.5.9 to 20.6.0. <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> |
||
|
|
5339f3ca1e |
chore(deps-dev): Update minitest requirement from ~> 5.19.0 to ~> 5.20.0 in /ruby (#450)
Updates the requirements on [minitest](https://github.com/minitest/minitest) to permit the latest version. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/minitest/minitest/blob/master/History.rdoc">minitest's changelog</a>.</em></p> <blockquote> <p>=== 5.20.0 / 2023-09-06</p> <ul> <li> <p>1 minor enhancement:</p> <ul> <li>Optionally allow autorun exit hook to remain active in forked child. (casperisfine)</li> </ul> </li> </ul> <p>=== 5.19.0 / 2023-07-26</p> <ul> <li> <p>2 minor enhancements:</p> <ul> <li>Add metadata lazy accessor to Runnable / Result. (matteeyah)</li> <li>Only load minitest/unit (aka ancient MiniTest compatibility layer) if ENV["MT_COMPAT"]</li> </ul> </li> <li> <p>1 bug fix:</p> <ul> <li>Minitest::TestTask enthusiastically added itself to default. (ParadoxV5)</li> </ul> </li> </ul> <p>=== 5.18.1 / 2023-06-16</p> <ul> <li> <p>3 bug fixes:</p> <ul> <li>Avoid extra string allocations when filtering tests. (tenderlove)</li> <li>Only mention deprecated ENV['N'] if it is an integer string.</li> <li>Push up test_order to Minitest::Runnable to fix minitest/hell. (koic)</li> </ul> </li> </ul> <p>=== 5.18.0 / 2023-03-04</p> <ul> <li> <p>2 major enhancements:</p> <ul> <li>Added assert_pattern & refute_pattern for pattern matching. (flavorjones)</li> <li>Added matching must_pattern_match & wont_pattern_match to minitest/spec.</li> </ul> </li> <li> <p>1 bug fix:</p> <ul> <li>Support the new message format of NameError in Ruby 3.3 (mame)</li> </ul> </li> </ul> <p>=== 5.17.0 / 2022-12-31</p> <ul> <li> <p>1 minor enhancement:</p> <ul> <li>Refactor setup hooks into a SETUP_METHODS constant. (MSP-Greg)</li> </ul> </li> <li> <p>3 bug fixes:</p> <ul> <li>Fix kwargs for Mock calls to delegator. (blowmage)</li> <li>Fix kwargs for expectations. (bobmazanec, blowmage)</li> <li>Remove check for .b method. (tenderlove)</li> </ul> </li> </ul> <p>=== 5.16.3 / 2022-08-17</p> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
26f70e3a30 |
feat: Add EXTISM_ENABLE_WASI_OUTPUT to inherit stdout/stderr (#446)
@mhmd-azeez pointed out that exposing an option like this can be very useful for debugging if the program is expecting to run in a full WASI environment. |
||
|
|
3ca661546d |
fix: toml manifests load the extism runtime (#447)
Just getting my feet wet with the codebase a little bit! I noticed that TOML manifests weren't loading the extism runtime by default while doing a walkthrough. This commit ensures the runtime is loaded and adds a test. Also, fix a tiny typo in a comment. |