cryptol v2.5.0 Release Notes

Release Date: 2017-07-25 // over 6 years ago
  • Cryptol 2.5.0

    ๐Ÿš€ This release includes a re-written interpreter which is generally faster and has fewer strictness-related edge cases, major enhancements to the performance of the type checker, and a variety of smaller additions and bug fixes.

    โž• Added

    ๐Ÿ†• New update and updates functions provide an efficient, built-in
    way to replace elements of a vector.

    ๐Ÿ†• New trace and traceVal functions print messages as they are being
    evaluated, which can be helpful for debugging.

    ๐Ÿ†• New short-cutting operators /\, \/ and ==> now exist. The older
    && and || operators are strict, and have higher precedence.

    ๐Ÿ†• New experimental :eval command evaluates an expression using
    a reference interpreter, which we created to ultimately serve as the
    official definition of the Cryptol semantics. This interpreter is less
    ๐Ÿ’… efficient than the normal one, but written in a very direct style meant
    to clearly describe the meaning of each language construct. For this
    ๐Ÿš€ release, the semantics of the reference interpreter are not considered
    final and still subject to change.

    ๐Ÿ†• New prover-stats setting in the REPL, when enabled, causes the
    ๐Ÿ–จ :prove and :sat commands to print information about the time taken
    and prover used to coplete a proof.

    The :help command now shows information about precedence and fixity
    of operators.

    The cryptol executable returns a non-zero exit code when proofs
    fail.

    ๐Ÿ†• New prelude function: iterate

    ๐Ÿ†• New example: MISTY1

    ๐Ÿ”„ Changed

    ๐Ÿ’… The main Cryptol interpreter has been re-written in monadic style,
    which allows much greater control over the order of evaluation, and
    ๐ŸŽ generally improves performance.

    ๐ŸŽ The type-checker has had a major overhaul, improving performance
    dramatically in many cases.

    ๐ŸŽ Overall, performance is generally better.

    ๐Ÿ†• New command line option --color makes use of color text output
    ๐Ÿ”ง configurable.

    ๐Ÿ–จ With :set ascii=on, the REPL now prints quotation marks around
    strings.

    Cryptol now depends on version 7.0 or greater of the SBV library.

    ๐Ÿ›  Fixes

    ๐Ÿ›  Fix an off by one error in the implementation of split.

    ๐Ÿ›  Fix a typo in the implementation of the >> operator.

    ๐Ÿ›  Fix the pdiv and pmod primitives in the special case where the
    length of the dividend is less than the degree of the divisor polynomial.

    ๐Ÿ›  Fix an issue where literal sequences of bit values were being
    incorrectly reversed.

    ๐Ÿ“š Various documentation fixes.

    Close issues #138, #268, #334, #362, #373, #388, #395