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

GHC ghc-devs at haskell.org
Thu Sep 13 10:46:39 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:                    |
-------------------------------------+-------------------------------------

Comment (by osa1):

 So monoidal pointed out to me about this flag

 {{{
 GHCi and -O
 ---------------

 When using optimization, the compiler can introduce several things
 (such as unboxed tuples) into the intermediate code, which GHCi later
 chokes on since the bytecode interpreter can't handle this (and while
 this is arguably a bug these aren't handled, there are no plans to fix
 it.)

 While the driver pipeline always checks for this particular erroneous
 combination when parsing flags, we also need to check when we update
 the flags; this is because API clients may parse flags but update the
 DynFlags afterwords, before finally running code inside a session (see
 T10052 and #10052).
 }}}

 I think this says that optimisation flags should be ignored by ghci.
 Indeed normally are:

 {{{
 ~ $ ghci -O2

 when making flags consistent: warning:
     -O conflicts with --interactive; -O ignored.
 GHCi, version 8.4.3: http://www.haskell.org/ghc/  :? for help
 Loaded GHCi configuration from /home/omer/rcbackup/.ghci
 }}}

 The problem is when we also add `-fbyte-code` then I guess the consistency
 check does not work as expected and accepts `-O2`:

 {{{
 ~ $ ghci -fobject-code -O2
 GHCi, version 8.4.3: http://www.haskell.org/ghc/  :? for help
 Loaded GHCi configuration from /home/omer/rcbackup/.ghci
 λ:1> 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.
 }}}

 So this is probably just a matter of fixing the flag consistency check
 (whatever that is).

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


More information about the ghc-tickets mailing list