=====================================================================
| ______ |
| /\ __ \ |
| \ \ \/\ \ __ __ ______ ______ (P)erl6 |
| \ \ __//\ \/\ \/\ __ \/\ ___\ (U)ser's |
| \ \ \/ \ \ \_\ \ \ \/\ \ \___ \ (G)olfing |
| \ \__\ \ \____/\ \____ \/\_____\ (S)ystem |
| \/__/ \/___/ \/___/\ \/____/ |
| /\____/ |
| \/___/ |
| |
=====================================================================
Pugs is Copyright 2005 by Autrijus Tang. All Rights Reserved.
The "PGE" subsystem is derived from PGE by Patrick Michaud,
under the Perl license. See src/pge/README.
The "PCRE" subsystem is derived from PCRE 5.0 by Philip Hazel,
under a BSD-style license. See src/pcre/LICENCE.
The "Syck" subsystem is derived from Syck 0.54 by "why the lucky stiff",
under a BSD-style license. See src/syck/COPYING.
The "Rule" subsystem is derived from Parsec 2.0 by Daan Leijen,
under a BSD-style license. See src/Pugs/Rule/LICENSE.
The "RRegex" subsystem is derived from hsregex 0.2 by John Meacham,
under a BSD-style license. See src/RRegex/LICENSE.
The "UTF8" subsystem is derived from Sven Moritz Hallberg's work,
under a BSD-style license. See src/UTF8.lhs.
The "Unicode" subsystem is derived from Dimitry Golubovsky's work,
under the same license as GHC. See LICENSES/GHC.
LICENSE INFORMATION
-------------------
This code is free software; you can redistribute it and/or modify it under
the terms of either:
a) the GNU General Public License, version 2, or
b) the Artistic License, version 2.0beta5.
Please see the "GPL-2" and "Artistic-2" files under the "LICENSE" directory
for the full license text.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See either
the GNU General Public License or the Artistic License for more details.
INSTALLATION
------------
Pugs needs the Glasgow Haskell Compiler (GHC) 6.4 or above. To install GHC,
download a binary build from http://haskell.org/ghc/. Although source code
for GHC is available, it will take a very long time to build by yourself.
Pugs needs Parrot 0.2.0 or above to support Perl 6 Rules. To install Parrot,
follow the instructions at http://www.parrotcode.org/. Binary builds for
Win32 are available at http://jwcs.net/~jonathan/perl6/.
For dynamic loading/inlining of Haskell modules, you should install the
hs-plugin library, available here:
ftp://ftp.cse.unsw.edu.au/pub/users/dons/hs-plugins/snapshots/
To install Pugs on your system, simply type this in the command line:
cpansign -v # optional; see SIGNATURE for details
perl Makefile.PL
make # or 'nmake' on Win32
make test
make install
Optionally you may use the GHC environment variable to set the ghc
executable before you run "perl Makefile.PL", for example:
export GHC=${HOME}/bin/ghc (bash)
setenv GHC ${HOME}/bin/ghc (csh)
CAVEATS FOR x86_64 MACHINES
---------------------------
GHC 6.4 has a garbage collector bug on x86_64 (64 bit Athlon) machines;
users may see crashes complaining about "strange objects".
Until GHC 6.4.1 is released, a partial workaround is to avoid GC by
requesting a large heap, using either command line arguments:
./pugs +RTS -A200M -RTS
or an environment variable:
GHCRTS='-A200M'
These request a 200 MB heap, which is sufficient to run most programs.
Running all tests unfortunately requires a lot more memory (perhaps 1000M).
A possible alternative, which someone could explore and report on, would be
to try using a 32-bit GHC instead.
MAILING LISTS
-------------
The mailing list for Pugs is perl6-compiler. Subscribe by sending mail to
<perl6-compiler-subscribe@perl.org>. Mailing list archive is availabe at:
http://nntp.perl.org/group/perl.perl6.compiler (HTTP)
http://groups-beta.google.com/group/perl.perl6.compiler (HTTP)
nntp://nntp.perl.org/perl.perl6.compiler (NNTP)
Please submit bug reports to <pugsbugs@perl.org>.
WEB SITES
---------
The Pugs homepage is at:
http://pugscode.org/
For Perl 6 related information, please see:
http://dev.perl.org/perl6/
Enjoy,
/Autrijus/