Skip to content

Releases: tchajed/goose

v0.4.2

20 Mar 18:21
a6633fc
Compare
Choose a tag to compare

Bump dependencies

v0.4.1

07 Dec 18:43
194a438
Compare
Choose a tag to compare

This release adds support for the async_disk FFI and uses the new ptrT type for opaque pointers.

v0.4.0

23 Sep 23:51
29139bd
Compare
Choose a tag to compare

This version includes improvements and bug fixes from @RalfJung, especially around control flow.

Many translations now include an extra unit value at the end like e; #(), hence the move from v0.3 to v0.4.

v0.3.1

24 May 00:04
8501897
Compare
Choose a tag to compare

Goose is now module-aware

Implement module-aware loading using golang.org/x/tools/go/packages to load source code (issue #9), rather than using ParseFile directly. This feature was implemented with @upamanyus, who helped figure out how Goose used to work and implemented the initial version of this feature.

It is no longer necessary to use GO111MODULE=auto or download the translated package's dependencies to $GOPATH to make Goose work. Dependencies are fetched from the module cache as in a normal module build.

In addition, this design allowed us to add the following features

  • It is no longer necessary to specify an FFI manually. The correct FFI
    will be determined by the presence of an import of the disk or dist_ffi
    packages; "none" is chosen if neither is imported.
  • Multiple packages under a single directory can be translated
    simultaneously, automatically using their package paths to determine the
    output directory. Loading multiple packages simultaneously is much
    faster.
  • (somewhat experimental) Translation works even on upstream
    dependencies not in the source tree, though they need to be in go.mod.
  • Goose now translates with the build flag "goose" set. Files can be
    skipped in the translation by simply adding // +build !goose with an
    empty line after to the top of the file, addressing issue #10.
  • The examples in the Goose repo automatically use the correct FFI based on
    imports, so we automatically have some tests using the generic FFI, addressing
    issue #19.
  • The goose binary's command-line interface is now tested directly in
    CI using BATS, a bash testing framework.