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
......@@ -83,15 +83,14 @@
url = https://gitlab.haskell.org/ghc/packages/unix.git
ignore = untracked
branch = 2.7
[submodule "libraries/semaphore-compat"]
path = libraries/semaphore-compat
url = https://gitlab.haskell.org/ghc/semaphore-compat.git
ignore = untracked
[submodule "libraries/stm"]
path = libraries/stm
url = https://gitlab.haskell.org/ghc/packages/stm.git
ignore = untracked
[submodule "utils/haddock"]
path = utils/haddock
url = https://github.com/haskell/haddock.git
ignore = untracked
branch = ghc-head
[submodule "nofib"]
path = nofib
url = https://gitlab.haskell.org/ghc/nofib.git
......@@ -105,5 +104,17 @@
url = https://gitlab.haskell.org/ghc/libffi-tarballs.git
ignore = untracked
[submodule "gmp-tarballs"]
path = libraries/integer-gmp/gmp/gmp-tarballs
path = libraries/ghc-internal/gmp/gmp-tarballs
url = https://gitlab.haskell.org/ghc/gmp-tarballs.git
[submodule "libraries/exceptions"]
path = libraries/exceptions
url = https://gitlab.haskell.org/ghc/packages/exceptions.git
[submodule "utils/hpc"]
path = utils/hpc
url = https://gitlab.haskell.org/hpc/hpc-bin.git
[submodule "libraries/os-string"]
path = libraries/os-string
url = https://gitlab.haskell.org/ghc/packages/os-string
[submodule "libraries/file-io"]
path = libraries/file-io
url = https://gitlab.haskell.org/ghc/packages/file-io.git
......@@ -14,8 +14,11 @@ Alex Biehl <alex.biehl@gmail.com> <alexbiehl@gmail.com
Alexander Lukyanov <alex.dontexist@gmail.com> # Ticket #9360.
Alexander Vershilov <alexander.vershilov@gmail.com> <alexander.vershilov@tweag.io>
Alexander Vieth <aovieth@gmail.com> <alexander.vieth@mail.mcgill.ca>
Alexandre Baldé <alexandrer_b@outlook.com> <alexandrer_b@outlook.com>
Alexey Rodriguez <mrchebas@gmail.com>
Alexey Rodriguez <mrchebas@gmail.com> mrchebas@gmail.com <unknown>
Alp Mestanogullari <alp@well-typed.com> <alpmestan@gmail.com>
Andreas Klebinger <klebinger.andreas@gmx.at>
Andreas Klebinger <klebinger.andreas@gmx.at> <C:\Users\andi\AppData\Roaming\The Bat!>
Andrew Farmer <anfarmer@fb.com> <afarmer@ittc.ku.edu>
......@@ -35,6 +38,7 @@ Anthony Clayden <anthony_clayden@clear.net.nz>
Anton Nikishaev <anton.nik@gmail.com> a <unknown> # Ticket #1344.
Arnaud Spiwack <arnaud@spiwack.net> <arnaud.spiwack@tweag.io>
Arthur Fayzrakhmanov <heraldhoi@gmail.com>
Artem Pyanykh <artempyanykh@gmail.com> <artem.pyanykh@gmail.com>
Artyom Kazak <yom@artyom.me>
Audrey Tang <audreyt@audreyt.org> audreyt@audreyt.org <unknown>
Austin Seipp <austin@well-typed.com> <as@hacks.yi.org>
......@@ -88,6 +92,8 @@ Daniel Franke <df@dfranke.us> df@dfranke.us <unkno
Daniel Rogers <daniel@phasevelocity.org> daniel@phasevelocity.org <unknown>
Darshan Kapashi <darshan@fb.com> <darshankapashi@gmail.com>
David C. Turner <dave.c.turner@gmail.com>
David Eichmann <davide@well-typed.com> <EichmannD@gmail.com>
David Eichmann <davide@well-typed.com> <davide@Well-Typed.com>
David Feuer <david.feuer@gmail.com> <David.Feuer@gmail.com>
David Himmelstrup <lemmih@gmail.com> # http://www.haskellers.com/user/Lemmih
David M Peixotto <dmp@rice.edu> dmp@rice.edu <unknown>
......@@ -98,7 +104,7 @@ David Waern <davve@dtek.chalmers.se>
David Waern <davve@dtek.chalmers.se> <david.waern@gmail.com>
David Waern <davve@dtek.chalmers.se> <waern@ubuntu.(none)>
David Waern <davve@dtek.chalmers.se> davve@dtek.chalmers.se <unknown>
Denis Mirzoev <Nolane16@gmail.com>
Denis Mirzoev <nolane16@gmail.com> <Nolane16@gmail.com>
Dimitrios Vytiniotis <dimitris@microsoft.com>
Dimitrios Vytiniotis <dimitris@microsoft.com> <dimitris@MSRC-1361792.europe.corp.microsoft.com>
Dimitrios Vytiniotis <dimitris@microsoft.com> dimitris@microsoft.com <unknown>
......@@ -117,6 +123,7 @@ Edward Z. Yang <ezyang@fb.com> <ezyang@mit.edu>
Eric Seidel <eric@seidel.io> <gridaphobe@gmail.com>
Erik de Castro Lopo <erikd@mega-nerd.com> <erik.decastrolopo@ambiata.com>
Evan Hauck <khyperia@live.com>
Fangyi Zhou <fangyi.zhou@yuriko.moe> <fangyi.zhou15@imperial.ac.uk>
Fumiaki Kinoshita <fumiexcel@gmail.com>
Gabor Greif <ggreif@gmail.com>
Gabor Pali <pali.gabor@gmail.com> <pgj@FreeBSD.org>
......@@ -149,6 +156,7 @@ Isaac Potoczny-Jones <ijones@syntaxpolice.org> ijones <unknown>
Isaac Potoczny-Jones <ijones@syntaxpolice.org> ijones@syntaxpolice.org <unknown>
Ismail Suleman <ismail-s@users.noreply.github.com>
James Bowen <jhbowen047@gmail.com>
James Foster <jf16688@my.bristol.ac.uk> <ratherforky@gmail.com>
Jean-Philippe Bernardy <jeanphilippe.bernardy@gmail.com> jeanphilippe.bernardy@gmail.com <unknown>
Jean-Philippe Bernardy <jeanphilippe.bernardy@gmail.com> jpbernardy <unknown>
Jeff Lewis <jeff@galconn.com> lewie <unknown>
......@@ -168,6 +176,7 @@ Josef Svenningsson <josef.svenningsson@gmail.com> josefs <unknown>
Josh Filstrup <superfunc@protonmail.ch>
Josh Price <joshprice247+git@gmail.com> <2855417+WhistlePayer@users.noreply.github.com>
Josh Price <joshprice247+git@gmail.com> <thepig247@gmail.com>
Josh Price <joshprice247+git@gmail.com> <joshprice247@gmail.com>
Jost Berthold <jb.diku@gmail.com> <berthold@mathematik.uni-marburg.de>
Jost Berthold <jb.diku@gmail.com> berthold@mathematik.uni-marburg.de <unknown>
Juan J. Quintela <quintela@fi.udc.es> quintela <unknown>
......@@ -185,6 +194,7 @@ Kevin G Donnelly <kevind@bu.edu> kevind@bu.edu <unkno
Kevin Glynn <glynn@info.ucl.ac.be> kglynn <unknown>
Krasimir Angelov <kr.angelov@gmail.com> kr.angelov@gmail.com <unknown>
Krasimir Angelov <kr.angelov@gmail.com> krasimir <unknown>
Krzysztof Gogolewski <krzysztof.gogolewski@tweag.io> <krz.gogolewski@gmail.com>
Lennart Augustsson <lennart@augustsson.net>
Lennart Augustsson <lennart@augustsson.net> lennart.augustsson@credit-suisse.com <unknown>
Lennart Augustsson <lennart@augustsson.net> lennart@augustsson.net <unknown>
......@@ -225,6 +235,7 @@ Neil Mitchell <ndmitchell@gmail.com> Neil Mitchell <unkno
Nicholas Nethercote <njn25@cam.ac.uk> njn <unknown>
Nikita Sazanovich <nikitasazanovich@gmail.com>
Niklas Larsson <niklas@mm.st> # Commit 664063.
nineonine <mail4chemik@gmail.com>
Ningning Xie <xnningxie@gmail.com>
Norman Ramsey <nr@eecs.harvard.edu> nr@eecs.harvard.edu <unknown>
Orphi <MathematicalOrchid@hotmail.com> # Uses this name online.
......@@ -241,12 +252,14 @@ Peter Wortmann <Peter.Wortmann@googlemail.com> <peter@grayson-heigh
Peter Wortmann <Peter.Wortmann@googlemail.com> <scpmw@leeds.ac.uk>
Peter Wortmann <Peter.Wortmann@googlemail.com> scpmw@leeds.ac.uk <unknown>
Piyush P. Kurur <ppk@cse.iitk.ac.in>
Phuong Trinh <lolotp@fb.com> <lolo_vn@yahoo.co.uk>
Ralf Laemmel <softlang@uni-koblenz.de> ralf <unknown> # https://gitlab.haskell.org/ghc/ghc/wikis/team-ghc
Ravi Nanavati <ravi@bluespec.com> # Commit 70c044.
Reiner Pope <reiner.pope@gmail.com> <reinerp@google.com>
Reuben Thomas <rrt@sc3d.org> rrt <unknown>
Richard Eisenberg <rae@cs.brynmawr.edu> <eir@cis.upenn.edu>
Richard Eisenberg <rae@cs.brynmawr.edu> <eir@seas.upenn.edu>
Richard Eisenberg <rae@cs.brynmawr.edu> <rae@richarde.dev>
Rob Ennals <rob@ennals.org> rje <unknown> # SPJ's student (rje33@cam.ac.uk)
Roland Senn <rsx@bluewin.ch>
Roman Leshchinskiy <rl@cse.unsw.edu.au> rl@cse.unsw.edu.au <unknown>
......@@ -267,7 +280,7 @@ Sergei Trofimovich <slyfox@gentoo.org> <slyfox@inbox.ru>
Shae Matijs Erisson <shae@ScannedInAvian.com> shae@ScannedInAvian.com <unknown>
Shane O'Brien <shane@duairc.com>
Siddhanathan Shanmugam <siddhanathan@gmail.com> <siddhanathan+social@gmail.com>
Siddharth Bhat <siddu.druid@gmail.com>
Siddharth Bhat <siddu.druid@gmail.com> <siddharth.bath@tweag.io>
Sigbjorn Finne <sof@galois.com> sof <unknown>
Sigbjorn Finne <sof@galois.com> sof@galois.com <unknown>
Simon Hengel <sol@typeful.net> <simon.hengel@wiktory.org>
......@@ -314,6 +327,7 @@ Tobias Gedell <d99getob@dtek.chalmers.se> tgedell <unknown>
Tom Murphy <vivid.haskell@gmail.com>
Tom Schrijvers <tom.schrijvers@cs.kuleuven.be> tom.schrijvers@cs.kuleuven.be <unknown>
Tom Sydney Kerckhove <syd.kerckhove@gmail.com> <syd@fpcomplete.com>
Tom Sydney Kerckhove <syd.kerckhove@gmail.com> <syd@cs-syd.eu>
Umut Acar <umut@cs.cmu.edu> umuta <unknown> # POPL 2002 paper Adaptive Functional Programming
Varun Gandhi <theindigamer15@gmail.com>
Veronika Romashkina <vrom911@gmail.com>
......@@ -327,12 +341,15 @@ Yorick Laupa <yo.eight@gmail.com> # https://github.com
Yuri de Wit <admin@rodlogic.net> # Commit 37d64a.
Yusuke Matsushita <y.skm24t@gmail.com> # https://github.com/Kinokkory
Zejun Wu <watashi@watashi.ws> <zejun.wu@gmail.com>
Zubin Duggal <zubin@cmi.ac.in> <zubin.duggal@gmail.com>
gwern <gwern0@gmail.com> gwern0@gmail.com <unknown> # Uses this name online.
mniip <mniip@mniip.com> # Uses this name online.
shelarcy <shelarcy@gmail.com> # Uses this name online.
Ömer Sinan Ağacan <omeragacan@gmail.com> # https://github.com/osa1
Ömer Sinan Ağacan <omeragacan@gmail.com> <omer@well-typed.com>
# Note [geoffw]
# ~~~~~~~~~~~~~
# From GHC wiki: "Geoff Washburn made the first implementation of GADTs in GHC"
# Other possibilities (but not such a direct connection with GHC):
# * Geoff W. Hamilton
......@@ -341,14 +358,16 @@ shelarcy <shelarcy@gmail.com> # Uses this name onl
# PhD student, OCaml, "Dynamic ADTs"
#
# Note [uid245]
# ~~~~~~~~~~~~~
# Circumstantial evidence only:
# * Commit fafe43, "Avoid divide by zero", by simonm.
# * Subsequent commit fd40a1, "avoid another divide by zero", by uid245.
# * Three commits later 15e6ea, "urk, extra parenthesis crept in", by simonm. Same file section.
#
# Note [usrbincc]
# ~~~~~~~~~~~~~~~
# https://github.com/thlorenz/node-traceur/commit/59f97feae23763c456b70bb129dbe04004e9fe04
#
# Note [zhuang]
# ~~~~~~~~~~~~~
# http://comments.gmane.org/gmane.comp.lang.haskell.cvs.ghc/33473
#EOF
# The following enables container-based travis instances
sudo: false
git:
submodules: false
env:
- DEBUG_STAGE2=YES
- DEBUG_STAGE2=NO
# TODO. Install llvm once llvm's APT repository is working again.
# See http://lists.llvm.org/pipermail/llvm-dev/2016-May/100303.html.
addons:
apt:
sources:
- hvr-ghc
#- llvm-toolchain-precise-3.7
- ubuntu-toolchain-r-test
packages:
- cabal-install-2.2
- ghc-8.4.3
- alex-3.1.7
- happy-1.19.5
- python3
#- llvm-3.7
before_install:
- export PATH=/opt/ghc/8.4.3/bin:/opt/cabal/2.2/bin:/opt/alex/3.1.7/bin:/opt/happy/1.19.5/bin:/usr/lib/llvm-3.7/bin:$PATH
# Be explicit about which protocol to use, such that we don't have to repeat the rewrite command for each.
- git config remote.origin.url git://github.com/${TRAVIS_REPO_SLUG}.git
- git config --global url."git://github.com/${TRAVIS_REPO_SLUG%/*}/packages-".insteadOf "git://github.com/${TRAVIS_REPO_SLUG%/*}/packages/"
- git submodule --quiet init # Be quiet about these urls, as we may override them later.
# Check if submodule repositories exist.
- git config --get-regexp submodule.*.url | while read entry url; do git ls-remote "$url" dummyref 2>/dev/null && echo "$entry = $url" || git config --unset-all "$entry" ; done
# Use github.com/ghc for those submodule repositories we couldn't connect to.
- git config remote.origin.url git://github.com/ghc/ghc.git
- git config --global url."git://github.com/ghc/packages-".insteadOf git://github.com/ghc/packages/
- git submodule init # Don't be quiet, we want to show these urls.
- git submodule --quiet update --recursive # Now we can be quiet again.
script:
# do not build docs
- echo 'HADDOCK_DOCS = NO' >> mk/validate.mk
- echo 'BUILD_SPHINX_HTML = NO' >> mk/validate.mk
- echo 'BUILD_SPHINX_PDF = NO' >> mk/validate.mk
# do not build dynamic libraries
- echo 'DYNAMIC_GHC_PROGRAMS = NO' >> mk/validate.mk
- echo 'GhcLibWays = v' >> mk/validate.mk
- if [ "$DEBUG_STAGE2" = "YES" ]; then echo 'GhcStage2HcOpts += -DDEBUG' >> mk/validate.mk; fi
# * Use --quiet, otherwise the build log might exceed the limit of 4
# megabytes, causing Travis to kill our job.
# * But use VERBOSE=2 (the default, but not when using --quiet) otherwise
# the testsuite might not print output for over 10 minutes (more likely so
# when DEBUG_STAGE2=NO), causing Travis to again kill our job.
# * Use --fast, to stay within the time limits set by Travis.
# See Note [validate and testsuite speed] in toplevel Makefile.
# Actually, do not run test suite. Takes too long.
- THREADS=3 SKIP_PERF_TESTS=YES VERBOSE=2 ./validate --fast --quiet --build-only
# Confused about what this is? See
# https://gitlab.haskell.org/help/user/project/code_owners
# https://docs.gitlab.com/ee/user/project/codeowners/
# Catch-all
* @bgamari
# Build system
[Build system]
/hadrian/ @snowleopard @alp @DavidEichmann @angerman
/configure.ac @angerman @hvr
/aclocal.m4 @angerman @hvr
/config.sub @angerman @hvr
# RTS-like things
[RTS-like things]
/rts/ @bgamari @simonmar @osa1 @Phyx @angerman
/rts/linker/ @angerman @Phyx @simonmar
/includes/ @bgamari @simonmar @osa1
# The compiler
/compiler/parser/ @int-index
/compiler/typecheck/ @simonpj @rae
/compiler/rename/ @simonpj @rae
/compiler/types/ @simonpj @rae
/compiler/deSugar/ @simonpj @rae
/compiler/typecheck/TcDeriv* @RyanGlScott
/compiler/nativeGen/ @simonmar @bgamari @AndreasK
/compiler/llvmGen/ @angerman
/compiler/codeGen/ @simonmar @osa1
/compiler/cmm/ @simonmar @osa1
/compiler/ghci/ @simonmar
/compiler/simplCore/CallArity.hs @nomeata
/compiler/utils/UnVarGraph.hs @nomeata
/compiler/simplCore/Exitify.hs @nomeata
/compiler/simplStg/StgCse.hs @nomeata
/compiler/simplStg/StgLiftLams.hs @sgraf
/compiler/cmm/CmmSwitch.hs @nomeata
/compiler/stranal/DmdAnal.hs @simonpj @sgraf
/compiler/hsSyn/Convert.hs @rae
# Core libraries
/rts/include/ @bgamari @simonmar @osa1
/rts/wasm/ @TerrorJack
[RTS heap profiling]
/docs/users_guide/profiling.rst @DanielG
/rts/include/rts/ProfHeap.h @DanielG
/rts/include/rts/TraverseHeap.h @DanielG
/rts/include/rts/storage/ClosureMacros.h @DanielG
/rts/LdvProfile* @DanielG
/rts/ProfHeap* @DanielG
/rts/Retainer* @DanielG
/rts/TraverseHeap* @DanielG
/rts/sm/GC.c @DanielG
/rts/sm/Storage* @DanielG
/testsuite/tests/profiling/should_run/TraverseHeap* @DanielG
[The compiler]
/compiler/parser/ @int-index
/compiler/GHC/Hs/ @simonpj @rae
/compiler/GHC/Tc/ @simonpj @rae
/compiler/GHC/Rename/ @simonpj @rae
/compiler/GHC/Types/ @simonpj @rae
/compiler/GHC/HsToCore/ @simonpj @rae
/compiler/GHC/HsToCore/Pmc* @sgraf
/compiler/GHC/HsToCore/Foreign/Wasm.hs @TerrorJack
/compiler/GHC/Tc/Deriv/ @RyanGlScott
/compiler/GHC/CmmToAsm/ @simonmar @bgamari @AndreasK
/compiler/GHC/CmmToAsm/RV64/ @supersven @angerman
/compiler/GHC/CmmToAsm/Wasm/ @TerrorJack
/compiler/GHC/CmmToLlvm/ @angerman
/compiler/GHC/StgToCmm/ @simonmar @osa1
/compiler/GHC/Cmm/ @simonmar @osa1
/compiler/ghci/ @simonmar
/compiler/GHC/Core/Opt/CallArity.hs @nomeata
/compiler/GHC/Core/Opt/Exitify.hs @nomeata
/compiler/GHC/Stg/CSE.hs @nomeata
/compiler/GHC/Stg/Lift* @sgraf
/compiler/GHC/Cmm/Switch.hs @nomeata
/compiler/GHC/Core/Opt/ @simonpj @sgraf
/compiler/GHC/ThToHs.hs @rae
/compiler/GHC/Wasm/ @nrnrnr
/compiler/GHC/JS/ @luite @doyougnu @hsyl20 @JoshMeredith
/compiler/GHC/StgToJS/ @luite @doyougnu @hsyl20 @JoshMeredith
/compiler/GHC/Runtime/Interpreter/Wasm.hs @TerrorJack
[Core libraries]
/libraries/base/ @hvr
/libraries/ghci/ @simonmar
/libraries/template-haskell/ @rae
/testsuite/tests/interface-stability/ @core-libraries
# Internal utilities and libraries
/libraries/libiserv/ @angerman @simonmar
[Internal utilities and libraries]
/utils/iserv-proxy/ @angerman @simonmar
/utils/iserv/ @angerman @simonmar
/utils/gen-dll/ @Phyx
/utils/fs/ @Phyx
/utils/jsffi @TerrorJack
/utils/haddock @Kleidukos
[WinIO related code]
/libraries/base/GHC/Event/Windows/ @Phyx
/libraries/base/GHC/IO/Windows/ @Phyx
/rts/win32/ @Phyx
/libraries/base/GHC/IO/Handle/Lock/Windows.hsc @Phyx
/libraries/base/GHC/Event/Windows.hsc @Phyx
/libraries/base/GHC/Conc/WinIO.hs @Phyx
/libraries/base/GHC/Conc/Windows.hs @Phyx
/libraries/base/GHC/IO/Handle/Windows.hs @Phyx
/libraries/base/GHC/IO/StdHandles.hs @Phyx
/libraries/base/GHC/Windows.hs @Phyx
/libraries/base/cbits/IOutils.c @Phyx
/libraries/base/cbits/Win32Utils.c @Phyx
/libraries/base/cbits/consUtils.c @Phyx
/libraries/base/include/winio_structs.h @Phyx
[CI]
/.gitlab/ @chreekat @bgamari @mpickering
/.gitlab-ci.yml @chreekat @bgamari @mpickering
......@@ -12,7 +12,7 @@ The home for GHC hackers is our GitLab instance, located here:
<https://gitlab.haskell.org/ghc/ghc>
From here, you can file bugs (or look them up,) use the wiki, view the
From here, you can file bugs (or look them up), use the wiki, view the
`git` history, among other things. Of particular note is the building
page, which has the high level overview of the build process and how
to get the source:
......@@ -23,54 +23,23 @@ Contributing patches to GHC in a hurry
======================================
Make sure your system has the necessary tools to compile GHC. You can
find an overview here:
find an overview of how to prepare your system for compiling GHC here:
<https://gitlab.haskell.org/ghc/ghc/wikis/building/preparation>
Next, clone the repository and all the associated libraries:
After you have prepared your system, you can build GHC following the instructions described here:
```
$ git clone --recursive git@gitlab.haskell.org:ghc/ghc.git
```
<https://gitlab.haskell.org/ghc/ghc/-/wikis/building/hadrian>
On Windows, you need an extra repository containing some build tools.
These can be downloaded for you by configure. This only needs to be done once by running:
```
$ ./configure --enable-tarballs-autodownload
```
First copy `mk/build.mk.sample` to `mk/build.mk` and ensure it has
your preferred build settings. (You probably want to at least set
`BuildFlavour` to `quick`):
```
$ cp mk/build.mk.sample mk/build.mk
$ ... double-check mk/build.mk ...
```
Now build. The convenient `validate` script will build the tree in a way which
is both quick to build and consistent with our testsuite,
```
$ ./validate --build-only
```
You can use the `./inplace/bin/ghc-stage2` binary to play with the
newly built compiler.
Now, hack on your copy and rebuild (with `make`) as necessary.
Then start by making your commits however you want. When you're done, you can submit
a pull request on Github for small changes. For larger changes the patch needs to be
submitted to [GitLab](https://gitlab.haskell.org/ghc/ghc/merge_requests) for code review.
The GHC Wiki has a good summary for the [overall process](https://gitlab.haskell.org/ghc/ghc/wikis/working-conventions/fixing-bugs).
Then start by making your commits however you want. When you're done, you can submit a merge request to [GitLab](https://gitlab.haskell.org/ghc/ghc/merge_requests) for code review.
Changes to the `base` library require a proposal to the [core libraries committee](https://github.com/haskell/core-libraries-committee/issues).
The GHC Wiki has a good summary for the [overall process](https://gitlab.haskell.org/ghc/ghc/wikis/working-conventions/fixing-bugs). One or several reviewers will review your PR, and when they are ok with your changes, they will assign the PR to [Marge Bot](https://gitlab.haskell.org/marge-bot) which will automatically rebase, batch and then merge your PR (assuming the build passes).
Useful links:
=============
An overview of things like using git, the release process, filing bugs
An overview of things like using Git, the release process, filing bugs
and more can be located here:
<https://gitlab.haskell.org/ghc/ghc/wikis/contributing>
......@@ -94,8 +63,6 @@ and type information of the GHC sources is available at:
Look for `GHC` in `Package-name`. For example, here is the link to
[GHC-8.6.5](https://haskell-code-explorer.mfix.io/package/ghc-8.6.5).
If you want to watch issues and code review activities, the following page is a good start:
<https://gitlab.haskell.org/ghc/ghc/activity>
......@@ -110,7 +77,7 @@ provide plenty through a variety of means!
## IRC
If you're an IRC user, be sure to drop by the official `#ghc` channel
on [freenode](http://freenode.org). Many (but not all) of the
on [Libera.Chat](https://libera.chat). Many (but not all) of the
developers and committers are actively there during a variety of
hours.
......
......@@ -20,15 +20,14 @@ Quick start: the following gives you a default build:
$ ./boot
$ ./configure
$ make
$ make install
$ ./hadrian/build
On Windows, you need an extra repository containing some build tools.
These can be downloaded for you by configure. This only needs to be done once by running:
$ ./configure --enable-tarballs-autodownload
You can use Make's `-jN` option to parallelize the build. It's generally best
You can use `-jN` option to parallelize the build. It's generally best
to set `N` somewhere around the core count of the build machine.
The `./boot` step is only necessary if this is a tree checked out from
......
Quick `make` guide for GHC
==========================
For a "Getting Started" guide, see:
- https://gitlab.haskell.org/ghc/ghc/wikis/building/quick-start
- https://gitlab.haskell.org/ghc/ghc/wikis/building/using
- https://gitlab.haskell.org/ghc/ghc/wikis/building/standard-targets
Common commands:
- `make`
Builds everything: ghc stages 1 and 2, all libraries and tools.
- `make -j2`
Parallel build: runs up to 2 commands at a time.
- `cd <dir>; make`
Builds everything in the given directory.
- `cd <dir>; make help`
Shows the targets available in <dir>
- `make install`
- `make install-strip`
Installs GHC, libraries and tools under $(prefix). The install-strip
variant strips executable files while installing them.
- `make sdist`
- `make binary-dist`
Builds a source or binary distribution respectively
- `make show VALUE=<var>`
- `make show! VALUE=<var>`
Show the value of make variable <var>. The show! variant works right after
./configure (it skips reading package-data.mk files).
- `make clean`
- `make distclean`
- `make maintainer-clean`
Various levels of cleaning: "clean" restores the tree to the
state after "./configure", "distclean" restores to the state
after "python3 boot", and maintainer-clean restores the tree to the
completely clean checked-out state.
Using `make` in subdirectories
==============================
- `make`
Builds everything in this directory (including dependencies elsewhere
in the tree, if necessary)
- `make fast`
The same as 'make', but omits some phases and does not
recalculate dependencies. Useful for saving time if you are sure
the rest of the tree is up to date.
- `make clean`
- `make distclean`
- `make maintainer-clean`
Clean just this directory
- `make html`
- `make pdf`
- `make ps`
Make documentation in this directory (if any)
- `make show VALUE=<var>`
- `make show! VALUE=<var>`
Show the value of make variable <var>. The show! variant works right after
./configure (it skips reading package-data.mk files).
- `make <file>`
Bring a particular file up to date, e.g. make dist/build/Module.o
The name <file> is relative to the current directory
Useful links:
=============
See also "new Hadrian build system":
- https://gitlab.haskell.org/ghc/ghc/wikis/building/hadrian
# -----------------------------------------------------------------------------
#
# (c) 2009 The University of Glasgow
#
# This file is part of the GHC build system.
#
# To understand how the build system works and how to modify it, see
# https://gitlab.haskell.org/ghc/ghc/wikis/building/architecture
# https://gitlab.haskell.org/ghc/ghc/wikis/building/modifying
#
# -----------------------------------------------------------------------------
# Eliminate use of the built-in implicit rules, and clear out the default list
# of suffixes for suffix rules. Speeds up make quite a bit. Both are needed
# for the shortest `make -d` output.
# Don't set --no-builtin-variables; some rules might stop working if you do
# (e.g. 'make clean' in testsuite/ currently relies on an implicit $RM).
MAKEFLAGS += --no-builtin-rules
.SUFFIXES:
# -----------------------------------------------------------------------------
# Sanitize environment
# See #11530
export GREP_OPTIONS :=
ifneq "$(filter maintainer-clean distclean clean clean_% help,$(MAKECMDGOALS))" ""
-include mk/config.mk
else
include mk/config.mk
ifeq "$(ProjectVersion)" ""
$(error Please run ./configure first)
endif
endif
include mk/custom-settings.mk
ifeq "$(wildcard distrib/)" ""
# We're in a bindist
.PHONY: default
default:
@echo 'Run "make install" to install'
@false
.PHONY: install show
install show:
$(MAKE) --no-print-directory -f ghc.mk $@ BINDIST=YES NO_INCLUDE_DEPS=YES
# Note [install-strip]
#
# install-strip is like install, but it strips the executable files while
# installing them.
#
# From http://www.gnu.org/prep/standards/html_node/Standard-Targets.html:
#
# "install-strip should not strip the executables in the build directory
# which are being copied for installation. It should only strip the copies
# that are installed. "
.PHONY: install-strip
install-strip:
# See Note [install-strip].
$(MAKE) --no-print-directory -f ghc.mk INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' install BINDIST=YES NO_INCLUDE_DEPS=YES
else
.PHONY: default
default : all
@:
# For help, type 'make help'
.PHONY: help
help:
@cat MAKEHELP.md
# No need to update makefiles for these targets:
# (the ones we're filtering out)
REALGOALS=$(filter-out \
binary-dist \
binary-dist-prep \
install-strip \
sdist sdist-ghc \
sdist-ghc-prep \
sdist-windows-tarballs \
sdist-windows-tarballs-prep \
sdist-testsuite \
sdist-testsuite-prep \
bootstrapping-files \
framework-pkg \
clean \
clean_% \
distclean \
maintainer-clean \
show \
show! \
echo \
help \
test \
fulltest \
slowtest \
fasttest \
fast \
,$(MAKECMDGOALS))
# configure touches certain files even if they haven't changed. This
# can mean a lot of unnecessary recompilation after a re-configure, so
# here we cache the old versions of these files so we can restore the
# timestamps.
%.old: %
@set -x && test -f $@ && cmp -s $< $@ || cp -p $< $@
touch -r $@ $<
# NB. not the same as saying '%: ...', which doesn't do the right thing:
# it does nothing if we specify a target that already exists.
.PHONY: $(REALGOALS) all
$(REALGOALS) all: mk/config.mk.old mk/project.mk.old compiler/ghc.cabal.old
ifneq "$(OMIT_PHASE_0)" "YES"
@echo "===--- building phase 0"
$(MAKE) --no-print-directory -f ghc.mk phase=0 phase_0_builds
endif
ifneq "$(OMIT_PHASE_1)" "YES"
@echo "===--- building phase 1"
$(MAKE) --no-print-directory -f ghc.mk phase=1 phase_1_builds
endif
@echo "===--- building final phase"
$(MAKE) --no-print-directory -f ghc.mk phase=final $@
# if BINARY_DIST_DIR is not set, assume we want the old
# behaviour of placing the binary dist into the current
# directory. Provide BINARY_DIST_DIR to put the final
# binary distribution elsewhere.
BINARY_DIST_DIR ?= .
.PHONY: binary-dist
binary-dist: binary-dist-prep
mv bindistprep/*.tar.$(TAR_COMP_EXT) "$(BINARY_DIST_DIR)"
.PHONY: binary-dist-prep
binary-dist-prep:
ifeq "$(mingw32_TARGET_OS)" "1"
$(MAKE) --no-print-directory -f ghc.mk windows-binary-dist-prep
else
rm -f bindist-list
$(MAKE) --no-print-directory -f ghc.mk bindist-list BINDIST=YES
$(MAKE) --no-print-directory -f ghc.mk unix-binary-dist-prep
endif
.PHONY: install-strip
install-strip:
# See Note [install-strip].
$(MAKE) --no-print-directory -f ghc.mk INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' install
.PHONY: sdist sdist-ghc sdist-ghc-prep sdist-windows-tarballs sdist-windows-tarballs-prep sdist-testsuite sdist-testsuite-prep
# Just running `./boot && ./configure && make sdist` should work, so skip
# phase 0 and 1 and don't build any dependency files.
sdist sdist-ghc sdist-ghc-prep sdist-windows-tarballs sdist-windows-tarballs-prep sdist-testsuite sdist-testsuite-prep :
$(MAKE) --no-print-directory -f ghc.mk $@ NO_INCLUDE_DEPS=YES NO_INCLUDE_PKGDATA=YES
.PHONY: clean distclean maintainer-clean
clean distclean maintainer-clean:
$(MAKE) --no-print-directory -f ghc.mk $@ CLEANING=YES
test ! -d testsuite || $(MAKE) -C testsuite $@
.PHONY: $(filter clean_%,$(MAKECMDGOALS))
$(filter clean_%, $(MAKECMDGOALS)) : clean_% :
$(MAKE) --no-print-directory -f ghc.mk $@ CLEANING=YES
.PHONY: bootstrapping-files show echo
bootstrapping-files show echo:
$(MAKE) --no-print-directory -f ghc.mk $@
.PHONY: show!
show!:
$(MAKE) --no-print-directory -f ghc.mk show NO_INCLUDE_PKGDATA=YES
ifeq "$(darwin_TARGET_OS)" "1"
.PHONY: framework-pkg
framework-pkg:
$(MAKE) -C distrib/MacOS $@
endif
# If the user says 'make A B', then we don't want to invoke two
# instances of the rule above in parallel:
.NOTPARALLEL:
endif
# Note [validate and testsuite speed]
#
# There are 3 different validate and testsuite speed settings:
# fast, normal and slow.
#
# how how used
# cd tests config. many many by
# validate && make speed= tests ways whom
# =============================================================================
# --fast fast 2 some 1+exs Travis (to stay within time limit)
# --normal test 1 all 1+exs Phabricator (slow takes too long?)
# --slow slow 0 all all Nightly (slow is ok)
#
# accept 1 all 1
#
# `--fast` and `--normal` run one default way, as well as any other ways which
# are explicitly requested by the test using extra_ways().
#
# `make accept` should run all tests exactly once. There is no point in
# accepting a test for multiple ways, since it should produce the same output
# for all ways.
#
# To make sure all .stderr and .stdout files in the testsuite are never
# out-of-date, it is useful if Phabricator, via a normal `./validate` and `make
# test`, runs each test at least once.
.PHONY: fasttest
fasttest:
$(MAKE) -C testsuite/tests CLEANUP=1 SUMMARY_FILE=../../testsuite_summary.txt fast
.PHONY: test
test:
$(MAKE) -C testsuite/tests CLEANUP=1 SUMMARY_FILE=../../testsuite_summary.txt
.PHONY: slowtest fulltest
slowtest fulltest:
$(MAKE) -C testsuite/tests CLEANUP=1 SUMMARY_FILE=../../testsuite_summary.txt slow
.PHONY: fast
fast:
@echo "You can use 'make fast' only from inside a sub-component directory."
@exit 1
......@@ -8,7 +8,7 @@ environment for the Haskell functional programming language.
For more information, visit [GHC's web site][1].
Information for developers of GHC can be found on the [GHC issue tracker][2].
Information for developers of GHC can be found on the [GHC issue tracker][2], and you can also view [proposals for new GHC features][13].
Getting the Source
......@@ -26,7 +26,7 @@ There are two ways to get a source tree:
2. *Check out the source code from git*
$ git clone --recursive git@gitlab.haskell.org:ghc/ghc.git
$ git clone --recurse-submodules git@gitlab.haskell.org:ghc/ghc.git
Note: cloning GHC from Github requires a special setup. See [Getting a GHC
repository from Github][7].
......@@ -53,19 +53,22 @@ For building library documentation, you'll need [Haddock][6]. To build
the compiler documentation, you need [Sphinx](http://www.sphinx-doc.org/)
and Xelatex (only for PDF output).
**Quick start**: the following gives you a default build:
**Quick start**: GHC is built using the [Hadrian build system](hadrian/README.md).
The following gives you a default build:
$ ./boot
$ ./configure
$ make # can also say 'make -jX' for X number of jobs
$ make install
$ hadrian/build # can also say '-jX' for X number of jobs
On Windows, you need an extra repository containing some build tools.
These can be downloaded for you by configure. This only needs to be done once by running:
$ ./configure --enable-tarballs-autodownload
(NB: **Do you have multiple cores? Be sure to tell that to `make`!** This can
Additionally, on Windows, to run Hadrian you should run `hadrian/build.bat`
instead of `hadrian/build`.
(NB: **Do you have multiple cores? Be sure to tell that to `hadrian`!** This can
save you hours of build time depending on your system configuration, and is
almost always a win regardless of how many cores you have. As a simple rule,
you should have about N+1 jobs, where `N` is the amount of cores you have.)
......@@ -98,31 +101,36 @@ would be great, and we'd surely love your company! If you're looking
to hack on GHC, check out the guidelines in the `HACKING.md` file in
this directory - they'll get you up to speed quickly.
Contributors & Acknowledgements
Governance and Acknowledgements
===============================
GHC in its current form wouldn't exist without the hard work of
[its many contributors][12]. Over time, it has grown to include the
efforts and research of many institutions, highly talented people, and
groups from around the world. We'd like to thank them all, and invite
you to join!
[1]: http://www.haskell.org/ghc/ "www.haskell.org/ghc/"
[2]: https://gitlab.haskell.org/ghc/ghc/issues
"gitlab.haskell.org/ghc/ghc/issues"
[3]: https://gitlab.haskell.org/ghc/ghc/wikis/building
"https://gitlab.haskell.org/ghc/ghc/wikis/building"
[4]: http://www.haskell.org/happy/ "www.haskell.org/happy/"
[5]: http://www.haskell.org/alex/ "www.haskell.org/alex/"
[6]: http://www.haskell.org/haddock/ "www.haskell.org/haddock/"
[7]: https://gitlab.haskell.org/ghc/ghc/wikis/building/getting-the-sources#cloning-from-github
"https://gitlab.haskell.org/ghc/ghc/wikis/building/getting-the-sources#cloning-from-github"
[8]: https://gitlab.haskell.org/ghc/ghc/wikis/building/preparation
"https://gitlab.haskell.org/ghc/ghc/wikis/building/preparation"
[9]: http://www.haskell.org/cabal/ "http://www.haskell.org/cabal/"
[10]: https://gitlab.haskell.org/ghc/ghc/issues
"https://gitlab.haskell.org/ghc/ghc/issues"
[11]: http://www.haskell.org/pipermail/glasgow-haskell-users/
"http://www.haskell.org/pipermail/glasgow-haskell-users/"
[12]: https://gitlab.haskell.org/ghc/ghc/wikis/team-ghc
"https://gitlab.haskell.org/ghc/ghc/wikis/team-ghc"
GHC is a community project developed by a team of highly-talented
researchers, individual contributors, and full-time developers. We are indebted to the
[many people](https://gitlab.haskell.org/ghc/ghc-hq/-/blob/main/team.mkd?plain=0#user-content-the-ghc-team)
whose work has brought GHC to its current state.
Some larger decisions are made by a smaller group of core contributors,
as described in our [governance documentation](https://gitlab.haskell.org/ghc/ghc-hq#ghc-governance).
[1]: http://www.haskell.org/ghc/ "www.haskell.org/ghc/"
[2]: https://gitlab.haskell.org/ghc/ghc/issues
"gitlab.haskell.org/ghc/ghc/issues"
[3]: https://gitlab.haskell.org/ghc/ghc/wikis/building
"https://gitlab.haskell.org/ghc/ghc/wikis/building"
[4]: http://www.haskell.org/happy/ "www.haskell.org/happy/"
[5]: http://www.haskell.org/alex/ "www.haskell.org/alex/"
[6]: http://www.haskell.org/haddock/ "www.haskell.org/haddock/"
[7]: https://gitlab.haskell.org/ghc/ghc/wikis/building/getting-the-sources#cloning-from-github
"https://gitlab.haskell.org/ghc/ghc/wikis/building/getting-the-sources#cloning-from-github"
[8]: https://gitlab.haskell.org/ghc/ghc/wikis/building/preparation
"https://gitlab.haskell.org/ghc/ghc/wikis/building/preparation"
[9]: http://www.haskell.org/cabal/ "http://www.haskell.org/cabal/"
[10]: https://gitlab.haskell.org/ghc/ghc/issues
"https://gitlab.haskell.org/ghc/ghc/issues"
[11]: http://www.haskell.org/pipermail/glasgow-haskell-users/
"http://www.haskell.org/pipermail/glasgow-haskell-users/"
[12]: https://gitlab.haskell.org/ghc/ghc/wikis/team-ghc
"https://gitlab.haskell.org/ghc/ghc/wikis/team-ghc"
[13]: https://github.com/ghc-proposals/ghc-proposals
"https://github.com/ghc-proposals/ghc-proposals"
# -*- mode: ruby -*-
# vi: set ft=ruby :
MACHINES =
{ "ubuntu1204-i386" =>
{ :box => "chef/ubuntu-12.04-i386",
:provision => "utils/vagrant/bootstrap-deb.sh"
},
"ubuntu1204-amd64" =>
{ :box => "chef/ubuntu-12.04",
:provision => "utils/vagrant/bootstrap-deb.sh"
},
"centos65-i386" =>
{ :box => "chef/centos-6.5-i386",
:provision => "utils/vagrant/bootstrap-rhel.sh"
},
"centos65-amd64" =>
{ :box => "chef/centos-6.5",
:provision => "utils/vagrant/bootstrap-rhel.sh"
},
"debian74-i386" =>
{ :box => "chef/debian-7.4-i386",
:provision => "utils/vagrant/bootstrap-deb.sh"
},
"debian74-amd64" =>
{ :box => "chef/debian-7.4",
:provision => "utils/vagrant/bootstrap-deb.sh"
}
}
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
MACHINES.each_pair do |name, opts|
config.vm.define name do |c|
c.vm.box = opts[:box]
c.vm.network "public_network"
c.vm.provision :shell, :path => opts[:provision]
c.vm.provider "virtualbox" do |vb|
vb.gui = false; vb.memory = 4096; vb.cpus = 2
vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
end
c.vm.provider "vmware_workstation" do |vb|
vb.gui = false; vb.vmx["memsize"] = "4096"; vb.vmx["numvcpus"] = "2"
end
c.vm.provider "vmware_fusion" do |vb|
vb.gui = false; vb.vmx["memsize"] = "4096"; vb.vmx["numvcpus"] = "2"
end
end
end
end
This diff is collapsed.
version: "{build}"
build_cloud: ghc-gce-cloud
image: GHC-GCE
build:
verbosity: normal
environment:
matrix:
- COMPILER: msys2
PLATFORM: x64
MSYS2_ARCH: x86_64
MSYS2_DIR: msys64
MSYSTEM: MINGW64
BIT: 64
deploy: off
install:
- cmd: |
SET "PATH=C:\%MSYS2_DIR%\%MSYSTEM%\bin;C:\%MSYS2_DIR%\usr\bin;%PATH%"
bash .appveyor.sh prepare
build_script:
- bash .appveyor.sh build
- bash .appveyor.sh test
artifacts:
- path: ghc-windows.zip
name: GHC Windows bindist
type: zip
......@@ -50,6 +50,12 @@ endif
$(CONTEXT_DIFF) output expected_output
# Without --no-user-package-db we might pick up random packages from ~/.ghc
$(BIN_DIST_INST_DIR)/bin/ghc-pkg check --no-user-package-db
ifeq "$(TEST_PROF)" "yes"
$(BIN_DIST_INST_DIR)/bin/ghc --make -prof HelloWorld
./HelloWorld > output
$(CONTEXT_DIFF) output expected_output
endif
clean distclean:
"$(RM)" $(RM_OPTS_REC) $(BIN_DIST_INST_SUBDIR)
......
# -----------------------------------------------------------------------------
#
# (c) 2009 The University of Glasgow
#
# This file is part of the GHC build system.
#
# To understand how the build system works and how to modify it, see
# https://gitlab.haskell.org/ghc/ghc/wikis/building/architecture
# https://gitlab.haskell.org/ghc/ghc/wikis/building/modifying
#
# -----------------------------------------------------------------------------
ifeq "$(TEST_PREP)" "YES"
BIN_DIST_TEST_TAR_COMP = $(BIN_DIST_PREP_TAR_COMP)
else
BIN_DIST_TEST_TAR_COMP = $(BIN_DIST_TAR_COMP)
endif
.PHONY: test_bindist
test_bindist:
"$(RM)" $(RM_OPTS_REC) bindisttest/$(BIN_DIST_INST_SUBDIR)
"$(RM)" $(RM_OPTS_REC) bindisttest/a
"$(RM)" $(RM_OPTS) bindisttest/HelloWorld
"$(RM)" $(RM_OPTS) bindisttest/HelloWorld.o
"$(RM)" $(RM_OPTS) bindisttest/HelloWorld.hi
"$(RM)" $(RM_OPTS) bindisttest/output
# We use the a/b/c subdirectory as configure looks for install-sh in
# . .. ../.. and we don't want it to find the build system's install-sh.
#
# NB. tar has funny interpretation of filenames sometimes (thinking
# c:/foo is a remote file), so it's safer to bzip and then pipe into
# tar rather than using tar -xjf:
mkdir bindisttest/a
mkdir bindisttest/a/b
mkdir bindisttest/a/b/c
cd bindisttest/a/b/c/ && $(TAR_COMP_CMD) -cd ../../../../$(BIN_DIST_TEST_TAR_COMP) | $(TAR_CMD) -xf -
$(SHELL) bindisttest/checkBinaries.sh $(ProjectVersion)
ifeq "$(Windows_Host)" "YES"
mv bindisttest/a/b/c/$(BIN_DIST_NAME) $(BIN_DIST_INST_DIR)
else
cd bindisttest/a/b/c/$(BIN_DIST_NAME) && ./configure --prefix=$(TOP)/$(BIN_DIST_INST_DIR) CC="$(CC)"
cd bindisttest/a/b/c/$(BIN_DIST_NAME) && $(MAKE) install
endif
ifeq "$(GhcProfiled)" "NO"
$(BIN_DIST_INST_DIR)/bin/runghc bindisttest/HelloWorld > bindisttest/output
$(CONTEXT_DIFF) bindisttest/output bindisttest/expected_output
endif
$(BIN_DIST_INST_DIR)/bin/ghc --make bindisttest/HelloWorld
bindisttest/HelloWorld > bindisttest/output
$(CONTEXT_DIFF) bindisttest/output bindisttest/expected_output
# Without --no-user-package-db we might pick up random packages from ~/.ghc
$(BIN_DIST_INST_DIR)/bin/ghc-pkg check --no-user-package-db
$(eval $(call clean-target,bindisttest,all,$(BIN_DIST_INST_DIR) $(wildcard bindisttest/a/b/c/*) bindisttest/HelloWorld bindisttest/HelloWorld.o bindisttest/HelloWorld.hi bindisttest/output))
......@@ -4,17 +4,10 @@ import glob
import os
import os.path
import sys
import argparse
from textwrap import dedent
import subprocess
import re
cwd = os.getcwd()
parser = argparse.ArgumentParser()
parser.add_argument('--validate', action='store_true', help='Run in validate mode')
parser.add_argument('--hadrian', action='store_true', help='Do not assume the make base build system')
args = parser.parse_args()
import shutil
# Packages whose libraries aren't in the submodule root
EXCEPTIONS = {
......@@ -28,43 +21,8 @@ def die(mesg):
print_err(mesg)
sys.exit(1)
def check_for_url_rewrites():
if os.path.isdir('.git') and \
subprocess.check_output('git config remote.origin.url'.split()).find(b'github.com') != -1 and \
subprocess.call(['git', 'config', '--get-regexp', '^url.*github.com/.*/packages-.insteadOf']) != 0:
# If we cloned from github, make sure the url rewrites are set.
# Otherwise 'git submodule update --init' prints confusing errors.
die("""\
It seems you cloned this repository from GitHub. But your git config files
don't contain the url rewrites that are needed to make this work (GitHub
doesn't support '/' in repository names, so we use a different naming scheme
for the submodule repositories there).
Please run the following commands first:
git config --global url."git://github.com/ghc/packages-".insteadOf git://github.com/ghc/packages/
git config --global url."http://github.com/ghc/packages-".insteadOf http://github.com/ghc/packages/
git config --global url."https://github.com/ghc/packages-".insteadOf https://github.com/ghc/packages/
git config --global url."ssh://git\@github.com/ghc/packages-".insteadOf ssh://git\@github.com/ghc/packages/
git config --global url."git\@github.com:/ghc/packages-".insteadOf git\@github.com:/ghc/packages/
And then:
git submodule update --init
./boot
Or start over, and clone the GHC repository from the haskell server:
git clone --recursive git@gitlab.haskell.org:ghc/ghc.git
For more information, see:
* https://gitlab.haskell.org/ghc/ghc/wikis/newcomers or
* https://gitlab.haskell.org/ghc/ghc/wikis/building/getting-the-sources#cloning-from-github
""")
def check_boot_packages():
# Check that we have all boot packages.
import re
for l in open('packages', 'r'):
if l.startswith('#'):
continue
......@@ -90,70 +48,6 @@ def check_boot_packages():
Maybe you haven't run 'git submodule update --init'?
""" % license_path)
# Create libraries/*/{ghc.mk,GNUmakefile}
def boot_pkgs():
library_dirs = []
for package in glob.glob("libraries/*/"):
packages_file = os.path.join(package, 'ghc-packages')
print(package)
if os.path.isfile(packages_file):
for subpkg in open(packages_file, 'r'):
library_dirs.append(os.path.join(package, subpkg.strip()))
elif package in EXCEPTIONS:
library_dirs.append(EXCEPTIONS[package])
else:
library_dirs.append(package)
for package in library_dirs:
if package[-1] == '/':
# drop trailing '/'
package = package[:-1]
dir_ = os.path.relpath(package, 'libraries')
cabals = glob.glob(os.path.join(package, '*.cabal.in'))
if len(cabals) == 0:
cabals = glob.glob(os.path.join(package, '*.cabal'))
if len(cabals) > 1:
die('Too many .cabal files in %s' % package)
elif len(cabals) == 1:
cabal = cabals[0]
if os.path.isfile(cabal):
# strip both .cabal and .in
pkg = os.path.splitext(os.path.splitext(os.path.basename(cabal))[0])[0]
top = os.path.join(*['..'] * len(os.path.normpath(package).split(os.path.sep)))
ghc_mk = os.path.join(package, 'ghc.mk')
if os.path.exists(ghc_mk):
print('Skipping %s which already exists' % ghc_mk)
continue
print('Creating %s' % ghc_mk)
with open(ghc_mk, 'w') as f:
f.write(dedent(
"""\
{package}_PACKAGE = {pkg}
{package}_dist-install_GROUP = libraries
$(if $(filter {dir},$(PACKAGES_STAGE0)),$(eval $(call build-package,{package},dist-boot,0)))
$(if $(filter {dir},$(PACKAGES_STAGE1)),$(eval $(call build-package,{package},dist-install,1)))
$(if $(filter {dir},$(PACKAGES_STAGE2)),$(eval $(call build-package,{package},dist-install,2)))
""".format(package = package,
pkg = pkg,
dir = dir_)))
makefile = os.path.join(package, 'GNUmakefile')
with open(makefile, 'w') as f:
f.write(dedent(
"""\
dir = {package}
TOP = {top}
include $(TOP)/mk/sub-makefile.mk
FAST_MAKE_OPTS += stage=0
""".format(package = package, top = top)
))
def autoreconf():
# Run autoreconf on everything that needs it.
processes = {}
......@@ -169,7 +63,7 @@ def autoreconf():
else:
reconf_cmd = 'autoreconf'
for dir_ in ['.'] + glob.glob('libraries/*/'):
for dir_ in ['.', 'rts'] + glob.glob('libraries/*/'):
if os.path.isfile(os.path.join(dir_, 'configure.ac')):
print("Booting %s" % dir_)
processes[dir_] = subprocess.Popen(['sh', '-c', reconf_cmd], cwd=dir_)
......@@ -185,25 +79,5 @@ def autoreconf():
if fail:
sys.exit(1)
def check_build_mk():
if not args.validate and not os.path.isfile("mk/build.mk"):
print(dedent(
"""
WARNING: You don't have a mk/build.mk file.
By default a standard GHC build will be done, which uses optimisation
and builds the profiling libraries. This will take a long time, so may
not be what you want if you are developing GHC or the libraries, rather
than simply building it to use it.
For information on creating a mk/build.mk file, please see:
https://gitlab.haskell.org/ghc/ghc/wikis/building/using#build-configuration
"""))
check_for_url_rewrites()
check_boot_packages()
if not args.hadrian:
boot_pkgs()
autoreconf()
if not args.hadrian:
check_build_mk()
#!/usr/bin/env nix-shell
#! nix-shell -i bash shell.nix
# This script sets up the build environment by invoking nix-shell shell.nix
# and then runs the hadrian executable.
function rl {
TARGET_FILE="$1"
cd "$(dirname "$TARGET_FILE")"
TARGET_FILE="$(basename "$TARGET_FILE")"
# Iterate down a (possible) chain of symlinks
while [ -L "$TARGET_FILE" ]
do
TARGET_FILE="$(readlink "$TARGET_FILE")"
cd "$(dirname "$TARGET_FILE")"
TARGET_FILE="$(basename "$TARGET_FILE")"
done
# Compute the canonicalized name by finding the physical path
# for the directory we're in and appending the target file.
PHYS_DIR="$(pwd -P)"
RESULT="$PHYS_DIR/$TARGET_FILE"
echo "$RESULT"
}
absoluteRoot="$(dirname "$(rl "$0")")"
echo $absoluteRoot
cd "$absoluteRoot"
hadrian \
--directory="$absoluteRoot/.." \
"$@"
packages: ./compiler
./utils/genprimopcode/
./utils/deriveConstants/
./ghc/
-- ./libraries/array
-- ./libraries/base
./libraries/binary
./libraries/bytestring
./libraries/Cabal/Cabal
./libraries/Cabal/Cabal-syntax
./libraries/containers/containers/
-- ./libraries/deepseq/
./libraries/directory/
./libraries/exceptions/
./libraries/file-io/
./libraries/filepath/
-- ./libraries/ghc-bignum/
./libraries/ghc-boot/
-- ./libraries/ghc-boot-th/
./libraries/ghc-compact
./libraries/ghc-experimental
./libraries/ghc-heap
./libraries/ghci
-- ./libraries/ghc-prim
./libraries/haskeline
./libraries/directory
./libraries/hpc
-- ./libraries/integer-gmp
./libraries/mtl/
./libraries/os-string/
./libraries/parsec/
-- ./libraries/pretty/
./libraries/process/
./libraries/semaphore-compat
./libraries/stm
-- ./libraries/template-haskell/
./libraries/terminfo/
./libraries/text
./libraries/time
./libraries/transformers/
./libraries/unix/
./libraries/Win32/
./libraries/xhtml/
./utils/ghc-pkg
./utils/ghc-toolchain
./utils/ghc-toolchain/exe
./utils/haddock
./utils/haddock/haddock-api
./utils/haddock/haddock-library
./utils/hp2ps
./utils/hpc
./utils/hsc2hs
./utils/runghc
./utils/unlit
./utils/iserv
./linters/**/*.cabal
constraints: ghc +internal-interpreter +dynamic-system-linke,
ghc-bin +internal-interpreter +threaded,
ghci +internal-interpreter,
haddock +in-ghc-tree,
any.array installed,
any.base installed,
any.deepseq installed,
any.ghc-bignum installed,
any.ghc-boot-th installed,
any.integer-gmp installed,
any.pretty installed,
any.template-haskell installed
benchmarks: False
tests: False
allow-boot-library-installs: True
-- Workaround for https://github.com/haskell/cabal/issues/7297
package *
library-vanilla: True
shared: True
executable-profiling: False
executable-dynamic: True
-Wimplicit
-include
rts/include/ghcversion.h
-Irts/include
-I_build/stage1/rts/build
-I_build/stage1/rts/build/include
-Irts
-Ilibraries/ghc-internal/include
-I_build/stage1/libraries/ghc-internal/build/include
-Ilibraries/ghc-bignum/include
-I_build/stage1/libraries/ghc-bignum/build/include
-Wno-unknown-pragmas
-Wall
-Wextra
-Wstrict-prototypes
-Wmissing-prototypes
-Wmissing-declarations
-Winline
-Wpointer-arith
-Wmissing-noreturn
-Wnested-externs
-Wredundant-decls
-Wundef
-DFS_NAMESPACE=rts
-DCOMPILING_RTS
-DTHREADED_RTS
-DDEBUG
-DDYNAMIC
-DPROFILING
# HLint configuration file
# https://github.com/ndmitchell/hlint
##########################
- ignore: {}
- warn: {name: Unused LANGUAGE pragma}
- warn: {name: Use fewer LANGUAGE pragmas}
- warn: {name: Redundant return}
- warn: {name: Redundant True guards}
- warn: {name: Redundant variable capture}
- warn: {name: Redundant void}
- warn: {name: Redundant as}
- warn: {name: Use fewer imports}
- warn: {name: Redundant as-pattern}
- warn: {name: Redundant where}
## Exceptions
# Sometimes, the hlint parser flags some functions and modules as incorrectly
# using a language extension. Some other times, we need to make exceptions to
# lints that we otherwise want applied elsewhere. Such exceptions are listed
# below.
- ignore: {name: Redundant do, within: [GHC.SysTools.Terminal, GHC.Utils.Binary]}
- ignore: {name: Use fewer imports, within: [GHC.Parser, GHC.Cmm.Parser ] }
- ignore: {name: Redundant return, within: [GHC.Data.FastString] }
- ignore: {within: [GHC.Parser, GHC.Parser.Lexer, GHC.Parser.HaddockLex] }
## Restricted modules
- warn: {name: Avoid restricted module}
# see comments in affected modules
- modules:
- {name: [GHC.Driver.Backend.Internal], within: [GHC.Driver.Backend], message: "This module is for clients of the GHC API only. Do not use it within the compiler."}
This diff is collapsed.