{"id":590,"date":"2017-11-15T23:54:53","date_gmt":"2017-11-15T23:54:53","guid":{"rendered":"https:\/\/blogs.ncl.ac.uk\/andreymokhov\/?p=590"},"modified":"2018-07-07T11:57:32","modified_gmt":"2018-07-07T10:57:32","slug":"hadrian-is-on-the-way","status":"publish","type":"post","link":"https:\/\/blogs.ncl.ac.uk\/andreymokhov\/hadrian-is-on-the-way\/","title":{"rendered":"Hadrian is on the way"},"content":{"rendered":"<p><a href=\"https:\/\/github.com\/snowleopard\/hadrian\">Hadrian<\/a>, a new build system for GHC that we have been working on for the past three years, has finally been <a href=\"https:\/\/github.com\/ghc\/ghc\/commit\/5cee48036ed69ae298a599d43cf72e0fe73e3b4e\">merged<\/a> into the GHC tree (update: we have temporally <a href=\"https:\/\/github.com\/snowleopard\/hadrian\/issues\/440#issuecomment-347272752\">switched<\/a> to a submodule). However it&#8217;s not yet time to celebrate &#8212; there are still many <a href=\"https:\/\/github.com\/snowleopard\/hadrian\/issues\">issues<\/a>\u00a0that need to be addressed before the Make-based build system may retire.<\/p>\n<p>Want to try? Checkout the GHC repository and run <code>hadrian\/build.sh -j<\/code>\u00a0or <code>hadrian\/build.bat -j<\/code> on Windows and it should build you a GHC binary. In case of problems, have a look at the <code><a href=\"https:\/\/github.com\/snowleopard\/hadrian\/blob\/master\/README.md\">README<\/a><\/code> and\/or raise an issue.<\/p>\n<p>Here is a quick update on the on-going development:<\/p>\n<ul>\n<li>Hadrian can build GHC and can already be used as part of the CI infrastructure. However, the resulting binary <a href=\"https:\/\/github.com\/snowleopard\/hadrian\/issues\/299\">does not pass the validation<\/a>.\u00a0Zhen Zhang is looking into this, but more help is needed.<\/li>\n<li>A <a href=\"https:\/\/github.com\/snowleopard\/hadrian\/pull\/445\">major refactoring<\/a> by Moritz Angermann is on the way. Moritz is primarily interested in cross compilation, but to make it work he had to get rid of the <code>ghc-cabal<\/code> utility, reorganise the build tree, and make numerous other improvements to Hadrian.<\/li>\n<li>There is currently no support for <a href=\"https:\/\/github.com\/snowleopard\/hadrian\/issues\/219\">binary distribution<\/a>. Ben Gamari is looking into this issue.<\/li>\n<li>Dynamic linking on Windows is <a href=\"https:\/\/github.com\/snowleopard\/hadrian\/issues\/343\">not implemented<\/a>. Tamar Christina has kindly offered help with this.<\/li>\n<li>Hadrian source code is still not fully documented and tested, and generally requires some polishing. I am currently taking care of this when not distracted by urgent bug fixes and will appreciate your help in making Hadrian easier to understand and use.<\/li>\n<\/ul>\n<p>I can&#8217;t believe that we seem to approach the finish line! It&#8217;s been a long, tedious but also interesting project. Thank you all for helping us get this far, and I hope we&#8217;ll celebrate the switch from Make to Hadrian soon.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hadrian, a new build system for GHC that we have been working on for the past three years, has finally been merged into the GHC tree (update: we have temporally switched to a submodule). However it&#8217;s not yet time to celebrate &#8212; there are still many issues\u00a0that need to be addressed before the Make-based build &hellip; <a href=\"https:\/\/blogs.ncl.ac.uk\/andreymokhov\/hadrian-is-on-the-way\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Hadrian is on the way<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1174,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[14,4],"class_list":["post-590","post","type-post","status-publish","format-standard","hentry","category-coding","tag-build","tag-haskell"],"_links":{"self":[{"href":"https:\/\/blogs.ncl.ac.uk\/andreymokhov\/wp-json\/wp\/v2\/posts\/590","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.ncl.ac.uk\/andreymokhov\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.ncl.ac.uk\/andreymokhov\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.ncl.ac.uk\/andreymokhov\/wp-json\/wp\/v2\/users\/1174"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.ncl.ac.uk\/andreymokhov\/wp-json\/wp\/v2\/comments?post=590"}],"version-history":[{"count":34,"href":"https:\/\/blogs.ncl.ac.uk\/andreymokhov\/wp-json\/wp\/v2\/posts\/590\/revisions"}],"predecessor-version":[{"id":631,"href":"https:\/\/blogs.ncl.ac.uk\/andreymokhov\/wp-json\/wp\/v2\/posts\/590\/revisions\/631"}],"wp:attachment":[{"href":"https:\/\/blogs.ncl.ac.uk\/andreymokhov\/wp-json\/wp\/v2\/media?parent=590"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.ncl.ac.uk\/andreymokhov\/wp-json\/wp\/v2\/categories?post=590"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.ncl.ac.uk\/andreymokhov\/wp-json\/wp\/v2\/tags?post=590"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}