Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • ghc/ghc
  • bgamari/ghc
  • syd/ghc
  • ggreif/ghc
  • watashi/ghc
  • RolandSenn/ghc
  • mpickering/ghc
  • DavidEichmann/ghc
  • carter/ghc
  • harpocrates/ghc
  • ethercrow/ghc
  • mijicd/ghc
  • adamse/ghc
  • alexbiehl/ghc
  • gridaphobe/ghc
  • trofi/ghc
  • supersven/ghc
  • ppk/ghc
  • ulysses4ever/ghc
  • AndreasK/ghc
  • ghuntley/ghc
  • shayne-fletcher-da/ghc
  • fgaz/ghc
  • yav/ghc
  • osa1/ghc
  • mbbx6spp/ghc
  • JulianLeviston/ghc
  • reactormonk/ghc
  • rae/ghc
  • takenobu-hs/ghc
  • michalt/ghc
  • andrewthad/ghc
  • hsyl20/ghc
  • scottgw/ghc
  • sjakobi/ghc
  • angerman/ghc
  • RyanGlScott/ghc
  • hvr/ghc
  • howtonotwin/ghc
  • chessai/ghc
  • m-renaud/ghc
  • brprice/ghc
  • stevehartdata/ghc
  • sighingnow/ghc
  • kgardas/ghc
  • ckoparkar/ghc
  • alp/ghc
  • smaeul/ghc
  • kakkun61/ghc
  • sykloid/ghc
  • newhoggy/ghc
  • toonn/ghc
  • nineonine/ghc
  • Phyx/ghc
  • ezyang/ghc
  • tweag/ghc
  • langston/ghc
  • ndmitchell/ghc
  • rockbmb/ghc
  • artempyanykh/ghc
  • mniip/ghc
  • mynguyenbmc/ghc
  • alexfmpe/ghc
  • crockeea/ghc
  • nh2/ghc
  • vaibhavsagar/ghc
  • phadej/ghc
  • Haskell-mouse/ghc
  • lolotp/ghc
  • spacekitteh/ghc
  • michaelpj/ghc
  • mgsloan/ghc
  • HPCohen/ghc
  • tmobile/ghc
  • radrow/ghc
  • simonmar/ghc
  • _deepfire/ghc
  • Ericson2314/ghc
  • leitao/ghc
  • fumieval/ghc
  • trac-isovector/ghc
  • cblp/ghc
  • xich/ghc
  • ciil/ghc
  • erthalion/ghc
  • xldenis/ghc
  • autotaker/ghc
  • haskell-wasm/ghc
  • kcsongor/ghc
  • agander/ghc
  • Baranowski/ghc
  • trac-dredozubov/ghc
  • 23Skidoo/ghc
  • iustin/ghc
  • ningning/ghc
  • josefs/ghc
  • kabuhr/ghc
  • gallais/ghc
  • dten/ghc
  • expipiplus1/ghc
  • Pluralia/ghc
  • rohanjr/ghc
  • intricate/ghc
  • kirelagin/ghc
  • Javran/ghc
  • DanielG/ghc
  • trac-mizunashi_mana/ghc
  • pparkkin/ghc
  • bollu/ghc
  • ntc2/ghc
  • jaspervdj/ghc
  • JoshMeredith/ghc
  • wz1000/ghc
  • zkourouma/ghc
  • code5hot/ghc
  • jdprice/ghc
  • tdammers/ghc
  • J-mie6/ghc
  • trac-lantti/ghc
  • ch1bo/ghc
  • cgohla/ghc
  • lucamolteni/ghc
  • acairncross/ghc
  • amerocu/ghc
  • chreekat/ghc
  • txsmith/ghc
  • trupill/ghc
  • typetetris/ghc
  • sergv/ghc
  • fryguybob/ghc
  • erikd/ghc
  • trac-roland/ghc
  • setupminimal/ghc
  • Friede80/ghc
  • SkyWriter/ghc
  • xplorld/ghc
  • abrar/ghc
  • obsidiansystems/ghc
  • Icelandjack/ghc
  • adinapoli/ghc
  • trac-matthewbauer/ghc
  • heatsink/ghc
  • dwijnand/ghc
  • Cmdv/ghc
  • alinab/ghc
  • pepeiborra/ghc
  • fommil/ghc
  • luochen1990/ghc
  • rlupton20/ghc
  • applePrincess/ghc
  • lehins/ghc
  • ronmrdechai/ghc
  • leeadam/ghc
  • harendra/ghc
  • mightymosquito1991/ghc
  • trac-gershomb/ghc
  • lucajulian/ghc
  • Rizary/ghc
  • VictorCMiraldo/ghc
  • jamesbrock/ghc
  • andrewdmeier/ghc
  • luke/ghc
  • pranaysashank/ghc
  • cocreature/ghc
  • hithroc/ghc
  • obreitwi/ghc
  • slrtbtfs/ghc
  • kaol/ghc
  • yairchu/ghc
  • Mathemagician98/ghc
  • trac-taylorfausak/ghc
  • leungbk/ghc
  • MichaWiedenmann/ghc
  • chris-martin/ghc
  • TDecki/ghc
  • adithyaov/ghc
  • trac-gelisam/ghc
  • Lysxia/ghc
  • complyue/ghc
  • bwignall/ghc
  • sternmull/ghc
  • sonika/ghc
  • leif/ghc
  • broadwaylamb/ghc
  • myszon/ghc
  • danbroooks/ghc
  • Mechachleopteryx/ghc
  • zardyh/ghc
  • trac-vdukhovni/ghc
  • OmarKhaledAbdo/ghc
  • arrowd/ghc
  • Bodigrim/ghc
  • matheus23/ghc
  • cardenaso11/ghc
  • trac-Athas/ghc
  • mb720/ghc
  • DylanZA/ghc
  • liff/ghc
  • typedrat/ghc
  • trac-claude/ghc
  • jbm/ghc
  • Gertjan423/ghc
  • PHO/ghc
  • JKTKops/ghc
  • kockahonza/ghc
  • msakai/ghc
  • Sir4ur0n/ghc
  • barambani/ghc
  • vishnu.c/ghc
  • dcoutts/ghc
  • trac-runeks/ghc
  • trac-MaxGabriel/ghc
  • lexi.lambda/ghc
  • strake/ghc
  • spavikevik/ghc
  • JakobBruenker/ghc
  • rmanne/ghc
  • gdziadkiewicz/ghc
  • ani/ghc
  • iliastsi/ghc
  • smunix/ghc
  • judah/ghc
  • blackgnezdo/ghc
  • emilypi/ghc
  • trac-bpfoley/ghc
  • muesli4/ghc
  • trac-gkaracha/ghc
  • Kleidukos/ghc
  • nek0/ghc
  • TristanCacqueray/ghc
  • dwulive/ghc
  • mbakke/ghc
  • arybczak/ghc
  • Yang123321/ghc
  • maksbotan/ghc
  • QuietMisdreavus/ghc
  • trac-olshanskydr/ghc
  • emekoi/ghc
  • samuela/ghc
  • josephcsible/ghc
  • dramforever/ghc
  • lpsmith/ghc
  • DenisFrezzato/ghc
  • michivi/ghc
  • jneira/ghc
  • jeffhappily/ghc
  • Ivan-Yudin/ghc
  • nakaji-dayo/ghc
  • gdevanla/ghc
  • galen/ghc
  • fendor/ghc
  • yaitskov/ghc
  • rcythr/ghc
  • awpr/ghc
  • jeremyschlatter/ghc
  • Aver1y/ghc
  • mitchellvitez/ghc
  • merijn/ghc
  • tomjaguarpaw1/ghc
  • trac-NoidedSuper/ghc
  • erewok/ghc
  • trac-junji.hashimoto/ghc
  • adamwespiser/ghc
  • bjaress/ghc
  • jhrcek/ghc
  • leonschoorl/ghc
  • lukasz-golebiewski/ghc
  • sheaf/ghc
  • last-g/ghc
  • carassius1014/ghc
  • eschwartz/ghc
  • dwincort/ghc
  • felixwiemuth/ghc
  • TimWSpence/ghc
  • marcusmonteirodesouza/ghc
  • WJWH/ghc
  • vtols/ghc
  • theobat/ghc
  • BinderDavid/ghc
  • ckoparkar0/ghc
  • alexander-kjeldaas/ghc
  • dme2/ghc
  • philderbeast/ghc
  • aaronallen8455/ghc
  • rayshih/ghc
  • benkard/ghc
  • mpardalos/ghc
  • saidelman/ghc
  • leiftw/ghc
  • ca333/ghc
  • bwroga/ghc
  • nmichael44/ghc
  • trac-crobbins/ghc
  • felixonmars/ghc
  • adityagupta1089/ghc
  • hgsipiere/ghc
  • treeowl/ghc
  • alexpeits/ghc
  • CraigFe/ghc
  • dnlkrgr/ghc
  • kerckhove_ts/ghc
  • cptwunderlich/ghc
  • eiais/ghc
  • hahohihu/ghc
  • sanchayan/ghc
  • lemmih/ghc
  • sehqlr/ghc
  • trac-dbeacham/ghc
  • luite/ghc
  • trac-f-a/ghc
  • vados/ghc
  • luntain/ghc
  • fatho/ghc
  • alexbiehl-gc/ghc
  • dcbdan/ghc
  • tvh/ghc
  • liam-ly/ghc
  • timbobbarnes/ghc
  • GovanifY/ghc
  • shanth2600/ghc
  • gliboc/ghc
  • duog/ghc
  • moxonsghost/ghc
  • zander/ghc
  • masaeedu/ghc
  • georgefst/ghc
  • guibou/ghc
  • nicuveo/ghc
  • mdebruijne/ghc
  • stjordanis/ghc
  • emiflake/ghc
  • wygulmage/ghc
  • frasertweedale/ghc
  • coot/ghc
  • aratamizuki/ghc
  • tsandstr/ghc
  • mrBliss/ghc
  • Anton-Latukha/ghc
  • tadfisher/ghc
  • vapourismo/ghc
  • Sorokin-Anton/ghc
  • basile-henry/ghc
  • trac-mightybyte/ghc
  • AbsoluteNikola/ghc
  • cobrien99/ghc
  • songzh/ghc
  • blamario/ghc
  • aj4ayushjain/ghc
  • trac-utdemir/ghc
  • tangcl/ghc
  • hdgarrood/ghc
  • maerwald/ghc
  • arjun/ghc
  • ratherforky/ghc
  • haskieLambda/ghc
  • EmilGedda/ghc
  • Bogicevic/ghc
  • eddiejessup/ghc
  • kozross/ghc
  • AlistairB/ghc
  • 3Rafal/ghc
  • christiaanb/ghc
  • trac-bit/ghc
  • matsumonkie/ghc
  • trac-parsonsmatt/ghc
  • chisui/ghc
  • jaro/ghc
  • trac-kmiyazato/ghc
  • davidsd/ghc
  • Tritlo/ghc
  • I-B-3/ghc
  • lykahb/ghc
  • AriFordsham/ghc
  • turion1/ghc
  • berberman/ghc
  • christiantakle/ghc
  • zyklotomic/ghc
  • trac-ocramz/ghc
  • CSEdd/ghc
  • doyougnu/ghc
  • mmhat/ghc
  • why-not-try-calmer/ghc
  • plutotulp/ghc
  • kjekac/ghc
  • Manvi07/ghc
  • teo/ghc
  • cactus/ghc
  • CarrieMY/ghc
  • abel/ghc
  • yihming/ghc
  • tsakki/ghc
  • jessicah/ghc
  • oliverbunting/ghc
  • meld/ghc
  • friedbrice/ghc
  • Joald/ghc
  • abarbu/ghc
  • DigitalBrains1/ghc
  • sterni/ghc
  • alexDarcy/ghc
  • hexchain/ghc
  • minimario/ghc
  • zliu41/ghc
  • tommd/ghc
  • jazcarate/ghc
  • peterbecich/ghc
  • alirezaghey/ghc
  • solomon/ghc
  • mikael.urankar/ghc
  • davjam/ghc
  • int-index/ghc
  • MorrowM/ghc
  • nrnrnr/ghc
  • Sonfamm/ghc-test-only
  • afzt1/ghc
  • nguyenhaibinh-tpc/ghc
  • trac-lierdakil/ghc
  • MichaWiedenmann1/ghc
  • jmorag/ghc
  • Ziharrk/ghc
  • trac-MitchellSalad/ghc
  • juampe/ghc
  • jwaldmann/ghc
  • snowleopard/ghc
  • juhp/ghc
  • normalcoder/ghc
  • ksqsf/ghc
  • trac-jberryman/ghc
  • roberth/ghc
  • 1ntEgr8/ghc
  • epworth/ghc
  • MrAdityaAlok/ghc
  • JunmingZhao42/ghc
  • jappeace/ghc
  • trac-Gabriel439/ghc
  • alt-romes/ghc
  • HugoPeters1024/ghc
  • 10ne1/ghc-fork
  • agentultra/ghc
  • Garfield1002/ghc
  • ChickenProp/ghc
  • clyring/ghc
  • MaxHearnden/ghc
  • jumper149/ghc
  • vem/ghc
  • ketzacoatl/ghc
  • Rosuavio/ghc
  • jackohughes/ghc
  • p4l1ly/ghc
  • konsumlamm/ghc
  • shlevy/ghc
  • torsten.schmits/ghc
  • andremarianiello/ghc
  • amesgen/ghc
  • googleson78/ghc
  • InfiniteVerma/ghc
  • uhbif19/ghc
  • yiyunliu/ghc
  • raehik/ghc
  • mrkun/ghc
  • telser/ghc
  • 1Jajen1/ghc
  • slotThe/ghc
  • WinstonHartnett/ghc
  • mpilgrem/ghc
  • dreamsmasher/ghc
  • schuelermine/ghc
  • trac-Viwor/ghc
  • undergroundquizscene/ghc
  • evertedsphere/ghc
  • coltenwebb/ghc
  • oberblastmeister/ghc
  • agrue/ghc
  • lf-/ghc
  • zacwood9/ghc
  • steshaw/ghc
  • high-cloud/ghc
  • SkamDart/ghc
  • PiDelport/ghc
  • maoif/ghc
  • RossPaterson/ghc
  • CharlesTaylor7/ghc
  • ribosomerocker/ghc
  • trac-ramirez7/ghc
  • daig/ghc
  • NicolasT/ghc
  • FinleyMcIlwaine/ghc
  • lawtonnichols/ghc
  • jmtd/ghc
  • ozkutuk/ghc
  • wildsebastian/ghc
  • nikshalark/ghc
  • lrzlin/ghc
  • tobias/ghc
  • fw/ghc
  • hawkinsw/ghc
  • type-dance/ghc
  • rui314/ghc
  • ocharles/ghc
  • wavewave/ghc
  • TheKK/ghc
  • nomeata/ghc
  • trac-csabahruska/ghc
  • jonathanjameswatson/ghc
  • L-as/ghc
  • Axman6/ghc
  • barracuda156/ghc
  • trac-jship/ghc
  • jake-87/ghc
  • meooow/ghc
  • rebeccat/ghc
  • hamana55/ghc
  • Enigmage/ghc
  • kokobd/ghc
  • agevelt/ghc
  • gshen42/ghc
  • chrismwendt/ghc
  • MangoIV/ghc
  • teto/ghc
  • Sookr1/ghc
  • trac-thomasjm/ghc
  • barci2/ghc-dev
  • trac-m4dc4p/ghc
  • dixonary/ghc
  • breakerzirconia/ghc
  • alexsio27444/ghc
  • glocq/ghc
  • sourabhxyz/ghc
  • ryantrinkle/ghc
  • Jade/ghc
  • scedfaliako/ghc
  • martijnbastiaan/ghc
  • trac-george.colpitts/ghc
  • ammarbinfaisal/ghc
  • mimi.vx/ghc
  • lortabac/ghc
  • trac-zyla/ghc
  • benbellick/ghc
  • aadaa-fgtaa/ghc
  • jvanbruegge/ghc
  • archbung/ghc
  • gilmi/ghc
  • mfonism/ghc
  • alex-mckenna/ghc
  • Ei30metry/ghc
  • DiegoDiverio/ghc
  • jorgecunhamendes/ghc
  • liesnikov/ghc
  • akrmn/ghc
  • trac-simplifierticks/ghc
  • jacco/ghc
  • rhendric/ghc
  • damhiya/ghc
  • ryndubei/ghc
  • DaveBarton/ghc
  • trac-Profpatsch/ghc
  • GZGavinZhao/ghc
  • ncfavier/ghc
  • jameshaydon/ghc
  • ajccosta/ghc
  • dschrempf/ghc
  • cydparser/ghc
  • LinuxUserGD/ghc
  • elodielander/ghc
  • facundominguez/ghc
  • psilospore/ghc
  • lachrimae/ghc
  • dylan-thinnes/ghc-type-errors-plugin
  • hamishmack/ghc
  • Leary/ghc
  • lzszt/ghc
  • lyokha/ghc
  • trac-glaubitz/ghc
  • Rewbert/ghc
  • andreabedini/ghc
  • Jasagredo/ghc
  • sol/ghc
  • OlegAlexander/ghc
  • trac-sthibaul/ghc
  • avdv/ghc
  • Wendaolee/ghc
  • ur4t/ghc
  • daylily/ghc
  • boltzmannrain/ghc
  • mmzk1526/ghc
  • trac-fizzixnerd/ghc
  • soulomoon/ghc
  • rwmjones/ghc
  • j14i/ghc
  • tracsis/ghc
  • gesh/ghc
  • flip101/ghc
  • eldritch-cookie/ghc
  • LemonjamesD/ghc
  • pgujjula/ghc
  • skeuchel/ghc
  • noteed/ghc
  • gulin.serge/ghc
  • Torrekie/ghc
  • jlwoodwa/ghc
  • ayanamists/ghc
  • husong998/ghc
  • trac-edmundnoble/ghc
  • josephf/ghc
  • contrun/ghc
  • baulig/ghc
  • edsko/ghc
  • mzschr/ghc-issue-24732
  • ulidtko/ghc
  • Arsen/ghc
  • trac-sjoerd_visscher/ghc
  • crumbtoo/ghc
  • L0neGamer/ghc
  • DrewFenwick/ghc
  • benz0li/ghc
  • MaciejWas/ghc
  • jordanrule/ghc
  • trac-qqwy/ghc
  • LiamGoodacre/ghc
  • isomorpheme/ghc
  • trac-danidiaz/ghc
  • Kariim/ghc
  • MTaimoorZaeem/ghc
  • hololeap/ghc
  • ticat-fp/ghc
  • meritamen/ghc
  • criskell/ghc
  • trac-kraai/ghc
  • aergus/ghc
  • jdral/ghc
  • SamB/ghc
  • Tristian/ghc
  • ywgrit/ghc
  • KatsuPatrick/ghc
  • OsePedro/ghc
  • mpscholten/ghc
  • fp/ghc
  • zaquest/ghc
  • fangyi-zhou/ghc
  • augyg/ghc
