Merge branch 'working'
[lambda.git] / installing.mdwn
index dcd8d1f..2d08302 100644 (file)
@@ -1,5 +1,7 @@
 ## Notes ##
 
 ## Notes ##
 
+*   If the instructions below seem overwhelming, note that it should be possible to do a lot of this course using only demonstration versions of these languages [[that run in your web browser|browser]].
+
 *   We were updating this page vigorously until about 2:30 pm on Saturday 31
 January. Now it is relatively stable, but we'll tweak it as we learn more. We
 encourage you to try to get the software set up sooner rather than later, and
 *   We were updating this page vigorously until about 2:30 pm on Saturday 31
 January. Now it is relatively stable, but we'll tweak it as we learn more. We
 encourage you to try to get the software set up sooner rather than later, and
@@ -21,8 +23,8 @@ wrong and exactly what you did to achieve joy.
     If you're using a Mac without MacPorts (explained below), then Chicken and
     OCaml will be installed under your user home; but Racket's and GHC's
     Installers put them into system directories.
     If you're using a Mac without MacPorts (explained below), then Chicken and
     OCaml will be installed under your user home; but Racket's and GHC's
     Installers put them into system directories.
+
+
 ## Identifying your system ##
 
 We'll assume you're using either Mac OS X, or Windows, or Linux.
 ## Identifying your system ##
 
 We'll assume you're using either Mac OS X, or Windows, or Linux.
@@ -135,6 +137,7 @@ If you're using Linux or a Mac without MacPorts, then open a Terminal and type t
     echo 'export PATH="$HOME/bin:$PATH"' >> ~/.bash_profile
 
 
     echo 'export PATH="$HOME/bin:$PATH"' >> ~/.bash_profile
 
 
+<a name=scheme></a>
 ## Getting Scheme ##
 
 **Scheme** is one of two or three major dialects of *Lisp*, which is a large family
 ## Getting Scheme ##
 
 **Scheme** is one of two or three major dialects of *Lisp*, which is a large family
