Re: How to install GhC on a Mac without registering?

On 6 Jun 2011, at 13:49, Lyndon Maydwell wrote:
I would be fantastic if XCode wasn't a dependency. ...
Not to detract at all from the work of the wonderful GHC and Haskell Platform contributors in any way. For me it would just make it that much easier to convince mac-using friends to give Haskell a try.
The ghc team already bundle a copy of gcc in their Windows distribution, precisely because it can be fiddly to get a working copy of gcc for that platform otherwise. I wonder if they would consider the possibility of shipping gcc on Mac too? (There may be good reasons not to do that, but let's have the discussion.) Regards, Malcolm

Isn't gcc just used for its assembler and object file creation, these days,
now that via-C is deprecated? Or are there other parts of it that are
needed?
On Mon, Jun 6, 2011 at 10:47 AM, Malcolm Wallace
On 6 Jun 2011, at 13:49, Lyndon Maydwell wrote:
I would be fantastic if XCode wasn't a dependency. ...
Not to detract at all from the work of the wonderful GHC and Haskell Platform contributors in any way. For me it would just make it that much easier to convince mac-using friends to give Haskell a try.
The ghc team already bundle a copy of gcc in their Windows distribution, precisely because it can be fiddly to get a working copy of gcc for that platform otherwise. I wonder if they would consider the possibility of shipping gcc on Mac too? (There may be good reasons not to do that, but let's have the discussion.)
Regards, Malcolm
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

On 06/06/11 15:57, Daniel Peebles wrote:
Isn't gcc just used for its assembler and object file creation, these days, now that via-C is deprecated? Or are there other parts of it that are needed?
The C compiler is needed to support foreign export and foreign import "wrapper", and we also generate C fragments for some initialisation code now (in 7.2.1) as part of some changes I made to the way module initialisation is done. The C compiler is also used to support -rtsopts, which requires compiling a small C file and linking it into the binary. It's sometimes handy to be able to compile C files with GHC, if you're not using Cabal. Cheers, Simon
On Mon, Jun 6, 2011 at 10:47 AM, Malcolm Wallace
mailto:malcolm.wallace@me.com> wrote: On 6 Jun 2011, at 13:49, Lyndon Maydwell wrote:
> I would be fantastic if XCode wasn't a dependency. ... > > Not to detract at all from the work of the wonderful GHC and Haskell > Platform contributors in any way. For me it would just make it that > much easier to convince mac-using friends to give Haskell a try.
The ghc team already bundle a copy of gcc in their Windows distribution, precisely because it can be fiddly to get a working copy of gcc for that platform otherwise. I wonder if they would consider the possibility of shipping gcc on Mac too? (There may be good reasons not to do that, but let's have the discussion.)
Regards, Malcolm
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org mailto:Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
_______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users

On Mon, Jun 6, 2011 at 16:47, Malcolm Wallace wrote:
The ghc team already bundle a copy of gcc in their Windows distribution, precisely because it can be fiddly to get a working copy of gcc for that platform otherwise. I wonder if they would consider the possibility of shipping gcc on Mac too? (There may be good reasons not to do that, but let's have the discussion.)
I would be in favor of this -- assuming it didn't create new problems -- especially if it meant the latest GHC installer could be used on older versions of Mac OS X. The Windows installer still works for Windows 2000, but the Mac installer requires the Snow Leopard. Regards, Sean

On Mon, Jun 06, 2011 at 03:47:57PM +0100, Malcolm Wallace wrote:
On 6 Jun 2011, at 13:49, Lyndon Maydwell wrote:
I would be fantastic if XCode wasn't a dependency. ...
Not to detract at all from the work of the wonderful GHC and Haskell Platform contributors in any way. For me it would just make it that much easier to convince mac-using friends to give Haskell a try.
The ghc team already bundle a copy of gcc in their Windows distribution, precisely because it can be fiddly to get a working copy of gcc for that platform otherwise. I wonder if they would consider the possibility of shipping gcc on Mac too? (There may be good reasons not to do that, but let's have the discussion.)
I'm pretty sure we aren't allowed to redistribute XCode. As well as gcc and friends, I think XCode also includes various headers and/or libraries that we need. If there is an alternative - especially one that allows us to support multiple versions of OS X more easily - then using it may make sense. Thanks Ian

[Ian, sorry for the duplicate — wrong sender email at first.] Ian Lynagh:
On Mon, Jun 06, 2011 at 03:47:57PM +0100, Malcolm Wallace wrote:
On 6 Jun 2011, at 13:49, Lyndon Maydwell wrote:
I would be fantastic if XCode wasn't a dependency. ...
Not to detract at all from the work of the wonderful GHC and Haskell Platform contributors in any way. For me it would just make it that much easier to convince mac-using friends to give Haskell a try.
The ghc team already bundle a copy of gcc in their Windows distribution, precisely because it can be fiddly to get a working copy of gcc for that platform otherwise. I wonder if they would consider the possibility of shipping gcc on Mac too? (There may be good reasons not to do that, but let's have the discussion.)
I'm pretty sure we aren't allowed to redistribute XCode.
As well as gcc and friends, I think XCode also includes various headers and/or libraries that we need.
If there is an alternative - especially one that allows us to support multiple versions of OS X more easily - then using it may make sense.
You are right, the Xcode install includes many tools as well as headers etc. What would be the advantage of including gcc and all these other things in GHC? Anybody who is halfway serious about developing software on a Mac will have Xcode installed anyway. Besides, as Xcode updates are now available from the Mac App Store, you don't even need to register as a developer with Apple anymore — yes, you need to pay the nominal $5 for the 4GB download. If you don't want to do that, install the (probably older) version of Xcode that came with the install DVDs of your Mac. I don't think you can compare this with the situation on Windows. Microsoft does not distribute a canonical set of Unix tools that all developers use. Manuel

On Fri, Jun 10, 2011 at 03:15, Manuel M T Chakravarty wrote:
On Mon, Jun 06, 2011 at 03:47:57PM +0100, Malcolm Wallace wrote:
On 6 Jun 2011, at 13:49, Lyndon Maydwell wrote:
I would be fantastic if XCode wasn't a dependency. ...
Not to detract at all from the work of the wonderful GHC and Haskell Platform contributors in any way. For me it would just make it that much easier to convince mac-using friends to give Haskell a try.
The ghc team already bundle a copy of gcc in their Windows distribution,
Ian Lynagh: precisely because it can be fiddly to get a working copy of gcc for that platform otherwise. I wonder if they would consider the possibility of shipping gcc on Mac too? (There may be good reasons not to do that, but let's have the discussion.)
I'm pretty sure we aren't allowed to redistribute XCode.
As well as gcc and friends, I think XCode also includes various headers and/or libraries that we need.
If there is an alternative - especially one that allows us to support multiple versions of OS X more easily - then using it may make sense.
You are right, the Xcode install includes many tools as well as headers etc.
What would be the advantage of including gcc and all these other things in GHC?
To simplify the process of installing GHC and to support people with versions of Mac OS X older than the most current. We want to spread the Haskell love as far as possible.
Anybody who is halfway serious about developing software on a Mac will have Xcode installed anyway.
You could say the same about people halfway serious about developing software on Windows. But GHC doesn't require you to install MinGW, Cygwin, or Virtual Studio.
Besides, as Xcode updates are now available from the Mac App Store,
Not for older versions of Mac OS X.
you don't even need to register as a developer with Apple anymore — yes, you need to pay the nominal $5 for the 4GB download. If you don't want to do that, install the (probably older) version of Xcode that came with the install DVDs of your Mac.
This doesn't solve the problem if the GHC package only supports later versions of Xcode. There has already been at least one difference between Xcode 3 and 4 ( http://hackage.haskell.org/trac/ghc/ticket/5011 ) that caused a problem and there may be others in the future.
I don't think you can compare this with the situation on Windows. Microsoft does not distribute a canonical set of Unix tools that all developers use.
No, but Cygwin and MinGW are available for free and have been around for a long time. Why does GHC bundle MinGW instead of expecting the user to install it herself? Convenience? I think there is a clear benefit to supporting older versions of Mac OS X. Not everybody upgrades at the same rate that Apple releases new versions. Indeed, Apple's updates occasionally change architecture requirements or break applications, so some people cannot upgrade. Having a new package bundling GNU tools/libraries doesn't preclude the current package using Xcode. The only good arguments against a new package, that I can see, are the additional work to develop the packaging and the testing, release, and maintenance efforts. Perhaps there are some compatibility concerns, working with other OS X libraries/applications. Of course, these are not at all insignificant issues, but these are the main concerns. Regards, Sean

Sean Leather:
On Fri, Jun 10, 2011 at 03:15, Manuel M T Chakravarty wrote: Ian Lynagh:
On Mon, Jun 06, 2011 at 03:47:57PM +0100, Malcolm Wallace wrote:
On 6 Jun 2011, at 13:49, Lyndon Maydwell wrote:
I would be fantastic if XCode wasn't a dependency. ...
Not to detract at all from the work of the wonderful GHC and Haskell Platform contributors in any way. For me it would just make it that much easier to convince mac-using friends to give Haskell a try.
The ghc team already bundle a copy of gcc in their Windows distribution, precisely because it can be fiddly to get a working copy of gcc for that platform otherwise. I wonder if they would consider the possibility of shipping gcc on Mac too? (There may be good reasons not to do that, but let's have the discussion.)
I'm pretty sure we aren't allowed to redistribute XCode.
As well as gcc and friends, I think XCode also includes various headers and/or libraries that we need.
If there is an alternative - especially one that allows us to support multiple versions of OS X more easily - then using it may make sense.
You are right, the Xcode install includes many tools as well as headers etc.
What would be the advantage of including gcc and all these other things in GHC?
To simplify the process of installing GHC and to support people with versions of Mac OS X older than the most current. We want to spread the Haskell love as far as possible.
The only simplification is that people who haven't got Xcode yet need to install two packages instead of just one. However, for people who already have got Xcode installed, it means that they get two versions of all the dev tools, headers, etc. Then, compiling a C file (eg, as part of a Haskell project) by directly invoking gcc or by compiling it via ghc will use different compilers, headers, etc. That quickly leads to annoying and hard to debug problems. Given that almost every developer on a Mac will be in the second group, you are not simplifying matters, you are complicating them.
Anybody who is halfway serious about developing software on a Mac will have Xcode installed anyway.
You could say the same about people halfway serious about developing software on Windows. But GHC doesn't require you to install MinGW, Cygwin, or Virtual Studio.
No. A serious Windows dev will have Visual Studio installed. That won't help with installing GHC at all AND the GHC-bundled Unix tools do not interfere with Visual Studio in the same way that custom installs of Unix tools interfere with Xcode.
Besides, as Xcode updates are now available from the Mac App Store,
Not for older versions of Mac OS X.
Well, then get the DVDs bundled with your Mac and install Xcode from those, or sign up at developer.apple.com and get it there. BTW, Mac users (and esp devs) upgrade very quickly, much faster than, say, Windows users.
you don't even need to register as a developer with Apple anymore — yes, you need to pay the nominal $5 for the 4GB download. If you don't want to do that, install the (probably older) version of Xcode that came with the install DVDs of your Mac.
This doesn't solve the problem if the GHC package only supports later versions of Xcode. There has already been at least one difference between Xcode 3 and 4 ( http://hackage.haskell.org/trac/ghc/ticket/5011 ) that caused a problem and there may be others in the future.
That was arguably a bug in GHC's build setup. It hardcoded a particular SDK version and died when Apple didn't ship that with the default install anymore. Nevertheless, new versions of Xcode will require adaptations in GHC, just like new gcc and GNU tool/lib versions require fixes in GHC on Linux. Bundling doesn't solve that problem; it shifts it due to the mismatch of system-wide and GHC-installed compilers, tools, and libs.
I don't think you can compare this with the situation on Windows. Microsoft does not distribute a canonical set of Unix tools that all developers use.
No, but Cygwin and MinGW are available for free and have been around for a long time. Why does GHC bundle MinGW instead of expecting the user to install it herself? Convenience?
Again, this is a different situation. Window's standard dev environment is Visual Studio, you cannot expect devs to have MinGW installed. Mac OS X's standard dev environment is Xcode and you can expect devs to have that installed.
I think there is a clear benefit to supporting older versions of Mac OS X. Not everybody upgrades at the same rate that Apple releases new versions. Indeed, Apple's updates occasionally change architecture requirements or break applications, so some people cannot upgrade.
Most people upgrade quickly on the Mac platform and, anyway, it does not matter if they have Xcode already installed, which is the case for the majority of devs. In fact, that majority is inconvenienced by the additional complexity of different versions of the tools and libraries.
Having a new package bundling GNU tools/libraries doesn't preclude the current package using Xcode. The only good arguments against a new package, that I can see, are the additional work to develop the packaging and the testing, release, and maintenance efforts. Perhaps there are some compatibility concerns, working with other OS X libraries/applications. Of course, these are not at all insignificant issues, but these are the main concerns.
If you want to make a second, alternative package that bundles tools and libraries, sure, go ahead. As long as that is not the default, that is fine. Manuel

On Fri, Jun 10, 2011 at 09:24:41PM +1000, Manuel M T Chakravarty wrote:
Sean Leather:
On Fri, Jun 10, 2011 at 03:15, Manuel M T Chakravarty wrote: Ian Lynagh:
On Mon, Jun 06, 2011 at 03:47:57PM +0100, Malcolm Wallace wrote:
On 6 Jun 2011, at 13:49, Lyndon Maydwell wrote:
I would be fantastic if XCode wasn't a dependency. ...
Not to detract at all from the work of the wonderful GHC and Haskell Platform contributors in any way. For me it would just make it that much easier to convince mac-using friends to give Haskell a try.
The ghc team already bundle a copy of gcc in their Windows distribution, precisely because it can be fiddly to get a working copy of gcc for that platform otherwise. I wonder if they would consider the possibility of shipping gcc on Mac too? (There may be good reasons not to do that, but let's have the discussion.)
I'm pretty sure we aren't allowed to redistribute XCode.
As well as gcc and friends, I think XCode also includes various headers and/or libraries that we need.
If there is an alternative - especially one that allows us to support multiple versions of OS X more easily - then using it may make sense.
You are right, the Xcode install includes many tools as well as headers etc.
What would be the advantage of including gcc and all these other things in GHC?
To simplify the process of installing GHC and to support people with versions of Mac OS X older than the most current. We want to spread the Haskell love as far as possible.
The only simplification is that people who haven't got Xcode yet need to install two packages instead of just one.
However, for people who already have got Xcode installed, it means that they get two versions of all the dev tools, headers, etc. Then, compiling a C file (eg, as part of a Haskell project) by directly invoking gcc or by compiling it via ghc will use different compilers, headers, etc. That quickly leads to annoying and hard to debug problems.
Given that almost every developer on a Mac will be in the second group, you are not simplifying matters, you are complicating them.
Anybody who is halfway serious about developing software on a Mac will have Xcode installed anyway.
You could say the same about people halfway serious about developing software on Windows. But GHC doesn't require you to install MinGW, Cygwin, or Virtual Studio.
No. A serious Windows dev will have Visual Studio installed. That won't help with installing GHC at all AND the GHC-bundled Unix tools do not interfere with Visual Studio in the same way that custom installs of Unix tools interfere with Xcode.
Besides, as Xcode updates are now available from the Mac App Store,
Not for older versions of Mac OS X.
Well, then get the DVDs bundled with your Mac and install Xcode from those, or sign up at developer.apple.com and get it there. BTW, Mac users (and esp devs) upgrade very quickly, much faster than, say, Windows users.
I disagree with the assumption that OS X people are quick to upgrade. The last set of figures I saw on adoption were something along the lines of 15% on 10.6, with almost a third of the users on 10.4 and below, taken from some article I read the other week on the rising wave of OS X viruses and countermeasures.
I don't think you can compare this with the situation on Windows. Microsoft does not distribute a canonical set of Unix tools that all developers use.
No, but Cygwin and MinGW are available for free and have been around for a long time. Why does GHC bundle MinGW instead of expecting the user to install it herself? Convenience?
Again, this is a different situation. Window's standard dev environment is Visual Studio, you cannot expect devs to have MinGW installed. Mac OS X's standard dev environment is Xcode and you can expect devs to have that installed.
On Windows, it's rather hard to collect the environment needed to build libraries compatible with a particular GHC, let alone build a GHC from scratch. The dev-wiki page on how to set up a build environment is huge, referencing ancient tools that are rather bothersome to find. Any typicall installed mingw/msys you might find on developer machines will most probably not be similar enough to be usable.
I think there is a clear benefit to supporting older versions of Mac OS X. Not everybody upgrades at the same rate that Apple releases new versions. Indeed, Apple's updates occasionally change architecture requirements or break applications, so some people cannot upgrade.
Most people upgrade quickly on the Mac platform and, anyway, it does not matter if they have Xcode already installed, which is the case for the majority of devs. In fact, that majority is inconvenienced by the additional complexity of different versions of the tools and libraries.
Do you have any source for your statement on adoption rates, or is it just extrapolated from people you know? -- Lars Viklund | zao@acc.umu.se

On 10 June 2011 12:53, Lars Viklund
I disagree with the assumption that OS X people are quick to upgrade. The last set of figures I saw on adoption were something along the lines of 15% on 10.6, with almost a third of the users on 10.4 and below, taken from some article I read the other week on the rising wave of OS X viruses and countermeasures.
It would be nice to see the source for those figures. However, assuming that they are correct, presumably they are for all Mac OS X users, not specifically for developers. It doesn't seem unreasonable to suppose that developers might have quite different upgrading habits to the general population of OS X users. Cheers, Benedict

Lars Viklund:
On Fri, Jun 10, 2011 at 09:24:41PM +1000, Manuel M T Chakravarty wrote:
Well, then get the DVDs bundled with your Mac and install Xcode from those, or sign up at developer.apple.com and get it there. BTW, Mac users (and esp devs) upgrade very quickly, much faster than, say, Windows users.
I disagree with the assumption that OS X people are quick to upgrade. The last set of figures I saw on adoption were something along the lines of 15% on 10.6, with almost a third of the users on 10.4 and below, taken from some article I read the other week on the rising wave of OS X viruses and countermeasures.
Those numbers sound completely wrong and I'd like to see a credible source before I believe them. As just one data point on Snow Leopard adoption, have a look at http://daringfireball.net/2009/09/snow_leopard_adoption_rate I would say that readers of Daring Fireball are fairly tech savvy people with an above average percentage of developers. But consider this, "it took about five days for 10.6 to pass 10.5" Five days from the release of the OS for 50% of the DF readers to upgrade to Snow Leopard. Manuel

Quoth Manuel M T Chakravarty
Sean Leather: ...
To simplify the process of installing GHC and to support people with versions of Mac OS X older than the most current. We want to spread the Haskell love as far as possible.
The only simplification is that people who haven't got Xcode yet need to install two packages instead of just one.
However, for people who already have got Xcode installed, it means that they get two versions of all the dev tools, headers, etc. Then, compiling a C file (eg, as part of a Haskell project) by directly invoking gcc or by compiling it via ghc will use different compilers, headers, etc. That quickly leads to annoying and hard to debug problems.
Given that almost every developer on a Mac will be in the second group, you are not simplifying matters, you are complicating them.
I would expect the reverse in many cases - initial install without Xcode, followed by upgrade to Xcode. Equally problematic, though. As for numbers, it depends on how you define "developer" - installs without Xcode might well be more numerous, and people with such installs might be more numerous on the email lists etc., but in terms of the platform per se, they're kind of dead weight. Donn

On 10 Jun 2011, at 02:15, Manuel M T Chakravarty wrote:
Anybody who is halfway serious about developing software on a Mac will have Xcode installed anyway.
As the original poster clarified, the motivating use-case is education (specifically a class of 12-13 year olds.) These are not "serious developers", but they have the potential to become serious. Placing unnecessary hurdles in their way will diminish the chances of their discovering Haskell to be a beautiful language. Having said that, I do think that Hugs (or maybe Helium) would be a more appropriate environment for teaching the basics to young students. Regards, Malcolm

Malcolm Wallace:
On 10 Jun 2011, at 02:15, Manuel M T Chakravarty wrote:
Anybody who is halfway serious about developing software on a Mac will have Xcode installed anyway.
As the original poster clarified, the motivating use-case is education (specifically a class of 12-13 year olds.) These are not "serious developers", but they have the potential to become serious. Placing unnecessary hurdles in their way will diminish the chances of their discovering Haskell to be a beautiful language.
For use at high school level, I would imagine that you would want to build a special distribution anyway. One that for example already includes packages, such as Gloss, that would be useful in teaching children programming in Haskell without they having to go through learning to use cabal (which is a bigger hurdle than installing Xcode IMHO). But I wonder, would those students not use school equipment (which supposedly would have all software pre-installed)? Do they bring their own Macs? (I'd be surprised to find a whole class of 6th graders all owning Macs...)
Having said that, I do think that Hugs (or maybe Helium) would be a more appropriate environment for teaching the basics to young students.
That or a customised version of GHC with the right libraries pre-installed etc, and editor included, etc. Manuel

For use at high school level, I would imagine that you would want to build a special distribution anyway. One that for example already includes packages, such as Gloss, that would be useful in teaching children programming in Haskell without they having to go through learning to use cabal (which is a bigger hurdle than installing Xcode IMHO). But I wonder, would those students not use school equipment (which supposedly would have all software pre-installed)? Do they bring their own Macs? (I'd be surprised to find a whole class of 6th graders all owning Macs...) As a further data point, yesterday one of my colleagues gave his 17-yr-old daughter a copy of the "Learn you a Haskell for Great Good" book. She started to read it, and wanted to play with Haskell on her MacBook Air. First step, download ghc. Discover that it will not install on Leopard. Step two: upgrade the operating system to Snow Leopard. One hour later, attempt to install ghc again. Discover that it requires XCode. Step three: buy XCode from the mac App Store, and wait two hours for the 4Gb download over a hotel wifi connection. Step four: hotel wifi access runs out before the download is complete, so give up and go back to watching the movie she downloaded earlier, but has not been able to watch whilst all this downloading and upgrading has been happening. A happy customer? Regards, Malcolm

malcolm.wallace:
For use at high school level, I would imagine that you would want to build a special distribution anyway. One that for example already includes packages, such as Gloss, that would be useful in teaching children programming in Haskell without they having to go through learning to use cabal (which is a bigger hurdle than installing Xcode IMHO).
But I wonder, would those students not use school equipment (which supposedly would have all software pre-installed)? Do they bring their own Macs? (I'd be surprised to find a whole class of 6th graders all owning Macs...)
As a further data point, yesterday one of my colleagues gave his 17-yr-old daughter a copy of the "Learn you a Haskell for Great Good" book. She started to read it, and wanted to play with Haskell on her MacBook Air. First step, download ghc. Discover that it will not install on Leopard. Step two: upgrade the operating system to Snow Leopard. One hour later, attempt to install ghc again. Discover that it requires XCode. Step three: buy XCode from the mac App Store, and wait two hours for the 4Gb download over a hotel wifi connection Step four: hotel wifi access runs out before the download is complete, so give up and go back to watching the movie she downloaded earlier, but has not been able to watch whilst all this downloading and upgrading has been happening.
That is a nice story, but it doesn't change what I wrote earlier: * It would be nice to have a lightweight Haskell learner's distro (for your colleagues 17-yr-old daughter and others), preferably with libraries like a web framework, Gloss, etc included — an all in one package. * The standard, production-ready Haskell distro shouldn't duplicate tools already provided by the platform vendor, especially not C compiler and libraries that quickly lead to subtly hard to find bugs in projects that use these tools also directly (and not just via GHC). Manuel

Following up on the notion that Hugs might suit the casual introductory user better - I see that while you can find it online as a pre-built package, you're normally advised (haskell.org, Kent CS dept, etc.) to build it via MacPorts - which requires Xcode. I mention this because if anyone is seriously thinking about adding an optional gcc package to the GHC Mac platform, it might be worthwhile to find out why MacPorts doesn't do that. But if anyone from the Hugs98 scene is listening - might think about making a pre-built package a more visible option, if Xcode is as onerous as we're led to believe. Donn Cave
participants (10)
-
Benedict Eastaugh
-
Daniel Peebles
-
Donn Cave
-
Ian Lynagh
-
Lars Viklund
-
Malcolm Wallace
-
malcolm.wallace
-
Manuel M T Chakravarty
-
Sean Leather
-
Simon Marlow