refine scheme installation instructions
[lambda.git] / how_to_get_the_programming_languages_running_on_your_computer.mdwn
index 04c762e..235b8ab 100644 (file)
@@ -1,6 +1,9 @@
 ## Identifying your system ##
 
 We'll assume you're using either Mac OS X, or Windows, or Linux.
+If you're running **iOS**, you'll have a much harder time (perhaps impossible,
+perhaps not) getting this software to run on your machine, and we can't give
+you any guidance.
 
 If you're using **Mac OS X**, take note of what version of the Mac OS you're
 running. (Under the Apple Menu, select "About this Mac".)
@@ -12,87 +15,79 @@ running. (Under the Apple Menu, select "About this Mac".)
 *    Mavericks (10.9)
 *    Yosemite (10.10)
 
-If you're running **iOS**, you probably can't use this software on that machine. (A bit more below.)
+Furthermore, Mac users will be in one of two subgroups:
 
-Furthermore, you'll be in one of two subgroups:
+*   You'll have Apple's Xcode and the independent MacPorts system
+    installed. (Probably you don't. If you don't know what I'm talking about, you don't have these.)
 
-*      You'll have Apple's Xcode and the independent MacPorts system
-       installed. (Probably you don't. If you don't know what I'm talking about, you don't have these.)
+    If you don't have these, but want to try this route, you can read about
+    the MacPorts system at <http://www.macports.org/>.
+    This automates the building of Unix-type software on your Mac; it
+    makes it a lot easier to check for dependencies, use more-recent
+    versions of things, and so on. (Though as it happens, MacPorts only has an older version of
+    our chosen implementation of Scheme.)
 
-       If you don't have these, but want to try this route, you can read about
-       the MacPorts system at <http://www.macports.org/>.
-       This automates the building of Unix-type software on your Mac; it
-       makes it a lot easier to check for dependencies, use more-recent
-       versions of things, and so on. (Though as it happens, MacPorts only has an older version of
-       our chosen implementation of Scheme.)
+    There are also other package management systems available for the Mac, notably Homebrew and Fink. I only know a little bit about them.
 
-       There are also other package management systems available for the Mac, notably Homebrew and Fink. I only know a little bit about them.
+    There are instructions about how to get Xcode on the [Installing MacPorts](https://www.macports.org/install.php) page.
+    Some versions of [Xcode](http://developer.apple.com/xcode.html) are available for free on the Mac App Store.
+    Other versions are available through Apple's Developer website (some of these are free, but do require you to
+    register with Apple as an "Apple Developer", which involves clicking to accept a legal agreement with Apple).
+    I have an older version of this installed. If you download a recent version, email me and let me know how the
+    process works so I can tell others.
+    <!--
+    The latest version of Xcode to work with 10.5 / Leopard is 3.14; more recent versions (>= 3.2) require 10.6 / Snow Leopard.
+    3.2.6 is last version that can be downloaded for free by users of 10.6 / Snow Leopard. (But if they pay, they can use up to Xcode 4.2.)
+    Xcode 4.1 was free to all users of 10.7 / Lion. Is Xcode 4.6.x still available for free? Are Xcode 5.x and/or 6.x available for free?
+    -->
 
-       Xcode is available at
-       <http://developer.apple.com/technologies/tools/xcode.html>. Some
-       versions of this have been available for free, though you do have to
-       register with Apple as an "Apple Developer", which involves accepting a
-       legal agreement with Apple. I have an older version of this installed.
-       If you download a recent version, email me and let me know how the
-       process works so I can tell others. There are instructions about how to
-       get Xcode in the MacPorts installation guide.
-       <!--
-       The latest version of Xcode to work with Leopard is 3.14; more
-       recent versions (>= 3.2) require Snow Leopard. 3.2.6 is last version that can be downloaded for free by users of 10.6 / Snow Leopard. (But if they pay, they can use up to Xcode 4.2.)
-       Xcode 4.1 was free to all users of 10.7 / Lion. Is Xcode 4.6.x still available for free? Are Xcode 5.x and/or 6.x available for free?
-       -->
-
-*      Or you won't have those installed. (**Most Mac users will be in this group.**)
-       Then you'll need pre-packaged (and usually pretty GUI) installers for
-       everything. These are great when they're available and kept up-to-date;
-       however sometimes those conditions aren't met.
+*   Or you won't have those installed. (**Most Mac users will be in this group.**)
+    Then you'll need pre-packaged (and usually pretty GUI) installers for
+    everything. These are great when they're available and kept up-to-date;
+    however sometimes those conditions aren't met.
 
 
 
 If you're using **Windows**, you'll be in one of two subgroups:
 
-*      You'll have the Cygwin system
-       <http://www.cygwin.com/> installed.
-       This puts a Unix-like layer on top of your Windows system,
-       and makes it easier for you to use the same software everybody
-       else will be using, without its needing as much special-for-Windows
-       treatment. However, many of you won't have this installed.
+*   You'll have the Cygwin system <http://www.cygwin.com/> installed.
+    This puts a Unix-like layer on top of your Windows system,
+    and makes it easier for you to use the same software everybody
+    else will be using, without its needing as much special-for-Windows
+    treatment. However, many of you won't have this installed.
+
+*   You won't have Cygwin installed. (**Most Windows users will be in this group.**)
+    You might in theory have a different group of compilers installed
+    (MinGW, or Microsoft Visual C++) but we'll assume that the overwhelming
+    majority of users in this group don't have access to a compiler and
+    need pre-packaged installers for everything.
 
-*      You won't have Cygwin installed. You might in theory have
-       a different group of compilers installed (MinGW, or Microsoft Visual C++) but
-       we'll assume that the overwhelming majority of users in this group
-       don't have access to a compiler and need pre-packaged installers
-       for everything.
 
 If you're using **Linux**, you could be using any one of numerous packaging
 systems.
 
-*      We'll give examples using the packaging system shared by Debian and Ubuntu,
-       and we'll assume that those of you using different packaging systems will know
-       how to make the relevant substitutions. You may also want to take note of the
-       output of the "uname -srm" command. On my machine this tells me "Linux
-       3.12.8-extrastuff x86\_64". That tells me I'm running the x86\_64 (as opposed to the
-       i686 or i386 or whatever) version of Linux, and that I'm running kernel
-       version 3.12.8.
+*   We'll give examples using the packaging system shared by Debian and Ubuntu,
+    and we'll assume that those of you using different packaging systems will know
+    how to make the relevant substitutions.
 
