Skip to content

Releases: innative-sdk/innative

inNative Runtime v0.2.0

24 Dec 12:33
Compare
Choose a tag to compare

This is a major feature release of inNative for Windows and Linux, focused on standardizing on cmake, switching to using vcpkg, and adding NixOS support.

  • Updated to LLVM 13
  • Bumped minimum C++ standard version to C++17
  • Overhauled JIT to reduce LLVM source hacks to just one
  • Switched to vcpkg on windows and deprecated the LLVM fork
  • Completely changed directory structure to better align with Linux while still theoretically allowing cross-platform compilation
  • Added Nix flake
  • Removed Docker support
  • Removed flatpak support
  • Removed Makefiles
  • 32-bit rebuilt files no longer provided
  • Removed llvm build script for both platforms.
  • The static lib version of innative no longer includes all of LLVM, because on windows with multiple architectures this created a library larger than 4 GB.

Windows

Windows includes an installer for the runtime package that installs and registers the runtime to run WebAssembly files. However, even if you download the portable zip file version, you can always install it using ./innative-cmd.exe -i.

Windows SDK

Windows Runtime

inNative Runtime v0.1.10

18 Jan 11:50
Compare
Choose a tag to compare

This is a major feature release of inNative for Windows and Linux, focused on fixing the build system to make it more reliable on Linux. This is to compensate for the fact that it is not possible to easily build portable binaries for Linux because LLVM cannot work in holybuildbox. As a result, no more Linux binaries will be provided, and instead CMake should be used to compile from source.

  • Deprecated Makefiles in favor of CMake projects. (#33)
  • Added #49 WASM instruction execution counter
  • Added #26 full assemblyscript support
  • Added #20 option to set a custom start function
  • Fixed #71 edge-case when processing debug information
  • Fixed #72 absolute paths when using shared libraries
  • Fixed incorrect llvm::Twine usage
  • Changed logging to use a callback function
  • Stopped using greedy allocator for memory intensive debug information
  • Fixed excessive memory usage during WAT parsing

Windows

Windows includes an installer for the SDK and runtime package that installs and registers the runtime to run WebAssembly files. However, even if you download the portable zip file version, you can always install it using ./innative-cmd.exe -i.

Windows SDK

Windows Runtime

inNative Runtime v0.1.9

28 Aug 01:12
Compare
Choose a tag to compare

This is a bugfix release of inNative for Windows and Linux, improving the JIT and debugging. Note that because this release involves a change to LLVM, you will need to redownload LLVM or recompile the fork.

  • Partially fixed CI testing
  • Fixed improper use of functions across DLL boundary
  • Improved JIT error reporting
  • Fixed debug variable scoping issue
  • Modified LLVM's JIT to support loading DLLs from .lib files

This release features contributions from @Connicpu

Windows

Windows includes an installer for the SDK and runtime package that installs and registers the runtime to run WebAssembly files. However, even if you download the portable zip file version, you can always install it using ./innative-cmd.exe -i.

Windows SDK

Windows Runtime

Linux

Linux does not currently have a .dpk installer, so only portable versions are offered. Linux also only offers 64-bit compiled versions, for the moment. However, you can still install it using sudo ./innative-cmd -i. There is also a flatpak package available.

Linux SDK

Linux Runtime

inNative Runtime v0.1.8

08 Jul 07:28
Compare
Choose a tag to compare

This is a major feature release of inNative for Windows and Linux, focused on implementing recent feature proposals merged into the current WebAssembly spec, and introducing an optional JIT compiler to assist with rapid iteration without requiring a separate WebAssembly runtime.

  • Add #35 Threads support according to the current proposal
  • Add #53 JIT support in addition to AoT compilation.
  • Add #54 Bulk Memory operations according to the current proposal
  • Add #39 Multi-value support, which was recently standardized.
  • Add #9 non-trapping conversion instructions, which were recently standardized.
  • Add #10 sign-extension operators, which were recently standardized.
  • Fix __chkstk implementation on windows
  • Remove homogeneous functions and replace them with generic accessors that all use void(char* params, char* returns) which can be used for evaluating parameters and results at runtime.
  • Introduced a flag that will eventually be required when __cdecl function wrapping is re-introduced, necessary to deal with multiple returns.
  • Introduced JIT-specific versions of GetFunction/GetTable/GetGlobal/etc.
  • Fixed an ABI issue on 32-bit windows.
  • Added preliminary Nix support to simplify Linux compilation

This release features contributions from @Connicpu

Windows

Windows includes an installer for the SDK and runtime package that installs and registers the runtime to run WebAssembly files. However, even if you download the portable zip file version, you can always install it using ./innative-cmd.exe -i.

Windows SDK

Windows Runtime

Linux

Linux does not currently have a .dpk installer, so only portable versions are offered. Linux also only offers 64-bit compiled versions, for the moment. However, you can still install it using sudo ./innative-cmd -i. There is also a flatpak package available.

Linux SDK

Linux Runtime

inNative Runtime v0.1.8-RC1

16 Jun 03:15
Compare
Choose a tag to compare
Pre-release

This is a release candidate build of inNative, only intended to test out new features.

  • Add #35 Threads support according to the current proposal
  • Add #53 JIT support in addition to AoT compilation.
  • Add #54 Bulk Memory operations according to the current proposal
  • Add #39 Multi-value support, which was recently standardized.
  • Add #9 non-trapping conversion instructions, which were recently standardized.
  • Add #10 sign-extension operators, which were recently standardized.
  • Fix __chkstk implementation on windows
  • Remove homogeneous functions and replace them with generic accessors that all use void(char* params, char* returns) which can be used for evaluating parameters and results at runtime.
  • Introduced a flag that will eventually be required when __cdecl function wrapping is re-introduced, necessary to deal with multiple returns.
  • Introduced JIT-specific versions of GetFunction/GetTable/GetGlobal/etc.
  • Broke everything on Linux :-)

