README
======

How to get GAP
==============

    GAP is distributed  *free of  charge*,  see the common  Copyright for all
    versions of GAP stated Download branch of GAP 4.

    You can obtain it via 'ftp'.

    We  distribute  the *full  source* for everything,    the C code  for the
    kernel,  the GAP code for  the library, and the  {\LaTeX} code for the
    manual, which has  at  present about 1600    pages.  So it should be   no
    problem to get GAP,  even if you  have  a rather uncommon system.   Of
    course, ports to non UNIX systems may require some work.  We already have
    ports  for  IBM  PC  compatibles  with  an  Intel processor under MS-DOS,
    Windows,  or OS/2, for  the Atari ST under  TOS and Apple Macintosh using
    the CodeWarrior compiler.   Note that about 8  MByte  of main  memory and
    about 20MB of   disk space are  required to  run GAP.  A  full  GAP
    installation, including all share packages and  data libraries can use up
    to 100MB of disk space.

    The  easiest way to   get GAP 3  for  most  users is probably via the
    World   Wide     Web. The    main   GAP Web     site     is  found  at
    http://www-gap.dcs.st-and.ac.uk/~gap.

    There is a *mirror site* updated automatically each night, at:
    http://www.math.rwth-aachen.de/LDFM/GAP.

    At these sites you  can  browse this manual,  download the  system and
    contributed  extensions, read past postings   to the GAP forum, and
    find  out about authors  of  and contributors to GAP,  publications
    that cited GAP and GAP related events.

    GAP 3  can also be obtained by anonymous *ftp* from the following
    servers.

    'ftp-gap.dcs.st-and.ac.uk':
	    School of Mathematical and Computational Sciences,
	    University of St Andrews, Scotland,
	    directory '/pub/gap/gap/',

    'ftp.math.rwth-aachen.de':
	    Lehrstuhl D fur Mathematik, RWTH Aachen, Germany,
	    directory '/pub/gap/'.

    'ftp' to the server *closest*  to you, login as  user 'ftp' and give your
    full e-mail address as password.  Remember when you transmit the files to
    set the file transfer  type to *binary  image*,  otherwise you will  only
    receive   unusable garbage.  Those   servers will always  have the latest
    version of GAP available.

    The 'ftp' directory contains the   following files.  Please check   first
    which files you need, to avoid transferring those that you don't need.

    'README':
	    the file,  a  slightly updated  part  of which  you are currently
	    reading.

    'gap3r4p4.zoo':
	    This  file contains the  *complete*  distribution
	    of GAP version 3 release 4  current patchlevel 4.
	    It is a 'zoo' archive approximately  18 MByte large.

    'unzoo.c':
	    A simple 'zoo' archive extractor, which should be
	    used  to  unpack  the  distribution.  The 'utils'
	    subdirectory contains ready  compiled executables
	    for common systems.

    More files are in the following *subdirectories*:

    'bin':
	    This directory contains *executables* for systems
	    that dont come with a C compiler or where another
	    C compiler  produces  a  faster  executable.  The
	    file 'FILES' tells you  which  executables  are
	    here.

    'split':
	    This directory contains the complete distribution
	    of GAP 3r4p4 in several archives.  This allows
	    you to get only the  parts  that  you  are really
	    interested in.  The 'FILES' file tells you  which
	    archive contains what.

    'utils':
	    This directory contains  several  utilities  that
	    you may need to get or upgrade GAP, e.g., 'unzoo'
	    and  'patch'.  The  'FILES'  file tells you which
	    files are here.