-**For all of these groups**, a general item to take note of is what "processor architecture" your machine is running. Three of the possibilities are:
+
+**For everyone**, a general item to take note of is what "processor architecture" your machine is running. Three of the possibilities are:
 
 *   One of Intel's i386, i486, i586, i686 architectures. These are collectively known as "x86" or "IA-32" or sometimes just "32-bit".
-*   Intel or AMD's x86\_64 architecture. This is sometimes also called "x64" or "amd64" or "IA-64" or sometimes just "64-bit".
+*   Intel or AMD's x86\_64 architecture. This is also called "x64" or "amd64" or "IA-64" or sometimes just "64-bit". (Note that these *aren't* "x86" machines, even though "x86\_64" starts with those letters.)
 *   ARM or some other architecture. These are generally lower-powered machines, like iPads. Some of the software we're proposing *might* in principle be capable of running on such machines, but installers don't seem to be available. We'll assume you have access to an x86 or x86\_64 machine.
 
-In the Linux example above, I could tell my machine is running x86 because the
-result of the `uname` command said "i386" at the end. Another machine I have
-says "x86\_64" at the end. On a Mac, you can also say `uname -m` in a Terminal
-session, and it will say something like "i386". I think that Mac OS Xs from Lion
-/ 10.7 forward have all been x86\_64-only. On Windows, I don't know how to
-collect this information. But generally, machines running Windows XP will
-probably be i386/32-bit (unless it's a version of Windows with "64-bit" or
-"x64" in its title); machines running Windows Vista or Windows 7 or Windows 8
-could be running either x86/32-bit or x64/64-bit.
-(Update: I found
-[this Microsoft page](http://windows.microsoft.com/en-us/windows/32-bit-and-64-bit-windows)
-that may help.)
+On Linux or Mac OS X, you can open a terminal and type `uname -m`. If the
+result is "x86\_64", then you've got x64/64-bit. If it's "i386" or something
+like that, then you've got x86/32-bit. I think that Mac OS Xs from 10.7 / Lion
+forward have all been x86\_64-only.
+
+On Windows,
+[here is a page that can help you figure this out](http://windows.microsoft.com/en-us/windows/32-bit-and-64-bit-windows).
+I think that most machines running Windows XP will be x86/32-bit (unless it's
+a version of Windows with "64-bit" or "x64" in its title); machines running
+Windows Vista or Windows 7 or Windows 8 could be running either x86/32-bit or
+x64/64-bit.
 
 
 ## PLEASE REPORT PROBLEMS (AND SOLUTIONS!) ##
@@ -126,65 +121,72 @@ try are
 or [Chibi](https://code.google.com/p/chibi-scheme). The later in that list you go, the more likely it
 is that you'll have to compile the software yourself. (Thus Mac users will need Xcode.)
 
-Racket stands to Scheme in something like the relation Firefox stands to HTML. It's one program among others for working with the language; and many of those programs (or web browsers) permit different extensions, have small variations, and so on.
+Racket stands to Scheme in something like the relation Firefox stands to HTML. It's one program (or platform) among others for working with the Scheme language; and many of those programs (or web browsers) permit different extensions, have small variations, and so on.
 
 Racket has several components. The two most visible components for us are a command-line interpreter named "racket" and a teaching-friendly editor/front-end named "DrRacket". You will probably be working primarily or wholly in the latter.
 <!-- "racket" used to be mzscheme, "DrRacket" used to be DrScheme -->
 
 The current version of Racket is 6.1.1 (released November 2014).
 
-*      In your web browser:
+*   In your web browser:
+
+    There is a (slow, bare-bones) version of Scheme available for online use at <http://tryscheme.sourceforge.net/>.
+
+*   **To install in Windows**
+
+    Go to <http://racket-lang.org/download/>. Download and install the "Windows x64" version. (Or the "Windows x86" verson if you have an older, 32-bit system.)
 
-       There is a (slow, bare-bones) version of Scheme available for online use at <http://tryscheme.sourceforge.net/>.
+*   **To install on Mac without MacPorts**
 
-*      **To install in Windows**
+    Go to <http://racket-lang.org/download/>. Download and install the option for your system, most likely "Macintosh
+    OS X (Intel 64-bit)".
 
-       Go to <http://racket-lang.org/download/>. Download and install the "Windows x64" version. (Or the "Windows x86" verson if you have an older, 32-bit system.)
+*   **To install on Mac with MacPorts**
 
-*      **To install on Mac without MacPorts**
+    Unfortunately, MacPorts doesn't have Racket itself available. It only has an older version from when they still called
+    themselves PLT Scheme. And even then, it only has the command-line program "mzscheme" (what's nowadays called "racket"); it
+    doesn't have the GUI program that corresponds to what's now called "DrRacket". You can install mzscheme by opening a Terminal
+    window and typing:
 
-       Go to <http://racket-lang.org/download/>. Download and install the option for your system, most likely "Macintosh
-       OS X (Intel 64-bit)".
+         sudo port install mzscheme
 
-*      **To install on Mac with MacPorts**
+    <!-- mzscheme v4.1.5, from March 2009; latest mzscheme is 4.2.5, from April 2010 -->
 
-       Unfortunately, MacPorts doesn't have Racket itself available. It only has an older version from when they still called
-       themselves PLT Scheme. And even then, it only has the command-line program "mzscheme" (what's nowadays called "racket"); it
-       doesn't have the GUI program that corresponds to what's now called "DrRacket". You can install mzscheme by opening a Terminal
-       window and typing:
+    If you want the GUI components, I think you'll need to use the
+    "Mac/without MacPorts" installation options above. Or you could try the Chicken Scheme implementation instead of Racket. This is more current.
+    To do that, type:
 
-                sudo port install mzscheme
+        sudo port install chicken readline
 
-       If you want the GUI components, I think you'll need to use the
-       "Mac/without MacPorts" installation options above.
+    <!-- chicken v4.8.0.2, from Feb 2013; latest available is 4.9.0.1, from Nov 2014 -->
 
-       I recommend also typing:
+    Whether you use mzscheme or Chicken, I recommend also typing:
 
-               sudo port install rlwrap
+        sudo port install rlwrap
 
-       then if you ever use the command-line program `mzscheme` (or `racket`), you should start it by typing `rlwrap mzscheme`. This gives
-       you a nice history of the commands you've already typed, which you can scroll up and down in with your
-       keyboard arrows.
+    then if you ever use the command-line program `mzscheme` (or `racket`, for that matter), you should start it by typing `rlwrap mzscheme` (or whatever). This gives
+    you a nice history of the commands you've already typed, which you can scroll up and down in with your
+    keyboard arrows.
 
-*      **To install on Linux**
+*   **To install on Linux**
 
-       Use your packaging system, for example, open a Terminal and
-       type:
+    Use your packaging system, for example, open a Terminal and
+    type:
 
-                sudo apt-get install racket
+         sudo apt-get install racket
 
-       It's very likely that your packaging system has some version of
-       Racket available, so look for it. However, if you can't find it you
-       can also install a pre-packaged binary from the Racket website at <http://racket-lang.org/download/>.
-       Choose the option for your version of Linux (Ubuntu and Debian are available).
+    It's very likely that your packaging system has some version of
+    Racket available, so look for it. However, if you can't find it you
+    can also install a pre-packaged binary from the Racket website at <http://racket-lang.org/download/>.
+    Choose the option for your version of Linux (Ubuntu and Debian are available).
 
-       As above, I recommend you also type:
+    As above, I recommend you also type:
 
-               sudo apt-get rlwrap
+        sudo apt-get rlwrap
 
-       then if you ever use the command-line program `mzscheme` (or `racket`), you should start it by typing `rlwrap mzscheme`. This gives
-       you a nice history of the commands you've already typed, which you can scroll up and down in with your
-       keyboard arrows.
+    then if you ever use the command-line program `mzscheme` (or `racket`), you should start it by typing `rlwrap mzscheme` (or whatever). This gives
+    you a nice history of the commands you've already typed, which you can scroll up and down in with your
+    keyboard arrows.
 
 
 ## Getting OCaml ##
@@ -205,89 +207,89 @@ The current version of OCaml is 4.02.1 (released October 2014).
 
 Another instruction page focuses on [OPAM](http://ocaml.org/docs/install.html), also [this](https://opam.ocaml.org).
 
-*      In your web browser:
+*   In your web browser:
 
-       There is a (slow, bare-bones) version of OCaml available for online use at <http://try.ocamlpro.com/>.
+    There is a (slow, bare-bones) version of OCaml available for online use at <http://try.ocamlpro.com/>.
 
-*      **To install in Windows**
+*   **To install in Windows**
 
-       Go to <http://caml.inria.fr/download.en.html>.
-       You can probably download and install the
-       "Self installer for the port based on the MinGW toolchain"
-       even if you don't know what MinGW or Cygwin are.
-       Some features of this require Cygwin, but it looks like
-       it should mostly work even for users without Cygwin.
-       At the time of this writing, only an installer for the previous
-       version of OCaml (3.11.0, from January 2010) is available.
+    Go to <http://caml.inria.fr/download.en.html>.
+    You can probably download and install the
+    "Self installer for the port based on the MinGW toolchain"
+    even if you don't know what MinGW or Cygwin are.
+    Some features of this require Cygwin, but it looks like
+    it should mostly work even for users without Cygwin.
+    At the time of this writing, only an installer for the previous
+    version of OCaml (3.11.0, from January 2010) is available.
 
-       To install the Findlib add-on, you must have the
-       Cygwin system installed. We assume few of you do,
-       so we're not going to try to explain how to do this.
-       If you want to figure it out yourself, go to the
-       Findlib website at <http://projects.camlcity.org/projects/findlib.html>.
+    To install the Findlib add-on, you must have the
+    Cygwin system installed. We assume few of you do,
+    so we're not going to try to explain how to do this.
+    If you want to figure it out yourself, go to the
+    Findlib website at <http://projects.camlcity.org/projects/findlib.html>.
 
-*      **To install on Mac without MacPorts**
+*   **To install on Mac without MacPorts**
 
-       To install OCaml 3.12 (just released this summer), go to
-       <http://caml.inria.fr/download.en.html>
-       and download and install the "Binary distribution for Mac OS X"
+    To install OCaml 3.12 (just released this summer), go to
+    <http://caml.inria.fr/download.en.html>
+    and download and install the "Binary distribution for Mac OS X"
 
-       To install the Findlib add-on, you'll need the Xcode development tools
-       to compile it yourself. Once you get that far, it's probably easiest
-       for you to install MacPorts and just install things using the MacPorts
-       instructions. (Use the MacPorts version of OCaml, instead of installing
-       the package from the caml.inria.fr website, as described above)
-       However, if you do have Xcode, and want to do without MacPorts, then
-       what you need to do is download Findlib from
-       <http://download.camlcity.org/download/findlib-1.2.6.tar.gz>.
-       Unpack the download, open a Terminal and go into the folder you just
-       unpacked, and type:
+    To install the Findlib add-on, you'll need the Xcode development tools
+    to compile it yourself. Once you get that far, it's probably easiest
+    for you to install MacPorts and just install things using the MacPorts
+    instructions. (Use the MacPorts version of OCaml, instead of installing
+    the package from the caml.inria.fr website, as described above)
+    However, if you do have Xcode, and want to do without MacPorts, then
+    what you need to do is download Findlib from
+    <http://download.camlcity.org/download/findlib-1.2.6.tar.gz>.
+    Unpack the download, open a Terminal and go into the folder you just
+    unpacked, and type:
 
-               ./configure
-               make package-macosx
+        ./configure
+        make package-macosx
 
-       This will build an installer package which you should be able to
-       double-click and install.
+    This will build an installer package which you should be able to
+    double-click and install.
 
-*      **To install on Mac with MacPorts**
+*   **To install on Mac with MacPorts**
 
-       You can install the previous version of OCaml (3.11.2,
-       from January 2010), together with the Findlib add-on, by opening a Terminal
-       and typing:
+    You can install the previous version of OCaml (3.11.2,
+    from January 2010), together with the Findlib add-on, by opening a Terminal
+    and typing:
 
-               sudo port install ocaml caml-findlib
+        sudo port install ocaml caml-findlib
 
-       As with Scheme, it's helpful to also have rlwrap installed, and to start OCaml as `rlwrap ocaml`. This gives
-       you a nice history of the commands you've already typed, which you can scroll up and down in with your
-       keyboard arrows.
+    As with Scheme, it's helpful to also have rlwrap installed, and to start OCaml as `rlwrap ocaml`. This gives
+    you a nice history of the commands you've already typed, which you can scroll up and down in with your
+    keyboard arrows.
 
-*      [More details about installing OCaml on Macs, if needed](http://cocan.org/getting_started_with_ocaml_on_mac_os_x)
+*   [More details about installing OCaml on Macs, if needed](http://cocan.org/getting_started_with_ocaml_on_mac_os_x)
 
-*      **To install on Linux**
+*   **To install on Linux**
 
-       Use your packaging system, for example, open a Terminal and
-       type:
+    Use your packaging system, for example, open a Terminal and
+    type:
 
-               sudo apt-get install ocaml ocaml-findlib
+        sudo apt-get install ocaml ocaml-findlib
 
-       That will install a version of OCaml and the Findlib add-on.
+    That will install a version of OCaml and the Findlib add-on.
 
-       If for some reason you can't get OCaml through your
-       packaging system, you can go to
-       <http://caml.inria.fr/download.en.html>.
-       Pre-packaged binary installers are available for several Linux systems.
+    If for some reason you can't get OCaml through your
+    packaging system, you can go to
+    <http://caml.inria.fr/download.en.html>.
+    Pre-packaged binary installers are available for several Linux systems.
 
-       If you can't get findlib through your packaging system, you'll
-       need to download it from
-       <http://download.camlcity.org/download/findlib-1.2.6.tar.gz>.
-       and use gcc to compile it yourself. If you don't know how to
-       do that, you probably don't want to attempt this.
-       Here are the INSTALL notes:
-       <https://godirepo.camlcity.org/svn/lib-findlib/trunk/INSTALL>.
+    If you can't get findlib through your packaging system, you'll
+    need to download it from
+    <http://download.camlcity.org/download/findlib-1.2.6.tar.gz>.
+    and use gcc to compile it yourself. If you don't know how to
+    do that, you probably don't want to attempt this.
+    Here are the INSTALL notes:
+    <https://godirepo.camlcity.org/svn/lib-findlib/trunk/INSTALL>.
 
-       As with Scheme, it's helpful to also have rlwrap installed, and to start OCaml as `rlwrap ocaml`. This gives
-       you a nice history of the commands you've already typed, which you can scroll up and down in with your
-       keyboard arrows.
+    As with Scheme, it's helpful to also have rlwrap installed, and to start OCaml as `rlwrap ocaml`. This gives
+    you a nice history of the commands you've already typed, which you can scroll up and down in with your
+    keyboard arrows.
 
 
 ## Getting Haskell ##
@@ -306,9 +308,9 @@ other. But these languages also have *a lot* in common, and if you're
 familiar with one of them, it's generally not hard to move between it and the
 other.
 
-*      In your web browser:
+*   In your web browser:
 
-       There is a (slow, bare-bones) version of Haskell available for online use at <http://tryhaskell.org/>.
+    There is a (slow, bare-bones) version of Haskell available for online use at <http://tryhaskell.org/>.
 
 sudo apk-get install haskell-platform