This repository has been archived by the owner on Jul 7, 2024. It is now read-only.
0.5.0
Pre-release
Pre-release
Libraries
- [@zardyh] Add optional arguments to lambdas via a macro.
- [@zardyh] Add
block
tourn/control/prompt
. - [@zardyh] Use
else
instead oftrue
in cond blocks. - [@zardyh] Add
defmethod
anddefgeneric
. - [@SquidDev] Allow fetching
arg
from the varargs if it is not defined. - [@SquidDev] Fail gracefully if
os.getenv
oros.exit
are not defined. - [@zardyh] Change
eq?
andpretty
to usedefgeneric
. - [@zardyh] Add
defstruct
. - [@SquidDev] Add a primitive directed graph manipulation library.
- [@SquidDev] Make
c[ad]+r
generation more robust. - [@zardyh] Improve
do
, an add a complimentarydo-list
. It is encouraged to use these instead offor-each
. - [Everyone] Improve documentation and add more examples.
Compiler
- [@SquidDev] Improve stdlib location detection and allow specifying stdlib path through the
URN_STDLIB
environment variable. - [@zardyh] Add roman numeral support to parser. Use the
r
format specifier (#rMDCLXVI
). - [@SquidDev] Add
plugins/doc-test.lisp
tool, to generate tests from examples in docstrings. - [@SquidDev] Add a code coverage profiler (
--profile=coverage
) and run it on tests. - [@SquidDev] Add
readline
andlinenoise
support to the REPL. - [@zardyh] Allow using
'
as a thousands separator.
Optimiser/Codegen
- [@SquidDev] Fix codegen crash when calling constants.
- [@SquidDev] Make optimiser replace truthy values with true in
cond
. - [@SquidDev] Fix codegen issues on tail-recursive functions where no variables changed.
- [@SquidDev] Wrap constants in parentheses when indexing them.
- [@SquidDev] Warn when definitions are potentially accessed before being defined.
- [@SquidDev] Reduce
letrec
intolet
where possible. - [@SquidDev] Improvements to
(id x)
reduction, allowing lambdas and structs to be reduced. - [@SquidDev] Localise the most commonly used variables when we have too many.
- [@SquidDev] Unify binding handling, fixing several issues with variadic arguments.
- [@SquidDev] Write many tests for codegen and optimiser.