Releases: eprovst/cLC
v1.3.1
This release builds upon the last and adds some quality of life improvements.
You can download some example files here to get you started.
(Download cLC for Linux, for other platforms one could build from source.)
Changes
- Made
matchcheck if the provided variables actually exist. loadnow better supports relative loads.- Added
freecommand to unbind a global variable. - Improved binary size by compressing the executables.
Known issues
- On Windows the terminal colours are changed by the program, this is an upstream issue.
Nightlies for next version
See the _nightly binaries.
Current changes:
- Reimplemented in Rust. Seems to fix some long standing bugs. Is faster, but is sometimes plagued by stack overflows when doing large computations.
v1.3.0
This release adds support for free variables.
You can download some example files here to get you started.
(Download cLC for Linux and cLC.exe for Windows, both are 64 bit only, for other platforms one could build from source.)
Changes
- The library now has improved support for free variables (they can now be represented as a Free instead of a large enough De Bruijn index).
- The cLC now supports free variables.
- Fixed an issue where the cLC would crash when one of the provided globals is undefined, it now interprets an undefined global as a free variable instead.
- Improved handling of
=signs inletandwlet. - Improved handling of the
withkeyword inmatch. - Fixed cLC missing some eta reductions.
Known issues
- On Windows the terminal colours are changed by the program, this is an upstream issue.
v1.2.0
This release improves overall usability and some technical details of the application.
You can download some example files here to get you started.
(Download cLC for Linux and cLC.exe for Windows, both are 64 bit only, for other platforms one could build from source.)
Changes
- Removal of applicative order versions of commands in favour of concurrent execution of applicative order and normal order reduction.
- Made said concurrent execution more robust, calculations are now stopped on keyboard interrupt instead of ignored.
- Reduction of binary sizes.
- Fixed potential error where a substitution would result in a reference leak.
- Made String() and Serialize() functions slightly faster for large lambda terms.
- Reduced overall memory usage and increased performance.
- Replaced "fold ... into ..." by the more logical "match ... with ...".
- After calculations the cLC now actively tries to free memory.
Known issues
- On Windows the terminal colours are changed by the program, this is an upstream issue.
v1.1.0
Summary
This release of the cLC adds support for applicative order and includes a ton of internal improvements.
You can download some example files here to get you started.
(Download cLC for Linux and cLC.exe for Windows, both are 64 bit only, for other platforms one could build from source.)
Full overview
Changes
- This release uses a redesigned LamCalc resulting in generally faster results.
- This includes a rewritten String() function resulting in near instant output of even extraordinary long terms, for example 8! in Church encoding.
- Also the internal representation has been reworked to represent the definition of lambada terms, this is one of the changes that made applicative order possible to implement.
New
- Added applicative order.
- Improved comments, they can now be preceded by something else.
- The cLC catches more potential errors and gives more useful error messages.
- cLC now discards computation on interrupt (eg. Ctrl+C).
Fixes
- Fixed rare issue where normal order doesn't execute all possible reductions.
- Fixed
clearcommand on Windows.
Known issues
- On Windows the terminal colours are changed by the program, this is an upstream issue.
v1.0.0
Summary
The first release of the cLC, includes support for normal order reduction, weak head normal form,
global definitions, file import...
You can download some example files here to get you started.
(Download cLC for Linux and cLC.exe for Windows both are 64 bit only, for other platforms one could build from source.)
Known issue
On Windows the terminal colors are changed by the program, this is upstream, and the clear command doesn't work.