{"action":"created","issue":{"url":"https://api.github.com/repos/fpco/minghc/issues/63","labels_url":"https://api.github.com/repos/fpco/minghc/issues/63/labels{/name}","comments_url":"https://api.github.com/repos/fpco/minghc/issues/63/comments","events_url":"https://api.github.com/repos/fpco/minghc/issues/63/events","html_url":"https://github.com/fpco/minghc/issues/63","id":85933855,"number":63,"title":"Consider embracing full MSYS2","user":{"login":"tejon","id":3770453,"avatar_url":"https://avatars.githubusercontent.com/u/3770453?v=3","gravatar_id":"","url":"https://api.github.com/users/tejon","html_url":"https://github.com/tejon","followers_url":"https://api.github.com/users/tejon/followers","following_url":"https://api.github.com/users/tejon/following{/other_user}","gists_url":"https://api.github.com/users/tejon/gists{/gist_id}","starred_url":"https://api.github.com/users/tejon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tejon/subscriptions","organizations_url":"https://api.github.com/users/tejon/orgs","repos_url":"https://api.github.com/users/tejon/repos","events_url":"https://api.github.com/users/tejon/events{/privacy}","received_events_url":"https://api.github.com/users/tejon/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-06-07T19:56:39Z","updated_at":"2015-06-09T11:22:37Z","closed_at":null,"body":"After finally upgrading to the Git-powered version of MinGHC, I was disappointed to find that it doesn't include the one thing I was really looking forward to from MSYS2: `pacman`. Since I was already in a transition state, I decided to grab MSYS2 directly and see how much effort it would be to get everything up and running. My verdict is best summarized as \"holy crap, guys.\"\r\n\r\n* The 64-bit version includes the 32-bit MinGW, which looks like a big step toward #52.\r\n\r\n* `git` is available as a `pacman` package.\r\n\r\n* So are `sdl`/`sdl2`, `gtk`, `glut`, `pkg-config`... everything in #25, [and then some](http://sourceforge.net/p/msys2/wiki/Packages/).\r\n\r\n* In its shells, its own paths are prepended. Outside, they don't exist. Relevant to #53 and #18.\r\n\r\n***\r\nThat's not to say there are no downsides at all. Potential complications I noticed:\r\n\r\n* The `pacman`-fetched `git` is not available at a regular Windows prompt. If we don't want to require use of `bash`, it'll still be necessary to install regular GitForWindows. However, there would be no reason to expose the existence of GitBash; MSYS2 encompasses and supercedes that.\r\n\r\n* The [installer](https://msys2.github.io/) provides only a minimum context for running `pacman`. Even after following the instructions behind that link, it doesn't include the `gcc` toolchain. Fetching it would have to be scripted.\r\n\r\n* MSYS and MinGW have separate shells (plus a third for 32-bit with the 64-bit installation). MinGW is for stuff that requires the GNU toolchain; MSYS is for stuff that requires a full POSIX subsystem, and it's recommended to avoid this unless absolutely necessary because there's a cost for that emulation layer. Very little in the Haskell ecosystem requires the latter -- `network` does fine with just MinGW -- but some might... and sadly, `pacman` does. So I think both shells would need to be exposed, which means explaining the difference to the user."},"comment":{"url":"https://api.github.com/repos/fpco/minghc/issues/comments/110321877","html_url":"https://github.com/fpco/minghc/issues/63#issuecomment-110321877","issue_url":"https://api.github.com/repos/fpco/minghc/issues/63","id":110321877,"user":{"login":"3noch","id":882455,"avatar_url":"https://avatars.githubusercontent.com/u/882455?v=3","gravatar_id":"","url":"https://api.github.com/users/3noch","html_url":"https://github.com/3noch","followers_url":"https://api.github.com/users/3noch/followers","following_url":"https://api.github.com/users/3noch/following{/other_user}","gists_url":"https://api.github.com/users/3noch/gists{/gist_id}","starred_url":"https://api.github.com/users/3noch/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/3noch/subscriptions","organizations_url":"https://api.github.com/users/3noch/orgs","repos_url":"https://api.github.com/users/3noch/repos","events_url":"https://api.github.com/users/3noch/events{/privacy}","received_events_url":"https://api.github.com/users/3noch/received_events","type":"User","site_admin":false},"created_at":"2015-06-09T11:22:37Z","updated_at":"2015-06-09T11:22:37Z","body":"My rather ininformed and unimportant opinion is that MinGHC has \"min\" in the name for a reason. If someone wants all of MSYS2, all they need to do is install GHC by itself along with MSYS2. It's actually quite easy. I don't see a reason to significantly complicate MinGHC to pull this off. I think a full MSYS2 install would not help the common case: installing the network library in a raw Windows shell. IIRC that was a primary motivator for this project as opposed to Haskell Platform. I thought including Git was a stretch but I am a fan of Stackage so I can cope... ;)"}}