Repository navigation
Releases
Releases · pyrmont/wattle
v0.3.0
- Link the executables that
wattle build exebuilds for a musl target, such asx86_64-linux-musl, statically, so they start on a host without/lib/ld-musl-<arch>.so.1.--no-staticlinks them dynamically. A static executable cannot load a native module at run time other than those whose:fornames it. - Allow a
:nativelib ininfo.ednto compile C into the module.:c-sourceslists the C files,:c-includesthe include directories and:c-flagsthe flags for the C compiler.ExecutableNativeinbuild.zighasc_sources,c_includesandc_flagsfields. - Fix
wattle apps installhashing a local directory in full before refusing it as not an application. The hash failed when a file under the directory was removed during the walk or the tree held a symbolic link.
v0.2.2
- Strip debug information and the static symbol table from the executables that
wattle build exebuilds.--no-strip(-S) keeps them.ExecutableOptionsinbuild.zighas astripfield, false by default.
v0.2.1
- Strip debug information from the Windows release build and leave
wattle.pdbout of its archive. The archive shrinks from about 4.2 MB to about 2.1 MB. - Fix fetching a
:remotelib or an application from Git failing at random with "No such file or directory" for.git/objects/maintenance.lock. Git's automatic maintenance ran in the background while the clone was removed, and is now turned off for these commands.
v0.2.0
- Require Zig 0.17.0. A native module must be built with the same Zig version as the runtime, so a module built with 0.16.0 no longer loads.
- Declare the host's types, constants and functions in Zig, from Zig's standard library where it has them, in place of
@cImport. (@cImportwas removed in Zig 0.17.0.) - Build for macOS, Linux with glibc or musl, Windows with mingw, WASI and FreeBSD. Code for other platforms is removed.
- Write
ev/lock,ev/rwlockand the channel lock in Zig on every platform. Releasing anev/lockfrom a thread that does not hold it raises on Windows, as it already did elsewhere. - Remove the file watcher: the
filewatch/*functions, thefilewatch/watchertype and the-Dfilewatchbuild option. wattle buildandwattle testrun without the event loop. A build without processes refuses them with "is not supported without processes", and a reduced-OS build with "is not supported with reduced os".- Replace
wattle pkgwithwattle appsandwattle deps.wattle appshas install, upgrade, remove and list, andwattle depshas vendor, which copies each entry of:vendoredininfo.edninto the project. The verbs reinstall, update, clean and uninstall are removed. Thepkg/functions becomeapp/,dep/andbuild/functions, the:uninstallhook is:remove, and the hook script ishooks.wattleorhooks/init.wattle. - Install an application in
lib/wattle/apps/<group>/<name>under the prefix.info.ednneeds a:group, and a name is unique across groups. The manifest records:rev, the revision of the installed source. - Remove package dependencies:
info.ednno longer takes:dependencies, and the:postdepshook,pkg/topolistand:auto-removeare removed. - Declare what a project builds in the
:exes,:libsand:docsvectors ofinfo.ednin place of:artifactsand:man. A lib or a doc names the exes it belongs to with:for. An exe of type:sourceis installed as Wattle source and run byapp/run. A lib of type:remoteis fetched from a Git repository or a tarball and pinned by:hash. - Read
info.ednonly from the root of a project, not frompkg/. - A bare import searches the directories of the
:modpathbinding,.wattleandzig-out/libin a project, and finds only a lib thatinfo.edndeclares. It no longer searcheslib/wattleunder the prefix. The:prefix:replacement ofmodule/expand-path,module/add-prefix,app/add-file,app/add-directoryandapp/addare removed. - Add
crypto/hash,crypto/hasher,crypto/update!,crypto/digest,crypto/hmacandcrypto/equal?for SHA-256, SHA-512 and BLAKE3. - Give each subcommand its own man page, and add wattle-applications(7), wattle-dependencies(7) and wattle-projects(7).
- Fix
%wand%yprinting one pair of a map twice and omitting another when the map contains a larger map. - Fix
os/executeandos/spawnon Windows dropping an empty-string argument, and failing to pass a stream fromos/opento the child. - Fix a failed
wattle apps upgradenot restoring the previous application.
v0.1.1
- Strip debug information from the Linux release builds. On aarch64 the
wattleexecutable shrinks from about 11 MB to about 2 MB. The new build option-Dstrip=truestrips the executable in any build. - Fix a contract test that aborted in optimized builds on glibc.