- Last updated: 2024-10-08T20:41:04Z
- Generator: thi.ng/monopub
All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.
Note: Unlisted patch versions only involve non-code or otherwise excluded changes and/or version bumps of transitive dependencies.
2.0.0 (2024-08-18)
- update WASM module dependency handling (31f0358)
- BREAKING CHANGE: update WASM module dependency handling
- add
WasmModuleSpec
interface to declare WASM modules with their deps - update
WasmBridge
ctor to accept array of module specs - add buildModuleGraph() to process dependencies & init modules from specs
- add/update docstrings
- update tests
- add
- add ObjectIndex.addUnique() (e79275d)
- add MemoryView types (b621adc)
- add internal memory view accessors (6830337)
- these accessors are shared by various types generated via @thi.ng/wasm-api-bindgen and help to drastically cut down filesize of generated code
- update pkg exports
- update ObjectIndex ctor, make opts fully optional (564e0f3)
- update internal array mem accessors (b442d92)
1.6.0 (2024-06-21)
- update build script & readme for Zig v0.13.0 (cd401b2)
1.5.0 (2024-04-22)
- update build script for zig v0.12.0 (incomplete) (99a1916)
- store existing script as build-v0.11.zig
- update build script for zig v0.12.0 (incomplete) (d4fcc54)
- store existing script as build-v0.11.zig
- re-add -rdynamic flag in build.zig (f509d1e)
1.4.69 (2024-04-20)
- update type usage (ab27740)
1.4.54 (2024-02-22)
- update all
node:*
imports (c71a526)
1.4.32 (2023-11-09)
- update all tests (packages T-Z) (020ef6c)
1.4.13 (2023-08-04)
1.4.12 (2023-07-14)
- update zig build script (ac0f375)
- use non-deprecated
std.Build.Step.Compile
type
- use non-deprecated
1.4.10 (2023-06-29)
- temporarily disable
WasmLibOpts.out
due to Zig build updates (cf63c04)
- Zig v0.11-dev syntax updates (83a1c7b)
1.4.0 (2023-02-17)
- add build script for Zig v0.11.0-dev (4c8abcb)
- update build-v0.11.zig build script (fe7c24c)
- single source of truth for core module names
- rename .mode => .optimize (as per new zig nomenclature)
- add autodoc generation option
1.3.0 (2023-02-05)
1.2.0 (2022-12-01)
- add build script for user projects (7164f5e)
1.1.0 (2022-11-28)
- update panic handler, add event support (ab940d9)
- update panic handler to broadcast event w/ panic message
- only throw Panic error if no listeners could be notified
- add
EVENT_PANIC
constant
1.0.0 (2022-11-23)
- remove codegen parts (188f56b)
- BREAKING CHANGE: all codegen parts migrated to new pkg: @thi.ng/wasm-api-bindgen
- remove all obsolete types, deps & files
- see 2c02dc674 for start of new pkg
- add hexdump methods (95c91ed)
- add printHexdump()/hexdump()
- add/update printHexdump() (65efaf4)
- migrate printHexdump() to WASM core API
- add WasmStringSlice.setAlloc() (b0f6f9d)
- add function pointer & i/usize codegen support (2e67bc5)
- add FuncPointer top-level type for codegen
- add isize/usize type aliases
- extend/refactor all codegens
- update WasmTarget & presets
- add opaque pointer support (83d4b94)
- add optional pointer support (92a28e7)
- update ZIG codegen
- add codegen IDs, conditionally skip code generation (7146cae)
- add ICodeGen.id & update codegens
- add TopLevelType.skip option to suppress generation for some langs
- update generateTypes()
- update & rename pkg (formerly wasm-api-timer) (668f3dd)
- rename types form
TimerXXX
=>ScheduleXXX
- add WASM auto-initializer hook
- update readmes
- rename types form
- update string handling & default string type (86dee41)
- update WasmStringSlice & WasmStringPtr
- update .setAlloc() impls
- update Zig code gen to use
[:0]const u8
as default string format for easier interop and compatibility w/extern struct
s
- update generated types & string handling (686f867)
- switch to extern structs for generated types
- switch to zero-terminated pointers for string values
- update/rename/simplify API methods, remove obsolete
- fix string attrib handling/alloc sizes
- add JSON schema for codegen typedefs (1291c5c)
- switch to
extern struct/union
only, add slice polyfills (ca65edc)- [zig] emit only
extern
structs/unions - [zig] remove (somewhat obsolete) support for packed structs/unions (KISS)
- remove
.tag
option fromStruct
/Union
- remove
- [zig/c] update codegens preludes
- add declarations of
XXSlice
/XXMutSlice
type aliases
- add declarations of
- rename
Field.tag
:scalar
=>single
- [ts] add
Field.skip
to suppress codegen for individual fields - update JSON schema
- set default
string
impl toptr
(previouslyslice
) - add internal
clasifyField()
helper to simplify conditionals in codegens - add/update various internal type predicates
- update CodeGenOpts.pre/post to support string arrays
- [zig] emit only
- use new backend in all codegens (33fc814)
- update slice handling using auto-generated wrapper structs
- add support for multi-item pointers
- add support for enum pointers/arrays/slices
- add slice types to wasmapi.h & types.zig
- add more cases to FieldClass
- update classifyField()
- update all codegens to use new classifier based code templates
- add/update codegen tests/fixtures
- add Pointer64 (still unused) (f1eef25)
- update CLI type checks (1d4cc59)
- re-add missing optional type
?
prefix [zig] (3e3b4cd) - fix user code handling in TS codegen prelude (c435caa)
- update WasmStringSlice.setSlice() (f278cfd)
- rename _printStr0() => printStrZ() (666546c)
- update/extract C types & core API (9eb827e)
- migrate JSON schema, update readme & pkg (a6d9c3a)
0.18.1 (2022-11-01)
- fix TS code gen array mem mapping (a0e7132)
- use correct type size for array mem mapping
- update test fixtures
0.18.0 (2022-10-31)
- update WasmBridge & child API module specs (6773494)
- update IWasmAPI interface to declare import ID & module dependencies
- update WasmBridge ctor (array instead of object of sub-modules)
- update WasmBridge.init() to initialize modules in dependency order
- replace illegalArgs() with assert()
- add @thi.ng/arrays as dependency, update pkg
0.17.3 (2022-10-31)
- restructure/rename zig files, update readdme (c63ca10)
- enforce uniform project structure for all
[@thi.ng/wasm-api-](https://github.com/thi-ng/umbrella/tree/main/packages/wasm-api-)*
packages - rename /zig/wasmapi.zig => /zig/lib.zig
- update readme w/ further info
- enforce uniform project structure for all
0.17.1 (2022-10-30)
- update zig codegen to ignore uppercase enum config (3258f91)
- idiomatic zig enums are lowercase
- update config docs
0.17.0 (2022-10-29)
- update default value format & handling (c7752fb)
- update Field.default to support lang-specific alts
- add defaultValue() helper
- update zig codegen
- fix idempotence checks for self-referential types (2c3f670)
- update prepareType()
0.16.0 (2022-10-28)
- update docstring & user code codegen config (68694ba)
- allow doc strings & user codes to be given as string array (lines)
- add InjectedBody type to support multiple injection sites (e.g. TS interface declarations vs. wrapper impls)
- update TS & Zig codegens
- add internal ensureLines() helper
- update IWasmMemoryAccess & impls (bb8a3ca)
- add MemorySlice tuple to describe a memory region
- update allocate() & free() to use MemorySlice, migrate to IWasmMemoryAccess
- migrate growMemory() to IWasmMemoryAccess
- add MemorySlice to default imports in TS codegen
- update TS docstring generator (5a060b6)
- include native/WASM type in docstring (use Zig type sigs)
- update ensureLines() helper
- update test fixtures
- fix ensureLines(), update tests & fixtures (f8a4668)
0.15.0 (2022-10-26)
- add WasmTarget codegen opt & usize support (62c049b)
- add/update codegen alignment logic (9c19ad9)
- add AlignmentStrategy & impls
- update alignOf(), sizeOf(), prepareType()
- extract DEFAULT_CODEGEN_OPTS
- add Struct.align config option
- add codegen support for union types (bbc1f98)
- add Union type, update TopLevelType
- update all codegens (C,TS,Zig)
- update alignOf(), sizeOf()
- update selectAlignment()
- import ManagedIndex, migrate Zig API (d8bb3ee)
- migrate ManagedIndex from @thi.ng/wasm-api-dom
- move all Zig sources from /include => /zig
- update pkg
- fix padding in Zig packed structs (8d70cf6)
- since packed structs can't contain
[n]u8
types, generate padding as potentially multipleuXXX
fields
- since packed structs can't contain
- fix i64/u64 handling in sizeof() (825add3)
- update CLI wrapper to allow unions (904716c)
- minor updates C & Zig codegens (a94e1cc)
- rename types, use predicates (4148e1e)
- rename StructField => Field
- update codegens to use more predicates instead of inline checks
0.14.0 (2022-10-17)
- update IWasmMemoryAccess (28bfff6)
- add IWasmMemoryAccess.ensureMemory()
- update WasmBridge.setString() to ensure memory
- ensure memory in WasmStringSlice/Ptr (c55c6f0)
- add Zig Slice & String wrappers (28d057e)
- allows expressing & converting slices for
extern struct
s
- allows expressing & converting slices for
- add ptrCast() zig helper (72a9406)
0.13.0 (2022-10-04)
- add WasmStringSlice.setSlice() (50cc798)
- update C11 code gen (ff8037f)
- add
#ifdef __cplusplus
guards to pre/post
- add
- lazy eval log message args (3e13397)
0.12.0 (2022-10-03)
- add doc string word wrapping (c0b8e15)
- update prefixLines(), add target line width arg
- update ICodeGen & CodeGenOpts
- update all codegens
- update deps
- add default value support for Zig codegen (3c37ae7)
- add ReadonlyWasmString, update impls (240a148)
- add support for sentinels & user type body injection (d240046)
- update sizeOf() to include sentinels
- add TopLevelType.body for extra user code
- update Zig codegen to:
- support array/slice sentinels
- add optional user code injection
- add
std
import header
- update CLI (98d2414)
- add optional type analytics JSON output
- add support for including user code via
@
-file references - update config
@
-file refs to resolve relative to config file
- minor fix word wrap line width (053ba0f)
- update zig panic handler sig for latest zig master version (cb51bf6)
0.11.0 (2022-09-21)
- update core API & bindings (b185ea5)
- add _panic(), timer(), epoch() core API fns
- update printI/U64() fns to accept bigint
- update C & Zig bindings
- update tests
- add clang-format
- add WasmString wrappers (18d8fcb)
- still unused (to be added to TS codegen)
- WasmString codegen integration (97fc318)
- update TS codegen to wrap strings using new
WasmString
orWasmStringPtr
- update global codegen options handling, now passed to each codegen
- update TSOpts & ZigOpts to include custom pre/post
- update TS codegen to wrap strings using new
- major update codegens, string & pointer handling (4f02295)
- update/fix string wrappers (
WasmStringSlice/Ptr
) - add generic
Pointer
wrapper - add
const
field type support - add applyIndents() formatter fn, simplify all codegens
- major update TS & Zig codegens
- update/fix string wrappers (
- update CodeGenOpts (b9fd7ff)
- update TS codegen (array pointers) (30360f2)
- add C11 support, update codegens & config (590311e)
- add preliminary C11 codegen
- add optional
tag
field for structs (extern/packed) - add support for auto-labeled padding fields
- i.e. defined via unnamed fields with
pad
value
- i.e. defined via unnamed fields with
- move debug config option to global
CodeGenOpts
- update codegen CLI (435ad2b)
- add C11 support
- add support for padding fields (in
validateTypeRefs()
) - add CLI arg for forcing string type impl
- update deps
- update/fix codegens & config (87def23)
- add global
CodeGenOpts.uppercaseEnums
option (migrate from TSOpts) - set
i32
as enum default tag (for C compatibility) - update C11 codegen, add
typePrefix
option - fix C11 enum codegen (use
typedef enum
) - add internal enumName() helper
- minor updates Zig codegen
- add global
- refactor CodeGenOpts, update CLI config handling (fa2e30f)
- extract CodeGenOptsBase interface for common pre/post config
- update CLI config loading to support loading pre/post contents
from separate files (if value given as
@path/to-file.ext
)
0.10.0 (2022-08-24)
- add events, update allocator handling (89416b1)
- add INotify impl for WasmBridge
- emit event when WASM memory has changed (e.g. to recreate user views)
- reverse logic so that NO allocator is used by default and instead must be explicitly enabled (rather than disabled)
- update Zig & C bindings
- add/update docstrings
0.9.0 (2022-08-23)
- add debug() core API function (ca01978)
- update setString() return value (116dd0b)
- always only return num bytes written w/o sentinel
0.8.0 (2022-08-16)
- add preliminary string handling support (3da4efe)
- update/rename IWasmMemoryAccess (add string getter/setter)
- update StructField.type (add
string
) - add CodeGenOpts.stringType option
- update codegen fns
- update TS & Zig codegen impls
0.7.0 (2022-08-15)
- update helper predicates (65b23d4)
- update TSOpts & TS codegen (4f6bbbf)
- add
uppercaseEnum
option to force UC enum IDs
- add
- add CLI wrapper for codegens (683a560)
0.6.0 (2022-08-15)
- update allocate/free() fns, update Zig core API (8a55989)
- add _wasm_free() Zig impl
- add printFmt() Zig fn
- update WasmBridge.allocate() (add clear option)
- update WasmBridge.free()
- ensure memory in WasmBridge.getString()
- add/update docstrings
- add bindings code generator framework (17ee06f)
- add/update deps
- add preliminary codegens for Zig & TS
- add supporting types & utils
- add generateTypes() codegen facade fn
- update codegens, add opts, fix alignments (5c1fec5)
- add global CodeGenOpts
- update generateTypes() to consider new opts
- add global USIZE type (for pointer sizes & codegens)
- add options for Zig codegen (extra debug helpers)
- simplify TS codegen
- fix sizeOf() for struct fields
- make prepareType() idempotent
- add C11 header/include file, update WasmBridge (a67dc00)
- migrate headers/includes to /include
- rename "core" import section => "wasmapi"
- rename WasmBridge.core => WasmBridge.api
- update pkg file
- extract WasmMemViews interface, update test WASM (4c73e65)
0.5.0 (2022-08-08)
- add memory allocation (980c1f2)
- add WasmBridge.allocate()/free()
- add WasmBridge.growMemory()
- extract WasmBridge.ensureMemory()
- update WasmExports
- update Zig bindings (configurable allocator, GPA as default)
0.4.0 (2022-08-07)
- use named import objects (4965f20)
- switch to name import objects to avoid merging into flat namespace
- update externs in core.zig
- update docstrings
0.3.0 (2022-08-04)
- major update WasmBridge, add types (47aa222)
- add WasmExports base interface
- add generics for WasmBridge & IWasmAPI
- update WasmBridge.init() arg (full WASM exports, not just mem)
- add WasmBridge.exports field to store WASM module exports
- add naming conflict check in WasmBridge.getImports()
- add WasmBridge.instantiate, add/update accessors (0698bae)
- add WasmBridge.instantiate() boilerplate
- add setters for typed scalars & arrays
- rename derefXX() => getXX() getters
- update tests
- add i64/u64 support/accessors (768c8bd)
0.2.0 (2022-08-01)
- fix zig slice pointer handling, use named child modules (bd7905a)
- major update ObjectIndex (4547f1f)
- add ObjectIndexOpts ctor options
- add IDGen for internal ID generation/recycling
- add iterators
- rename existing methods
0.1.0 (2022-08-01)
- import as new pkg (eda4840)