Skip to content

Releases: mvm-sh/mvm

v0.5.0

Choose a tag to compare

@github-actions github-actions released this 23 Jun 18:16
Immutable release. Only release title and notes can be modified.

Changes since v0.4.2

  • doc: update to v0.5.0 (15a53ca)
  • fix type layout, increase number of stubs, regen compat matrix (ac52f50)
  • fix anonymous struct field type name, slices, receiver (13e3bbb)
  • fix exported const of unexported named type (f3c35d1)
  • fix embedded interfaces (25da927)
  • goparser: fix generic instanciation (1ae3e22)
  • stdlib: caller-skip in runtime, synth shape for ServeHTTP (79fac4e)
  • fix interface wrappers (e319992)
  • fix typed const, parsing constraints (3962c5c)
  • skip test depending on FMA on gonum.org/v1/gonum/plot (32efeca)
  • fix untyped const (4ad1341)
  • stdlib: add sub-word packed structs (a5877c9)
  • add float support to word-shaped stubs (1651953)
  • fix forward declarations in RHS (c712281)
  • update compat matrix (c20a149)
  • fix const extract, regen stdlib wrappers (72c40f5)
  • comp: improve interface method resolve (43cfce9)
  • vm: intercept call to runtime.Goexit (f0d101d)
  • vm: add GreaterEqualFloat/LowerEqualFloat (8c5a4b1)
  • fix import aliasing keys, normalize panics (8e9f35f)
  • stdlib: add some word-shaped stubs (3d1375a)
  • fix float32/complex64 constant overflow, method expressions (eaad2af)
  • stdlib: more stubs (65ac984)
  • add word-shaped stubs for some interfaces (2f0a312)
  • fix make cover (avoid go internal compiler error) (5ed737c)
  • refactor tests (51faf04)
  • vm: fix constant type in set expression (b8b2695)
  • comp: fix return followed by a logical expression (7c72080)
  • comp: fix interface method resolution to use symbolic type (ffa8d21)
  • fix embedded field type, promoted native methods (640d179)
  • fix embed recording, reservation ordering (496a8ba)
  • fix reflect type materialization for complex types (9aafa2d)
  • compat: update (9b24373)
  • compat: add categories (fdb009c)
  • compat: increase external packages to grpc, gonum (dbd685d)
  • fix map keys from const, **reflect.Value (662d5ac)
  • mtype: fix interface satisfaction signature matching (06dd01b)
  • stdlib: add new word-shaped stubs for gonum/graph (d2b44b1)
  • goparser: fix multi-assign on '_,ok' type (cef027d)
  • fix iter on maps (324ca24)
  • fix interfacce method inferencce (b9df7d1)
  • handle Ctrl-C in tests (b9c1afc)
  • comp: fix untyped numeric constant to default to float64 (3f043e8)
  • fix aliasing func parameters, skip long running gonum/mat tests (ee66154)
  • modfs: cache network imports (707d8da)
  • refresh local-var symbols at unit entry (686a12f)
  • improve embedded interface in struct (09176ac)
  • vm: fix struct embedding interface (6ba56eb)
  • vm: fix use of named scalar at reflect boundary (38c08c1)
  • increase synth method table, fix slice identity loss (6c3f691)
  • fix captured var in select, reroute readfile through modfs (8a851c2)
  • goparser: evaluate LHS in op-assign only once (0f9e96a)
  • comp: fix stack overflow in defer expressions (8c5d571)
  • improve interface bridging (971d4d8)
  • fix extract package name (71f050f)
  • fix undiscoverable tests (5978e5e)
  • fix pkgname encoding, add new stubs (efd3b57)
  • comp: fix rebind on define (ca73acf)
  • comp: fix code generation (27d0f99)
  • vm: fix iter.Pull2 with less than 2 vars (1e98271)
  • stdlib: add new word-shaped stubs (f37fded)
  • comp: fix cross-package init ordering (7180c8a)
  • comp: fix promoted method through embedded interface field (1ac3810)
  • goparser: fix named native type (2e10e4c)
  • goparser: fix forward type in struct field or func (67dc2d1)
  • goparser: fix pkg qualifier (6ddffde)
  • fix package import names and resolution (5ce9b13)
  • improve handling interfaces (c28851b)
  • vm: fix bridged pointers in generic instances (fa94fe0)
  • goparser: fix multi lhs assign (074bb69)
  • avoid race in materialize (725d4d7)
  • stdlib: add stub for net.Conn (1b47e46)
  • vm: fix IO interface (6f71aa9)
  • vm: fix map of deep interfaces (55bf1c0)
  • rework log wrapper to keep bridged interfaces (6e3c99d)
  • add new word-shaped stubs for netConn (383e8bd)
  • fix type convert, regenerate stdlib wrappers (018b2ea)
  • fix receiver detach for defer (83b26f7)
  • fix unexported promoted method, MaxInt32 overflow (b883e13)
  • stdlib: skip protobuf/proto alloc tests (5b69f59)
  • vm: fix keys for interface-typed map (c3ce186)
  • vm: raise panic in case of nil deref (62ddd6c)
  • goparser: fix type identity in deref expr (f61714d)
  • goparser: fix unsafe pointer deref (0c0537c)
  • vm: add more reflect constructor intercepts (92163b2)
  • add reflect.Type.Method intercept shims (0ebf370)
  • fix method-bearing derived structs (35cce33)
  • generalization of type materialization fixes (36d6ea3)
  • fix type materialization (2430bbd)
  • fix generic type inference, update matrix (66f6eeb)
  • vm: fix promoted method on nil pointer receiver (c3ab512)
  • goparser: speedup local var indexing (3bb94bd)
  • Merge branch 'main' of github.com:mvm-sh/mvm (544b636)
  • dump stack on Ctrl-C. Ctrl-C again to quit (b8095e0)
  • print compiler stats with MVM_DEBUG_COMP (229aa90)
  • goparser: improve speed of method resolution (8d0bf6e)
  • compat: refresh matrix (2026-06-15) (36c1378)
  • comp: fix composite with nil slice/maps (9d0dc04)
  • mtype: fix compatible type check (7d501cb)
  • goparser: fix check generic constraint (7802553)
  • interp: fix synth types slot reservation (54af495)
  • com, interp: fix ordering of package inits (5bfd805)
  • fix test recompile (1c03b20)
  • fix test reparse (31222b9)
  • improve tests (1cb0b86)
  • speed up test in case of skipped test files (30e232c)
  • vm: fix embedded interface (c57b130)
  • fix make (da535af)
  • goparser: fix self-referential generic types (b5b0102)
  • add more stubs for grpc (3996f29)
  • goparser: fix qualified composite types (c09b0e6)
  • vm: fix assert with nil ptr (5a05e87)
  • goparser: fix reused declared type (c741da2)
  • vm: fix recursive types (f455938)
  • goparser: add support for //go:embed directive (2240f10)
  • stdlib: increase size of word-based stub pool (fdb79c7)
  • vm: the protoreflect FileImport blocker (c44608b)
  • goparser: fix blank const (0e5c480)
  • goparser: fix type/var collision due to autoimport (a58bd26)
  • additional fixes for gonum (888634a)
  • fix operand type misinference, compares, nil (6ade433)
  • add arithmetic operators for complex, fix import collision (f3e5f87)
  • Merge pull request #35 from mvertes/word-synth2 (ba79d42)
  • compat: update matrix (82dcf7f)
  • fix typed nil comparison (3c217e2)
  • fix pointer-receiver method expressions (8413e9c)
  • fix named return slot zeroing (c4268a8)
  • vm: strong funcFields for funcvals lifetime (4687e1f)
  • vm: add trampolines for reentrance calls (8c44d8d)
  • vm: fix interface wrapping for iterators (734a190)
  • vm: fix crash on method receiver (312f8d4)
  • vm, runtype: improve resolve dispatch for methods args (f9f8806)
  • second attempt to word-based dispatch (210a9a4)
  • fix self-referential and composite types (32006db)
  • stdlib: skipp noalloc tests in xxhash (803be01)
  • fix spread calls, multi-assign, redeclare, global blank (8d56a5e)
  • compat: update matrix (bf08988)
  • fix synth stub recv argument (80a54da)
  • fix in TestMain and vm.assignSlot (946413f)
  • symbol: fix MethodByName ranking (2fe9f9d)
  • vm: fix a synth-bridge receiver bug (c478acd)
  • compat: refresh matrix (2026-06-11) (ba40e80)

