Cabal/cabal-install 1.20 release candidates

Hi all, I've prepared the Cabal/cabal-install 1.20 release candidates. I now need some help testing, especially on Windows as I don't have a Windows machine. There are over 300 commits since the last release and lots of interesting new features and changes. I will write them down when I make the actual release. To install the release candidates simply run: cabal install --constraint="HTTP >= 4000.2.5" http://johantibell.com/files/Cabal-1.20.0-rc.tar.gz http://johantibell.com/files/cabal-install-1.20.0-rc.tar.gz (The --constraint="HTTP >= 4000.2.5" flag is used to work around an issue I already found in the RC, it won't be needed for the real release.) Please report any issues on the bug tracker: https://github.com/haskell/cabal/issues If I haven't heard of anything release blocking bugs (or last minute important patches) in a couple of days, I will make these tarballs the official release. The commits used are tagged in the repo as Cabal-v1.20.0-rc and cabal-install-v1.20.0-rc. -- Johan

Hi Johan,
Just reporting that everything works for me on Windows 8 with HP 2013.2.0.0
and the included GHC 7.6.3. I was able to build and install our three
projects and all their dependencies (incl. lens, gitit, MissingH,
glpk-hs...) from scratch (I removed Roaming/cabal and Roaming/ghc).
But it wasn't without problems.
With HaXml package: the latest version (1.24.1) no longer compiles with GHC
7.6.3. So when the build failed, I manually cabal installed HaXml-1.24,
which worked, and then I could finish the build of my projects. It would be
good if cabal somehow took into account the lowerbound of the compiler
version required for a package, so that HaXml-1.24.1, for example, could
say it requires ghc >= 7.8.2 and cabal would pick HaXml-1.24 which works
with 7.6.3 instead. Of course, what I have to do now is to specify the
upperbound on HaXml...
Also, sometimes I am getting messages similar to this (it was also
hapenning with 1.18.*):
$ cabal install pandoc-1.11.1
Resolving dependencies...
Failed to install pandoc-1.11.1
Last 10 lines of the build log (
C:\Users\mantkiew\AppData\Roaming\cabal\logs\pandoc-1.11.1.log ):
cabal.exe: C:\Users\mantkiew\AppData\Roaming\cabal\logs\pandoc-1.11.1.log:
does not exist
The file "pandoc-1.11.1.log" indeed does not exist. After I manually create
an empty log file, I get this:
$ cabal install pandoc-1.11.1
Resolving dependencies...
Failed to install pandoc-1.11.1
Last 10 lines of the build log (
C:\Users\mantkiew\AppData\Roaming\cabal\logs\pandoc-1.11.1.log ):
cabal.exe: Error: some packages failed to install:
pandoc-1.11.1 failed while unpacking the package. The exception was:
C:\Users\mantkiew\AppData\Local\Temp\pandoc-1.11.1-4732\pandoc-1.11.1\dist-tmp:
MoveFileEx
"C:\\Users\\mantkiew\\AppData\\Local\\Temp\\pandoc-1.11.1-4732\\pandoc-1.11.1\\dist-tmp"
"C:\\Users\\mantkiew\\AppData\\Local\\Temp\\pandoc-1.11.1-4732\\pandoc-1.11.1\\dist":
permission denied (Access is denied.)
the "pandoc-1.11.1-4732" does not even exit. Of course, on subsequent
attempts, the number is changing after package version. Nothing I tried
worked. The only way out of this is to completely remove the Roaming/cabal
and Roaming/ghc folders and begin from scratch. Then it worked. I wasn't
able to reproduce this behavior -- it seems random. Why would cabal report
access denied for non-existing files/folders?
Finally,I love the speed (jobs: $ncpus) :-D
Thanks!
Michal
On Tue, Apr 15, 2014 at 8:54 AM, Johan Tibell
Hi all,
I've prepared the Cabal/cabal-install 1.20 release candidates. I now need some help testing, especially on Windows as I don't have a Windows machine.
There are over 300 commits since the last release and lots of interesting new features and changes. I will write them down when I make the actual release.
To install the release candidates simply run:
cabal install --constraint="HTTP >= 4000.2.5" http://johantibell.com/files/Cabal-1.20.0-rc.tar.gz http://johantibell.com/files/cabal-install-1.20.0-rc.tar.gz
(The --constraint="HTTP >= 4000.2.5" flag is used to work around an issue I already found in the RC, it won't be needed for the real release.)
Please report any issues on the bug tracker: https://github.com/haskell/cabal/issues
If I haven't heard of anything release blocking bugs (or last minute important patches) in a couple of days, I will make these tarballs the official release.
The commits used are tagged in the repo as Cabal-v1.20.0-rc and cabal-install-v1.20.0-rc.
-- Johan
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

Hi,
On 16 April 2014 02:55, Michal Antkiewicz
Also, sometimes I am getting messages similar to this (it was also hapenning with 1.18.*):
[...]
Thanks for the bug report, I'll try to look into this when I get some free time.
Why would cabal report access denied for non-existing files/folders?
These are temporary folders that get deleted on process exit.

Re: reproducing... When you loose internet connection during cabal run or you try to build without internet access you get this on Win 8 (for any package...) $ cabal install hoogle Resolving dependencies... Downloading hoogle-4.2.32... Failed to install hoogle-4.2.32 Last 10 lines of the build log ( C:\Users\mantkiew\AppData\Roaming\cabal\logs\hoogle-4.2.32.log ): cabal.exe: C:\Users\mantkiew\AppData\Roaming\cabal\logs\hoogle-4.2.32.log: does not exist But when the connection returns, I could successfully built it. Previously, however, that was not the case (with pandoc example). Hope that helps. Maybe this bug is related to loosing internet connection during cabal install run and having some leftovers which prevent it from restarting. Just speculating. Michal On Tue, Apr 15, 2014 at 9:02 PM, Mikhail Glushenkov < the.dead.shall.rise@gmail.com> wrote:
Hi,
On 16 April 2014 02:55, Michal Antkiewicz
wrote: Also, sometimes I am getting messages similar to this (it was also
hapenning
with 1.18.*):
[...]
Thanks for the bug report, I'll try to look into this when I get some free time.
Why would cabal report access denied for non-existing files/folders?
These are temporary folders that get deleted on process exit.

I am curious about the method used by cabal-install to distribute the compilation on several jobs (cores). By looking at the OS process list, I often see that initally, and at several times later, all cores are busy, but then there are states where only one job is running. That's presumably because all future compilations depend on this single job. Does cabal's scheduler take into account anything else besides the actual depencency relation - e.g., something about expected duration of compilations? (And would it help?) Oh, and I find it slightly annoying that I cannot see (from stdout) what actually is going on. I understand it's a design problem, and the current solution (showing just package names, not module names, for parallel builds) may indeed be better than printing too much.

Hi,
On 16 April 2014 13:25, Johannes Waldmann
Does cabal's scheduler take into account anything else besides the actual depencency relation - e.g., something about expected duration of compilations?
No, it doesn't.
Oh, and I find it slightly annoying that I cannot see (from stdout) what actually is going on. I understand it's a design problem, and the current solution (showing just package names, not module names, for parallel builds) may indeed be better than printing too much.
Yes, this is a known issue [1]. Unfortunately, no-one has gotten around to fixing it yet. [1] https://github.com/haskell/cabal/issues/975
participants (4)
-
Johan Tibell
-
Johannes Waldmann
-
Michal Antkiewicz
-
Mikhail Glushenkov