Changes to version 3.3.0:
:typefor expressions with free variables corrected.
Monadcontext are specialized to
newtypedeclarations integrated into the compiler. Thus, the FlatCurry files produced by the front end contain
newtypedeclarations which are eliminated before the Prolog code is generated.
Changes to version 3.2.0:
(=:<=)changed from external to defined operations that call the external operations
nonstrictEq, respectively. This is meaningful to keep the
(=:<=)whereas external operations have no class contexts.
pakcsinitrcis no longer used.
Changes to version 2.3.0: bug fixes and
aValue(non-deterministic value generator) added to the prelude. For each
Datainstances for the defined type are automatically derived as long as the defined type is first-order (i.e., does not contain functional types). Free variable have type class constraint
Data. The motivation for this design and its advantages are described in a DECLARE/WFLP'19 paper.
ReadShowTermremoved (now available in packages
System.Processis available in package
process. The rest remains in the library.
lib/Prelude.curryis written to
lib/.curry/pakcs-3.2.0/Prelude.fcy(and similarly all other intermediate files). This avoids inconsistencies of intermediate files when different Curry systems are used.
Changes to version 2.2.0:
updatecommand and support for caret and tilde comparison operators in dependency descriptions)
Changes to version 2.1.2: bug fixes and
Changes to version 2.1.0: bug fixes and
chrdefined as total operation
Changes to version 2.0.2:
ValueSequence removed (available in packagesearchtree
AnsiCodesremoved (available in package
Arrayremoved (available in package
Combinatorialremoved (available in package
CPNSremoved (available in package
Dequeueremoved (available in package
curryCompilerRevisionVersionadded, operations related to load paths removed (available in package
System.CurryPath), operations to call the front end removed (available in package
Formatremoved (available in package
NamedSocketremoved (available in package
Natremoved (available in package
Profileremoved (available in package
PropertyFileremoved (available in package
Randomremoved (available in package
TableRBTremoved (available in package
Data.Table.RBTreewith slightly renamed API operations).
SCCremoved (available in package
Socketremoved (available in package
SetFunctionsremoved (available in package
Traversalremoved (available in package
Test.EasyCheckremoved (available in package
easycheck). The import of this library should be replaced by
Test.Contractremoved (available in package
Changes to version 2.0.0:
-cpmexecadded to script
This version has almost the same functionality as version 1.15.0 but adds type classes similar to Haskell 98. In addition to version 1.15.0 and type classes, this version contains the following changes:
definecommand removed (since it was based on a quite restricted parser)
+free) removed since it has many restrictions and is no longer compatible with type classes.
pakcs --base-versionor inside Curry programs by the operation
Distribution.baseVersion. The versioning of base libraries is intended to be used by CPM.
curry2prologas in versions 1.x).
xxx.pakcs(for conformity with other Curry compilers).
Assertion(no longer used since
currytesthas been replaced by
CLP*(now in package
CSV(now available as
GlobalVariable(now available in package
Parser(now available in package
PlProfileData(now available in package
Ports(now available in package
Pretty(now available in package
Pretty.prettyhas been renamed to
RegExp(now available in package
Changes to version 1.14.2:
cypm. Instructions how to install these tools are included in the PAKCS manual.
RegExp.match: order of arguments swapped
AbstractCurry.*(now in package
Bootstrap3Style(now in package
CLPB(now in package
CHR(now in package
CategorizedHtmlList(now in package
CurryStringClassifier(now in package
Database.ERDGoodies(now in package
Database.CDBI.*(now in package
FlatCurry.*(now in package
FlatCurry.Annotated.*(now in package
GraphInductive(now in package
GUI(now in package
HTML(now in package
HtmlParser(now in package
KeyDatabaseSQLite(now in package
Markdown(now in package
Prolog(now in package
Rewriting.*(now in package
URL(now in package
WUIjs(now in package
XML(now in package
XmlConv(now in package
tools/uiremoved since they are available as CPM package
:xmlremoved (since the XML format is deprecated).
Changes to version 1.14.0:
Database.ERD...added (formerly part of ER currytools).
Globaluse system commands
lockfilefor internal file synchronization in order to remove dependency on package
Natfor Peano numbers added.
Rewriting.*for term rewriting in Curry extended to deal with rewriting strategies, narrowing strategies, critical pairs, definitional trees.
Sort: ...Sort operations renamed to ...SortBy and ...Sort operations with standard ordering added.
Statewith an implementation of the state monad added.
Test.EasyChecksplit into two modules to have less import dependencies when putting properties into a module.
Test.Propadded as a clone of
Test.EasyCheckwhich defines the interface but no implementation so that it does not import any other library. import dependencies when putting properties into a module.
contractsto transform contracts (specifications, pre/postconditions) into run-time assertions.
cpns(Curry Port Name Server) and
www(web scripting) moved to
curry analysis(CASS): option
curry analysis(CASS): analysis
Functionaladded and analysis
Deterministicmodified so that it considers encapsulated search.
curry analysis(CASS): simple termination analysis
curry analysis(CASS): analysis
curry checksupports also testing with float arguments.
PAKCSINSTALLDIRto specify the location where PAKCS is moved after the build process.
Changes to version 1.13.0:
Successis now a type synonym for
successis defined as
Truein the prelude.
Prelude.compareand related comparison operations are flexible (instead of rigid as before) on user-defined datatypes. It still suspends when comparing two variables or one variable with a number or character.
RandomValueadded (currently only supported by SWI-Prolog)
getLoadPathForFile) removed since they are deprecated (use operations like
lookupModuleSourceInLoadPathinstead of the deprecated operations since they handle hierarchical module names better)
meta/*removed (since they have been replaced by libraries with hierachical names, see below)
import FlatCurry.Types import FlatCurry.Files
currycheckfor automated test execution added
Changes to version 1.13.0:
import AbstractCurry.Types import AbstractCurry.Files
import AbstractCurry.Select import AbstractCurry.Build
CLP.FDadded: its functionality is similar to the old library
CLPFD, but the interface is different so that other FD constraint solvers are easier to connect.
Changes to version 1.12.0:
Prelude.==is flexible (instead of rigid as before). It still suspends when comparing two variables or one variable with a number or character. However, if
Prelude.==is (positively) used in conditions of rules, it is automatically transformed into a unification constraint so that it does not suspend.
Pretty: code and interface updated, e.g., some combinators renamed and new combinators added (e.g., to support ANSI formatting and colorisation of documents)
Changes to version 1.11.5:
0B101010can now be lexed and are converted to the integer value
Eitherextended with functions
Changes to version 1.11.4:
FlatCurryadapted for this purpose.
CHRcompiledto implement Constraint Handling Rules in Curry added together with various examples in
Changes to version 1.11.3:
+freeis not set.
:load ~/revloads module
revfrom the home directory.
editaccepts module names (instead of arbitrary file names).
curryin the bin directory.
pakcs :set v2 :load rev). Old options (except setting of
.pakcsrcproperties) are no longer necessary and, thus, not supported.
:save: if no argument is given, the executable is saved with the initial expression
:sourceadded: allows separate viewing of visible or qualified function definitions.
let var=exphas now command syntax:
argsfor setting run-time arguments added.
CASS: new analysis
bindingoptfor transforming Boolean equalities into constraint equalities added.
data2xmlfor data conversion to XML and back added.
Changes to version 1.11.2:
--safeadded to support safe execution without I/O actions.
Tk) moved to
divchanged (to be compatible with Haskell) and
Distribution: front-end parameters extended by supporting "special" (i.e., aribrary) arguments.
Distribution: front-end paramter
outfileremoved and front-end parameter
FlatCurry: after calling the front end, an exception is raised if the front end returns with an error (due to an illegal source program).
Integer: Power operators added.
Float: hyperbolic/ arc sine/cosine/tangent operators added.
formMetaInfoadded, HTML header changed to HTML5.
erd2curryupdated to new version with support for SQLite database. Bug fix in code generation w.r.t. checking of cardinality constraints.
spicey(web framework) added and updated with a RESTful interface for entities.
Changes to version 1.11.1:
progare now stored in the file
prog.stateas in previous releases).
HTML: default (white) background for body of generated web pages removed (since this is usually defined in css files).
IO: Fixed a bug in
hGetLinewhich caused an end-of-file error when reading a non-empty line without a newline termination.
currytools/typeinference) added. This tool can be used to annotate expressions in FlatCurry programs with their type.
Changes to version 1.11.0:
FlatCurryextended to represent typed expressions by a new constructor
Changes to version 1.10.1:
fcaseexpressions and non-linear patterns in left-hand sides of program rules.
:>" (instead of "
->" in old syntax).
:=" for setting field values similarly to record updates (instead of "
=" in the old syntax).
GUI: types of various main operations (like
runInitGUIwithParams) slightly changed (for compatibility with KiCS2 version of the library). The old operations are still available as
Markdown: title argument added to
Release notes for older versions