@@ -158,9 +161,9 @@ another Scheme implementation, though, there's no compelling reason to switch.
 Another good Scheme implementation is [Chicken](http://www.call-cc.org). For our purposes, this is in some respects
 superior to Racket, and in other respects inferior. If you have any issues with installing or using Racket, you could
 try this out instead. You might even want to install both.
 Another good Scheme implementation is [Chicken](http://www.call-cc.org). For our purposes, this is in some respects
 superior to Racket, and in other respects inferior. If you have any issues with installing or using Racket, you could
 try this out instead. You might even want to install both.
-
 <!--
 <!--
-Racket doesn't have R7RS-small, and won't anytime soon.
+Racket doesn't have R7RS-small, and won't anytime soon. :-(
+Also Chicken's library collection seems stronger, or at least better organized and maintained.
 Other R7RS-friendly: [Gauche](http://practical-scheme.net/gauche), [Chibi](https://code.google.com/p/chibi-scheme).
 -->
 
 Other R7RS-friendly: [Gauche](http://practical-scheme.net/gauche), [Chibi](https://code.google.com/p/chibi-scheme).
 -->
 
@@ -256,6 +259,7 @@ The current version of Racket is 6.1.1 (released November 2014).
     keyboard arrows.
 
 
     keyboard arrows.
 
 
+<a name=ocaml></a>
 ## Getting OCaml ##
 
 **Caml** is one of two major dialects of *ML*, which is another large family of
 ## Getting OCaml ##
 
 **Caml** is one of two major dialects of *ML*, which is another large family of
@@ -321,7 +325,7 @@ The current version of OCaml is 4.02.1 (released October 2014).
     location.
 
     2.  Open a terminal and type:
     location.
 
     2.  Open a terminal and type:
-        
+
             sh /path/to/opam_installer.sh ~/bin
 
         Except replace `/path/to` with the real location, that you noted in step 1. When prompted "Do you want OPAM to modify ~/.bash_profile and ~/.ocamlinit?", say "y".
             sh /path/to/opam_installer.sh ~/bin
 
         Except replace `/path/to` with the real location, that you noted in step 1. When prompted "Do you want OPAM to modify ~/.bash_profile and ~/.ocamlinit?", say "y".
@@ -391,7 +395,10 @@ double-click and install.
     keyboard arrows.
 
 
     keyboard arrows.
 
 
+<!-- More info on installing Ocaml and VMs at <http://ocaml.org/learn/teaching-ocaml.html#OCamlinstallation> -->
+
 
 
+<a name=haskell></a>
 ## Getting Haskell ##
 
 This last installation is less crucial than the others, since we will be focusing
 ## Getting Haskell ##
 
 This last installation is less crucial than the others, since we will be focusing
@@ -417,8 +424,8 @@ Like Scheme, Haskell has a couple of different implementations. The dominant one
 *   As mentioned, **GHC** is the main Haskell engine or compiler you'll be installing. The current version is 7.8.4, from December 2014.
 *   **gcc** and **llvm/clang** and **Xcode** and **MinGW** are names for other compilers on various systems. Oftentimes these will be used during the installation process to get GHC up and running. Some of the strategies described below will help you install these if they're not already on your machine.
 *   **alex** and **happy** and **haddock** are names of various Haskell helper programs that GHC uses to get up and running.
 *   As mentioned, **GHC** is the main Haskell engine or compiler you'll be installing. The current version is 7.8.4, from December 2014.
 *   **gcc** and **llvm/clang** and **Xcode** and **MinGW** are names for other compilers on various systems. Oftentimes these will be used during the installation process to get GHC up and running. Some of the strategies described below will help you install these if they're not already on your machine.
 *   **alex** and **happy** and **haddock** are names of various Haskell helper programs that GHC uses to get up and running.
-*   **[Cabal](https://www.haskell.org/cabal)** is a "package manager" for Haskell. It allows you to install libraries or extensions that other people have built. (Usually those are published at the [Hackage](https://hackage.haskell.org) web site.) Some of these are experimental and may not always work; others are quite fundamental and are almost de facto parts of what people expect in a Haskell system.
-*   **[Haskell Platform](https://www.haskell.org/platform)** is a standard bundle that includes a specific version of GHC, plus specific versions of some of the most popular libraries or extensions. This is updated once or twice a year. The current version is 2014.2.0.0, from August 2014. It includes GHC version 7.8.3.
+*   **cabal** is a "package manager" for Haskell. It allows you to install libraries or extensions that other people have built. (Usually those are published at the [Hackage](https://hackage.haskell.org) Package Database.) Some of these are experimental and may not always work; others are quite fundamental and are almost de facto parts of what people expect in a Haskell system.
+*   The **[Haskell Platform](https://www.haskell.org/platform/contents.html)** is a standard bundle that includes a specific version of GHC, plus specific versions of some of the most popular libraries or extensions. This is updated once or twice a year. The current version is 2014.2.0.0, from August 2014. It includes GHC version 7.8.3.
 
 The easiest way to get up and running with Haskell/GHC is to install the Haskell Platform. Here's how to do that **on Windows**:
 
 
 The easiest way to get up and running with Haskell/GHC is to install the Haskell Platform. Here's how to do that **on Windows**:
 
@@ -426,7 +433,7 @@ The easiest way to get up and running with Haskell/GHC is to install the Haskell
 
 On **Mac without MacPorts**:
 
 
 On **Mac without MacPorts**:
 
-*   Go to <https://www.haskell.org/platform/mac.html> and follow the instructions. This requires Mac OS X 10.6 / Snow Leopard or later; but there is a link to an earlier version of Haskell Platform, that's built for Mac OS X 10.5 / Leopard. During the installation, you may be prompted to install "the command line developer tools"; this is a portion of what Apple bundles together with Xcode (mentioned above on this page). The installer will take care of getting these for you if you give it permission.
+*   Go to <https://www.haskell.org/platform/mac.html> and follow the instructions. This requires Mac OS X 10.6 / Snow Leopard or later; but there is a link to an earlier version of the Haskell Platform, that's built for Mac OS X 10.5 / Leopard. During the installation, you may be prompted to install "the command line developer tools"; this is a portion of what Apple bundles together with Xcode (mentioned above on this page). The installer will take care of getting these for you if you give it permission.
 
 <!--
 The Installer places everything in your system directories. If you'd like it instead in your user directory (easier to clean up later), you can do this after running the Installer:
 
 <!--
 The Installer places everything in your system directories. If you'd like it instead in your user directory (easier to clean up later), you can do this after running the Installer:
@@ -462,8 +469,6 @@ On **Ubuntu or Debian Linux**:
 *   In a Terminal, type `sudo apt-get install haskell-platform`.
 
 
 *   In a Terminal, type `sudo apt-get install haskell-platform`.
 
 
-It's useful to know about the general [Haskell wiki](https://wiki.haskell.org) (not restricted to just GHC). They have a [Getting Started](https://wiki.haskell.org/Haskell_in_5_steps) page, which also recommends that you install the Haskell Platform.
-
 If any of the instructions above don't work, then you can try alternative instructions for [Mac](http://new-www.haskell.org/downloads/osx) or [Windows](http://new-www.haskell.org/downloads/windows) or [Ubuntu](http://new-www.haskell.org/downloads/linux). Note that this method doesn't install all the extensions that are part of the Haskell Platform, but only the core pieces of GHC. You can use Cabal to download and manage any extra extensions you turn out to need, down the road.
 
 **After installing Haskell**, open a Terminal and type:
 If any of the instructions above don't work, then you can try alternative instructions for [Mac](http://new-www.haskell.org/downloads/osx) or [Windows](http://new-www.haskell.org/downloads/windows) or [Ubuntu](http://new-www.haskell.org/downloads/linux). Note that this method doesn't install all the extensions that are part of the Haskell Platform, but only the core pieces of GHC. You can use Cabal to download and manage any extra extensions you turn out to need, down the road.
 
 **After installing Haskell**, open a Terminal and type: