v0.11.0
This release features the addition of many new primitive functions, whether added to the golang core, or the standard library which is implemented in lisp itself.
We also restored test-coverage back to 100% in all our internal packages.
In brief the changes were:
- Moved date/time functions into either "date:" or "time:" namespaces as appropriate.
- Added new file functions
(file:lines)
,(file:read)
,(file:stat)
, etc - Restored our test-coverage to 100%
- Added a builtin function
(alias)
to alias functions. - Added
(directory:walk)
to our standard-library. - Added
(random)
to choose a random integer. - Overhauled our README.md and documentation.
- 100% consistency when functions are invoked with invalid counts of arguments
- Implemented in #45.
- Correctly pad hours, minutes, and seconds in the output of
(hms)
- Allow the use of regular expressions to select which help to view.
- Allow writing to files, via
(file:write ..)
- Use
(alias)
to define(first)
and(rest)
, rather than using duplication. (range)
now uses the upper bound inclusively.- This means
(nat 10)
and(seq 10)
now stop at 10, not 9.
- This means
- Added a new "-v" flag to our binary, to show our version.
- Fixed the division function such that "(/ x)" is the same as 1/x.
- Allow
(= .. )
(numerical equality test) to accept arbitrary arguments. - Added
(/= ..)
function, for numerical inequality testing.
Regressions
The only know regression is the failure to build this release upon Windows platforms, this was resolved in #60.
However I have still postponed the handling of #22:
- Half of me thinks we leave as-is.
- The other half of me thinks that we could add hacks.
- But as noted they will spread, due to potentially arbitrarily deep nesting of scopes/environments.
- Finally the third half of me thinks we could be even more explicit, via the use of some
(upvalue ..)
-like solution.- Explicit here means that we're being very explicit the author must mentally consider scopes, and adding a new form is more explicit than a magical third-argument to
(set!..)
- Explicit here means that we're being very explicit the author must mentally consider scopes, and adding a new form is more explicit than a magical third-argument to
Future Plans
- Nothing obvious springs to mind, though no doubt minor changes and additions will occur to me.
Feedback?
Something missing? A regression broke your build? Please file an issue.