Releases: fildesh/fildesh
Releases · fildesh/fildesh
v0.2.0
See v0.2.0 milestone issues or the full changelog.
New features:
stdoutcan be written to once per barrier (#155).- New
builtinandcommandbuiltins that unambiguously invoke a Fildesh builtin or system command (#158). - New
capture_stringbuiltin that echoes input lines containing a particular string. - New
cmptxtbuiltin that compares line-by-line, ignoring trivial differences in line endings. - New
sxpb2yamlbuiltin that converts Sxpb format to YAML. - Sxpb supports multiline strings, bare strings, toplevel arrays, and many more improvements (#152).
- See https://grencez.dev/2024/sxpb-string-grammar-20240717 for reference and examples.
- Also see examples in eg/ansible/motd.sxpb and eg/sxpb_string/grammar.sxpb.
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
Filenametype has been renamed asFilepath(#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:
sxproto2textprotobuiltin (#142).$(name),$(HF name), and$(H: name)syntax in scripts (#98, #97, #94).- Number-named positional argument variables (#99).
Deprecation:
- The
zecbuiltin has been renamed assplice. Planned for removal in v0.3.0 (#159).
v0.1.9
See v0.1.9 milestone issues or the full changelog.
New features:
- Sxproto data can be parsed with a specific schema in mind (#135).
- Cleaner sxproto syntax (#134).
- Data files are referred to with
.sxpbextension. - Quoted fields.
- No more repeated fields.
- Empty messages in an array are
()rather than(()).
- Data files are referred to with
- New
sxpb2jsonbuiltin (#128). - CMake FetchContent support (#132, #129).
Notable bugfixes:
- Abnormal termination cleanup was doing a double-close (#124).
v0.1.8
See v0.1.8 milestone issues or the full changelog.
New features:
- Script args after
--are provided as NUL-delimited output ofstdargzcommand (#110).- Use
xargzto call another program with those args.
- Use
- New
stderrcommand that can be called multiple times. Likewise in code,/dev/stderris safe to open/close multiple times as aFildeshOF(#107).
Notable bugfixes:
fildesh_log_trace()will now print something iffFILDESH_LOG_TRACE_ONis defined before#include <fildesh/fildesh.h>(#112).
Note: The released files are 1 testonly commit after the v0.1.8 tag.
v0.1.7
v0.1.6
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
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/nullwithout trying to actually access that file (#80). - Debian, Gentoo, and Docker packages.
Notable bugfixes:
v0.1.4
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}"createsmy_varby concatenating "hello " with the value ofworld_var(#66).
- E.g.,
- 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.
- Fildesh also gains a
- 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
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_stringbuiltin. It automatically replacestrfor single-character replacements (#56).
Library changes:
- Functions that introduce NUL bytes no longer work on
FildeshXslices (#57).- The new
while_chars_FildeshX(),until_chars_FildeshX(), anduntil_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()andskip_bytestring_FildeshX()functions may be useful too, especially given a NULL bytestring to simply progress without a memcmp.
- The new
v0.1.2
See v0.1.2 milestone.
- Back to not using Bzlmod by default (#43).
fildesh_test()andspawn_test()Bazel macros have moved to//:dev.bzl.- Spawn tool escapes Windows args now (#48).
- New
expect_failurebuiltin (#46). - New
fildespawntool to make simple commands easier (#45). - Named args can be passed to
fildeshlike-a name=valueto populate$(XA name)variables (#41).