v0.4.2

Choose a tag to compare

@github-actions github-actions released this 11 Jun 09:30
Immutable release. Only release title and notes can be modified.

Changes since v0.4.1

  • vm: fix unboxing interface values (6f639fd)
  • comp: fix an issue in returning nil (cd91fd8)
  • fix nil channel, map of pointer, captured pointer (48b24d4)
  • goparser: avoid label collisions (7f42dbe)
  • fix collisions between labels and vars, add stub for rune (3c7f23a)
  • fix switch operand stack leak, variadic spread and materialize (10af5d9)
  • goparser: fix issues in arrays and interfaces (4dd1a2d)
  • stdlib: fix incompat checks for sync (ac56846)
  • vm: fix deep unbox cycle hang, fix incompat checks (40fe327)
  • goparser: fix assign forms in range (6349a53)
  • vm: fix typed nil func wrapper (f4c9bbd)
  • fix type identity for synth methodless named types (5e8e9f4)
  • fix comp rollback, MethodByName, symbol lookup (2e337e9)
  • comp: fix handling const in shift operators (f4008bb)
  • stdlib: add stubs for log/slog interfaces (8dc4a15)
  • fix interface wrappers (8a8ee4f)
  • vm: fix promoted synth methods (db374ab)
  • vm: fix promoted synth methods (a833114)
  • fix cell pointers and conditional promotion (eb93824)
  • vm: fix TypeBranch for native interface (39e61ec)
  • comp: fix SetGlobal (75e6ca3)
  • improve deferred panics and diagnostics (74031c6)
  • vm: improve native panic diagnostic, fix variadic values (f0f3a3c)
  • provide shims to call asm funcs, like syscalls (1c6478e)
  • vm: fix data race in type materialization, by mutex (3c3df97)
  • compat: refresh matrix (2026-06-09) (3166c6b)

