pakcs issueshttps://git.ps.informatik.uni-kiel.de/curry/pakcs/-/issues2020-10-30T13:33:07Zhttps://git.ps.informatik.uni-kiel.de/curry/pakcs/-/issues/28Makefile not suited for paths containing spaces2020-10-30T13:33:07ZFinn TeegenMakefile not suited for paths containing spaceshttps://git.ps.informatik.uni-kiel.de/curry/pakcs/-/issues/27Error messages containing predicate indicators get swallowed2020-10-20T15:51:25ZFredrik WieczerkowskiError messages containing predicate indicators get swallowedCalling `printError` e.g. with
```prolog
error(type_error(compound,[]),context(arg/3,_2620548))
```
causes `prologError2Atom` to swallow the term. Most likely this is due to `prologTerm2Atom` not being able to process predicate indicat...Calling `printError` e.g. with
```prolog
error(type_error(compound,[]),context(arg/3,_2620548))
```
causes `prologError2Atom` to swallow the term. Most likely this is due to `prologTerm2Atom` not being able to process predicate indicators like `arg/3`.https://git.ps.informatik.uni-kiel.de/curry/pakcs/-/issues/18Modularize PAKCS constants2019-11-08T17:19:09ZKai ProttModularize PAKCS constantsThere are a lot of hardcoded "magical atoms" like 'Prelude.(,)' all over the place.
The code would be easier to maintain, when all of those atoms are only defined once and used everywhere.There are a lot of hardcoded "magical atoms" like 'Prelude.(,)' all over the place.
The code would be easier to maintain, when all of those atoms are only defined once and used everywhere.https://git.ps.informatik.uni-kiel.de/curry/pakcs/-/issues/17Import currydox.tex instead of copying definitions into the libaries.tex file2019-11-08T17:19:22ZKai ProttImport currydox.tex instead of copying definitions into the libaries.tex fileThe "doc/src/libaries.tex" file has a section with the makro-definitions from currydoc.
It would be nice if those definitions could be imported with `\input{currydoc.tex}` instead.The "doc/src/libaries.tex" file has a section with the makro-definitions from currydoc.
It would be nice if those definitions could be imported with `\input{currydoc.tex}` instead.https://git.ps.informatik.uni-kiel.de/curry/pakcs/-/issues/9file path with whitespaces2019-11-08T17:20:10ZSandra Dylusfile path with whitespacesI have a file `Test.curry` in a directory containing a whitespace (here: `Test 123`); the file looks as follows.
```
test = 1 + 2
```
I can load the file into the pakcs-REPL, but when I what to evaluate `test`, I get an error.
```
sad...I have a file `Test.curry` in a directory containing a whitespace (here: `Test 123`); the file looks as follows.
```
test = 1 + 2
```
I can load the file into the pakcs-REPL, but when I what to evaluate `test`, I get an error.
```
sad@siran:~/Test 123$ pwd
/net/medoc/home/sad/Test 123
sad@siran:~/Test 123$ /opt/pakcs/pakcs-2.0.0/bin/pakcs :l Test.curry
[1 of 2] Skipping Prelude ( /net/medoc/home/pakcs/amd64/pakcs-2.0.0/lib/Prelude.curry, /net/medoc/home/pakcs/amd64/pakcs-2.0.0/lib/.curry/Prelude.fcy )
[2 of 2] Skipping Test ( Test.curry, .curry/Test.fcy )
______ __ _ _ ______ _______
| __ | / \ | | / / | ____| | _____| Portland Aachen Kiel
| | | | / /\ \ | |_/ / | | | |_____ Curry System
| |__| | / /__\ \ | _ | | | |_____ |
| ____| / ______ \ | | \ \ | |____ _____| | Version 2.0.0 (4)
|_| /_/ \_\ |_| \_\ |______| |_______|
***WITH TYPECLASSES***
Curry2Prolog(sicstus 4.3) Compiler Environment (Version of 2016-12-16)
(RWTH Aachen, CAU Kiel, Portland State University)
Type ":h" for help (contact: pakcs@curry-language.org)
Test> test
Error:
Missing file "123"
ERROR occurred during parsing!
Test>
```
Since the error message was quite generic, it took me some time to realise what the actual problem is. The code I tried to run with pakcs was initially developed with kics2, where everything works just fine.
Did I miss a memo, where such file or directory names are explicitly prohibited or am I just the only one using whitespaces in file names?https://git.ps.informatik.uni-kiel.de/curry/pakcs/-/issues/8Problem when using Global and where-clause2019-11-08T17:20:47ZJan Rasmus Tikovsky Problem when using Global and where-clauseConsider the following program:
```haskell
module Main where
import Global (Global, global, GlobalSpec(Temporary))
import Unsafe(unsafePerformIO)
import IO(Handle)
import Socket
debugSocketHandleGlobal :: Global Handle
debugSocketHand...Consider the following program:
```haskell
module Main where
import Global (Global, global, GlobalSpec(Temporary))
import Unsafe(unsafePerformIO)
import IO(Handle)
import Socket
debugSocketHandleGlobal :: Global Handle
debugSocketHandleGlobal = global (unsafePerformIO openport) Temporary
where
openport = catch (connectToSocket "localhost" 33) errorhandler
errorhandler _ = error "could not connect to debugging server (i.e. to eclipse)"
main = do
print 42
```
Compiling this program with PAKCS results in the following error:
```
Prelude> :l Main.curry
[1 of 8] Skipping Prelude ( /net/medoc/home/pakcs/amd64/pakcs/lib/Prelude.curry, /net/medoc/home/pakcs/amd64/pakcs/lib/.curry/Prelude.fcy )
[2 of 8] Skipping Char ( /net/medoc/home/pakcs/amd64/pakcs/lib/Char.curry, /net/medoc/home/pakcs/amd64/pakcs/lib/.curry/Char.fcy )
[3 of 8] Skipping Global ( /net/medoc/home/pakcs/amd64/pakcs/lib/Global.curry, /net/medoc/home/pakcs/amd64/pakcs/lib/.curry/Global.fcy )
[4 of 8] Skipping IO ( /net/medoc/home/pakcs/amd64/pakcs/lib/IO.curry, /net/medoc/home/pakcs/amd64/pakcs/lib/.curry/IO.fcy )
[5 of 8] Skipping System ( /net/medoc/home/pakcs/amd64/pakcs/lib/System.curry, /net/medoc/home/pakcs/amd64/pakcs/lib/.curry/System.fcy )
[6 of 8] Skipping Socket ( /net/medoc/home/pakcs/amd64/pakcs/lib/Socket.curry, /net/medoc/home/pakcs/amd64/pakcs/lib/.curry/Socket.fcy )
[7 of 8] Skipping Unsafe ( /net/medoc/home/pakcs/amd64/pakcs/lib/Unsafe.curry, /net/medoc/home/pakcs/amd64/pakcs/lib/.curry/Unsafe.fcy )
[8 of 8] Compiling Main ( Main.curry, .curry/Main.fcy )
Main.curry, line 14.1: Warning:
Top-level binding with no type signature: main :: Prelude.IO ()
ERROR in "Main.debugSocketHandleGlobal": Function "Global.global" is not allowed in this context!
ERROR during compilation of program "Main"!
```https://git.ps.informatik.uni-kiel.de/curry/pakcs/-/issues/7PAKCS does not list all solutions2019-11-08T17:21:19ZJan Rasmus Tikovsky PAKCS does not list all solutionsConsider the appended program which tries to assign three different colors (red, green, yellow) to the following map such that no adjacent areas obtain the same color:
```
------------------
| | |
| | L2 |...Consider the appended program which tries to assign three different colors (red, green, yellow) to the following map such that no adjacent areas obtain the same color:
```
------------------
| | |
| | L2 |
| | |
| L1 |--------|
| | |
| | L3 |
| | |
------------------
```
Obviously, there are six solutions, but PAKCS only lists five, while KiCS2 lists all six solutions. Note that this problem does not occur if
```curry
goal l1 l2 l3 = PEVAL (correct l1 l2 l3 & coloring l1 l2 l3)
```
is replaced by
```curry
goal l1 l2 l3 = PEVAL (coloring l1 l2 l3 & correct l1 l2 l3)
```
This bug seems to be introduced in version 1.13.0, since PAKCS in version 1.12.0 shows all six solutions:
```
$ /opt/pakcs/pakcs-1.12.0/bin/pakcs :load colormap02.curry :eval main :quit
[1 of 2] Skipping Prelude ( /net/medoc/home/pakcs/amd64/pakcs-1.12.0/lib/Prelude.curry, /net/medoc/home/pakcs/amd64/pakcs-1.12.0/lib/.curry/Prelude.fcy )
[2 of 2] Compiling colormap02 ( colormap02.curry, .curry/colormap02.fcy )
(Red,Green,Yellow)
(Red,Yellow,Green)
(Green,Red,Yellow)
(Green,Yellow,Red)
(Yellow,Red,Green)
(Yellow,Green,Red)
```
```
$ /opt/pakcs/pakcs-1.13.0/bin/pakcs :load colormap02.curry :eval main :quit
[1 of 2] Skipping Prelude ( /net/medoc/home/pakcs/amd64/pakcs-1.13.0/lib/Prelude.curry, /net/medoc/home/pakcs/amd64/pakcs-1.13.0/lib/.curry/Prelude.fcy )
[2 of 2] Compiling colormap02 ( colormap02.curry, .curry/colormap02.fcy )
(Red,Green,Yellow)
(Red,Yellow,Green)
(Green,Red,Yellow)
(Green,Yellow,Red)
(Yellow,Red,Green)
```
Example program: [colormap02.curry](/uploads/327e080fba1304bf7f272b74e27bd2f9/colormap02.curry)Michael HanusMichael Hanushttps://git.ps.informatik.uni-kiel.de/curry/pakcs/-/issues/6Wrong solutions for combination of blackhole and non-determinism2019-11-08T17:21:30ZJan Rasmus Tikovsky Wrong solutions for combination of blackhole and non-determinismConsider the following program:
```haskell
main = let x = True ? fcase x of True -> False in x
```
With respect to the corrected natural semantics of FlatCurry, this defition has only one value: True. However, PAKCS computes both True ...Consider the following program:
```haskell
main = let x = True ? fcase x of True -> False in x
```
With respect to the corrected natural semantics of FlatCurry, this defition has only one value: True. However, PAKCS computes both True and False as solutions before it enters an infinite loop:
```
blackhole> main
True
False
Prolog interruption (h for help)?
```
In contrast, the KiCS2 computes only the single value True before it enters the infinite loop.Michael HanusMichael Hanushttps://git.ps.informatik.uni-kiel.de/curry/pakcs/-/issues/2make build parallelizable2019-11-08T17:22:05ZMike Gabriel mga@informatik.uni-kiel.demake build parallelizableCurrently, the build of pakcs fails when using -j4 as make option.Currently, the build of pakcs fails when using -j4 as make option.https://git.ps.informatik.uni-kiel.de/curry/pakcs/-/issues/1Wrong solutions for combination of blackhole and non-determinism2019-11-08T17:22:45ZMichael HanusWrong solutions for combination of blackhole and non-determinismConsider the following program:
main = let x = True ? fcase x of True -> False in x
With respect to the corrected natural semantics of FlatCurry, this defition has only one value: True. However, PAKCS computes both True and Fal...Consider the following program:
main = let x = True ? fcase x of True -> False in x
With respect to the corrected natural semantics of FlatCurry, this defition has only one value: True. However, PAKCS computes both True and False as solutions before it enters an infinite loop:
blackhole> main
True
False
Prolog interruption (h for help)?
In contrast, the KiCS2 computes only the single value True before it enters the infinite loop.
Michael HanusMichael Hanus