Skip to content

Releases: fildesh/fildesh

v0.2.0

15 Sep 21:45
v0.2.0
96a8a1e

Choose a tag to compare

See v0.2.0 milestone issues or the full changelog.

New features:

  • stdout can be written to once per barrier (#155).
  • New builtin and command builtins that unambiguously invoke a Fildesh builtin or system command (#158).
  • New capture_string builtin that echoes input lines containing a particular string.
  • New cmptxt builtin that compares line-by-line, ignoring trivial differences in line endings.
  • New sxpb2yaml builtin that converts Sxpb format to YAML.
  • Sxpb supports multiline strings, bare strings, toplevel arrays, and many more improvements (#152).

Notable bugfixes:

  • Comments were not ignored in some parts of a script (#148).
  • Failing lines of a script did not always print line number and it wasn't always accurate (f513d6e).

Breaking:

  • The Filename type has been renamed as Filepath (#161).
  • Public Bazel macros have been moved to their own files in //tool/bazel/ (#146).
  • Sxpb arrays now look like (a (()) 1 2 3) (e9421eb).

Removal:

  • sxproto2textproto builtin (#142).
  • $(name), $(HF name), and $(H: name) syntax in scripts (#98, #97, #94).
  • Number-named positional argument variables (#99).

Deprecation:

  • The zec builtin has been renamed as splice. Planned for removal in v0.3.0 (#159).

v0.1.9

11 Nov 21:51
ee4811d

Choose a tag to compare

See v0.1.9 milestone issues or the full changelog.

New features:

Notable bugfixes:

  • Abnormal termination cleanup was doing a double-close (#124).

v0.1.8

13 Mar 07:02
175e6cf

Choose a tag to compare

See v0.1.8 milestone issues or the full changelog.

New features:

  • Script args after -- are provided as NUL-delimited output of stdargz command (#110).
    • Use xargz to call another program with those args.
  • New stderr command that can be called multiple times. Likewise in code, /dev/stderr is safe to open/close multiple times as a FildeshOF (#107).

Notable bugfixes:

  • fildesh_log_trace() will now print something iff FILDESH_LOG_TRACE_ON is defined before #include <fildesh/fildesh.h> (#112).

Note: The released files are 1 testonly commit after the v0.1.8 tag.

v0.1.7

18 Dec 13:51
e646b2c

Choose a tag to compare

See v0.1.7 milestone issues or the full changelog.

New features:

  • A --version flag (#103).
  • C++ iostream-style headers (#106).
  • Multi-line S-expressions (#101).

Notable bugfixes:

  • Normal Filename variables are no longer deleted upon exit (#102).
  • Double quotes in strings can be escaped (#104).
  • Debian package is now built on an older system for glibc compatibility (#109).

v0.1.6

26 Nov 11:17
64446e3

Choose a tag to compare

See v0.1.6 milestone issues or the full changelog.

New features:

  • Very basic Vim syntax (#82).
  • Create filename variables like (: my_filename Filename "my_filename.txt") and access it like $(XOF my_filename) instead of as a string (#83).
  • Create string variables from environment vars like (: my_var Str (?? .self.env.THE_ENV_VAR "default value")) (#84).
  • Create string variables from options/flags like (: my_var Str (?? .self.opt.the_flag_name "default value")) (#84).

Notable bugfixes:

  • Debian package now uses root owner instead of normal user (#93).

v0.1.5

12 Sep 10:09
171c865

Choose a tag to compare

See v0.1.5 milestone issues or the full changelog.

New features:

  • Temporary files can now be declared with $(tmpfile my_var) and referenced with $(XOF my_var) (#68).
  • Builtins can write to /dev/null without trying to actually access that file (#80).
  • Debian, Gentoo, and Docker packages.

Notable bugfixes:

  • A script will exit early if it fails before a $(barrier) (#72).
  • Scripts can be read from stdin without errors (#73).
  • Bazel tests use the temporary directory provided by Bazel (#81).

v0.1.4

23 Aug 08:02
7227fa8

Choose a tag to compare

See v0.1.4 milestone issues or the full changelog.

Major language improvements!

  • Strings that can be derived at parse time can be concatenated!
    • E.g., $(> my_var) "hello ${world_var}" creates my_var by concatenating "hello " with the value of world_var (#66).
  • Environment variables can be obtained as strings by calling $(getenv MY_ENV_VAR) (#67).
    • Fildesh also gains a -setenv "MY_ENV_VAR=some value" flag to set environment variables.
  • Scripts can be split into stages by placing $(barrier) between them (#61).
    • It's somewhat restricted. Only string variables persist across barriers.
  • Builtin commands can open a random data source as /dev/urandom (no file reading takes place! #60).

v0.1.3

13 Apr 10:11
1bddffb

Choose a tag to compare

See v0.1.3 milestone or the full changelog.

Minor language improvements:

  • Variables defined with $(> var) or $(H var) can now be used directly as input files and streams like $(XF var) and $(X var) (#51).
  • New replace_string builtin. It automatically replaces tr for single-character replacements (#56).

Library changes:

  • Functions that introduce NUL bytes no longer work on FildeshX slices (#57).
    • The new while_chars_FildeshX(), until_chars_FildeshX(), and until_bytestring_FildeshX() functions should be used for instead. The first 2 needed to leverage SIMD instructions (SSSE3-only for now) to perform as well as NUL-terminated versions.
    • The new peek_bytestring_FildeshX() and skip_bytestring_FildeshX() functions may be useful too, especially given a NULL bytestring to simply progress without a memcmp.

v0.1.2

20 Mar 08:26
777c8e9

Choose a tag to compare

See v0.1.2 milestone.

  • Back to not using Bzlmod by default (#43).
  • fildesh_test() and spawn_test() Bazel macros have moved to //:dev.bzl.
  • Spawn tool escapes Windows args now (#48).
  • New expect_failure builtin (#46).
  • New fildespawn tool to make simple commands easier (#45).
  • Named args can be passed to fildesh like -a name=value to populate $(XA name) variables (#41).

v0.1.1

27 Feb 11:21
3f1a8a7

Choose a tag to compare

Bazel 5 with bzlmod.