237
I Use This!
Very High Activity

News

Analyzed about 6 hours ago. based on code collected about 13 hours ago.
Posted almost 8 years ago by simonpj
This post is a response to ​Anthony's blog post about contributing to GHC, and the subsequent ​Reddit discussion. You'll find it easier to follow my comments below if you read Anthony's post first. Short summary: many of Anthony's criticisms are ... [More] accurate, but they are not easy to address, especially in a volunteer-only project. However we will do something about the feature-request process. Barrier to entry I am ashamed that GHC seems difficult to contribute to. The details don't matter; the fact that it made you feel that way is by definition bad. I'm really sorry. We should find a way to do better. An underlying issue is one of effort budget. GHC has essentially no full-timers, unlike many open-source projects. In particular, Simon Marlow and I are volunteers like everyone else, and like everyone else we have a day job. Microsoft Research generously pays Well Typed for front-line support, manifested in the heroic form of Ben and Austin, totalling around one FTE. But their effort is fully absorbed by managing releases, reviewing patches, maintaining the infrastructure, and so on. It's a real challenge to maintain a low barrier to entry for a large complex project, whose motive force is primarily volunteers. It means that any initiative will only fly if someone steps up to drive it. Technical documentation The questions of scattered and inconsistent documentation are difficult to address. GHC is twenty-five years old; it has hundreds of authors and documentation that was once accurate falls out of date. I would love it to have consistent, well-explained documentation. But I don't know how to achieve it. GHC's technical documentation is either in the code itself, or on GHC's wiki. An advantage of a wiki is that anyone can edit it. Yes, instructions and technical descriptions go out of date. Who will fix them? You, gentle reader! There is no one else. But in practice few do. Perhaps that's because such work is invisible, so no one even knows you've done it? What would make people feel "I'd really like to improve those instructions or that documentation?" I will argue for two things. First, I find Notes incredibly helpful. They live with the code, so they are less likely to go out of date. They don't mess up the flow of the code. They can be referred to from multiple places. They are the single most successful code documentation mechanism we have. (To be fair to Anthony, I don't think was complaining about Notes, just expressing surprise.) Second, I really do think that each new proposed feature needs a description, somewhere, of what it is, why it's a good thing, and as precisely as possible what its specification is. Plus perhaps some implementation notes. It's very important when reading an implementation to know what it is that the code is seeking to implement. So yes, I do frequently ask for a specification. Arc, github, phabricator, etc Personally I carry no torch for arc. I do whatever I'm told, workflow-wise. If GitHub has got a lot better since we took the Arc decision, and there's a consensus that we should shift, I'm all for it provided someone explains to me what my new workflows should be. I am absolutely in favour of reducing barriers to contribution. (Other members of the GHC team have much stronger and better informed views than me, though.) But there are costs to moving, especially if the move implies friction in the future. In particular, those that worry me most are those surrounding issue tracking. Github's issue tracker simply doesn't seem sufficient for a project as large and multi-faceted as GHC; in particular, tags as the only form of metadata is extremely limiting. One alternative would be to use Github and Trac side-by-side, but then we face the issue of conflicting ticket number spaces as both systems insist on ticket numbers of the form #NNNN. Coding style Coding style is rather a personal thing, and we have been reluctant to enforce a single uniform style. (Quite apart from the task of reformatting 150k lines of Haskell.) Personally I don't find it an obstacle to reading other people's code. Feature requests That leaves the most substantial issue that Anthony poses: the process of making a contribution. For fixing a bug, I think that (aside from the arc/Github debate) things are not too bad. On the arc/Github question, Austin has been working with the Phabricator maintainers to try to have them introduce a workflow which might be more familiar and more convenient for Github experts. But for offering a new feature, Anthony argues that the process is unacceptably arduous. There are lots of things to think about GHC has tons of features implemented by talented and motivated folk... who have since moved on. So when a new feature is proposed, my baseline guess is that I will personally be responsible for maintaining it in five years time. So I want to understand what the feature is. I want to understand how the implementation works. I want to be reasonably sure that it doesn't add a bunch of complexity to an already very complicated code base. And since any new feature adds some complexity, I want to have some confidence that the feature commands broad support -- even when it's behind a language extension flag. So actually I think it's reasonable that the process should be somewhat arduous. A new feature imposes costs on every single person who works on that code in the future. We don't really make this point explicitly, but the ​contributor guidelines for Phabricator do. It might be helpful if we articulated similar guidelines. "Any proposal needs a lightweight way to gauge broad support, then a period of constructive refinement". Indeed! What would be such a lightweight way? The trouble is that there is an enormous silent majority, and discussions are typically driven by a handful of articulate and well-informed contributors. All credit to them, but they may very well be an unrepresentative sample. I simply don't know how to gauge true broad support. There is a problem with my own personal lack of bandwidth. I am one of the main gatekeepers for some big chunks of GHC, the renamer, typechecker and optimisation passes. That is good in a way, because if GHC lacked gatekeepers, it would soon lose conceptual integrity and become a huge ball of mud. But it is bad in other ways. I review a lot of code; but not fast enough! In prioritising I am guided by my (doubtless flawed) perceptions of things that lots of people are eagerly awaiting. The same thing goes for Simon Marlow, especially in the runtime system. We both have other day jobs. Even writing this post means that I'm not reviewing someone's code. But I am acutely aware that "Simon and Simon are busy" is pretty cold comfort to someone awaiting a review. Maybe there should be a bunch of other people playing this role. That would be great. For example, Richard Eisenberg has taken responsibility for Template Haskell, which is totally fantastic. I would love to hear from people who are willing to take overall responsibility for a piece of GHC. None of this is an argument for the status quo. Simon, Ben, Austin, Herbert, and I have been talking about a rather more systematic process for new features. We'd like to learn from experience elsewhere, rather than reinvent the wheel, such as the ​Rust process. Please suggest processes that you have seen working well elsewhere. [Less]
Posted almost 8 years ago by simonpj
This post is a response to ​Anthony's blog post about contributing to GHC, and the subsequent ​Reddit discussion. You'll find it easier to follow my comments below if you read Anthony's post first. Short summary: many of Anthony's criticisms are ... [More] accurate, but they are not easy to address, especially in a volunteer-only project. However we will do something about the feature-request process. Barrier to entry I am ashamed that GHC seems difficult to contribute to. The details don't matter; the fact that it made you feel that way is by definition bad. I'm really sorry. We should find a way to do better. An underlying issue is one of effort budget. GHC has essentially no full-timers, unlike many open-source projects. In particular, Simon Marlow and I are volunteers like everyone else, and like everyone else we have a day job. Microsoft Research generously pays Well Typed for front-line support, manifested in the heroic form of Ben and Austin, totalling around one FTE. But their effort is fully absorbed by managing releases, reviewing patches, maintaining the infrastructure, and so on. It's a real challenge to maintain a low barrier to entry for a large complex project, whose motive force is primarily volunteers. It means that any initiative will only fly if someone steps up to drive it. Technical documentation The questions of scattered and inconsistent documentation are difficult to address. GHC is twenty-five years old; it has hundreds of authors and documentation that was once accurate falls out of date. I would love it to have consistent, well-explained documentation. But I don't know how to achieve it. GHC's technical documentation is either in the code itself, or on GHC's wiki. An advantage of a wiki is that anyone can edit it. Yes, instructions and technical descriptions go out of date. Who will fix them? You, gentle reader! There is no one else. But in practice few do. Perhaps that's because such work is invisible, so no one even knows you've done it? What would make people feel "I'd really like to improve those instructions or that documentation?" I will argue for two things. First, I find Notes incredibly helpful. They live with the code, so they are less likely to go out of date. They don't mess up the flow of the code. They can be referred to from multiple places. They are the single most successful code documentation mechanism we have. (To be fair to Anthony, I don't think was complaining about Notes, just expressing surprise.) Second, I really do think that each new proposed feature needs a description, somewhere, of what it is, why it's a good thing, and as precisely as possible what its specification is. Plus perhaps some implementation notes. It's very important when reading an implementation to know what it is that the code is seeking to implement. So yes, I do frequently ask for a specification. Arc, github, phabricator, etc Personally I carry no torch for arc. I do whatever I'm told, workflow-wise. If GitHub has got a lot better since we took the Arc decision, and there's a consensus that we should shift, I'm all for it provided someone explains to me what my new workflows should be. I am absolutely in favour of reducing barriers to contribution. (Other members of the GHC team have much stronger and better informed views than me, though.) But there are costs to moving, especially if the move implies friction in the future. In particular, those that worry me most are those surrounding issue tracking. Github's issue tracker simply doesn't seem sufficient for a project as large and multi-faceted as GHC; in particular, tags as the only form of metadata is extremely limiting. One alternative would be to use Github and Trac side-by-side, but then we face the issue of conflicting ticket number spaces as both systems insist on ticket numbers of the form #NNNN. Coding style Coding style is rather a personal thing, and we have been reluctant to enforce a single uniform style. (Quite apart from the task of reformatting 150k lines of Haskell.) Personally I don't find it an obstacle to reading other people's code. Feature requests That leaves the most substantial issue that Anthony poses: the process of making a contribution. For fixing a bug, I think that (aside from the arc/Github debate) things are not too bad. On the arc/Github question, Austin has been working with the Phabricator maintainers to try to have them introduce a workflow which might be more familiar and more convenient for Github experts. But for offering a new feature, Anthony argues that the process is unacceptably arduous. There are lots of things to think about GHC has tons of features implemented by talented and motivated folk... who have since moved on. So when a new feature is proposed, my baseline guess is that I will personally be responsible for maintaining it in five years time. So I want to understand what the feature is. I want to understand how the implementation works. I want to be reasonably sure that it doesn't add a bunch of complexity to an already very complicated code base. And since any new feature adds some complexity, I want to have some confidence that the feature commands broad support -- even when it's behind a language extension flag. So actually I think it's reasonable that the process should be somewhat arduous. A new feature imposes costs on every single person who works on that code in the future. We don't really make this point explicitly, but the ​contributor guidelines for Phabricator do. It might be helpful if we articulated similar guidelines. "Any proposal needs a lightweight way to gauge broad support, then a period of constructive refinement". Indeed! What would be such a lightweight way? The trouble is that there is an enormous silent majority, and discussions are typically driven by a handful of articulate and well-informed contributors. All credit to them, but they may very well be an unrepresentative sample. I simply don't know how to gauge true broad support. There is a problem with my own personal lack of bandwidth. I am one of the main gatekeepers for some big chunks of GHC, the renamer, typechecker and optimisation passes. That is good in a way, because if GHC lacked gatekeepers, it would soon lose conceptual integrity and become a huge ball of mud. But it is bad in other ways. I review a lot of code; but not fast enough! In prioritising I am guided by my (doubtless flawed) perceptions of things that lots of people are eagerly awaiting. The same thing goes for Simon Marlow, especially in the runtime system. We both have other day jobs. Even writing this post means that I'm not reviewing someone's code. But I am acutely aware that "Simon and Simon are busy" is pretty cold comfort to someone awaiting a review. Maybe there should be a bunch of other people playing this role. That would be great. For example, Richard Eisenberg has taken responsibility for Template Haskell, which is totally fantastic. I would love to hear from people who are willing to take overall responsibility for a piece of GHC. None of this is an argument for the status quo. Simon, Ben, Austin, Herbert, and I have been talking about a rather more systematic process for new features. We'd like to learn from experience elsewhere, rather than reinvent the wheel, such as the ​Rust process. Please suggest processes that you have seen working well elsewhere. [Less]
Posted almost 8 years ago by simonpj
This post is a response to ​Anthony's blog post about contributing to GHC, and the subsequent ​Reddit discussion. You'll find it easier to follow my comments below if you read Anthony's post first. Short summary: many of Anthony's criticisms are ... [More] accurate, but they are not easy to address, especially in a volunteer-only project. However we will do something about the feature-request process. Barrier to entry I am ashamed that GHC seems difficult to contribute to. The details don't matter; the fact that it made you feel that way is by definition bad. I'm really sorry. We should find a way to do better. An underlying issue is one of effort budget. GHC has essentially no full-timers, unlike many open-source projects. In particular, Simon Marlow and I are volunteers like everyone else, and like everyone else we have a day job. Microsoft Research generously pays Well Typed for front-line support, manifested in the heroic form of Ben and Austin, totalling around one FTE. But their effort is fully absorbed by managing releases, reviewing patches, maintaining the infrastructure, and so on. It's a real challenge to maintain a low barrier to entry for a large complex project, whose motive force is primarily volunteers. It means that any initiative will only fly if someone steps up to drive it. Technical documentation The questions of scattered and inconsistent documentation are difficult to address. GHC is twenty-five years old; it has hundreds of authors and documentation that was once accurate falls out of date. I would love it to have consistent, well-explained documentation. But I don't know how to achieve it. GHC's technical documentation is either in the code itself, or on GHC's wiki. An advantage of a wiki is that anyone can edit it. Yes, instructions and technical descriptions go out of date. Who will fix them? You, gentle reader! There is no one else. But in practice few do. Perhaps that's because such work is invisible, so no one even knows you've done it? What would make people feel "I'd really like to improve those instructions or that documentation?" I will argue for two things. First, I find Notes incredibly helpful. They live with the code, so they are less likely to go out of date. They don't mess up the flow of the code. They can be referred to from multiple places. They are the single most successful code documentation mechanism we have. (To be fair to Anthony, I don't think was complaining about Notes, just expressing surprise.) Second, I really do think that each new proposed feature needs a description, somewhere, of what it is, why it's a good thing, and as precisely as possible what its specification is. Plus perhaps some implementation notes. It's very important when reading an implementation to know what it is that the code is seeking to implement. So yes, I do frequently ask for a specification. Arc, github, phabricator, etc Personally I carry no torch for arc. I do whatever I'm told, workflow-wise. If GitHub has got a lot better since we took the Arc decision, and there's a consensus that we should shift, I'm all for it provided someone explains to me what my new workflows should be. I am absolutely in favour of reducing barriers to contribution. (Other members of the GHC team have much stronger and better informed views than me, though.) But there are costs to moving, especially if the move implies friction in the future. In particular, those that worry me most are those surrounding issue tracking. Github's issue tracker simply doesn't seem sufficient for a project as large and multi-faceted as GHC; in particular, tags as the only form of metadata is extremely limiting. One alternative would be to use Github and Trac side-by-side, but then we face the issue of conflicting ticket number spaces as both systems insist on ticket numbers of the form #NNNN. Coding style Coding style is rather a personal thing, and we have been reluctant to enforce a single uniform style. (Quite apart from the task of reformatting 150k lines of Haskell.) Personally I don't find it an obstacle to reading other people's code. Feature requests That leaves the most substantial issue that Anthony poses: the process of making a contribution. For fixing a bug, I think that (aside from the arc/Github debate) things are not too bad. On the arc/Github question, Austin has been working with the Phabricator maintainers to try to have them introduce a workflow which might be more familiar and more convenient for Github experts. But for offering a new feature, Anthony argues that the process is unacceptably arduous. There are lots of things to think about GHC has tons of features implemented by talented and motivated folk... who have since moved on. So when a new feature is proposed, my baseline guess is that I will personally be responsible for maintaining it in five years time. So I want to understand what the feature is. I want to understand how the implementation works. I want to be reasonably sure that it doesn't add a bunch of complexity to an already very complicated code base. And since any new feature adds some complexity, I want to have some confidence that the feature commands broad support -- even when it's behind a language extension flag. So actually I think it's reasonable that the process should be somewhat arduous. A new feature imposes costs on every single person who works on that code in the future. We don't really make this point explicitly, but the ​contributor guidelines for Phabricator do. It might be helpful if we articulated similar guidelines. "Any proposal needs a lightweight way to gauge broad support, then a period of constructive refinement". Indeed! What would be such a lightweight way? The trouble is that there is an enormous silent majority, and discussions are typically driven by a handful of articulate and well-informed contributors. All credit to them, but they may very well be an unrepresentative sample. I simply don't know how to gauge true broad support. There is a problem with my own personal lack of bandwidth. I am one of the main gatekeepers for some big chunks of GHC, the renamer, typechecker and optimisation passes. That is good in a way, because if GHC lacked gatekeepers, it would soon lose conceptual integrity and become a huge ball of mud. But it is bad in other ways. I review a lot of code; but not fast enough! In prioritising I am guided by my (doubtless flawed) perceptions of things that lots of people are eagerly awaiting. The same thing goes for Simon Marlow, especially in the runtime system. We both have other day jobs. Even writing this post means that I'm not reviewing someone's code. But I am acutely aware that "Simon and Simon are busy" is pretty cold comfort to someone awaiting a review. Maybe there should be a bunch of other people playing this role. That would be great. For example, Richard Eisenberg has taken responsibility for Template Haskell, which is totally fantastic. I would love to hear from people who are willing to take overall responsibility for a piece of GHC. None of this is an argument for the status quo. Simon, Ben, Austin, Herbert, and I have been talking about a rather more systematic process for new features. We'd like to learn from experience elsewhere, rather than reinvent the wheel, such as the ​Rust process. Please suggest processes that you have seen working well elsewhere. [Less]
Posted almost 8 years ago by bgamari
The GHC developers are very pleased to announce the release of the first new super-major version of our Haskell compiler in six years, GHC 8.0.1. This release features dozens of exciting developments including, A more refined interface for implicit ... [More] call-stacks, allowing libraries to provide more helpful runtime error messages to users The introduction of the DuplicateRecordFields language extension, allowing multiple datatypes to declare fields of the same name Significant improvements in error message readability and content, including facilities for libraries to provide custom error messages, more aggressive warnings for fragile rewrite rules, and more helpful errors for missing imports A rewritten and substantially more thorough pattern match checker, providing more precise exhaustiveness checking in GADT pattern matches More reliable debugging information including experimental backtrace support, allowing better integration with traditional debugging tools Support for desugaring do-notation to use Applicative combinators, allowing the intuitive do notation to be used in settings which previously required the direct use of Applicative combinators The introduction of Strict and StrictData language extensions, allowing modules to be compiled with strict-by-default evaluation of bindings Great improvements in portability, including more reliable linking on Windows, a new PPC64 code generator, support for the AIX operating system, unregisterised m68k support, and significant stabilization on ARM targets A greatly improved user's guide, with beautiful and modern PDF and HTML output Introduction of type application syntax, reducing the need for proxies More complete support for pattern synonyms, including record pattern synonyms and the ability to export patterns "bundled" with a type, as you would a data constructor Support for injective type families and recursive superclass relationships An improved generics representation leveraging GHC's support for type-level literals The TypeInType extension, which unifies types and kinds, allowing GHC to reason about kind equality and enabling promotion of more constructs to the type level ...and more! A more thorough list of the changes included in this release can be found in the ​release notes, As always, we have collected various points of interest for users of previous GHC releases on the GHC 8.0 migration page, Please let us know if you encounter anything missing or unclear on this page. This release is the culmination of nearly eighteen months of effort by over one hundred contributors. We'd like to thank everyone who has contributed code, bug reports, and feedback over the past year. It's only because of their efforts that GHC continues to evolve. How to get it Both the source tarball and binary distributions for a wide variety of platforms are available here. Background Haskell is a standardized lazy functional programming language. The Glasgow Haskell Compiler (GHC) is a state-of-the-art programming suite for Haskell. Included is an optimising compiler generating efficient code for a variety of platforms, together with an interactive system for convenient, quick development. The distribution includes space and time profiling facilities, a large collection of libraries, and support for various language extensions, including concurrency, exceptions, and foreign language interfaces. GHC is distributed under a BSD-style open source license. Supported Platforms The list of platforms we support, and the people responsible for them, can be found on the GHC wiki Ports to other platforms are possible with varying degrees of difficulty. The Building Guide describes how to go about porting to a new platform. Developers We welcome new contributors. Instructions on getting started with hacking on GHC are available from GHC's ​developer site. Community Resources There are mailing lists for GHC users, develpoers, and monitoring bug tracker activity; to subscribe, use the Mailman ​web interface. There are several other Haskell and GHC-related mailing lists on ​haskell.org; for the full list, see the ​lists page. Some GHC developers hang out on the #ghc and #haskell of the Freenode IRC network, too. See the ​Haskell wiki for details. Please report bugs using our bug tracking system. Instructions on reporting bugs can be found here. [Less]
Posted almost 8 years ago by bgamari
The GHC developers are very pleased to announce the release of the first new super-major version of our Haskell compiler in six years, GHC 8.0.1. This release features dozens of exciting developments including, A more refined interface for implicit ... [More] call-stacks, allowing libraries to provide more helpful runtime error messages to users The introduction of the DuplicateRecordFields language extension, allowing multiple datatypes to declare fields of the same name Significant improvements in error message readability and content, including facilities for libraries to provide custom error messages, more aggressive warnings for fragile rewrite rules, and more helpful errors for missing imports A rewritten and substantially more thorough pattern match checker, providing more precise exhaustiveness checking in GADT pattern matches More reliable debugging information including experimental backtrace support, allowing better integration with traditional debugging tools Support for desugaring do-notation to use Applicative combinators, allowing the intuitive do notation to be used in settings which previously required the direct use of Applicative combinators The introduction of Strict and StrictData language extensions, allowing modules to be compiled with strict-by-default evaluation of bindings Great improvements in portability, including more reliable linking on Windows, a new PPC64 code generator, support for the AIX operating system, unregisterised m68k support, and significant stabilization on ARM targets A greatly improved user's guide, with beautiful and modern PDF and HTML output Introduction of type application syntax, reducing the need for proxies More complete support for pattern synonyms, including record pattern synonyms and the ability to export patterns "bundled" with a type, as you would a data constructor Support for injective type families and recursive superclass relationships An improved generics representation leveraging GHC's support for type-level literals The TypeInType extension, which unifies types and kinds, allowing GHC to reason about kind equality and enabling promotion of more constructs to the type level ...and more! A more thorough list of the changes included in this release can be found in the ​release notes, As always, we have collected various points of interest for users of previous GHC releases on the GHC 8.0 migration page, Please let us know if you encounter anything missing or unclear on this page. This release is the culmination of nearly eighteen months of effort by over one hundred contributors. We'd like to thank everyone who has contributed code, bug reports, and feedback over the past year. It's only because of their efforts that GHC continues to evolve. How to get it Both the source tarball and binary distributions for a wide variety of platforms are available here. Background Haskell is a standardized lazy functional programming language. The Glasgow Haskell Compiler (GHC) is a state-of-the-art programming suite for Haskell. Included is an optimising compiler generating efficient code for a variety of platforms, together with an interactive system for convenient, quick development. The distribution includes space and time profiling facilities, a large collection of libraries, and support for various language extensions, including concurrency, exceptions, and foreign language interfaces. GHC is distributed under a BSD-style open source license. Supported Platforms The list of platforms we support, and the people responsible for them, can be found on the GHC wiki Ports to other platforms are possible with varying degrees of difficulty. The Building Guide describes how to go about porting to a new platform. Developers We welcome new contributors. Instructions on getting started with hacking on GHC are available from GHC's ​developer site. Community Resources There are mailing lists for GHC users, develpoers, and monitoring bug tracker activity; to subscribe, use the Mailman ​web interface. There are several other Haskell and GHC-related mailing lists on ​haskell.org; for the full list, see the ​lists page. Some GHC developers hang out on the #ghc and #haskell of the Freenode IRC network, too. See the ​Haskell wiki for details. Please report bugs using our bug tracking system. Instructions on reporting bugs can be found here. [Less]
Posted almost 8 years ago by bgamari
The GHC developers are very pleased to announce the release of the first new super-major version of our Haskell compiler in six years, GHC 8.0.1. This release features dozens of exciting developments including, A more refined interface for implicit ... [More] call-stacks, allowing libraries to provide more helpful runtime error messages to users The introduction of the DuplicateRecordFields language extension, allowing multiple datatypes to declare fields of the same name Significant improvements in error message readability and content, including facilities for libraries to provide custom error messages, more aggressive warnings for fragile rewrite rules, and more helpful errors for missing imports A rewritten and substantially more thorough pattern match checker, providing more precise exhaustiveness checking in GADT pattern matches More reliable debugging information including experimental backtrace support, allowing better integration with traditional debugging tools Support for desugaring do-notation to use Applicative combinators, allowing the intuitive do notation to be used in settings which previously required the direct use of Applicative combinators The introduction of Strict and StrictData language extensions, allowing modules to be compiled with strict-by-default evaluation of bindings Great improvements in portability, including more reliable linking on Windows, a new PPC64 code generator, support for the AIX operating system, unregisterised m68k support, and significant stabilization on ARM targets A greatly improved user's guide, with beautiful and modern PDF and HTML output Introduction of type application syntax, reducing the need for proxies More complete support for pattern synonyms, including record pattern synonyms and the ability to export patterns "bundled" with a type, as you would a data constructor Support for injective type families and recursive superclass relationships An improved generics representation leveraging GHC's support for type-level literals The TypeInType extension, which unifies types and kinds, allowing GHC to reason about kind equality and enabling promotion of more constructs to the type level ...and more! A more thorough list of the changes included in this release can be found in the ​release notes, As always, we have collected various points of interest for users of previous GHC releases on the GHC 8.0 migration page, Please let us know if you encounter anything missing or unclear on this page. This release is the culmination of nearly eighteen months of effort by over one hundred contributors. We'd like to thank everyone who has contributed code, bug reports, and feedback over the past year. It's only because of their efforts that GHC continues to evolve. How to get it Both the source tarball and binary distributions for a wide variety of platforms are available here. Background Haskell is a standardized lazy functional programming language. The Glasgow Haskell Compiler (GHC) is a state-of-the-art programming suite for Haskell. Included is an optimising compiler generating efficient code for a variety of platforms, together with an interactive system for convenient, quick development. The distribution includes space and time profiling facilities, a large collection of libraries, and support for various language extensions, including concurrency, exceptions, and foreign language interfaces. GHC is distributed under a BSD-style open source license. Supported Platforms The list of platforms we support, and the people responsible for them, can be found on the GHC wiki Ports to other platforms are possible with varying degrees of difficulty. The Building Guide describes how to go about porting to a new platform. Developers We welcome new contributors. Instructions on getting started with hacking on GHC are available from GHC's ​developer site. Community Resources There are mailing lists for GHC users, develpoers, and monitoring bug tracker activity; to subscribe, use the Mailman ​web interface. There are several other Haskell and GHC-related mailing lists on ​haskell.org; for the full list, see the ​lists page. Some GHC developers hang out on the #ghc and #haskell of the Freenode IRC network, too. See the ​Haskell wiki for details. Please report bugs using our bug tracking system. Instructions on reporting bugs can be found here. [Less]
Posted over 8 years ago by thoughtpolice
Hi *, Welcome for the latest entry in the GHC Weekly News, which has been somewhat irregularly scheduled - but we're as busy as ever! 8.0.1 release roadmap We're still steaming ahead on GHC 8.0.1 - any interested participants are suggested to ... [More] look at the wiki:Status/GHC-8.0.1 page, to see where we're currently at. These past few weeks have been good: we've gotten the first part of the overloaded record fields work in, and we have plans to land the kind equalities work in November. Furthermore, Simon Marlow, Peter Wortmann and Ben are working on reviewing all of the DWARF improvements, and hopefully the start of this work will land next week. But 8.0 isn't the only thing that'll be getting released... And some other minor releases In a total, unprecedented upset - we're aiming to do three GHC releases in a fairly short amount of time. 7.10.3 Ben Gamari has been working on steadily hacking away at GHC 7.10.3, and the hopes are that we'll be able to ship it soon. This will fix several dozen bugs, some of which are critical for our users. You can keep up to date by following the wiki:Status/GHC-7.10.3 page. 7.8.5 Simultaneously, your author will also be working on a GHC 7.8.5 release. While we were alerted a few months ago to this breakage, it seems rather unfortunate for the 7.8 series to remain broken on such a popular OS. Furthermore, the "Three GHC Release Policy" for many authors - to support the last three major versions of GHC - would mean that 7.8 would be broken for OS X developers for an entire year until GHC 8.2.1. Which is a pretty unfortunate circumstance. It's not expected the 7.8.5 release will contain any other fixes, however. List chatter (Over the past two weeks) Ben Gamari wrote in about switching the users guide to reStructuredText, and the TL;DR is - it's done! We'll have a beautiful new users guide for GHC 8.0.1 ​https://mail.haskell.org/pipermail/ghc-devs/2015-October/010029.html Matthew Pickering comments about the state of pattern synonym signatures, remarking that they're currently confusing, noting down some things we could possibly fix. ​https://mail.haskell.org/pipermail/ghc-devs/2015-October/010024.html Ben Gamari talked about the status of the recent DWARF work, and so far it's looking good. The needed patches are still in the review pipeline, but the hope is that they'll all be done in time for 8.0.1. ​https://mail.haskell.org/pipermail/ghc-devs/2015-October/010039.html David A Roberts wrote in to ask a question: now that we have ApplicativeDo, what about Applicative comprehensions? The responses indicate this seems like it would be a great addition. ​https://mail.haskell.org/pipermail/ghc-devs/2015-October/010062.html Richard Eisenberg sent in a status update about his work on kind equalities, and the hope is it will land shortly in November! (Your editor then hassled him for a syntax change before landing.) ​https://mail.haskell.org/pipermail/ghc-devs/2015-October/010077.html Adam Foltzer has requested another release of the GHC 7.8 series, due to it being completely broken on OS X El Capitan. Expect more news on this soon. ​https://mail.haskell.org/pipermail/ghc-devs/2015-October/010078.html Erik de Castro Lopo has recently been working with LLVM, and decided to publish his automation so interested GHC hackers could keep up to date and try new LLVMs easily. ​https://mail.haskell.org/pipermail/ghc-devs/2015-October/010086.html Noteworthy commits (Over the past two weeks) Commit 4fd6207ec6960c429e6a1bcbe0282f625010f52a - Move the users guide to reStructured Text. Commit 6cde981a8788b225819be28659caddc35b77972d - Make GHC.Generics capable of handling unboxed tuples. Commit 0eb8fcd94b29ee9997b386e64203037bdf2aaa04 - Enable Enumeration is empty warnings for Integer Commit 620fc6f909cd6e51b5613454097ec1c9f323839a - Make Windows linker more robust to unknown sections Commit 5d841108acef950fed6a5e608ac9b18e7431aa87 - Add short library names support to the Windows linker Commit f8fbf385b879fe177409a25cc9499275ea3dc45d - Reinstate monomorphism-restriction warnings Commit dcc342870b4d8a739ccbed3ae26e84dcc3579914 - Don't inline/apply other rules when simplifying a rule RHS. Commit dec5cd4085488686b5ed50bb26ccbc0ba7b645ec - base: Add forkOSWithUnmask Commit e8c8173923302268ef950c3b21e276779e45ac83 - Allow arr ∧ (first ∨ (*)) as minimal definition of Arrow instance Commit 29310b622801733e1b29a9a61988406872db13ca - Switch to LLVM version 3.7 Commit 04e8366608fee4f5e3358acc855bc6f556c3f508 - ELF/x86_64: map object file sections separately into the low 2GB Commit b1884b0e62f62e3c0859515c4137124ab0c9560e - Implement DuplicateRecordFields Commit 75492e7467ff962f2f2e29e5c8b2c588c94ae8a7 - Add typed holes support in Template Haskell. Commit 6a8ca65032c6b3ed61b5378765e70120083cf5da - Allow left ∨ (+++) as minimal definition of ArrowChoice instance Closed tickets (Over the past two weeks) #10392, #7883, #10475, #10745, #10926, #9238, #10700, #10810, #10342, #365(!), #10361, #10929, #10563, #9907, #10513, #10868, #10932, #8920, #10516, #10416, #5966, #8335, #10520, #10687, #10571, #9058, #10939, #10938, #9590, #10949, #10153, #10947, #10948, #10936, #1883, #5289, #10733, #10950, #10611, #10959, #10960, #10831, #10796, #10890, #8010, #10216, #10965, #10953, #10964, #10931, #10714, #10888, #10633, #8652, #3971, #10882, #10977, #10267, and #10911. [Less]
Posted over 8 years ago by thoughtpolice
Hi *, Welcome for the latest entry in the GHC Weekly News, which has been somewhat irregularly scheduled - but we're as busy as ever! 8.0.1 release roadmap We're still steaming ahead on GHC 8.0.1 - any interested participants are suggested to ... [More] look at the wiki:Status/GHC-8.0.1 page, to see where we're currently at. These past few weeks have been good: we've gotten the first part of the overloaded record fields work in, and we have plans to land the kind equalities work in November. Furthermore, Simon Marlow, Peter Wortmann and Ben are working on reviewing all of the DWARF improvements, and hopefully the start of this work will land next week. But 8.0 isn't the only thing that'll be getting released... And some other minor releases In a total, unprecedented upset - we're aiming to do three GHC releases in a fairly short amount of time. 7.10.3 Ben Gamari has been working on steadily hacking away at GHC 7.10.3, and the hopes are that we'll be able to ship it soon. This will fix several dozen bugs, some of which are critical for our users. You can keep up to date by following the wiki:Status/GHC-7.10.3 page. 7.8.5 Simultaneously, your author will also be working on a GHC 7.8.5 release. While we were alerted a few months ago to this breakage, it seems rather unfortunate for the 7.8 series to remain broken on such a popular OS. Furthermore, the "Three GHC Release Policy" for many authors - to support the last three major versions of GHC - would mean that 7.8 would be broken for OS X developers for an entire year until GHC 8.2.1. Which is a pretty unfortunate circumstance. It's not expected the 7.8.5 release will contain any other fixes, however. List chatter (Over the past two weeks) Ben Gamari wrote in about switching the users guide to reStructuredText, and the TL;DR is - it's done! We'll have a beautiful new users guide for GHC 8.0.1 ​https://mail.haskell.org/pipermail/ghc-devs/2015-October/010029.html Matthew Pickering comments about the state of pattern synonym signatures, remarking that they're currently confusing, noting down some things we could possibly fix. ​https://mail.haskell.org/pipermail/ghc-devs/2015-October/010024.html Ben Gamari talked about the status of the recent DWARF work, and so far it's looking good. The needed patches are still in the review pipeline, but the hope is that they'll all be done in time for 8.0.1. ​https://mail.haskell.org/pipermail/ghc-devs/2015-October/010039.html David A Roberts wrote in to ask a question: now that we have ApplicativeDo, what about Applicative comprehensions? The responses indicate this seems like it would be a great addition. ​https://mail.haskell.org/pipermail/ghc-devs/2015-October/010062.html Richard Eisenberg sent in a status update about his work on kind equalities, and the hope is it will land shortly in November! (Your editor then hassled him for a syntax change before landing.) ​https://mail.haskell.org/pipermail/ghc-devs/2015-October/010077.html Adam Foltzer has requested another release of the GHC 7.8 series, due to it being completely broken on OS X El Capitan. Expect more news on this soon. ​https://mail.haskell.org/pipermail/ghc-devs/2015-October/010078.html Erik de Castro Lopo has recently been working with LLVM, and decided to publish his automation so interested GHC hackers could keep up to date and try new LLVMs easily. ​https://mail.haskell.org/pipermail/ghc-devs/2015-October/010086.html Noteworthy commits (Over the past two weeks) Commit 4fd6207ec6960c429e6a1bcbe0282f625010f52a - Move the users guide to reStructured Text. Commit 6cde981a8788b225819be28659caddc35b77972d - Make GHC.Generics capable of handling unboxed tuples. Commit 0eb8fcd94b29ee9997b386e64203037bdf2aaa04 - Enable Enumeration is empty warnings for Integer Commit 620fc6f909cd6e51b5613454097ec1c9f323839a - Make Windows linker more robust to unknown sections Commit 5d841108acef950fed6a5e608ac9b18e7431aa87 - Add short library names support to the Windows linker Commit f8fbf385b879fe177409a25cc9499275ea3dc45d - Reinstate monomorphism-restriction warnings Commit dcc342870b4d8a739ccbed3ae26e84dcc3579914 - Don't inline/apply other rules when simplifying a rule RHS. Commit dec5cd4085488686b5ed50bb26ccbc0ba7b645ec - base: Add forkOSWithUnmask Commit e8c8173923302268ef950c3b21e276779e45ac83 - Allow arr ∧ (first ∨ (*)) as minimal definition of Arrow instance Commit 29310b622801733e1b29a9a61988406872db13ca - Switch to LLVM version 3.7 Commit 04e8366608fee4f5e3358acc855bc6f556c3f508 - ELF/x86_64: map object file sections separately into the low 2GB Commit b1884b0e62f62e3c0859515c4137124ab0c9560e - Implement DuplicateRecordFields Commit 75492e7467ff962f2f2e29e5c8b2c588c94ae8a7 - Add typed holes support in Template Haskell. Commit 6a8ca65032c6b3ed61b5378765e70120083cf5da - Allow left ∨ (+++) as minimal definition of ArrowChoice instance Closed tickets (Over the past two weeks) #10392, #7883, #10475, #10745, #10926, #9238, #10700, #10810, #10342, #365(!), #10361, #10929, #10563, #9907, #10513, #10868, #10932, #8920, #10516, #10416, #5966, #8335, #10520, #10687, #10571, #9058, #10939, #10938, #9590, #10949, #10153, #10947, #10948, #10936, #1883, #5289, #10733, #10950, #10611, #10959, #10960, #10831, #10796, #10890, #8010, #10216, #10965, #10953, #10964, #10931, #10714, #10888, #10633, #8652, #3971, #10882, #10977, #10267, and #10911. [Less]
Posted over 8 years ago by thoughtpolice
Hi *, Welcome for the latest entry in the GHC Weekly News, which has been somewhat irregularly scheduled - but we're as busy as ever! 8.0.1 release roadmap We're still steaming ahead on GHC 8.0.1 - any interested participants are suggested to ... [More] look at the wiki:Status/GHC-8.0.1 page, to see where we're currently at. These past few weeks have been good: we've gotten the first part of the overloaded record fields work in, and we have plans to land the kind equalities work in November. Furthermore, Simon Marlow, Peter Wortmann and Ben are working on reviewing all of the DWARF improvements, and hopefully the start of this work will land next week. But 8.0 isn't the only thing that'll be getting released... And some other minor releases In a total, unprecedented upset - we're aiming to do three GHC releases in a fairly short amount of time. 7.10.3 Ben Gamari has been working on steadily hacking away at GHC 7.10.3, and the hopes are that we'll be able to ship it soon. This will fix several dozen bugs, some of which are critical for our users. You can keep up to date by following the wiki:Status/GHC-7.10.3 page. 7.8.5 Simultaneously, your author will also be working on a GHC 7.8.5 release. While we were alerted a few months ago to this breakage, it seems rather unfortunate for the 7.8 series to remain broken on such a popular OS. Furthermore, the "Three GHC Release Policy" for many authors - to support the last three major versions of GHC - would mean that 7.8 would be broken for OS X developers for an entire year until GHC 8.2.1. Which is a pretty unfortunate circumstance. It's not expected the 7.8.5 release will contain any other fixes, however. List chatter (Over the past two weeks) Ben Gamari wrote in about switching the users guide to reStructuredText, and the TL;DR is - it's done! We'll have a beautiful new users guide for GHC 8.0.1 ​https://mail.haskell.org/pipermail/ghc-devs/2015-October/010029.html Matthew Pickering comments about the state of pattern synonym signatures, remarking that they're currently confusing, noting down some things we could possibly fix. ​https://mail.haskell.org/pipermail/ghc-devs/2015-October/010024.html Ben Gamari talked about the status of the recent DWARF work, and so far it's looking good. The needed patches are still in the review pipeline, but the hope is that they'll all be done in time for 8.0.1. ​https://mail.haskell.org/pipermail/ghc-devs/2015-October/010039.html David A Roberts wrote in to ask a question: now that we have ApplicativeDo, what about Applicative comprehensions? The responses indicate this seems like it would be a great addition. ​https://mail.haskell.org/pipermail/ghc-devs/2015-October/010062.html Richard Eisenberg sent in a status update about his work on kind equalities, and the hope is it will land shortly in November! (Your editor then hassled him for a syntax change before landing.) ​https://mail.haskell.org/pipermail/ghc-devs/2015-October/010077.html Adam Foltzer has requested another release of the GHC 7.8 series, due to it being completely broken on OS X El Capitan. Expect more news on this soon. ​https://mail.haskell.org/pipermail/ghc-devs/2015-October/010078.html Erik de Castro Lopo has recently been working with LLVM, and decided to publish his automation so interested GHC hackers could keep up to date and try new LLVMs easily. ​https://mail.haskell.org/pipermail/ghc-devs/2015-October/010086.html Noteworthy commits (Over the past two weeks) Commit 4fd6207ec6960c429e6a1bcbe0282f625010f52a - Move the users guide to reStructured Text. Commit 6cde981a8788b225819be28659caddc35b77972d - Make GHC.Generics capable of handling unboxed tuples. Commit 0eb8fcd94b29ee9997b386e64203037bdf2aaa04 - Enable Enumeration is empty warnings for Integer Commit 620fc6f909cd6e51b5613454097ec1c9f323839a - Make Windows linker more robust to unknown sections Commit 5d841108acef950fed6a5e608ac9b18e7431aa87 - Add short library names support to the Windows linker Commit f8fbf385b879fe177409a25cc9499275ea3dc45d - Reinstate monomorphism-restriction warnings Commit dcc342870b4d8a739ccbed3ae26e84dcc3579914 - Don't inline/apply other rules when simplifying a rule RHS. Commit dec5cd4085488686b5ed50bb26ccbc0ba7b645ec - base: Add forkOSWithUnmask Commit e8c8173923302268ef950c3b21e276779e45ac83 - Allow arr ∧ (first ∨ (*)) as minimal definition of Arrow instance Commit 29310b622801733e1b29a9a61988406872db13ca - Switch to LLVM version 3.7 Commit 04e8366608fee4f5e3358acc855bc6f556c3f508 - ELF/x86_64: map object file sections separately into the low 2GB Commit b1884b0e62f62e3c0859515c4137124ab0c9560e - Implement DuplicateRecordFields Commit 75492e7467ff962f2f2e29e5c8b2c588c94ae8a7 - Add typed holes support in Template Haskell. Commit 6a8ca65032c6b3ed61b5378765e70120083cf5da - Allow left ∨ (+++) as minimal definition of ArrowChoice instance Closed tickets (Over the past two weeks) #10392, #7883, #10475, #10745, #10926, #9238, #10700, #10810, #10342, #365(!), #10361, #10929, #10563, #9907, #10513, #10868, #10932, #8920, #10516, #10416, #5966, #8335, #10520, #10687, #10571, #9058, #10939, #10938, #9590, #10949, #10153, #10947, #10948, #10936, #1883, #5289, #10733, #10950, #10611, #10959, #10960, #10831, #10796, #10890, #8010, #10216, #10965, #10953, #10964, #10931, #10714, #10888, #10633, #8652, #3971, #10882, #10977, #10267, and #10911. [Less]
Posted over 8 years ago by thoughtpolice
Hi *, Welcome for the latest entry in the GHC Weekly News, which has been somewhat irregularly scheduled - but we're as busy as ever! 8.0.1 release roadmap We're still steaming ahead on GHC 8.0.1 - any interested participants are suggested to ... [More] look at the wiki:Status/GHC-8.0.1 page, to see where we're currently at. These past few weeks have been good: we've gotten the first part of the overloaded record fields work in, and we have plans to land the kind equalities work in November. Furthermore, Simon Marlow, Peter Wortmann and Ben are working on reviewing all of the DWARF improvements, and hopefully the start of this work will land next week. But 8.0 isn't the only thing that'll be getting released... And some other minor releases In a total, unprecedented upset - we're aiming to do three GHC releases in a fairly short amount of time. 7.10.3 Ben Gamari has been working on steadily hacking away at GHC 7.10.3, and the hopes are that we'll be able to ship it soon. This will fix several dozen bugs, some of which are critical for our users. You can keep up to date by following the wiki:Status/GHC-7.10.3 page. 7.8.5 Simultaneously, your author will also be working on a GHC 7.8.5 release. While we were alerted a few months ago to this breakage, it seems rather unfortunate for the 7.8 series to remain broken on such a popular OS. Furthermore, the "Three GHC Release Policy" for many authors - to support the last three major versions of GHC - would mean that 7.8 would be broken for OS X developers for an entire year until GHC 8.2.1. Which is a pretty unfortunate circumstance. It's not expected the 7.8.5 release will contain any other fixes, however. List chatter (Over the past two weeks) Ben Gamari wrote in about switching the users guide to reStructuredText, and the TL;DR is - it's done! We'll have a beautiful new users guide for GHC 8.0.1 ​https://mail.haskell.org/pipermail/ghc-devs/2015-October/010029.html Matthew Pickering comments about the state of pattern synonym signatures, remarking that they're currently confusing, noting down some things we could possibly fix. ​https://mail.haskell.org/pipermail/ghc-devs/2015-October/010024.html Ben Gamari talked about the status of the recent DWARF work, and so far it's looking good. The needed patches are still in the review pipeline, but the hope is that they'll all be done in time for 8.0.1. ​https://mail.haskell.org/pipermail/ghc-devs/2015-October/010039.html David A Roberts wrote in to ask a question: now that we have ApplicativeDo, what about Applicative comprehensions? The responses indicate this seems like it would be a great addition. ​https://mail.haskell.org/pipermail/ghc-devs/2015-October/010062.html Richard Eisenberg sent in a status update about his work on kind equalities, and the hope is it will land shortly in November! (Your editor then hassled him for a syntax change before landing.) ​https://mail.haskell.org/pipermail/ghc-devs/2015-October/010077.html Adam Foltzer has requested another release of the GHC 7.8 series, due to it being completely broken on OS X El Capitan. Expect more news on this soon. ​https://mail.haskell.org/pipermail/ghc-devs/2015-October/010078.html Erik de Castro Lopo has recently been working with LLVM, and decided to publish his automation so interested GHC hackers could keep up to date and try new LLVMs easily. ​https://mail.haskell.org/pipermail/ghc-devs/2015-October/010086.html Noteworthy commits (Over the past two weeks) Commit 4fd6207ec6960c429e6a1bcbe0282f625010f52a - Move the users guide to reStructured Text. Commit 6cde981a8788b225819be28659caddc35b77972d - Make GHC.Generics capable of handling unboxed tuples. Commit 0eb8fcd94b29ee9997b386e64203037bdf2aaa04 - Enable Enumeration is empty warnings for Integer Commit 620fc6f909cd6e51b5613454097ec1c9f323839a - Make Windows linker more robust to unknown sections Commit 5d841108acef950fed6a5e608ac9b18e7431aa87 - Add short library names support to the Windows linker Commit f8fbf385b879fe177409a25cc9499275ea3dc45d - Reinstate monomorphism-restriction warnings Commit dcc342870b4d8a739ccbed3ae26e84dcc3579914 - Don't inline/apply other rules when simplifying a rule RHS. Commit dec5cd4085488686b5ed50bb26ccbc0ba7b645ec - base: Add forkOSWithUnmask Commit e8c8173923302268ef950c3b21e276779e45ac83 - Allow arr ∧ (first ∨ (*)) as minimal definition of Arrow instance Commit 29310b622801733e1b29a9a61988406872db13ca - Switch to LLVM version 3.7 Commit 04e8366608fee4f5e3358acc855bc6f556c3f508 - ELF/x86_64: map object file sections separately into the low 2GB Commit b1884b0e62f62e3c0859515c4137124ab0c9560e - Implement DuplicateRecordFields Commit 75492e7467ff962f2f2e29e5c8b2c588c94ae8a7 - Add typed holes support in Template Haskell. Commit 6a8ca65032c6b3ed61b5378765e70120083cf5da - Allow left ∨ (+++) as minimal definition of ArrowChoice instance Closed tickets (Over the past two weeks) #10392, #7883, #10475, #10745, #10926, #9238, #10700, #10810, #10342, #365(!), #10361, #10929, #10563, #9907, #10513, #10868, #10932, #8920, #10516, #10416, #5966, #8335, #10520, #10687, #10571, #9058, #10939, #10938, #9590, #10949, #10153, #10947, #10948, #10936, #1883, #5289, #10733, #10950, #10611, #10959, #10960, #10831, #10796, #10890, #8010, #10216, #10965, #10953, #10964, #10931, #10714, #10888, #10633, #8652, #3971, #10882, #10977, #10267, and #10911. [Less]