v0.4.1

Choose a tag to compare

@github-actions github-actions released this 09 Jun 09:32
Immutable release. Only release title and notes can be modified.

Changes since v0.4.0

  • release v0.4.1 (a534e40)
  • stdlib: skip long tests in golang.org/x/text/unicode/norm (3b7e94b)
  • vm: fix MkMap to apply len and cap args (9408d95)
  • fix mutual struct cycle causing OOM (eaf75e9)
  • goparser: fix placeholders for forward declarations (9dbc22a)
  • fix lint (d563f34)
  • goparser: fix generic type param collision with package symbol (fc9e70d)
  • goparser: do not allocate parameters in func type declaration (9d00270)
  • fix typed converted numeric values (84ce582)
  • goparser: fix pointer in literal composite (b2d33b1)
  • chore: lint modernize (4cc8db0)
  • fix lint (999adfd)
  • vm: fix iterator memory leaks (aae60f7)
  • goparser: fix switch/select case clause (e710bf4)
  • stdlib: skip long tests in github.com/oklog/ulid/v2 (1265c46)
  • Merge branch 'main' of github.com:mvm-sh/mvm (9ef5fd8)
  • goparser: detect redeclaration and prevent clobbering (e8f1a6e)
  • compat: refresh matrix (2026-06-08) (a8d23a9)
  • vm: fix in send in channel, improve goroutine diagnostic (8e49cdc)
  • improve typeswitch and test command (61d94a0)
  • comp: fix defer for expression call (8717597)
  • eval: fix a reentrance issue (460ea41)
  • vm: make sure values read from unexported field are writables (b0d3f1d)
  • fix parsing postfix index (df87bd4)
  • goparser: correctly identify postfix index (609f9ba)
  • goparser: enhance diagnostic in case of parse error (e541d48)
  • test: execute interpreted external tests in addition of internals (9017b86)
  • update compat matrix (a104093)
  • fix some issues on self-referential types (25be6b0)
  • vm: fix setting name on self-referential fields (4574874)
  • symbol: fix promoted methods on recursive struct (ac11ba8)
  • fix file by file compile in test harness and build constraints (1fb8907)
  • goparser: fix generic forward ref instanciation (0c991b3)
  • generics: simplify mangling (28e69a3)
  • generic: fix inference through named generic instance (61b9d80)
  • vm: maintain value identity for interpreted funcs (a20082c)
  • update compat matrix (d28cd73)
  • compat: refresh matrix (2026-06-05) (86f66c8)

mvm v0.4.0

Choose a tag to compare

