[GHC] #3867: ghc: panic! (linkBCO: >= 64k ptrs)

GHC cvs-ghc at haskell.org
Tue Apr 17 20:07:04 CEST 2012


#3867: ghc: panic! (linkBCO: >= 64k ptrs)
----------------------------------------+-----------------------------------
  Reporter:  archgrove                  |          Owner:                  
      Type:  bug                        |         Status:  closed          
  Priority:  high                       |      Milestone:  7.6.1           
 Component:  Compiler                   |        Version:  6.12.1          
Resolution:  fixed                      |       Keywords:                  
        Os:  Unknown/Multiple           |   Architecture:  Unknown/Multiple
   Failure:  GHC rejects valid program  |     Difficulty:  Unknown         
  Testcase:                             |      Blockedby:                  
  Blocking:                             |        Related:                  
----------------------------------------+-----------------------------------
Changes (by pcapriotti):

  * status:  patch => closed
  * resolution:  => fixed


Comment:

 Pushed:

 {{{
 commit 6ba8b3309709fa1ad43382e23792b1c4a624d7ad
 Author: Paolo Capriotti <p.capriotti at gmail.com>
 Date:   Mon Apr 16 19:46:26 2012 +0100

     Fix operand expansion function.

 commit d5ec2967b0662e46b495d4bfeed90ec2a4b02e97
 Author: Paolo Capriotti <p.capriotti at gmail.com>
 Date:   Thu Apr 5 18:42:37 2012 +0100

     Implemented word-sized addressing of pointers and literals.

 commit f8d48821a819604e21ba0794e8794f76ed21c758
 Author: Paolo Capriotti <p.capriotti at gmail.com>
 Date:   Thu Apr 5 18:09:40 2012 +0100

     Bytecode assembler refactoring.

     Use a free monad to specify the assembling procedure, so that it can
 be
     run multiple times without producing side effects.

     This paves the way for a more general implementation of variable-sized
     instructions, since we need to dry-run the bytecode assembler to
     determine the size of the operands for some instructions.

 commit e408f4f507d2cfb302a7f5a7f502336672b57107
 Author: Paolo Capriotti <p.capriotti at gmail.com>
 Date:   Thu Apr 5 16:45:21 2012 +0100

     Export State monad transformer from ByteCodeItbls.

 commit 6dc22bfa9d0026c09abf94e44f04fb9e761d4e54
 Author: Paolo Capriotti <p.capriotti at gmail.com>
 Date:   Thu Apr 5 09:52:18 2012 +0100

     Support large SLIDE instructions.

     The bytecode generator used to keep track of the stack depth with a
     16-bit counter, which could overflow for very large BCOs, resulting in
     incorrect bytecode.

     This commit switches to a word-sized counter, and eagerly panics
     whenever an operand is too big, instead of truncating the result.

     This allows us to work around the 16-bit limitation in the case of
 SLIDE
     instructions, since we can simply factor it into multiple SLIDEs with
     smaller arguments.
 }}}

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



More information about the Glasgow-haskell-bugs mailing list