Changes to version 2.2.0:
update
command and support for caret
and tilde comparison operators in dependency descriptions)
Changes to version 2.0.0:
chr
defined as total operation
AllSolutions
, Findall
, SearchTree
, SearchTreeGenerators
,
SearchTreeTraversal
, ValueSequence removed
(available in package
searchtree
as
Control...`)
AnsiCodes
removed (available in package ansi-terminal
as System.Console.ANSI.Codes
)
Array
removed (available in package array
as Data.Array
)
Combinatorial
removed (available in package combinatorial
)
CPNS
removed
(available in package cpns
as Network.CPNS
)
Dequeue
removed (available in package queue
as Data.Queue
)
Distribtion
: curryCompilerRevisionVersion
added,
operations related to load paths removed (available in package
currypath
in library System.CurryPath
),
operations to call the front end removed (available in package
frontend-exec
in library System.FrontendExec
)
Format
removed (available in package printf
as Data.Format
)
NamedSocket
removed
(available in package cpns
as Network.NamedSocket
)
Nat
removed (available in package peano
as Data.Nat
)
Profile
removed
(available in package profiling
as Debug.Profile
)
PropertyFile
removed
(available in package propertyfile
as Data.PropertyFile
)
Random
removed (available in package random
as System.Random
)
RedBlackTree
, SetRBT
, and TableRBT
removed
(available in package redblacktree
as Data.RedBlackTree
,
Data.Set.RBTree
, and Data.Table.RBTree
with slightly renamed API
operations).
SCC
removed (available in package scc
as Data.SCC
)
Socket
removed
(available in package socket
as Network.Socket
)
SetFunctions
removed
(available in package setfunctions
as Control.SetFunctions
)
Traversal
removed
(available in package traversal
as Data.Traversal
)
Test.EasyCheck
removed (available in package easycheck
).
The import of this library should be replaced by Test.Prop
.
Test.Contract
removed
(available in package contracts
)
curry-ast
).
currytools
(available as curry-cpnsd
in package cpns
)
currytools
(available as curry-cgi
in package html-cgi
)
update
operation)
This version has almost the same functionality as Version 0.6.0 but adds type classes similar to Haskell 98. In addition to version 0.6.0 and type classes, this version contains the following changes:
kics2 --base-version
or inside
Curry programs by the operation Distribution.baseVersion
.
The versioning of base libraries is intended to be used by CPM.
Findall
: oneValue
added
SetFunctions
: minValueBy
and maxValueBy
added, minValue
and maxValue
depend on Ord
context.
cypm
:
Assertion
(no longer used since currytest
has been replaced by currycheck
)
CSV
(now available as Text.CSV
in package csv
)
Parser
(now available in package fl-parser
)
RegExp
(now available in package regexp
)
UnsafeSearchTree
(now available in package searchtree
)
Changes to version 0.5.1:
cypm
.
cypm
.
Instructions how to install these tools are included
in the KiCS2 manual.
RegExp.match
: order of arguments swapped
match
for regexps.
cpm
:
AbstractCurry.*
(now in package abstract-curry
)
Bootstrap3Style
(now in package html
)
CHR
(now in package chr-curry
)
CategorizedHtmlList
(now in package html
)
CurryStringClassifier
(now in package addtypes
)
Database.ERDGoodies
(now in package ertools
)
Database.ERD
and Database.CDBI.*
(now in package cdbi
)
FlatCurry.*
(now in package flatcurry
)
FlatCurry.Annotated.*
(now in package flatcurry-annotated
)
GraphInductive
(now in package graph-inductive
)
GUI
(now in package gui
)
HTML
(now in package html
as library HTML.Base
)
HtmlParser
(now in package html
)
KeyDatabaseSQLite
(now in package keydb
)
JavaScript
(now in package javascript
)
Mail
(now in package mail
)
Markdown
(now in package markdown
)
Prolog
(now in package prolog
)
Rewriting.*
(now in package rewriting
)
URL
(now in package url
)
WUI
and WUIjs
(now in package wui
)
XML
(now in package xml
)
XmlConv
(now in package xml
)
Changes to version 0.5.0:
local
added to switch to local compilation mode (for
locally installed systems). This replaces the old setting in the
Makefile for global/local installations.
Database.ERD...
added (formerly part of ER currytools).
IOExts
uses system commands
lockfile-create
and lockfile-remove
instead of lockfile
for internal file synchronization in order to remove dependency
on package procmail
.
Nat
for 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.
State
with an implementation of the state monad added.
Test.EasyCheck
split into two modules to have less
import dependencies when putting properties into a module.
Test.Prop
added as a clone of Test.EasyCheck
which defines
the interface but no implementation so that it does not import
any other library.
import dependencies when putting properties into a module.
contracts
to transform contracts (specifications, pre/postconditions)
into run-time assertions.
currytools
.
currytools
.
kics2 toolname
or curry toolname
.
cymake
changed to curry frontend
.
curry analysis
(CASS): option --all
added.
curry analysis
(CASS): analysis Functional
added and
analysis Deterministic
modified so that it considers encapsulated search.
curry analysis
(CASS): simple termination analysis Terminating
added.
curry analysis
(CASS): analysis TypesInValues
added.
curry check
supports also testing with float arguments.
--
.
Changes to version 0.4.1:
Success
is now a type synonym for Bool
and
success
is defined as True
in the prelude.
(===)
and (&&>)
removed
findFileInLoadPath
, lookupFileInLoadPath
, readFirstFileInLoadPath
,
getLoadPath
, getLoadPathForFile
) removed since they are deprecated
(use operations like getLoadPathForModule
and
lookupModuleSourceInLoadPath
instead of the deprecated operations
since they handle hierarchical module names better)
List
: diagonal
added
meta/*
removed (since they have been replaced
by libraries with hierachical names, see below)
import FlatCurry
by
import FlatCurry.Types import FlatCurry.Files
import FlatCurryGoodies
by
import FlatCurry.Goodies
import FlatCurryPretty
by
import FlatCurry.Pretty
import FlatCurryRead
by
import FlatCurry.Read
import FlatCurryShow
by
import FlatCurry.Show
import FlatCurryXML
by
import FlatCurry.XML
import CompactFlatCurry
by
import FlatCurry.Compact
import AnnotatedFlatCurry
by
import FlatCurry.Annotated.Types
import AnnotatedFlatGoodies
by
import FlatCurry.Annotated.Goodies
import AnnotatedFlatCurryPretty
by
import FlatCurry.Annotated.Pretty
import FlexRigid
by
import FlatCurry.FlexRigid
currycheck
for automated test execution added
:compile
added
Changes to version 0.4.0:
import AbstractCurry
by
import AbstractCurry.Types import AbstractCurry.Files
import AbstractCurryGoodies
by
import AbstractCurry.Select import AbstractCurry.Build
import PrettyAbstract
by
import AbstractCurry.Pretty
Changes to version 0.3.3:
Pretty
: code and interface updated, e.g., some combinators
renamed and new combinators added (e.g., to support ANSI formatting
and colorisation of documents)
FunctionInversion
added
AnnotatedFlatCurryPretty
added
Either
extended with functions fromLeft
and fromRight
ShowS
added
AnsiCodes
added
===
added
Changes to version 0.3.2:
0b101010
or 0B101010
can now be lexed
and are converted to the integer value 42
.
"Hello from Curry"
in target
code by a call to a primitive function toCurryString
. For instance,
the above literal gets translated to toCurryString "Hello from Curry"
.
While adding some (small) runtime overhead, this improves the readability
of the code and shortens the code size.
kics2
can now be profiled using the GHC's
profiling capabilities. Please see the manual for additional information.
AbstractCurryGoodies
added.
data2xml
for data conversion to XML and back added.
Changes to version 0.3.1:
curry
in the bin directory.
Prelude
: solve
and &&>
added.
Prolog
added.
CASS
: new analysis RequiredValues
added.
bindingopt
for transforming Boolean equalities
into constraint equalities added.
Changes to version 0.3.0:
{ x = (4 * _x4 + 1) }instead of the binary representation
{ x = (Pos (I (O _x4))) }Furthermore, the representation can be configured during installation and is now also documented in the manual as a language extension.
:add
now accepts a list of modules to be added
instead of only a single module. The list of added modules is now
sorted in ascending order and no longer contains duplicates.
prelude
(for defining the name
of the standard prelude) and parser
(for setting additional
front-end options) included.
Distribution
: front-end parameters extended by supporting
"special" (i.e., aribrary) arguments.
Distribution
: front-end paramter outfile
removed and
front-end parameter htmldir
added.
Distribution
and FlatCurry
: after calling the front end,
an exception is raised if the front end returns with an error
(due to an illegal source program).
Float
and Integer
: Power operators added.
Float
: hyperbolic/ arc sine/cosine/tangent operators added.
HTML
: formMetaInfo
added, HTML header changed to HTML5.
List
: Improved version of inits
added.
Prelude
: Functions forIO
, forIO_
, when
, unless
added.
SetFunctions
: notEmpty
added.
Format
and RegExp
added.
erd2curry
updated to support easier installation.
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 0.2.4:
.icurry
).
IO.hGetLine
which caused an end-of-file error when
reading a non-empty line without a newline termination.
UnsafeSearchTree
added. This library is similarly to
SearchTree
but does not evaluate unbound local variables
to their ground values. Thus, one can have results containing
unbound variables (which can be checked by the operations
isVar
and getVarId
).
Changes to version 0.2.3:
f = fst (3, id)
the identifier id
has type forall a . a -> a
,
but the type variable a
does not occur in the type of f
.
This lead to a type error in the generated Haskell sources.
The compiler now solves this problem by replacing such type variables
with the unit type ()
, thus the above mentioned rule becomes
f = fst (3, id :: () -> ())
.
Function
added.
cabal
's capabilities to install
all required and locally generated Haskell packages into the installation
directory, inside a new directory pkg
.
As a consequence, the installation process no longer depends on packages
to be installed for the user.
Furthermore, different versions of the KiCS2 compiler can now
be installed in parallel, even when they are configured
to use different versions of GHC.
Prelude
: operations for encapsulated search omitted
since the base primitive try
is not implemented.
Use libraries AllSolutions
, SearchTree
, and SetFunctions
for encapsulated search.
SearchTree
: operation getAllValuesWith
added,
operation someValueBy
slightly changed and renamed to someValueWith
.
HTML
: default (white) background for body of generated
web pages removed (since this is usually defined in css files).
currytools/typeinference
) added.
This tool can be used to annotate expressions in FlatCurry programs
with their type.
Changes to version 0.2.2:
:set prompt <prompt>
.
katepart
added,
supporting Curry and Literate Curry.
kics2c
, kics2
, cleancurry
, cymake
) can
now be installed under Windows using MinGW. See the installation
instructions for details.
Directory
updated and extended.
String
by FilePath
createDirectoryIfMissing :: Bool -> FilePath -> IO ()
getHomeDirectory :: IO FilePath
getTemporaryDirectory :: IO FilePath
copyFile :: FilePath -> FilePath -> IO ()
SetFunctions
: Operations choose
and select
added.
(unknown :: Bool)
evaluates to False
or True
.
FlatCurry
extended to represent typed expressions
by a new constructor Typed
.