@github-actions github-actions released this 05 Jun 09:30
Immutable release. Only release title and notes can be modified.

mvm v0.4.0

Mvm is a Go interpreter: it compiles source to bytecode and runs it on a stack
VM, ships as a single static binary with the full standard library bundled in,
and embeds in Go or C host programs. Status is still alpha.

This release reworks how interpreted types meet native Go code, grows standard-
library and third-party compatibility substantially.

Highlights

  • Native-speed interface dispatch. Method dispatch now synthesizes a real
    Go reflect type carrying the interpreted method set, replacing the old
    per-call interface-bridge + argument-proxy layer and ~1800 lines of
    hand-written shadow packages. An interpreted type can now satisfy several
    native interfaces at once (e.g. Stringer and json.Marshaler), and
    reflect-walking native code sees interpreted methods on nested struct fields.
    (ADR-021)
  • More real Go runs. 90 of 169 bridged stdlib packages and 16 of 50 curated
    external modules now pass their full upstream test suite under mvm test,
    with many more passing a majority. Newly green this cycle include errors,
    text/tabwriter, log/log/slog, html/template, io/fs, runtime/debug,
    and go/types.
  • Preliminary complex numbers, multi-file mvm run a.go b.go, and
    cross-language benchmarks (Go, Lua, Python) under bench/.
  • Faster. Sieve of Eratosthenes drops from 100 ms to 32 ms (-68%), beating
    lua5.4 on that benchmark by ~14%.

Notable changes

Changed

  • Generics inference reworked: type parameters bind through the symbol table by
    identity rather than name-substitution, closing a class of inference gaps
    (slices/maps now infer at parity with go build).
  • Interface satisfaction is signature-aware (Unwrap() []error no longer
    spuriously satisfies interface{ Unwrap() error }).
  • slices, maps, and testing/quick are now fully interpreted rather than
    bridged.

Fixed

  • The zero value of a map/slice variable is now nil, matching Go; composite
    literals and make stay non-nil, and a write to a nil map is a recoverable
    panic.
  • Remote modules with a major-version suffix (v2+) resolve correctly
    (e.g. github.com/blang/semver/v4).
  • Many parser, generics, numeric, and native-boundary fixes.

Removed

  • The hand-written shadow bridge packages (errorsx, fmtx, jsonx, xmlx,
    gobx), superseded by synthesized rtypes.

Full details in the CHANGELOG.

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 22 May 12:28
Immutable release. Only release title and notes can be modified.

mvm v0.3.0

A Go interpreter that compiles to bytecode and runs on a small stack VM — single
static binary, full standard library bundled, embeddable in Go and C.