This release candidate has a known bug with the JIT test failing in debug mode, and fails some of the webassembly core tests.

Windows

Only zip files have been made available for this release candidate.

Linux

Not available for this pre-release.

inNative Runtime v0.1.7

27 Apr 02:51
Compare
Choose a tag to compare

This is the LLVM 10 upgrade #52 , and comes with a new prebuilt LLVM version, which now includes both LLD and LLVM by necessity. A change in LLVM 10 means that you cannot use LLVM built with C++14 with a project that uses C++17 - you must recompile the entire project. As a result the entire LLVM project has to be recompiled for inNative, even though the only fork changes are in LLD. As an upside, this has significantly simplified packaging.

  • Upgrade to LLVM 10
  • Simplify LLVM packaging
  • Fix missing void type check in debug info
  • Improve handling of invalid clang debug information by only skipping to the next function instead of skipping the debug information entirely.
  • If is_stmt is found, only emit debug lines for those statements to improve debugging experience.
  • Refactor hash iterators to remove a use-after-free memory error
  • Fix PDB handling for certain kinds of arrays.
  • Fix code offset when compiling multiple files.

Windows

Windows includes an installer for the SDK and runtime package that installs and registers the runtime to run WebAssembly files. However, even if you download the portable zip file version, you can always install it using ./innative-cmd.exe -i.

Windows SDK

Windows Runtime

Linux

Linux does not currently have a .dpk installer, so only portable versions are offered. Linux also only offers 64-bit compiled versions, for the moment. However, you can still install it using sudo ./innative-cmd -i. There is also a flatpak package available.

Linux SDK

Linux Runtime

inNative Runtime v0.1.6

15 Mar 05:43
Compare
Choose a tag to compare

This is a bugfix release that improves debug handling and removes some of the harsher checks for tags, allowing debug info parsing to continue even if unexpected tags are encountered.

  • Ignore unexpected DWARF tags
  • Fix array parsing for DWARF
  • Add proper array debugging to NatVis
  • Autoserialize WASM modules with no debug info so you can step through the WAT representation
  • Fix variadic function parameter handling in DWARF
  • General refactoring and cleanup

Windows

Windows includes an installer for the SDK and runtime package that installs and registers the runtime to run WebAssembly files. However, even if you download the portable zip file version, you can always install it using ./innative-cmd.exe -i.

Windows SDK

Windows Runtime

Linux

Linux does not currently have a .dpk installer, so only portable versions are offered. Linux also only offers 64-bit compiled versions, for the moment. However, you can still install it using sudo ./innative-cmd -i. There is also a flatpak package available.

