v0.12.0
This release features a whole number of changes, improvements, and additions compared to the previous one.
New Features
- Introduced a character-type alongside our existing string/number/list types.
- Introduced the use of real format strings for printf and sprintf.
- Added a REPL mode, as is traditional for lisp interpreters.
- Added support for binary and hexadecimal (numerical) literals.
- Added new list primitives
intersection
,member
, andunion
.- Committed in de2e700.
- Added the special form
(symbol)
. - Added
substr
. - Implemented numerical conversion functions
(base)
, and(number)
. - Added a lot of test functions in lisp-tests.lisp.
Changes
- Aliased functions are reported as such when displayed by the CLI driver.
- Simplified the implementation of our main driver,
main.go
. - Added example sorting-routines in 2924190
- insertion-sort, written in lisp.
- quick-sort, written in lisp.
- And a benchmark showing which was faster.
- Code is present in sorting.lisp.
- Moved the implementation of
(nth ..)
from lisp to the golang core. - Updated our
(append)
to work in a way that makes more sense.- This was triggered by our sorting.lisp example file needing some work to run.
- Reported in #74, closed in #77.
- Document the usage of the rlwrap tool to provide completion to the REPL.
Regressions?
None known.
Future Plans?
I'd like to take a stab at implementing structures, as reported in #82. But beyond that I have nothing specific scheduled, or planned.
Personally I'm using this application to provide an embedded scripting language for a hardware-related project, some of the code there could be moved here, but I've not yet decided if that makes sense. (Specifically I'm thinking about operations working on bits, and logical operations such as and
, or
, xor
.)