Added

  • clear builtin (maps and slices) — the last builtin mvm was missing.
  • comparable as a generic constraint, plus broader generics-parsing improvements.
  • mvm run <import-path> fetches and runs a remote main package; trailing args
    become its os.Args.
  • mvm test runs and validates Example* functions (output checked against the
    // Output: comment), and -bench REGEX runs benchmarks through native testing.
  • -stat prints compile/execute statistics on both run and test.
  • interp.ExitError lets embedders catch interpreted os.Exit / log.Fatal* as a
    typed error instead of terminating the host (ADR-018).
  • cmd/mvmlint, a small linter for mvm-specific code patterns.
  • Stdlib bridges for encoding/gob; encoding/xml round-trips via a new xmlx
    shim (interpreted xml/Text marshalers work through native encoding/xml
    in both directions).
  • Native method hooks and composite interface bridges (one interpreted type
    satisfying several native interfaces at once).
  • Test infrastructure to run the Go standard library's own external _test.go
    suites against mvm's reflect bridges.

Changed

  • Exit virtualization (os.Exit, log.Fatal*) is now unconditional and wired
    automatically on the first Eval (ADR-018).
  • Load/parse/compile errors report file:line:col with a source snippet and a
    caret; runtime panics print a unified interpreted + native stack.
  • mvm test -stat prints the stats block after the test output, just before
    PASS/FAIL.
  • Build targets split: make test (race only), make cover (coverage), and a new
    make fast (-short + race) for a quick inner loop.

Fixed

Numerics (untyped-constant/float mixing, zero value, per-frame cache),
pointer-receiver method lookup and interface wrapping, type switches
(TypeBranch + interface-wrapper edges), and generics/inference (no type loss in
multi-return; inference on func-typed params), among others. Full list in
CHANGELOG.md.

Also new: a live compatibility matrix

https://mvm.sh/compat — mvm now runs the real test suites of the standard
library and ~50 popular packages through the interpreter every week and publishes
per-package pass / partial / fail with a trend over time. ~96% of individual test
cases pass today; the generator is itself a Go program run through mvm. Honest
numbers on purpose.


Try it in the browser: https://mvm.sh/playground
Install: go install github.com/mvm-sh/mvm@latest
Questions & feedback: https://github.com/mvm-sh/mvm/discussions

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 18 May 18:34
Immutable release. Only release title and notes can be modified.

Changes since v0.1.0

  • add CHANGELOG.md (e651dd6)
  • comp: improve range error messages (c074d7a)
  • goparser: handle mixed keyed/unkeyed slice elements (1bc62b7)
  • vm: add CallImmFast for non struct/array args. Clean dead code. (faf4008)
  • fix handling import to _ (aaac727)
  • vm: fix races around ActiveMachine (4fd7def)
  • vm: fix races around ActiveMachine (3f13f72)
  • vm: address ActiveMachine races (a70218a)
  • vm: fix interface bridges for identical structural types (8314289)
  • comp: fix multi-return assign and numeric convertion (3c499ef)
  • fix transitive capture for nested closure (19e9ed4)
  • test: chdir to source. Also handle nil receiver. (45a547c)
  • vm: fix passing wrapped array/struct by value and receiver methods (39a1372)
  • vm: fix an issue in IfaceWrap (e3a3b69)
  • vm: fix truncation in shift, and not (&^) (cc98050)
  • revert previous and instead fix qualified method lookup. (52d4c0e)
  • comp: detect passthrough for native callbacks (63d792d)
  • vm: handle concurrency in CallFunc according to Go spec rules (95e35d5)
  • vm: refactor CallFunc to avoid per-callback allocation snowballing (9a322a7)
  • goparser: fix cross-pkg func name collision. Improve test runner. (51e4618)
  • goparser: fix an issue in reuse stale LocalVar symbol (713466f)
  • vm: fix an issue in Value.Equal (5b38b6e)
  • vm: fix issues in bitops (e85c094)
  • vm: virtualize reflect.ValueOf to preserve mvm metadata in methods (31df0db)
  • fix an issue in interface bridging (79773d8)
  • comp: fix an issue in globlal var slot allocation (14435db)
  • fix an issue on ':=' rebinding (2037dbf)
  • add support for reflect.TypeFor (04a4ef9)
  • fix an interface dispatch regression on native types (cf9d3d3)
  • fix a regression introduce by qualified name symbols refactor (a90b667)
  • improve transitive import of packages (ce8aa68)
  • fix a spurious bytecode fuse (3343bc2)
  • goparser: used fully qualified symbol names to avoid collisions (1543a72)
  • refactor symbol naming for cross-pkg definitions. WIP (eef891c)
  • fix issue in cross-pkg definitions. WIP (15fab96)
  • fix cross-package issues in handling func/label (0ebbc1a)
  • fix an issue in interface bindings (db782e6)
  • goparser: avoid same var names collisions between different packages (1c321c5)
  • improve parsing of composite literals with array-type keys (d54dcf0)
  • goparser: fix issues in block and composite parsing (777734b)
  • scan: provide source content access methods for inspection (488a465)
  • goparser: fix an issue on handling methods on typed constants (c6f3074)
  • fix a SIGSEGV panic on import "golang.org/x/text/language" (a70cfb4)
  • update docs (16815d7)
  • goparser: add support to '// +build' old form of build tags (867a74c)
  • fix: error instead of panic in case of malformed expression (278f345)
  • stdlib: isolate symbols brought in go1.25+ for compatibility (6c948e2)
  • fix an issue in parser which was hanging extract on net/http (0526a0c)
  • cli: align test flags on "go test" (84ccdab)
  • docs: update, add usage.md (a57c017)
  • vm: improve trace layout (97f3bef)
  • vm: move some opcode out of Run() to release register pressure (e6e8397)
  • simplify -x trace flag. Add ability to trace bytecode execution. (e9765b8)
  • vm: add tracing mode in Eval on -x or MVM_TRACE=1 (c7cc6e3)
  • CI: pin golangci-lint to reuse it (6cc73ee)
  • CI: skip regenerate all stdlib at each commit, add periodic check (3ca524b)
  • improve stdlib generation by extract (41ec2c0)
  • skip comments at scanner level, no need to filter them in parser (bb41f29)
  • fix a regression in comment handling in type expressions (cf5d739)
  • update docs. Remove comp/dump.go (41be6b6)
  • CI: install stringer for generate (c55a65a)
  • drop matrix, full generate for go1.26 (c04c762)
  • generate stdlib and stdlib/src.zip (aea4ca7)
  • use github.com/mvm-sh/std as the module to provide stdlib packages. (0d440cc)
  • update stdlib wrappers to go1.26.3 (0c12eaf)
  • Improve stdlib bridges and wrappers for named slices (1955db3)
  • fix vm intercept side table to use uintptr, no unsafe (d986360)
  • fix embedded method bridges (513ac9e)
  • fix CI test failure with arithmetic pointer error (1a01cdd)
  • add errors bridge (36253f9)
  • improve stdlib bridges and wrappers (d204f8d)
  • fix parse literal composite field names, avoid comp rollbacks (3476879)
  • improve closure naming, vm sentinel collisions, errors.Is (42e96fb)
  • fix an issue in composite literals with non-constant keys (0820cfd)
  • bound size of runtimeFuncMeta used in virtual frames (9fa207d)
  • virtualize callframes and intercept methods at native/interp boundary. (209facb)
  • stdlib: add format bridge for fmt.Formatter (4304799)
  • improve interface bridges to mix native interfaces and scripted methods (31cce8f)
  • fix handling methods on pointer receivers (4fcbb9b)
  • vm: allow interface methods on unexported fields through unsafe (39cff31)
  • improve handling of defined types in struct, embeddded and composite (c59122f)
  • fix comment handling in blocks and before statements (902e544)
  • scan: fix handling comment line, no ';' insertion in that case (9f04527)
  • add version command, update issue templates (5544a84)
  • update readme, add issue template for one liners (03b6235)
  • scan: emit only one semicolon for multiple blank lines (8590df5)
  • fix multi-value index assign, interface bridges for equality (566e9fe)
  • Optimize var deps analysis by calling it only when necessary (6cb778d)
  • improve var init ordering analysis in parser (308d546)
  • fix test driver by ordering test func names (41b5aea)
  • fix reflect.DeepEqual and '==' in presence of wrappers (a5044ad)
  • Fix method metadata loss in cross-package types. Improve jsonx. (6845ff7)
  • fix zeroing local vars after grow for pointer on struct (434cbec)
  • apply dynamic network imports to test command, update docs (39edc91)
  • comp: improve error diagnostic and file positions (5c98a68)
  • improve interface match for concrete types (bfd2802)
  • goparser: fix comment handling in case clauses (c07126e)
  • goparser: improve diagnosing parsing errors and file positions (790a3fd)
  • Merge branch 'main' of github.com:mvm-sh/mvm (8e45d3f)
  • add support for dynamic network imports via Go module proxy (14e451c)

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 04 May 10:05
Immutable release. Only release title and notes can be modified.

Initial release.

Commits

  • setup a release workflow (4a94968)
  • simplify implementation of test command (db1fb0f)
  • Add shebang support (399c862)
  • cosmetics (34cf2f4)
  • fix lint (eb2b881)
  • vm: inline Grow in Call/CallImm when possible (b1c7721)
  • fix stdlib changes between go1.25 and go1.26 (0f2d6a1)
  • extract: Adjust buildtags to support both go1.25 and go1.26 (c294bf4)
  • fix CI to use go1.25 and go1.26 (fadbe4b)
  • update docs, format extracted files, improve README. (332ad65)
  • update README (fd5d4d4)
  • add more examples, a new CONTRIBUTING.md and fix README.md (6b24cd2)
  • checkin stdlib categories (43e302e)
  • fix stdlib lint errors (d53efb0)
  • reorganize stdlib in a trimmed core, and remaining ext sub-packages. (887e5a9)
  • add a BSD-3 style license. Update README (0938432)
  • fix extract and add missing stdlib bindings. (cec7007)
  • add various tests in _samples/ from parscan (bfc12bb)
  • import cmd/extract from parscan (838dca5)
  • initial import from mvertes/parscan commit d7aa040 (c861d89)