* Variables may be included in the specification of a shell command
implementation; these will be expanded before generating the results
generator. These variable include `%(test-text)`, `%(test-file)`,
and `%(output-file)`.
* `falderal` now lets the user specify, on the command line, the
implementations for a named functionality. Supplying `-f 'foo:shell
command "foo.sh %(test-file)"'` has the same effect as including the
pragma `Functionality "foo" is implemented by shell command "foo.sh
%(test-file)"` in the Falderal file. Note that this is in addition
to the Functionality-definition pragmas given in the Falderal file;
to replace them, you must first clear the ones with that name from
the file by supplying `-c foo` on the command line.
* `falderal` also allows tests for named functionalities to be skipped
completely, by passing the name of the functionality to be skipped
after a `-k` flag on the command line.
* The Markdown formatter now formats Bird-style embedded code with
HTML embedded in the Markdown document. This is so that it can
be styled independently from, and thus distinguished from, any plain
Markdown indented code blocks which may appear in the literate portion
of the source code.
* In failure reports, the implementation of the functionality of the test
that failed is now reported in each failure.
* A race condition(?) that could occur when testing multiple implementations
of a functionality, of different kinds (Haskell and shell), has been
prevented. Both tests were writing to `results.txt` and immediately
deleting it, and this would sometimes confuse `falderal` into thinking
one had produced no results (perhaps a result of some creative
scheduling by `ghc`, although really, I haven't a clue.) Results are
now written to different temporary files with different, generated
names.
* Previously, if the output of a shell command being tested did not end
with a newline, the intermediate results file was not being generated
correctly, resulting in failures being misreported. This has been
recitified.
* Previously, if there were tests given in a Falderal file before any
Tests-for pragma was specified, those tests would just be ignored.
An error message is now issued, and no testing takes place.
* Previously, if multiple Falderal files were given on the command
line, they were simply concatenated when loaded, the result being
that Functionality-definitions from the first file were visible in
the second file, and that any Tests-for in effect at the end of the
first file would be in effect at the start of the second file.
Files are now loaded and processed seperately.