[curry] New PAKCS and KiCS2 releases

From: Michael Hanus <mh_at_informatik.uni-kiel.de>
Date: Tue, 16 Apr 2024 11:10:05 +0200

Dear friends of Curry,

I'd like to inform you about some changes and new features
in the recent releases of the Curry systems PAKCS (3.7.0)
and KiCS2 (3.1.0). These new release include two (hopefully useful)
bigger changes:

1. The libraries for encapsulating search, in particular,
    set functions, are now part of the base libraries, i.e.,
    they can be directly used without depending on any package.

    Set functions are available by importing the module

        Control.Search.SetFunctions

    It has the same interface as the old package `setfunctons`, see
 
https://cpm.curry-lang.org/DOC/base-3.2.0/Control.Search.SetFunctions.html
    for the API documentation.

    Furthermore, there are also modules

        Control.Search.AllValues and Control.Search.Unsafe

    containing more primitive "all values"-like operations where
    the order of results might depend on the scheduling strategy.

    Actually, there is also an operationally complete implementation of
    Curry, Curry2Go (https://www-ps.informatik.uni-kiel.de/curry2go/),
    where non-determinism is implemented by lightweight threads
    so that the order of non-deterministic results might differ
    between different runs.

2. In previous releases, the case mode of identifiers were free,
    i.e., there were no constraints (upper/lower case)
    on identifers, as specified in the Curry report.
    Since this caused sometimes confusion to users,
    the current releases support a new "Curry" case mode, which is
    the default: the Curry mode is identical to the Haskell mode
    (variables, type variables, and functions start with a lower case
    letter, type and data constructors start with an upper case letter)
    but a warning (instead of an error) is emitted if the Haskell mode
    is not obeyed. The old behavior (without warnings) can be
    enforced by putting the line

        {-# OPTIONS_FRONTEND --case-mode=free #-}

    in the head of the module, i.e., by explicitly setting the
    free case mode.

More details are available in the manuals of the systems.
As before, there are also docker images (currylang/pakcs and
currylang/kics2) with the newest releases available.

Comments and suggestions are welcome!

Best regards,

Michael
_______________________________________________
curry mailing list -- curry_at_lists.rwth-aachen.de
To unsubscribe send an email to curry-leave_at_lists.rwth-aachen.de
https://lists.rwth-aachen.de/postorius/lists/curry.lists.rwth-aachen.de
Received on Di Apr 16 2024 - 11:11:17 CEST

This archive was generated by hypermail 2.3.0 : Mi Mai 01 2024 - 07:15:15 CEST