[GHC] #14829: Linking error with ANN pragma
GHC
ghc-devs at haskell.org
Tue Feb 20 14:38:06 UTC 2018
#14829: Linking error with ANN pragma
-------------------------------------+-------------------------------------
Reporter: ehubinette | Owner: (none)
Type: bug | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 8.2.2
Resolution: | Keywords:
Operating System: Linux | Architecture:
Type of failure: Compile-time | Unknown/Multiple
crash or panic | Test Case:
Blocked By: | Blocking:
Related Tickets: | Differential Rev(s):
Wiki Page: |
-------------------------------------+-------------------------------------
Description changed by ehubinette:
Old description:
> There seems to be an issue with the ANN pragma, with fatal compilation
> errors.
>
> To reproduce, setup two modules as such:
>
> {{{#!hs
> module Test where
>
> import Weights (Weight(..))
>
> {-# ANN mainTest (Weight 2) #-}
> mainTest :: IO ()
> mainTest = return ()
> }}}
>
> {{{#!hs
> {-# LANGUAGE DeriveDataTypeable #-}
> module Weights (Weight(..)) where
>
> import Data.Data (Data(..))
>
> newtype Weight = Weight Integer deriving Data
> }}}
>
>
> Compiling with GHC version `8.2.2` yields:
>
> {{{
> λ ghc Test.hs
> [2 of 2] Compiling Test ( Test.hs, Test.o )
> Test.hs:5:1: fatal:
> cannot find object file ‘./Weights.dyn_o’
> while linking an interpreted expression
> }}}
>
> The issue persists with `-dynamic-too`:
>
> {{{
> λ ghc -dynamic-too Test.hs
> [2 of 2] Compiling Test ( Test.hs, Test.o )
> Test.hs:5:1: fatal:
> cannot find object file ‘./Weights.dyn_o’
> while linking an interpreted expression
> }}}
>
> ...but disappears with `-dynamic`:
>
> {{{
> λ ghc -dynamic Test.hs
> [1 of 2] Compiling Weights ( Weights.hs, Weights.o )
> [2 of 2] Compiling Test ( Test.hs, Test.o )
> }}}
>
> Sidenote: with GHC version `8.5.20180219`, the issue disappears with
> `-dynamic-too` ''or'' `-dynamic`:
>
> {{{
> λ ../../ghc/inplace/bin/ghc-stage2 -dynamic-too Test.hs
> [1 of 2] Compiling Weights ( Weights.hs, Weights.o )
> [2 of 2] Compiling Test ( Test.hs, Test.o )
> }}}
>
> Remove the ANN pragma, and the compiler behaves just fine with both GHC
> versions. Please tell me if I can provide more information. Cheers.
New description:
There seems to be an issue with the ANN pragma, with fatal compilation
errors.
To reproduce, setup two modules as such:
{{{#!hs
module Test where
import Weights (Weight(..))
{-# ANN mainTest (Weight 2) #-}
mainTest :: IO ()
mainTest = return ()
}}}
{{{#!hs
{-# LANGUAGE DeriveDataTypeable #-}
module Weights (Weight(..)) where
import Data.Data (Data(..))
newtype Weight = Weight Integer deriving Data
}}}
Compiling with GHC version `8.2.2` yields:
{{{
λ ghc Test.hs
[1 of 2] Compiling Weights ( Weights.hs, Weights.o )
[2 of 2] Compiling Test ( Test.hs, Test.o )
Test.hs:5:1: fatal:
cannot find object file ‘./Weights.dyn_o’
while linking an interpreted expression
}}}
The issue disappears with `-dynamic` or `-dynamic-too`:
{{{
λ ghc -dynamic Test.hs
[1 of 2] Compiling Weights ( Weights.hs, Weights.o )
[2 of 2] Compiling Test ( Test.hs, Test.o )
}}}
Issue persist in HEAD, GHC version `8.5.20180219`, but again disappears
with `-dynamic-too` ''or'' `-dynamic`:
{{{
λ ../../ghc/inplace/bin/ghc-stage2 -dynamic-too Test.hs
[1 of 2] Compiling Weights ( Weights.hs, Weights.o )
[2 of 2] Compiling Test ( Test.hs, Test.o )
}}}
Remove the ANN pragma, and the compiler behaves just fine with both GHC
versions. Please tell me if I can provide more information. Cheers.
--
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/14829#comment:1>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list