Linux SDK

Linux Runtime

inNative Runtime v0.1.5

25 Feb 20:49
Compare
Choose a tag to compare

This is a major feature release for the inNative Runtime for Windows and Linux, focused on improving debugging support in Visual Studio:

  • Full WebAssembly debugging support has been added for Visual Studio using NatVis.
  • All internal functions now use C-linkage by default, which bypasses some of the external wrappers. This makes debugging easier and allows tighter integration with the host.
  • #48 Fixed step-in behavior on Visual Studio when debugging
  • Added ReplaceTableFuncPtr, which is designed to let you bind host C functions to webassembly function pointers, but requires a fairly complex workaround.
  • innative.h now properly recognizes webassembly mode
  • A workaround was implemented to compensate for a serious bug in clang's generation of debug information
  • Debugging in general has been refactored out of the compiler to make it easier to manage different formats.
  • Memory allocation was completely rewritten to use VirtualAlloc, which allows reserving the entire maximum size available if it is provided, which will prevent the allocation from ever moving.
  • AddEmbedding now accepts a name_override parameter which allows functions in that embedding to be resolved via (import "name_override" "function_name"), even if they are not in the module_WASM_function naming format.
  • Debugging format can now be forced to PDB or DWARF on any platform.

Windows

Windows includes an installer for the SDK and runtime package that installs and registers the runtime to run WebAssembly files. However, even if you download the portable zip file version, you can always install it using ./innative-cmd.exe -i.

Windows SDK

Windows Runtime

Linux

Linux does not currently have a .dpk installer, so only portable versions are offered. Linux also only offers 64-bit compiled versions, for the moment. However, you can still install it using sudo ./innative-cmd -i. There is also a flatpak package available.

Linux SDK

Linux Runtime

inNative Runtime v0.1.5-RC1

18 Feb 12:53
Compare
Choose a tag to compare
Pre-release

This is a release candidate build of inNative, only intended to test out new features.

  • Full WebAssembly debugging support has been added for Visual Studio using NatVis.
  • All internal functions now use C-linkage by default, which bypasses some of the external wrappers. This makes debugging easier and allows tighter integration with the host.
  • #48 Fixed step-in behavior on Visual Studio when debugging
  • Added ReplaceTableFuncPtr, which is designed to let you bind host C functions to webassembly function pointers, but requires a fairly complex workaround.
  • innative.h now properly recognizes webassembly mode
  • A workaround was implemented to compensate for a serious bug in clang's generation of debug information
  • Debugging in general has been refactored out
  • Memory allocation was completely rewritten to use VirtualAlloc, which allows reserving the entire maximum size available if it is provided, which will prevent the allocation from ever moving.

Windows

Only zip files have been made available for this release candidate.

Linux

No Linux build is available for this release candidate.

inNative Runtime v0.1.4

30 Nov 05:36
Compare
Choose a tag to compare

This is a major feature release for the inNative Runtime for Windows and Linux, with the following exciting new features:

  • Added #28 sourcemap support for generating debug information. inNative now automatically looks for a sourceMapURL section in a webassembly module and will generate debugging information for your original source files instead of the resulting webassembly.
  • Added automatic sourcemap generation for C++ debug information. When compiling webassembly with clang, the debug information gets attached as a custom section in the webassembly module. inNative can detect this and automatically generate a sourcemap for your C++ source files, which makes it easy to add proper debugging support.
  • Manual editing of in-memory WebAssembly modules was added by #24 exposing schema manipulation functions.
  • A metadata function was exposed and used to lift the constant requirement on #29 _innative_funcptr
  • Custom symbol exports can now be specified on Environments
  • The entire command line was redone to make it more expandable, which will be used to add more features later on. Command line arguments are no longer case sensitive, and the help is automatically generated.
  • Lingering intermediate file problems were fixed in the testing harness.
  • Breaking changes were made to the ABI in several places that will require some minor refactoring.

Windows

Windows includes an installer for the SDK and runtime package that installs and registers the runtime to run WebAssembly files. However, even if you download the portable zip file version, you can always install it using ./innative-cmd.exe -i.

Windows SDK

Windows Runtime

Linux

No precompiled linux binaries are available for this version of the SDK right now, sorry!