[GHC] #1405: Make ghc (stage1) be compilable by non-GHC

GHC ghc-devs at haskell.org
Fri Aug 21 14:24:46 UTC 2015


#1405: Make ghc (stage1) be compilable by non-GHC
-------------------------------------+-------------------------------------
        Reporter:  Isaac Dupree      |                   Owner:
            Type:  task              |                  Status:  closed
        Priority:  normal            |               Milestone:  ⊥
       Component:  Compiler          |                 Version:  6.6.1
      Resolution:  wontfix           |                Keywords:
Operating System:  Unknown/Multiple  |            Architecture:
                                     |  Unknown/Multiple
 Type of failure:  None/Unknown      |               Test Case:
      Blocked By:                    |                Blocking:
 Related Tickets:                    |  Differential Revisions:
-------------------------------------+-------------------------------------

Comment (by Ben Gamari <ben@…>):

 In [changeset:"2f29ebbb6f8c914f2bba624f3edcc259274df8af/ghc" 2f29ebb/ghc]:
 {{{
 #!CommitTicketReference repository="ghc"
 revision="2f29ebbb6f8c914f2bba624f3edcc259274df8af"
 Refactor: delete most of the module FastTypes

 This reverses some of the work done in #1405, and goes back to the
 assumption that the bootstrap compiler understands GHC-haskell.

 In particular:
   * use MagicHash instead of _ILIT and _CLIT
   * pattern matching on I# if possible, instead of using iUnbox
     unnecessarily
   * use Int#/Char#/Addr# instead of the following type synonyms:
     - type FastInt   = Int#
     - type FastChar  = Char#
     - type FastPtr a = Addr#
   * inline the following functions:
     - iBox           = I#
     - cBox           = C#
     - fastChr        = chr#
     - fastOrd        = ord#
     - eqFastChar     = eqChar#
     - shiftLFastInt  = uncheckedIShiftL#
     - shiftR_FastInt = uncheckedIShiftRL#
     - shiftRLFastInt = uncheckedIShiftRL#
   * delete the following unused functions:
     - minFastInt
     - maxFastInt
     - uncheckedIShiftRA#
     - castFastPtr
     - panicDocFastInt and pprPanicFastInt
   * rename panicFastInt back to panic#

 These functions remain, since they actually do something:
   * iUnbox
   * bitAndFastInt
   * bitOrFastInt

 Test Plan: validate

 Reviewers: austin, bgamari

 Subscribers: rwbarton

 Differential Revision: https://phabricator.haskell.org/D1141

 GHC Trac Issues: #1405
 }}}

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


More information about the ghc-tickets mailing list