How to install GAP
==================

    The file 'doc/install.tex'  contains extensive installation instructions.
    If however, you are one of those who never read manuals,  here is a quick
    installation guide.

    Ho to install GAP on an IBM PC, Apple Mac, Atari ST, DEC VAX, or DEC AXP
    ------------------------------------------------------------------------

    First go to a directory where  you  want to install    GAP , e.g., 'c:'.
    GAP  will  be  installed in a subdirectory 'gap3r4p4' of this directory.
    You can later move   GAP  to another  location, for example you can first
    install it in 'd:\tmp' and once it works move it to 'c:'.

    Get the GAP distribution  onto your computer.   One usual way would be to
    get   the  distribution with  'ftp'  onto some  UNIX   workstation and to
    download it from  there onto your  computer,  for example  with 'kermit'.
    Remember that the distribution consists of binary files and that you must
    transmit them in binary mode.  Another possibility is  that you got a set
    of floppy disks.

    In any case you need the distribution 'gap3r4p4.zoo', the appropriate zoo
    archive  extractor, e.g., 'unzoo.exe',   which is  in  the
    subdirectory 'util/' on the 'ftp' server, and the appropriate executable,
    e.g., 'gapdjg.zoo', which is in the subdirectory 'bin/'.
    You may have to get the latter 2 files from 'ftp-gap.dcs.st-and.ac.uk',
    because some  'ftp' servers may not keep  it.  We recommend that  you use
    'unzoo' even if  you already have 'zoo'  on your system, because  'unzoo'
    automatically translates text files to the appropriate local format.

    Unpack the executable and the distribution with the command

        unzoo -x -o bin3r4p4.zoo
        unzoo -x -o gap3r4p4.zoo

    Now change    into  the 'gap3r4p4\bin'     subdirectory  and follow  the
    instructions in the appropriate readme file, e.g., 'README.DOS'.

    How to install GAP on a UNIX computer
    -------------------------------------

    First go to a directory where you want to install GAP,   e.g.,  your home
    directory or '/usr/local/lib/'.  GAP will  be installed in a subdirectory
    called 'gap3r4p4/' of this directory.  You can later move  GAP to another
    location, for example you can first install it in your home directory and
    once it works move it to '/usr/local/lib/'.

    Get the distribution 'gap3r4p4.zoo'  and the source for  the zoo  archive
    extractor 'unzoo.c'.  How  you can get those  files is  described  in the
    section "How to   get GAP".   The usual  way  would  be to  get it   with
    'ftp'onto  your machine.    Remember  that the  distribution consists  of
    binary files and that you must transmit them in binary mode.

    Compile the zoo archive extractor 'unzoo' with the command

        cc  -o unzoo  -DSYS_IS_UNIX  -O unzoo.c

    Unpack the distribution with the command

        unzoo -x -o gap3r4p4.zoo

    Change   into the  source directory  'gap3r4p4/src/',  print the list  of
    possible targets  with the command  'make',  select the  target that fits
    best, and then compile the kernel with the command

        make  <target>
cp gap ../bin

    Alternatively we provide ready compiled executables for  the some popular
    systems on our 'ftp' server in the 'bin/' subdirectory.

    Change into  the directory 'gap3r4p4/bin/' and  edit the script 'gap.sh',
    which starts GAP, according to the instructions in  this file.  Then copy
    this script to  a directory in your search path, e.g., '~/bin/', with the
    command

        cp gap.sh ~/bin/gap

    When you  later move GAP   to another location  you  must  only edit this
    script.

    Try something in GAP,  e.g., the following exercises GAP quite a bit

        gap> m11 := Group((1,2,3,4,5,6,7,8,9,10,11),(3,7,11,8)(4,10,5,6));;
        gap> Number( ConjugacyClasses( m11 ) );

    The result should be 10.

    The full   manual is, to put  it  mildly,  now  rather long  (almost 1600
    pages).  For  this  reason, it  may  be  more convenient   just to *print
    selected  chapters*. This can  be  done  using  the  \includeonly LaTeX
    command,  which  is  present in    'manual.tex'  (around line 240),   but
    commented out. To use  this, you must first  *LaTeX the whole  manual* as
    normal, to  obtain  the complete set of   '.aux' files and determine  the
    pages and numbers of  all the chapters  and sections. After that, you can
    edit 'manual.tex' to uncomment  the \includeonly command and select the
    chapters you want. A good start can be to include only the first chapter,
    from  the    file  'aboutgap.tex',   by     editing the  line   to   read
    \includeonly{aboutgap}.  The  next step is  to LaTeX  the manual again.
    This time only the   selected chapter(s) and  the  table of contents  and
    indices will be  processed, producing a  shorter 'dvi' file  that you can
    print by whatever means applies locally.

    you@ernie:~/gap3r4p4/doc > latex manual
    # many messages about undefined references, 1600 pages output	
    you@ernie:~/gap3r4p4/doc > vi manual.tex
    # edit line 241 to include only 'aboutgap'
    you@ernie:~/gap3r4p4/doc > latex manual
    # pages 0-196 and 1503-1553 only output no warnings
    you@ernie:~/gap3r4p4/doc > ls -l manual.dvi
    -rw-rw-r--   1 you     1277496 Apr  3 14:48 manual.dvi
    # the full manual is nearly 5MB
    you@ernie:~/gap3r4p4/doc > lp -d manual.dvi
 
Thats  all, finally you  are  done.  We  hope  that you  will enjoy using
{\GAP}.  If you have problems, do not hesitate to contact us.
