[GHC] #15617: Unboxed tuples/sum error message on `a = show 5` in expression evaluation and interactive modes

GHC ghc-devs at haskell.org
Sat Sep 8 02:34:02 UTC 2018


#15617: Unboxed tuples/sum error message on `a = show 5` in expression evaluation
and interactive modes
-------------------------------------+-------------------------------------
        Reporter:  ChaiTRex          |                Owner:  (none)
            Type:  bug               |               Status:  new
        Priority:  normal            |            Milestone:  8.6.1
       Component:  Compiler          |              Version:  8.6.1-beta1
      Resolution:                    |             Keywords:
Operating System:  Unknown/Multiple  |         Architecture:
 Type of failure:  Poor/confusing    |  Unknown/Multiple
  error message                      |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------
Description changed by ChaiTRex:

Old description:

> With GHC 8.4.3 (`ghc` below on both Ubuntu 16.04.5 and Ubuntu 18.04.1)
> and recent GHC (`~/dev/ghc/inplace/bin/ghc-stage2` below on Ubuntu
> 16.04.5; not `HEAD` but close at
> `ff29fc84c03c800cfa04c2a00eb8edf6fa5f4183`), I get errors for `a = show
> 5`.
>
> I run the following commands, showing that `show 5` is usually fine:
>
> {{{
> $ ghc -fobject-code -O2 -e 'show 5'
> "5"
>
> $ ghc -fobject-code -O2 -e 'let a = show 5 in a'
> "5"
> }}}
>
> But not with `a = show 5`:
>
> {{{
> $ ghc -fobject-code -O2 -e 'a = show 5'
> <interactive>: Error: bytecode compiler can't handle unboxed tuples and
> sums.
>   Possibly due to foreign import/export decls in source.
>   Workaround: use -fobject-code, or compile this module to .o separately.
> }}}
>
> Running with `ghci` gives the same error:
>
> {{{
> $ ghci -fobject-code -O2
> GHCi, version 8.4.3: http://www.haskell.org/ghc/  :? for help
> Prelude> a = show 5
> Error: bytecode compiler can't handle unboxed tuples and sums.
>   Possibly due to foreign import/export decls in source.
>   Workaround: use -fobject-code, or compile this module to .o separately.
> Prelude>
> Leaving GHCi.
> }}}
>
> Both errors stop when optimization is turned off:
>
> {{{
> $ ghc -fobject-code -O0 -e 'a = show 5'
>
> $ ghci -fobject-code -O0
> GHCi, version 8.4.3: http://www.haskell.org/ghc/  :? for help
> Prelude> a = show 5
> Prelude>
> Leaving GHCi.
> }}}

New description:

 With GHC 8.4.3 (on both Ubuntu 16.04.5 and Ubuntu 18.04.1) and recent GHC
 (not `HEAD` but close at `ff29fc84c03c800cfa04c2a00eb8edf6fa5f4183` on
 Ubuntu 16.04.5), I get errors for `a = show 5`.

 I run the following commands, showing that `show 5` is usually fine:

 {{{
 $ ghc -fobject-code -O2 -e 'show 5'
 "5"

 $ ghc -fobject-code -O2 -e 'let a = show 5 in a'
 "5"
 }}}

 But not with `a = show 5`:

 {{{
 $ ghc -fobject-code -O2 -e 'a = show 5'
 <interactive>: Error: bytecode compiler can't handle unboxed tuples and
 sums.
   Possibly due to foreign import/export decls in source.
   Workaround: use -fobject-code, or compile this module to .o separately.
 }}}

 Running with `ghci` gives the same error:

 {{{
 $ ghci -fobject-code -O2
 GHCi, version 8.4.3: http://www.haskell.org/ghc/  :? for help
 Prelude> a = show 5
 Error: bytecode compiler can't handle unboxed tuples and sums.
   Possibly due to foreign import/export decls in source.
   Workaround: use -fobject-code, or compile this module to .o separately.
 Prelude>
 Leaving GHCi.
 }}}

 Both errors stop when optimization is turned off:

 {{{
 $ ghc -fobject-code -O0 -e 'a = show 5'

 $ ghci -fobject-code -O0
 GHCi, version 8.4.3: http://www.haskell.org/ghc/  :? for help
 Prelude> a = show 5
 Prelude>
 Leaving GHCi.
 }}}

--

-- 
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/15617#comment:1>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list