
if you're using Haskell at all, you *are* the Haskell community.
[..lots of "I searched, I found, I tried, I got this error, I thought, I tried this workaround, I got to this point, now I'm stuck here..]
I just wanted to comment that I find this kind of "experience report"
very helpful, especially if someone does not give up at the first hurdle,
and goes through the trouble of writing up all the frustrating steps and
thoughts rather than summarizing ("it didn't work"/"I got it to work
after some fiddling") - thanks!
The problem with mindsets is that minds get set in them, and not only
do people outside find it very difficult to "get in", but the people inside
find it very difficult to understand what it is like "outside".
While you are looking for documentation of the supposedly easy first
steps to get you started on your more detailed investigation, so you
have just provided the rest of the community with some documentation
of what its works currently look like.
That situation seems to be slightly embarrassing (if only because we
are tempted to think that we have no time for the traditional README
and INSTALL files - after all, all darcs/cabal stuff is self-explanatory,
isn't it, and has been discussed to death somewhere, hasn't it, and the
library does the obvious thing, doesn't it, and isn't quite ready for prime
time yet anyway, at which time it is going to be carved in stone and
documented thoroughly by a team of Pulitzer-price-winning authors?-)
Seriously, and as Simon PJ has been fond of reminding us: the user is
always right, so I very much hope that those of us involved with the
projects mentioned in your report will take note and do something
about it (for easy reference I repeat it at the end of this message;-).
Some suggestions, gleaned from your experience (perhaps you could
comment on whether they'd have been of any use?):
cabal:
- the separation into interpreter/compiler and resource as Setup
does not set up the right mindset in users. for instance, you can
"runhaskell Setup.hs --help" as for most unixy tools, but who'd
think of that in this situation, and how much does it help?
+ add a dedicated command "cabal", which does nothing more
than "runhaskell Setup", but is more memorable and suggestive
+ when anything goes wrong, also mention "cabal --help" in the
error message
+ in "cabal --help", explicitly and prominently mention the typical
usage cycle (configure/build/install); also point to cabal home
page, with more documentation, bug reports, newest version
and known problem info, downloads, ..
- the three step separation into configure/build/install is traditional
and has good justifications, but is unhelpful for the most typical
use case (I need a library for a part of my work, it isn't installed
by default, it doesn't have an installer, so I have to do this cabal
thing to get on with my work). if someone types "cabal install"
as the first command, cabal might engage in a simple dialogue:
"would you like to configure then build then install
- following the HDBC link on the Haskell Wiki leads to a huge list of tar.gz files, with no indication of which one I might want :-(
Option 2, Takusen, leads to a file listing, but no downloadable package.
Option 3, HSQL, leads to a page which doesn't mention Oracle support (even though the Wiki page does) so I'm put off trying further...
- installing database libraries is not the main activity, it just gets in the way of running SQL queries from Haskell, and may well be the first experience with getting/building/installing 3rd party libs for Haskell - other languages and their bindings are tempting if potential users get stuck I hope this summary/rephrasing of Paul's report is helpful. what do users and implementors think (cc-ed to libraries list)? Claus
OK, thanks for the gentle push. After a bit of digging, I decided that the takusen link looked like a darcs repository, and I downloaded darcs and got takusen. I installed GHC 6.6 in a spare VM (no PC round I can install stuff on just now, I'll do this properly later). On the assumption that the takusen.cabal file means I should look at Cabal, I had a dig and found the incantation "runhaskell setup.hs".
I got the error:
F:\takusen>runhaskell setup.hs
setup.hs:11:7: Could not find module `Distribution.Compat.FilePath': it is hidden (in package Cabal-1.1.6)
I assume this relates to the note in setup.hs "For ghc-6.6 you will need to first install Cabal-1.1.6.1", but as I got GHC from a Windows binary install, I'm not sure where to go from here. I found the Cabal webpage and downloaded 1.1.6.1. Trying to install it, I got the following:
F:\cabal-1.1.6.1>runhaskell Setup.lhs install Setup.lhs: error reading ./.setup-config; run "setup configure" command?
F:\cabal-1.1.6.1>runhaskell Setup.lhs configure Configuring Cabal-1.1.6.1... configure: Dependency base-any: using base-2.0 configure: Using install prefix: C:\Program Files configure: Binaries installed in: C:\Program Files\Haskell\bin configure: Libraries installed in: C:\Program Files\Haskell\Cabal-1.1.6.1\ghc-6.6 configure: Private binaries installed in: C:\Program Files\Cabal-1.1.6.1 configure: Data files installed in: C:\Program Files\Common Files\Cabal-1.1.6.1 configure: Using compiler: c:\ghc\ghc-6.6\bin\ghc.exe configure: Compiler flavor: GHC configure: Compiler version: 6.6 configure: Using package tool: c:\ghc\ghc-6.6\bin\ghc-pkg.exe configure: Using ar found on system at: c:\ghc\ghc-6.6\bin\ar.exe configure: No haddock found configure: No pfesetup found configure: No ranlib found configure: Using runghc found on system at: c:\ghc\ghc-6.6\bin\runghc.exe configure: No runhugs found configure: No happy found configure: No alex found configure: Using hsc2hs: c:\ghc\ghc-6.6\bin\hsc2hs.exe configure: No c2hs found configure: No cpphs found configure: No greencard found
F:\cabal-1.1.6.1>runhaskell Setup.lhs install Installing: C:\Program Files\Haskell\Cabal-1.1.6.1\ghc-6.6 & C:\Program Files\Haskell\bin Cabal-1.1.6.1... Setup.lhs: Error: Could not find module: Distribution.Compiler with any suffix: ["hi"]
OK, that's as far as I can go. Remember, what I *want* to do is to run some SQL against my database to get some data into a Haskell program. I'm not up to debugging a Cabal install. (At this point, if I was doing this for "real work", I'd be off to the Python website like a shot...)
Can anyone help? I promise, I will document what I end up with!
Paul. _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe