curry-frontend issueshttps://git.ps.informatik.uni-kiel.de/curry/curry-frontend/-/issues2020-02-08T12:12:49Zhttps://git.ps.informatik.uni-kiel.de/curry/curry-frontend/-/issues/16Improve warning for unreachable/overlapping pattern to also take guards into ...2020-02-08T12:12:49ZFinn TeegenImprove warning for unreachable/overlapping pattern to also take guards into accountCurrently, the following program
<pre>
f :: a -> Bool
f x = case x of
_ | False -> False
_ -> True
</pre>
generates the warning
<pre>
warning.curry, line 3.3: Warning:
Pattern matches are unreachable
In a case al...Currently, the following program
<pre>
f :: a -> Bool
f x = case x of
_ | False -> False
_ -> True
</pre>
generates the warning
<pre>
warning.curry, line 3.3: Warning:
Pattern matches are unreachable
In a case alternative:
_ -> ...
</pre>
This is obviously wrong, and is caused by the fact that the guard is not taken into account. A reasonable approach would be to consider only the following guards to always succeed: ```True```, ```success```, ```otherwise```.
In addition, this information may be used to eliminate unreachable alternatives.Fredrik WieczerkowskiFredrik Wieczerkowskihttps://git.ps.informatik.uni-kiel.de/curry/curry-frontend/-/issues/12Fix reexport of modules imported with restrictions2019-10-19T01:46:45ZFinn TeegenFix reexport of modules imported with restrictionsConsider the following two modules:
<pre>
module Export where
data Test = Test { test :: Test }
</pre>
<pre>
module Import (module Export) where
import Export (Test(test))
</pre>
When restricting the import of a data type from another...Consider the following two modules:
<pre>
module Export where
data Test = Test { test :: Test }
</pre>
<pre>
module Import (module Export) where
import Export (Test(test))
</pre>
When restricting the import of a data type from another module to its labels only (as above), the reexport of this module leads to an internal error:
<pre>
cymake: Internal error: Exports.funDecl: QualIdent {qidModule = Just (ModuleIdent {midPosition = Position {file = ".curry/Export.icurry", line = 1, column = 11, astRef = }, midQualifiers = ["Export"]}), qidIdent = Ident {idPosition = Position {file = ".curry/Export.icurry", line = 2, column = 20, astRef = }, idName = "test", idUnique = 0}}
</pre>https://git.ps.informatik.uni-kiel.de/curry/curry-frontend/-/issues/9Improve Error Message regarding export/import of record labels2019-10-19T01:45:20ZFinn TeegenImprove Error Message regarding export/import of record labelsConsider the following Curry modules:
<pre>
module RecTest (R(C1)) where
data R = C1 { l1 :: String, l2 :: Int }
| C2 { l2 :: Int }
</pre>
<pre>
import RecTest
test :: R -> R
test r = r { l2 = 42 }
</pre>
Running curry-fronte...Consider the following Curry modules:
<pre>
module RecTest (R(C1)) where
data R = C1 { l1 :: String, l2 :: Int }
| C2 { l2 :: Int }
</pre>
<pre>
import RecTest
test :: R -> R
test r = r { l2 = 42 }
</pre>
Running curry-frontend on the module RecTest yields the error message:
<pre>
test/RecImp.curry, line 4.10: Error:
No constructor has all of these fields:
`l2'
</pre>
Since the record ```R``` includes the label ```l2``` for both constructors, the message should be improved to "No visible constructor has all of these fields".https://git.ps.informatik.uni-kiel.de/curry/curry-frontend/-/issues/8(Re)export of record labels2019-10-19T01:46:02ZFinn Teegen(Re)export of record labelsConsider the following modules:
<pre>
module RecTest where
data R = C1 { l1 :: String, l2 :: Int }
| C2 { l2 :: Int }
</pre>
<pre>
module RecImp (module RecTest) where
import RecTest (l2)
-- test :: R -> R
test r = r { l2 = 4...Consider the following modules:
<pre>
module RecTest where
data R = C1 { l1 :: String, l2 :: Int }
| C2 { l2 :: Int }
</pre>
<pre>
module RecImp (module RecTest) where
import RecTest (l2)
-- test :: R -> R
test r = r { l2 = 42 }
</pre>https://git.ps.informatik.uni-kiel.de/curry/curry-frontend/-/issues/6Rephrase Synopsis and Description fields in curry-frontend.cabal2017-05-21T00:32:04ZMike Gabriel mga@informatik.uni-kiel.deRephrase Synopsis and Description fields in curry-frontend.cabalWith the curry-frontend Debian package, I currently ship this additional patch. Please consider applying upstream. Reasoning given below.
```
Description: Improve .cabal file's Synopsis: and Description fields.
Author: Mike Gabriel ...With the curry-frontend Debian package, I currently ship this additional patch. Please consider applying upstream. Reasoning given below.
```
Description: Improve .cabal file's Synopsis: and Description fields.
Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
Abstract:
Shorten Synopsis: limit field to something clearly below 78 chars.
.
Drop dead (404) URL from Description: field and rephrase slightly.
--- a/curry-frontend.cabal
+++ b/curry-frontend.cabal
@@ -1,16 +1,14 @@
Name: curry-frontend
Version: 0.4.2
Cabal-Version: >= 1.10
-Synopsis: Compile the functional logic language Curry to several
- intermediate formats
-Description: The Curry Frontend consists of the executable program "curry-frontend".
- It is used by various backends to compile Curry programs to
- an intermediate representation.
- The code is a stripped-down version of an early version of
- the Muenster Curry Compiler
- (<http://danae.uni-muenster.de/curry/>)
- which has been extended to produce different intermediate
- representations.
+Synopsis: Lexer, parser, type checker, etc. for the Curry language
+Description: The Curry Frontend consists of the executable program
+ "curry-frontend". It is used by various backends to
+ compile programs written in the functional logic language
+ Curry to various intermediate representations.
+ .
+ For further information, please check
+ http://currry-language.org
Category: Language
License: BSD-3-clause
License-File: LICENSE
```Michael HanusMichael Hanushttps://git.ps.informatik.uni-kiel.de/curry/curry-frontend/-/issues/5cymake / curry-frontend does not have a man page2019-10-28T10:21:43ZMike Gabriel mga@informatik.uni-kiel.decymake / curry-frontend does not have a man pageIn Linux distros, it is a requirement to ship a man page with every executable. We need one for curry-frontend (formerly cymake). For the first Debian uploads, I can write a minimal man page, but we should surely provide a man page with ...In Linux distros, it is a requirement to ship a man page with every executable. We need one for curry-frontend (formerly cymake). For the first Debian uploads, I can write a minimal man page, but we should surely provide a man page with detailled information about curry-frontend usage.
Is there any man page like documentation I can turn into a man page on the wiki / homepage somewhere?Michael HanusMichael Hanushttps://git.ps.informatik.uni-kiel.de/curry/curry-frontend/-/issues/4rename cymake to curry-frontend2017-05-21T00:32:04ZMike Gabriel mga@informatik.uni-kiel.derename cymake to curry-frontendin curry-frontend.git, the change-over from cymake (as executable name) to curry-frontend (as executable name) is rather simple:
```
--- a/curry-frontend.cabal
+++ b/curry-frontend.cabal
@@ -3,7 +3,7 @@
Cabal-Version: >= 1.10
Synopsis...in curry-frontend.git, the change-over from cymake (as executable name) to curry-frontend (as executable name) is rather simple:
```
--- a/curry-frontend.cabal
+++ b/curry-frontend.cabal
@@ -3,7 +3,7 @@
Cabal-Version: >= 1.10
Synopsis: Compile the functional logic language Curry to several
intermediate formats
-Description: The Curry Frontend consists of the executable program "cymake".
+Description: The Curry Frontend consists of the executable program "curry-frontend".
It is used by various backends to compile Curry programs to
an intermediate representation.
The code is a stripped-down version of an early version of
@@ -109,7 +109,7 @@
Paths_curry_frontend
ghc-options: -Wall
-Executable cymake
+Executable curry-frontend
hs-source-dirs: src
Main-is: cymake.hs
default-language: Haskell2010
```
For the upcoming Debian packages, I have applied this change. Please consider shipping this upstream. Thanks!Michael HanusMichael Hanushttps://git.ps.informatik.uni-kiel.de/curry/curry-frontend/-/issues/3Please update description in .cabal file.2017-05-21T00:32:04ZMike Gabriel mga@informatik.uni-kiel.dePlease update description in .cabal file.```
Description: The Curry Frontend consists of the executable program "cymake".
It is used by various backends to compile Curry programs to
an internal representation.
The code is a str...```
Description: The Curry Frontend consists of the executable program "cymake".
It is used by various backends to compile Curry programs to
an internal representation.
The code is a stripped-down version of an early version of
the Muenster Curry Compiler
(<http://danae.uni-muenster.de/~lux/curry/>)
```
The above description seems slightly outdated. The provided URL gives a 404 (not found) error.Michael HanusMichael Hanushttps://git.ps.informatik.uni-kiel.de/curry/curry-frontend/-/issues/2src/Html/SyntaxColoring.hs: Please clarify copyright situation...2017-05-21T00:32:04ZMike Gabriel mga@informatik.uni-kiel.desrc/Html/SyntaxColoring.hs: Please clarify copyright situation...In the file I see...
Module : $Header$
Description : Split module into code fragments
Copyright : (c) ?? , someone else
2014 - 2016, Björn Peemöller
2016 ...In the file I see...
Module : $Header$
Description : Split module into code fragments
Copyright : (c) ?? , someone else
2014 - 2016, Björn Peemöller
2016 , Jan Tikovsky
License : OtherLicense
Maintainer : bjp@informatik.uni-kiel.de
Stability : experimental
Portability : portable
Please clarify who "someone else" is. Is it a forgotten reminder to fill out the copyright field? Or is there really an unknown co-copyright holder. Ideally simply remove that line/entry in the Copyright: field.
Please include in 0.4.2 release, if possible.
Thanks!Michael HanusMichael Hanushttps://git.ps.informatik.uni-kiel.de/curry/curry-frontend/-/issues/1please tag release 0.4.0 in Git2017-05-21T00:32:04ZMike Gabriel mga@informatik.uni-kiel.deplease tag release 0.4.0 in GitHi Michael,
the 0.4.0 tag is missing on the public curry-frontend repo. Please take the appropriate commit with v0.4.0 (if not already done locally) and push to GitLab.
Thanks,
MikeHi Michael,
the 0.4.0 tag is missing on the public curry-frontend repo. Please take the appropriate commit with v0.4.0 (if not already done locally) and push to GitLab.
Thanks,
Mike