Skip to content

Releases: eprovst/cLC

v1.3.1

07 Nov 20:36

Choose a tag to compare

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 match check if the provided variables actually exist.
  • load now better supports relative loads.
  • Added free command 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

26 Oct 06:24

Choose a tag to compare

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 in let and wlet.
  • Improved handling of the with keyword in match.
  • 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

16 Jul 07:10

Choose a tag to compare

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

02 Feb 19:15

Choose a tag to compare

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 clear command on Windows.

Known issues

  • On Windows the terminal colours are changed by the program, this is an upstream issue.

v1.0.0

26 Dec 15:17

Choose a tag to compare

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.