[Haskell-beginners] Using "cabal test" and getting "cabal: Prelude.read: no parse"

Brent Yorgey byorgey at seas.upenn.edu
Tue May 27 17:45:52 UTC 2014


This seems related, though I don't think it's your problem exactly:

  https://github.com/haskell/cabal/issues/1366

Apparently a "read: no parse" error can be generated when cabal fails
to read a log file for some reason.  Can you tell us precisely what
versions of cabal and ghc you are using (i.e. the output of ghc
--version and cabal --version)?

-Brent

On Mon, May 26, 2014 at 11:12:00PM -0400, Daniel King wrote:
> I don't call the `read' function in my source code anywhere. I do
> derive `read' instances in my data definitions, but otherwise grep
> finds no occurrences.
> 
> I'm fairly certain this is a bug in the testing framework, but I don't
> know how to debug it further. The cabal compilation process seems to
> produce a file at
> "dist/build/MY_PACKAGE_NAME-testsStub/MY_PACKAGE_NAME-testsStub-tmp/MY_PACKAGE_NAME-testsStub.hs".
> This file contains:
> 
>     module Main ( main ) where
>     import Distribution.Simple.Test ( stubMain )
>     import Tests ( tests )
>     main :: IO ()
>     main = stubMain tests
> 
> In the parent directory there is an executable,
> "dist/build/MY_PACKAGE_NAME-testsStub/MY_PACKAGE_NAME-testsStub" which
> appears to be the file which cabal executes when I call "cabal test".
> I'm not sure how this executable is created but I suspect it comes
> from the file I quoted above.
> 
> I'm beginning to suspect that the testing framework is not playing
> well with something.
> 
> This is my test file: http://lpaste.net/104680
> 
> I'm using the detailed-0.9 "type" of test module, because the
> detailed-1.0 "type" isn't present on my system. Is this the problem?
> They seem to reference detailed-1.0 in this user guide I found for
> Cabal: http://www.haskell.org/cabal/release/rc/doc/users-guide/#test-suites
> . Though now, seeing the URL, it seems that the user guide might be
> for a release candidate version of cabal? I found that page through
> googling how to set up a test suite in Cabal.
> 
> Can someone point me at a different guide or tutorial? I tried this
> (http://www.haskell.org/cabal/users-guide/) guide as well, but it
> doesn't give any examples and barely references test suites at all.
> 
> On Mon, May 26, 2014 at 5:20 PM, Erik Price <erikprice at gmail.com> wrote:
> > It's possible that you're calling the
> >
> >     read :: Read a => String -> a
> >
> > function somewhere with a parameter that the function doesn't know how to
> > parse. I ran into this just today when I called
> >
> >     read "a string" :: String
> >
> > when what I needed to call was
> >
> >     read "\"a string\"" :: String
> >
> > e
> >
> >
> > On Monday, May 26, 2014, Boris <Boris.Daix at gmail.com> wrote:
> >>
> >> Hello,
> >>
> >> Last time I got such an error, it was because I was using 'read' for a
> >> type I had defined myself, deriving Read, but on something that was not
> >> reelated to the type.  For instance:
> >>
> >> data Foo = Foo deriving (Read, Show)
> >>
> >> x :: Foo
> >> x = read "Bar"
> >>
> >> Do you use read somwhere?
> >>
> >> HTH
> >>
> >> Daniel King <daniel.zidan.king at gmail.com> writes:
> >>
> >> > Hi all,
> >> >
> >> > I created a cabal project with the attached cabal file. I run:
> >> >
> >> >   cabal configure --enable-tests
> >> >   cabal build
> >> >   cabal test
> >> >
> >> > and then I get the error:
> >> >
> >> >   cabal: Prelude.read: no parse
> >> >
> >> > I'm not sure how to debug this any further. If I execute:
> >> >
> >> >   ./dist/build/scientific-pl-testsStub/scientific-pl-testsStub
> >> >
> >> > with any input I've tried (numbers, array notation, string notation,
> >> > etc.) and I get that same error.
> >> >
> >> > I can post the whole project if that is helpful.
> >> >
> >> > Thanks for the debugging tips!
> >> >
> >> > The full log is:
> >> >
> >> > danking at spock # cabal configure --enable-tests
> >> > Resolving dependencies...
> >> > Configuring scientific-pl-0.1.0.0...
> >> > danking at spock # cabal build
> >> > Building scientific-pl-0.1.0.0...
> >> > Preprocessing test suite 'scientific-pl-tests' for
> >> > scientific-pl-0.1.0.0...
> >> > [1 of 3] Compiling SPLData          ( SPLData.hs, dist/build/SPLData.o )
> >> > [2 of 3] Compiling SPLEval          ( SPLEval.hs, dist/build/SPLEval.o )
> >> > [3 of 3] Compiling Tests            ( tests/Tests.hs, dist/build/Tests.o
> >> > )
> >> > In-place registering scientific-pl-tests-0.1.0.0...
> >> > [1 of 1] Compiling Main             (
> >> >
> >> > dist/build/scientific-pl-testsStub/scientific-pl-testsStub-tmp/scientific-pl-testsStub.hs,
> >> > dist/build/scientific-pl-testsStub/scientific-pl-testsStub-tmp/Main.o
> >> > )
> >> > Linking dist/build/scientific-pl-testsStub/scientific-pl-testsStub ...
> >> > Preprocessing executable 'scientific-pl' for scientific-pl-0.1.0.0...
> >> > [1 of 3] Compiling SPLData          ( SPLData.hs,
> >> > dist/build/scientific-pl/scientific-pl-tmp/SPLData.o )
> >> > [2 of 3] Compiling SPLEval          ( SPLEval.hs,
> >> > dist/build/scientific-pl/scientific-pl-tmp/SPLEval.o )
> >> > [3 of 3] Compiling Main             ( Main.hs,
> >> > dist/build/scientific-pl/scientific-pl-tmp/Main.o )
> >> > Linking dist/build/scientific-pl/scientific-pl ...
> >> > danking at spock # cabal test
> >> > Running 1 test suites...
> >> > Test suite scientific-pl-tests: RUNNING...
> >> > cabal: Prelude.read: no parse
> >> > 1 danking at spock #
> >>
> >> --
> >> Boris Daix
> >> _______________________________________________
> >> Beginners mailing list
> >> Beginners at haskell.org
> >> http://www.haskell.org/mailman/listinfo/beginners
> >
> >
> > _______________________________________________
> > Beginners mailing list
> > Beginners at haskell.org
> > http://www.haskell.org/mailman/listinfo/beginners
> >
> 
> 
> 
> -- 
> Dan King
> _______________________________________________
> Beginners mailing list
> Beginners at haskell.org
> http://www.haskell.org/mailman/listinfo/beginners


More information about the Beginners mailing list