640 results
Show changes
Commits on Source (13)
Showing
with 117 additions and 37 deletions
...@@ -169,6 +169,7 @@ _darcs/ ...@@ -169,6 +169,7 @@ _darcs/
/libraries/ghc-boot-th-next/ghc-boot-th-next.cabal /libraries/ghc-boot-th-next/ghc-boot-th-next.cabal
/libraries/ghc-boot-th/ghc.mk /libraries/ghc-boot-th/ghc.mk
/libraries/ghc-heap/ghc-heap.cabal /libraries/ghc-heap/ghc-heap.cabal
/libraries/ghc-internal/ghc-internal.cabal
/libraries/ghci/GNUmakefile /libraries/ghci/GNUmakefile
/libraries/ghci/ghci.cabal /libraries/ghci/ghci.cabal
/libraries/ghci/ghc.mk /libraries/ghci/ghc.mk
......
...@@ -237,23 +237,33 @@ cmmMachOpFoldM _ MO_Add{} [ CmmMachOp op@MO_Add{} [pic, CmmLit lit] ...@@ -237,23 +237,33 @@ cmmMachOpFoldM _ MO_Add{} [ CmmMachOp op@MO_Add{} [pic, CmmLit lit]
= Just $! CmmMachOp op [pic, CmmLit $ cmmOffsetLit lit off ] = Just $! CmmMachOp op [pic, CmmLit $ cmmOffsetLit lit off ]
where off = fromIntegral (narrowS rep n) where off = fromIntegral (narrowS rep n)
-- Make a RegOff if we can -- Make a RegOff if we can. We don't perform this optimization if rep is greater
-- than the host word size because we use an Int to store the offset. See
-- #24893 and #24700. This should be fixed to ensure that optimizations don't
-- depend on the compiler host platform.
cmmMachOpFoldM _ (MO_Add _) [CmmReg reg, CmmLit (CmmInt n rep)] cmmMachOpFoldM _ (MO_Add _) [CmmReg reg, CmmLit (CmmInt n rep)]
| validOffsetRep rep
= Just $! cmmRegOff reg (fromIntegral (narrowS rep n)) = Just $! cmmRegOff reg (fromIntegral (narrowS rep n))
cmmMachOpFoldM _ (MO_Add _) [CmmRegOff reg off, CmmLit (CmmInt n rep)] cmmMachOpFoldM _ (MO_Add _) [CmmRegOff reg off, CmmLit (CmmInt n rep)]
| validOffsetRep rep
= Just $! cmmRegOff reg (off + fromIntegral (narrowS rep n)) = Just $! cmmRegOff reg (off + fromIntegral (narrowS rep n))
cmmMachOpFoldM _ (MO_Sub _) [CmmReg reg, CmmLit (CmmInt n rep)] cmmMachOpFoldM _ (MO_Sub _) [CmmReg reg, CmmLit (CmmInt n rep)]
| validOffsetRep rep
= Just $! cmmRegOff reg (- fromIntegral (narrowS rep n)) = Just $! cmmRegOff reg (- fromIntegral (narrowS rep n))
cmmMachOpFoldM _ (MO_Sub _) [CmmRegOff reg off, CmmLit (CmmInt n rep)] cmmMachOpFoldM _ (MO_Sub _) [CmmRegOff reg off, CmmLit (CmmInt n rep)]
| validOffsetRep rep
= Just $! cmmRegOff reg (off - fromIntegral (narrowS rep n)) = Just $! cmmRegOff reg (off - fromIntegral (narrowS rep n))
-- Fold label(+/-)offset into a CmmLit where possible -- Fold label(+/-)offset into a CmmLit where possible
cmmMachOpFoldM _ (MO_Add _) [CmmLit lit, CmmLit (CmmInt i rep)] cmmMachOpFoldM _ (MO_Add _) [CmmLit lit, CmmLit (CmmInt i rep)]
| validOffsetRep rep
= Just $! CmmLit (cmmOffsetLit lit (fromIntegral (narrowU rep i))) = Just $! CmmLit (cmmOffsetLit lit (fromIntegral (narrowU rep i)))
cmmMachOpFoldM _ (MO_Add _) [CmmLit (CmmInt i rep), CmmLit lit] cmmMachOpFoldM _ (MO_Add _) [CmmLit (CmmInt i rep), CmmLit lit]
| validOffsetRep rep
= Just $! CmmLit (cmmOffsetLit lit (fromIntegral (narrowU rep i))) = Just $! CmmLit (cmmOffsetLit lit (fromIntegral (narrowU rep i)))
cmmMachOpFoldM _ (MO_Sub _) [CmmLit lit, CmmLit (CmmInt i rep)] cmmMachOpFoldM _ (MO_Sub _) [CmmLit lit, CmmLit (CmmInt i rep)]
| validOffsetRep rep
= Just $! CmmLit (cmmOffsetLit lit (fromIntegral (negate (narrowU rep i)))) = Just $! CmmLit (cmmOffsetLit lit (fromIntegral (negate (narrowU rep i))))
...@@ -409,6 +419,13 @@ cmmMachOpFoldM platform mop [x, (CmmLit (CmmInt n _))] ...@@ -409,6 +419,13 @@ cmmMachOpFoldM platform mop [x, (CmmLit (CmmInt n _))]
cmmMachOpFoldM _ _ _ = Nothing cmmMachOpFoldM _ _ _ = Nothing
-- | Check that a literal width is compatible with the host word size used to
-- store offsets. This should be fixed properly (using larger types to store
-- literal offsets). See #24893
validOffsetRep :: Width -> Bool
validOffsetRep rep = widthInBits rep <= finiteBitSize (undefined :: Int)
{- Note [Comparison operators] {- Note [Comparison operators]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If we have If we have
......
...@@ -2341,6 +2341,8 @@ atype :: { LHsType GhcPs } ...@@ -2341,6 +2341,8 @@ atype :: { LHsType GhcPs }
(getCHAR $1) } (getCHAR $1) }
| STRING { sLLa $1 $> $ HsTyLit noExtField $ HsStrTy (getSTRINGs $1) | STRING { sLLa $1 $> $ HsTyLit noExtField $ HsStrTy (getSTRINGs $1)
(getSTRING $1) } (getSTRING $1) }
| MULTILINESTRING { sLLa $1 $> $ HsTyLit noExtField $ HsStrTy (getMULTILINESTRINGs $1)
(getMULTILINESTRING $1) }
| '_' { sL1a $1 $ mkAnonWildCardTy } | '_' { sL1a $1 $ mkAnonWildCardTy }
-- Type variables are never exported, so `M.tyvar` will be rejected by the renamer. -- Type variables are never exported, so `M.tyvar` will be rejected by the renamer.
-- We let it pass the parser because the renamer can generate a better error message. -- We let it pass the parser because the renamer can generate a better error message.
......
...@@ -795,14 +795,21 @@ rtsExterns = ...@@ -795,14 +795,21 @@ rtsExterns =
, "/** @extends {Uint8Array} @constructor */ function Buffer(arg1, encoding) {}" , "/** @extends {Uint8Array} @constructor */ function Buffer(arg1, encoding) {}"
, "/** @return {!Buffer} */ Buffer.alloc = function() {}" , "/** @return {!Buffer} */ Buffer.alloc = function() {}"
-- Emscripten Module -- Emscripten Module
-- Emscripten RTS's definitions we use in mem.js to support C sources.
-- When we link with emcc the actual definitions are linked, but when we
-- don't use C sources we don't use emcc and these variables are detected
-- as undefined.
, "/** @type {*} */ var Module" , "/** @type {*} */ var Module"
, "/** @type {!Int8Array} */ Module.HEAP8"
, "/** @type {!Uint8Array} */ Module.HEAPU8"
, "/** @return {number} */ Module.getEmptyTableSlot = function() {}"
, "/** @return {*} */ Module._free = function() {}"
, "/** @return {*} */ Module._malloc = function() {}"
-- Mozilla's Narcissus (JS in JS interpreter implemented on top of SpiderMonkey) environment -- Mozilla's Narcissus (JS in JS interpreter implemented on top of SpiderMonkey) environment
, "/** @type {*} */ var putstr" , "/** @type {*} */ var putstr"
, "/** @type {*} */ var printErr" , "/** @type {*} */ var printErr"
-- Apples's JavaScriptCore environment -- Apples's JavaScriptCore environment
, "/** @type {*} */ var debug" , "/** @type {*} */ var debug"
-- We use only Heap8 from Emscripten
, "/** @type {!Int8Array} */ Module.HEAP8"
]) ])
writeExterns :: FilePath -> IO () writeExterns :: FilePath -> IO ()
......
...@@ -4705,6 +4705,7 @@ addTyConFlavCtxt name flav ...@@ -4705,6 +4705,7 @@ addTyConFlavCtxt name flav
tyLitFromLit :: HsLit GhcRn -> Maybe (HsTyLit GhcRn) tyLitFromLit :: HsLit GhcRn -> Maybe (HsTyLit GhcRn)
tyLitFromLit (HsString x str) = Just (HsStrTy x str) tyLitFromLit (HsString x str) = Just (HsStrTy x str)
tyLitFromLit (HsMultilineString x str) = Just (HsStrTy x str)
tyLitFromLit (HsChar x char) = Just (HsCharTy x char) tyLitFromLit (HsChar x char) = Just (HsCharTy x char)
tyLitFromLit _ = Nothing tyLitFromLit _ = Nothing
......
...@@ -12,6 +12,14 @@ ...@@ -12,6 +12,14 @@
{-# OPTIONS_GHC -Wno-incomplete-uni-patterns #-} {-# OPTIONS_GHC -Wno-incomplete-uni-patterns #-}
{-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE NamedFieldPuns #-}
#if __GLASGOW_HASKELL__ < 914
-- In GHC 9.14, GHC.Desugar will be removed from base in favour of
-- ghc-internal's GHC.Internal.Desugar. However, because of bootstrapping
-- concerns, we will only depend on ghc-internal when the boot compiler is
-- certain to have it.
{-# OPTIONS_GHC -Wno-warnings-deprecations #-}
#endif
{- {-
(c) The University of Glasgow 2006 (c) The University of Glasgow 2006
(c) The GRASP/AQUA Project, Glasgow University, 1992-1998 (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
...@@ -136,11 +144,11 @@ import qualified GHC.Internal.TH.Syntax as TH ...@@ -136,11 +144,11 @@ import qualified GHC.Internal.TH.Syntax as TH
import qualified GHC.Internal.TH.Ppr as TH import qualified GHC.Internal.TH.Ppr as TH
#if defined(HAVE_INTERNAL_INTERPRETER) #if defined(HAVE_INTERNAL_INTERPRETER)
-- Because GHC.Desugar might not be in the base library of the bootstrapping compiler
import GHC.Desugar ( AnnotationWrapper(..) )
import Unsafe.Coerce ( unsafeCoerce ) import Unsafe.Coerce ( unsafeCoerce )
#endif #endif
import GHC.Desugar ( AnnotationWrapper(..) )
import Control.Monad import Control.Monad
import Data.Binary import Data.Binary
import Data.Binary.Get import Data.Binary.Get
......
...@@ -109,6 +109,10 @@ Compiler ...@@ -109,6 +109,10 @@ Compiler
This enables people to write their own custom assertion functions. This enables people to write their own custom assertion functions.
See :ref:`assertions`. See :ref:`assertions`.
- The flag :ghc-flag:`-fkeep-auto-rules` that forces GHC to keep auto generated
specialization rules was added. It was actually added ghc-9.10.1 already but
mistakenly not mentioned in the 9.10.1 changelog.
- Fixed a bug that caused GHC to panic when using the aarch64 ncg and -fregs-graph - Fixed a bug that caused GHC to panic when using the aarch64 ncg and -fregs-graph
on certain programs. (#24941) on certain programs. (#24941)
......
...@@ -262,15 +262,36 @@ Outside a required type argument, it is illegal to use ``type``: ...@@ -262,15 +262,36 @@ Outside a required type argument, it is illegal to use ``type``:
r4 = type Int -- illegal use of ‘type’ r4 = type Int -- illegal use of ‘type’
Finally, there are types that require the ``type`` keyword only due to Types in terms
limitations of the current implementation:: ~~~~~~~~~~~~~~
a1 = f (type (Int -> Bool)) -- function type **Since:** GHC 9.12
a2 = f (type (Read T => T)) -- constrained type
a3 = f (type (forall a. a)) -- universally quantified type
a4 = f (type (forall a. Read a => String -> a)) -- a combination of the above
This restriction will be relaxed in a future release of GHC. :extension:`RequiredTypeArguments` extends the grammar of term-level
expressions with syntax that is typically found only in types:
* function types: ``a -> b``, ``a ⊸ b``, ``a %m -> b``
* constrained types: ``ctx => t``
* universally quantified types: ``forall tvs. t``, ``forall tvs -> t``
These so-called "types in terms" make it possible to pass any types as required
type arguments::
a1 = f (Int -> Bool) -- function type
a2 = f (Int %1 -> String) -- linear function type
a3 = f (Read T => T) -- constrained type
a4 = f (forall a. a) -- universally quantified type
a5 = f (forall a. Read a => String -> a) -- a combination of the above
A few limitations apply:
* The ``*`` syntax of :extension:`StarIsType` is not available due to a
conflict with the multiplication operator.
What to do instead: use ``Type`` from the ``Data.Kind`` module.
* The ``'`` syntax of :extension:`DataKinds` is not available due to a conflict
with :extension:`TemplateHaskell` name quotation.
What to do instead: simply omit the ``'``.
Effect on implicit quantification Effect on implicit quantification
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
......
...@@ -127,17 +127,17 @@ objects or arrays as required. ...@@ -127,17 +127,17 @@ objects or arrays as required.
There are three categories of functions that create callbacks, with the There are three categories of functions that create callbacks, with the
arity-1 type signatures shown here for demonstration: arity-1 type signatures shown here for demonstration:
* ``syncCallback1 :: (JSVal -> IO ()) -> OnBlocked -> IO (Callback (JSVal -> IO ()))``: * ``syncCallback1 :: OnBlocked -> (JSVal -> IO ()) -> IO (Callback (JSVal -> IO ()))``:
Synchronous callbacks that don't return a value. These take an additional Synchronous callbacks that don't return a value. These take an additional
``data OnBlocked = ThrowWouldBlock | ContinueAsync`` argument for use in the ``data OnBlocked = ThrowWouldBlock | ContinueAsync`` argument for use in the
case that the thread becomes blocked on e.g. an ``MVar`` transaction. case that the thread becomes blocked on e.g. an ``MVar`` transaction.
* ``syncCallback' :: (JSVal -> IO JSVal) -> IO (Callback (JSVal -> IO ()))``: * ``syncCallback1' :: (JSVal -> IO JSVal) -> IO (Callback (JSVal -> IO JSVal))``:
Synchronous callbacks that return a value. Because of the return value, there Synchronous callbacks that return a value. Because of the return value, there
is no possibility of continuing asynchronously, so no ``OnBlocked`` argument is no possibility of continuing asynchronously, so no ``OnBlocked`` argument
is taken. is taken.
* ``asyncCallback :: (JSVal -> IO ()) -> IO (Callback (JSVal -> IO ()))``: * ``asyncCallback1 :: (JSVal -> IO ()) -> IO (Callback (JSVal -> IO ()))``:
Asynchronous callbacks that immediately start in a new thread. Cannot return a Asynchronous callbacks that immediately start in a new thread. Cannot return a
value. value.
......
...@@ -664,10 +664,11 @@ as such you shouldn't need to set any of them explicitly. A flag ...@@ -664,10 +664,11 @@ as such you shouldn't need to set any of them explicitly. A flag
:category: :category:
:default: off :default: off
:since: 9.10.1
The type-class specialiser and call-pattern specialisation both The type-class specialiser and call-pattern specialisation both
generate so-called "auto" RULES. These rules are usually exposed generate so-called "auto" RULES. These rules are usually exposed
to importing modules in the interface file. But an auto rule is the to importing modules in the interface file. But when an auto rule is the
sole reason for keeping a function alive, both the rule and the function sole reason for keeping a function alive, both the rule and the function
are discarded, by default. That reduces code bloat, but risks the same are discarded, by default. That reduces code bloat, but risks the same
function being specialised again in an importing module. function being specialised again in an importing module.
......
...@@ -342,6 +342,7 @@ templateRules = do ...@@ -342,6 +342,7 @@ templateRules = do
] ]
templateRule "libraries/ghci/ghci.cabal" $ projectVersion templateRule "libraries/ghci/ghci.cabal" $ projectVersion
templateRule "libraries/ghc-heap/ghc-heap.cabal" $ projectVersion templateRule "libraries/ghc-heap/ghc-heap.cabal" $ projectVersion
templateRule "libraries/ghc-internal/ghc-internal.cabal" $ projectVersion
templateRule "utils/ghc-pkg/ghc-pkg.cabal" $ projectVersion templateRule "utils/ghc-pkg/ghc-pkg.cabal" $ projectVersion
templateRule "libraries/template-haskell/template-haskell.cabal" $ mconcat templateRule "libraries/template-haskell/template-haskell.cabal" $ mconcat
[ projectVersion [ projectVersion
......
...@@ -26,7 +26,7 @@ Library ...@@ -26,7 +26,7 @@ Library
default-language: Haskell2010 default-language: Haskell2010
default-extensions: NoImplicitPrelude default-extensions: NoImplicitPrelude
build-depends: build-depends:
ghc-internal >= 9.1001 && < 9.1002, ghc-internal >= 9.1101 && < 9.1102,
ghc-prim, ghc-prim,
exposed-modules: exposed-modules:
......
# Changelog for [`base` package](http://hackage.haskell.org/package/base) # Changelog for [`base` package](http://hackage.haskell.org/package/base)
## 4.21.0.0 *TBA* ## 4.21.0.0 *TBA*
* `GHC.Desugar` has been deprecated and should be removed in GHC 9.14. ([CLC proposal #216](https://github.com/haskell/core-libraries-committee/issues/216))
* Add a `readTixFile` field to the `HpcFlags` record in `GHC.RTS.Flags` ([CLC proposal #276](https://github.com/haskell/core-libraries-committee/issues/276)) * Add a `readTixFile` field to the `HpcFlags` record in `GHC.RTS.Flags` ([CLC proposal #276](https://github.com/haskell/core-libraries-committee/issues/276))
* Add `compareLength` to `Data.List` and `Data.List.NonEmpty` ([CLC proposal #257](https://github.com/haskell/core-libraries-committee/issues/257)) * Add `compareLength` to `Data.List` and `Data.List.NonEmpty` ([CLC proposal #257](https://github.com/haskell/core-libraries-committee/issues/257))
* Add `INLINE[1]` to `compareInt` / `compareWord` ([CLC proposal #179](https://github.com/haskell/core-libraries-committee/issues/179)) * Add `INLINE[1]` to `compareInt` / `compareWord` ([CLC proposal #179](https://github.com/haskell/core-libraries-committee/issues/179))
......
{-# LANGUAGE CPP #-}
{-# LANGUAGE Safe #-} {-# LANGUAGE Safe #-}
{-# OPTIONS_HADDOCK not-home #-} {-# OPTIONS_HADDOCK not-home #-}
-----------------------------------------------------------------------------
-- | -- |
-- --
-- Module : GHC.Desugar -- Module : GHC.Desugar
...@@ -8,7 +10,7 @@ ...@@ -8,7 +10,7 @@
-- License : see libraries/base/LICENSE -- License : see libraries/base/LICENSE
-- --
-- Maintainer : ghc-devs@haskell.org -- Maintainer : ghc-devs@haskell.org
-- Stability : internal -- Stability : deprecated (<https://github.com/haskell/core-libraries-committee/issues/216>)
-- Portability : non-portable (GHC extensions) -- Portability : non-portable (GHC extensions)
-- --
-- Support code for desugaring in GHC -- Support code for desugaring in GHC
...@@ -18,11 +20,14 @@ ...@@ -18,11 +20,14 @@
-- bound, e.g., @base < 4.X@ rather than @base < 5@, because the interface can -- bound, e.g., @base < 4.X@ rather than @base < 5@, because the interface can
-- change rapidly without much warning. -- change rapidly without much warning.
-- --
-----------------------------------------------------------------------------
#if __GLASGOW_HASKELL >= 914
#error "GHC.Desugar should be removed in GHC 9.14"
#endif
module GHC.Desugar module GHC.Desugar
((>>>), {-# DEPRECATED ["GHC.Desugar is deprecated and will be removed in GHC 9.14.", "(>>>) should be imported from Control.Arrow.", "AnnotationWrapper is internal to GHC and should not be used externally."] #-}
AnnotationWrapper(..), ((>>>), AnnotationWrapper(..), toAnnotationWrapper) where
toAnnotationWrapper
) where
import GHC.Internal.Desugar import GHC.Internal.Desugar
...@@ -33,7 +33,7 @@ library ...@@ -33,7 +33,7 @@ library
exposed-modules: GHC.Wasm.Prim exposed-modules: GHC.Wasm.Prim
other-extensions: other-extensions:
build-depends: base ^>=4.20, build-depends: base ^>=4.20,
ghc-internal >= 9.1001 && < 9.1002, ghc-internal >= 9.1101 && < 9.1102,
ghc-prim >= 0.11 && < 0.12 ghc-prim >= 0.11 && < 0.12
hs-source-dirs: src hs-source-dirs: src
default-language: Haskell2010 default-language: Haskell2010
...@@ -27,8 +27,11 @@ library ...@@ -27,8 +27,11 @@ library
, rts == 1.0.* , rts == 1.0.*
, containers >= 0.6.2.1 && < 0.8 , containers >= 0.6.2.1 && < 0.8
if impl(ghc >= 9.9) if impl(ghc >= 9.11)
build-depends: ghc-internal >= 9.1001 && < 9.1002 build-depends: ghc-internal >= 9.1101 && < 9.1102
else
if impl(ghc >= 9.9)
build-depends: ghc-internal >= 9.1001 && < 9.1002
ghc-options: -Wall ghc-options: -Wall
if !os(ghcjs) if !os(ghcjs)
......
cabal-version: 3.0 cabal-version: 3.0
-- WARNING: ghc-internal.cabal is automatically generated from ghc-internal.cabal.in by
-- the top-level ./configure script. Make sure you are editing ghc-internal.cabal.in, not ghc-internal.cabal.
name: ghc-internal name: ghc-internal
version: 9.1001.0 -- The project is ghc's version plus ghc-internal's version suffix.
-- For example, for ghc=9.10, ghc-internal's version will be 9.1001.0.
version: @ProjectVersionMunged@01.0
license: BSD-3-Clause license: BSD-3-Clause
license-file: LICENSE license-file: LICENSE
maintainer: The GHC Developers <ghc-devs@haskell.org> maintainer: The GHC Developers <ghc-devs@haskell.org>
......
...@@ -285,7 +285,7 @@ function h$rename(old_path, old_path_off, new_path, new_path_off) { ...@@ -285,7 +285,7 @@ function h$rename(old_path, old_path_off, new_path, new_path_off) {
#ifndef GHCJS_BROWSER #ifndef GHCJS_BROWSER
if (h$isNode()) { if (h$isNode()) {
try { try {
fs.renameSync(h$decodeUtf8z(old_path, old_path_off), h$decodeUtf8z(new_path, new_path_off)); h$fs.renameSync(h$decodeUtf8z(old_path, old_path_off), h$decodeUtf8z(new_path, new_path_off));
return 0; return 0;
} catch(e) { } catch(e) {
h$setErrno(e); h$setErrno(e);
...@@ -318,7 +318,7 @@ function h$realpath(path,off,resolved,resolved_off) { ...@@ -318,7 +318,7 @@ function h$realpath(path,off,resolved,resolved_off) {
#ifndef GHCJS_BROWSER #ifndef GHCJS_BROWSER
if (h$isNode()) { if (h$isNode()) {
try { try {
var rp = h$encodeUtf8(fs.realpathSync(h$decodeUtf8z(path,off))); var rp = h$encodeUtf8(h$fs.realpathSync(h$decodeUtf8z(path,off)));
if (resolved !== null) { if (resolved !== null) {
h$copyMutableByteArray(rp, 0, resolved, resolved_off, Math.min(resolved.len - resolved_off, rp.len)); h$copyMutableByteArray(rp, 0, resolved, resolved_off, Math.min(resolved.len - resolved_off, rp.len));
RETURN_UBX_TUP2(resolved, resolved_off); RETURN_UBX_TUP2(resolved, resolved_off);
...@@ -1023,7 +1023,7 @@ function h$opendir(path) { ...@@ -1023,7 +1023,7 @@ function h$opendir(path) {
throw "h$opendir unsupported"; throw "h$opendir unsupported";
} }
const d = fs.opendirSync(h$decodeUtf8z(path,0)); const d = h$fs.opendirSync(h$decodeUtf8z(path,0));
RETURN_UBX_TUP2(d,0); RETURN_UBX_TUP2(d,0);
} }
......
...@@ -45,6 +45,7 @@ module GHC.Internal.Exception.Type ...@@ -45,6 +45,7 @@ module GHC.Internal.Exception.Type
, underflowException , underflowException
) where ) where
import GHC.Internal.Data.OldList (intersperse)
import GHC.Internal.Data.Maybe import GHC.Internal.Data.Maybe
import GHC.Internal.Data.Typeable (Typeable, TypeRep, cast) import GHC.Internal.Data.Typeable (Typeable, TypeRep, cast)
import qualified GHC.Internal.Data.Typeable as Typeable import qualified GHC.Internal.Data.Typeable as Typeable
...@@ -196,6 +197,7 @@ class (Typeable e, Show e) => Exception e where ...@@ -196,6 +197,7 @@ class (Typeable e, Show e) => Exception e where
displayException :: e -> String displayException :: e -> String
displayException = show displayException = show
-- | @since base-4.20.0.0
backtraceDesired :: e -> Bool backtraceDesired :: e -> Bool
backtraceDesired _ = True backtraceDesired _ = True
...@@ -212,11 +214,14 @@ instance Exception SomeException where ...@@ -212,11 +214,14 @@ instance Exception SomeException where
fromException = Just fromException = Just
backtraceDesired (SomeException e) = backtraceDesired e backtraceDesired (SomeException e) = backtraceDesired e
displayException (SomeException e) = displayException (SomeException e) =
displayException e case displayContext ?exceptionContext of
++ displayTypeInfo (Typeable.typeOf e) "" -> msg
++ "\n\n" dc -> msg ++ "\n\n" ++ dc
++ (displayContext ?exceptionContext)
where where
msg =
displayException e
++ displayTypeInfo (Typeable.typeOf e)
displayTypeInfo :: TypeRep -> String displayTypeInfo :: TypeRep -> String
displayTypeInfo rep = displayTypeInfo rep =
mconcat mconcat
...@@ -231,10 +236,9 @@ instance Exception SomeException where ...@@ -231,10 +236,9 @@ instance Exception SomeException where
tyCon = Typeable.typeRepTyCon rep tyCon = Typeable.typeRepTyCon rep
displayContext :: ExceptionContext -> String displayContext :: ExceptionContext -> String
displayContext (ExceptionContext anns0) = go anns0 displayContext (ExceptionContext anns0) = mconcat $ intersperse "\n" $ map go anns0
where where
go (SomeExceptionAnnotation ann : anns) = displayExceptionAnnotation ann ++ "\n" ++ go anns go (SomeExceptionAnnotation ann) = displayExceptionAnnotation ann
go [] = ""
newtype NoBacktrace e = NoBacktrace e newtype NoBacktrace e = NoBacktrace e
deriving (Show) deriving (Show)
......
...@@ -117,7 +117,7 @@ asyncCallback :: IO () -- ^ the action that the callback runs ...@@ -117,7 +117,7 @@ asyncCallback :: IO () -- ^ the action that the callback runs
asyncCallback x = js_asyncCallback (unsafeCoerce x) asyncCallback x = js_asyncCallback (unsafeCoerce x)
asyncCallback1 :: (JSVal -> IO ()) -- ^ the function that the callback calls asyncCallback1 :: (JSVal -> IO ()) -- ^ the function that the callback calls
-> IO (Callback (JSVal -> IO ())) -- ^ the calback -> IO (Callback (JSVal -> IO ())) -- ^ the callback
asyncCallback1 x = js_asyncCallbackApply 1 (unsafeCoerce x) asyncCallback1 x = js_asyncCallbackApply 1 (unsafeCoerce x)
asyncCallback2 :: (JSVal -> JSVal -> IO ()) -- ^ the Haskell function that the callback calls asyncCallback2 :: (JSVal -> JSVal -> IO ()) -- ^ the Haskell function that the callback calls
......