Commit eb840128 authored by Michael Hanus 's avatar Michael Hanus

CPM and frontend updated

parent 40585337
......@@ -49,9 +49,9 @@ export MAJORVERSION=2
# The minor version number:
export MINORVERSION=1
# The revision version number:
export REVISIONVERSION=2
export REVISIONVERSION=3
# The build version number (if >0, then it is a pre-release)
BUILDVERSION=0
BUILDVERSION=1
# Complete version:
VERSION=$(MAJORVERSION).$(MINORVERSION).$(REVISIONVERSION)
# The version date:
......
PAKCS: Release Notes
====================
Release notes for PAKCS Version 2.1.3 (October 28, 2019)
--------------------------------------------------------
Changes to version 2.1.2: bug fixes and
* CPM updated (improved handling of temporary working directory)
Release notes for PAKCS Version 2.1.2 (September 23, 2019)
----------------------------------------------------------
......
Subproject commit f88dd57b089e12f7f7684c2d8339cdd09c543b9e
Subproject commit e7dd2a10a39ccd6b63db6e74388ef95b6dbf795e
......@@ -5,7 +5,7 @@ The Curry package manager (CPM) is a tool to
distribute and install Curry libraries and applications
and manage version dependencies between these libraries.
Since CPM offers a lot of functionality, there is a separate
manual available.\footnote{\url{http://curry-language.org/tools/cpm}}
manual available.\footnote{\url{http://curry-lang.org/tools/cpm}}
Therefore, we describe here only some basic CPM commands.
The executable \code{cypm} is located in the \code{bin} directory
......@@ -48,7 +48,7 @@ one can use the command
\end{curry}
%
This command checks out the package in some internal directory
(\code{\$HOME/.cpm/app_packages})
(\code{\$HOME/.cpm/apps_\ldots})
and installs the binary of the tool provided by the package
in \code{\$HOME/.cpm/bin}.
Hence it is recommended to add this directory to your path.
......
......@@ -47,7 +47,7 @@
\author{Jonas Oberschweiber \qquad Michael Hanus\\[1ex]
{\small Institut f\"ur Informatik, CAU Kiel, Germany}\\[1ex]
{\small\texttt{packages@curry-language.org}}
{\small\texttt{packages@curry-lang.org}}
}
\maketitle
......@@ -663,7 +663,7 @@ If you have access to the Git
repository containing the central package index, then you can push
the modified version of this Git repository.
Otherwise, send your package
specification file to \url{packages@curry-language.org} in order to
specification file to \url{packages@curry-lang.org} in order to
publish it.
......
......@@ -715,6 +715,20 @@ queens :: Int -> [Int]
queens n = safe (permute [1..n])
\end{curry}
\paragraph{Important note:}
The implementation of default rules is based on set functions
(implemented by the module \code{Control.SetFunctions}).
Therefore, the package \code{setfunctions} should be installed
as a dependency.
This can easily done by executing
%
\begin{curry}
> cypm add setfunctions
\end{curry}
%
before compiling a program containing default rules with the
Curry preprocessor.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Contracts}
......@@ -778,6 +792,22 @@ Postcondition of 'sort' (module Quicksort, line 27) violated for:
ERROR: Execution aborted due to contract violation!
\end{curry}
\paragraph{Important note:}
The implementation of default rules is based on set functions
(implemented by the module \code{Control.SetFunctions}) and
the auxiliary package to check contracts at run time.
Therefore, the packages \code{setfunctions} and \code{contracts}
should be installed as dependencies.
This can easily done by executing
%
\begin{curry}
> cypm add setfunctions
> cypm add contracts
\end{curry}
%
before compiling a program containing contracts with the
Curry preprocessor.
% LocalWords: preprocessor
......
Subproject commit 5f5caa5dbdb6941b6ffab19cc8ff760681ba7d30
Subproject commit 28c04fa53ddca60793ae94ae244b1758ef2a6dcc
Subproject commit a15821f2be9fb212e7ba1c47e704df3adfd96a87
Subproject commit 353467ff9994df9adc0848fcf26ab7a8d682c01b
......@@ -46,6 +46,17 @@ fcy2flcTypes(['Type'(TName,Vis,TParams,Cons)|Types],
fcy2flcTypes(Types,FTypes).
fcy2flcTypes(['TypeSyn'(_,_,_,_)|Types],FTypes) :- % ignore type synonyms
fcy2flcTypes(Types,FTypes).
% for the moment: transform newtypes in data declarations:
fcy2flcTypes(['TypeNew'(TName,Vis,TParams,Cons)|Types],
['Type'(FTName,Vis,TParams,[FCons])|FTypes]) :-
fcy2flcQName(TName,FTName),
fcy2flcNewCons(Cons,FCons),
fcy2flcTypes(Types,FTypes).
% for the moment: transform NewCons declaration into data Cons declaration
fcy2flcNewCons('NewCons'(CName,Vis,Type),'Cons'(FCName,1,Vis,[FType])) :-
fcy2flcQName(CName,FCName),
fcy2flcTypeExpr(Type,FType).
fcy2flcCons('Cons'(CName,Arity,Vis,Types),'Cons'(FCName,Arity,Vis,FTypes)) :-
fcy2flcQName(CName,FCName),
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment