factor/README.txt

192 lines
5.0 KiB
Plaintext
Raw Permalink Normal View History

2005-07-21 03:45:34 -04:00
The Factor programming language
-------------------------------
2004-08-27 02:09:24 -04:00
2005-07-21 03:45:34 -04:00
This file covers installation and basic usage of the Factor
implementation. It is not an introduction to the language itself.
2004-08-27 02:09:24 -04:00
* Contents
- Platform support
- Compiling Factor
- Building Factor
- Running Factor on Unix with X11
- Running Factor on Mac OS X
- Running Factor on Windows
- Source organization
- Learning Factor
- Community
- Credits
2005-07-21 03:45:34 -04:00
* Platform support
2004-09-01 21:04:16 -04:00
2005-07-21 03:45:34 -04:00
Factor is fully supported on the following platforms:
2004-09-01 21:04:16 -04:00
2005-07-21 03:45:34 -04:00
Linux/x86
Linux/AMD64
2005-07-21 03:45:34 -04:00
Mac OS X/PowerPC
2006-01-31 15:41:26 -05:00
Solaris/x86
Microsoft Windows 2000 or later
The following platforms should work, but are not tested on a
regular basis:
FreeBSD/x86
FreeBSD/AMD64
Linux/PowerPC
2006-01-31 15:41:26 -05:00
Solaris/AMD64
2006-01-18 14:16:43 -05:00
Other platforms are not supported.
2005-07-21 03:45:34 -04:00
* Compiling Factor
2005-07-21 03:45:34 -04:00
The Factor runtime is written in C, and is built with GNU make and gcc.
Factor requires gcc 3.4 or later. On x86, it /will not/ build using gcc
3.3 or earlier.
2004-08-27 02:09:24 -04:00
2005-07-21 03:45:34 -04:00
Run 'make' (or 'gmake' on non-Linux platforms) with one of the following
parameters to build the Factor runtime:
2004-08-27 02:09:24 -04:00
2005-07-21 03:45:34 -04:00
bsd
linux
linux-ppc
macosx
2006-01-31 15:41:26 -05:00
solaris
2005-07-21 03:45:34 -04:00
windows
2005-07-21 03:45:34 -04:00
The following options can be given to make:
2004-08-27 02:09:24 -04:00
2005-07-21 03:45:34 -04:00
SITE_CFLAGS="..."
DEBUG=1
2004-08-27 02:09:24 -04:00
2005-07-21 03:45:34 -04:00
The former allows optimization flags to be specified, for example
"-march=pentium4 -ffast-math -O3". Nowadays most of the hard work is
done by Factor compiled code, so optimizing the runtime is not that
important. Usually the defaults are fine.
2004-08-27 02:09:24 -04:00
2006-01-18 14:16:43 -05:00
The DEBUG flag disables optimization and builds an executable with
2005-07-21 03:45:34 -04:00
debug symbols. This is probably only of interest to people intending to
hack on the runtime sources.
2004-08-27 02:09:24 -04:00
2005-07-21 03:45:34 -04:00
Compilation may print a handful of warnings about singled/unsigned
comparisons, and violated aliasing contracts. They may safely be
ignored.
2005-07-21 03:45:34 -04:00
Compilation will yield an executable named 'f'.
2004-08-27 02:09:24 -04:00
2005-07-21 03:45:34 -04:00
* Building Factor
2004-08-27 02:09:24 -04:00
The Factor source distribution ships with three boot image files:
2004-08-27 02:09:24 -04:00
boot.image.x86
boot.image.ppc
boot.image.amd64
2004-08-27 02:09:24 -04:00
2005-07-21 03:45:34 -04:00
Once you have compiled the Factor runtime, you must bootstrap the Factor
system using the image that corresponds to your CPU architecture.
2004-08-27 02:09:24 -04:00
2005-07-21 03:45:34 -04:00
The system is bootstrapped with the following command line:
2004-08-27 02:09:24 -04:00
2005-07-21 03:45:34 -04:00
./f boot.image.<foo>
2004-08-27 02:09:24 -04:00
2005-07-21 03:45:34 -04:00
Additional options may be specified to load external C libraries; see
the next section for details.
2004-08-27 02:09:24 -04:00
2005-07-21 03:45:34 -04:00
Bootstrap can take a while, depending on your system. When the process
completes, a 'factor.image' file will be generated. Note that this image
is both CPU and OS-specific, so in general cannot be shared between
machines.
2004-08-27 02:09:24 -04:00
* Running Factor on Unix with X11
On Unix, Factor can either run a graphical user interface using X11, or
a terminal listener.
2004-08-27 02:09:24 -04:00
If your DISPLAY environment variable is set, the UI will start
automatically:
2005-07-21 03:45:34 -04:00
./f factor.image
2004-08-27 02:09:24 -04:00
To run an interactive terminal listener:
2004-08-27 02:09:24 -04:00
./f factor.image -shell=tty
2004-08-27 02:09:24 -04:00
If you're inside a terminal session, you can start the UI with one of
the following two commands:
2004-08-27 02:09:24 -04:00
ui
[ ui ] in-thread
The latter keeps the terminal listener running.
* Running Factor on Mac OS X
On Mac OS X, a Cocoa UI is available in addition to the terminal
listener.
The 'f' executable runs the terminal listener:
./f factor.image
2004-08-27 02:09:24 -04:00
The Cocoa UI requires that after bootstrapping you build the Factor.app
application bundle:
2004-08-27 02:09:24 -04:00
make macosx.app
2004-08-27 02:09:24 -04:00
This copies the runtime executable, factor.image (which must exist at
this point), and the library source into a self-contained Factor.app.
2004-08-27 02:09:24 -04:00
Factor.app runs the UI when double-clicked and can be transported
between PowerPC Macs.
* Running Factor on Windows
On Windows, double-clicking f.exe will start running the Win32-based UI
with the factor.image in the same directory as the executable.
Bootstrap runs in a Windows command prompt, however after bootstrapping
only the UI can be used.
2004-08-27 02:09:24 -04:00
2005-07-21 03:45:34 -04:00
* Source organization
2004-08-27 02:09:24 -04:00
2005-07-21 03:45:34 -04:00
doc/ - the developer's handbook, and various other bits and pieces
native/ - sources for the Factor runtime, written in C
library/ - sources for the library, written in Factor
contrib/ - various handy libraries not part of the core
examples/ - small examples illustrating various language features
fonts/ - TrueType fonts used by UI
2004-08-27 02:09:24 -04:00
2005-07-21 03:45:34 -04:00
* Learning Factor
2004-08-27 02:09:24 -04:00
The UI has a tutorial and defailed reference documentation. You can
browse it in the UI or by running the HTTP server (contrib/httpd).
2005-07-21 03:45:34 -04:00
You can browse the source code; it is organized into small,
well-commented files and should be easy to follow once you have a good
grasp of the language.
2005-07-21 03:45:34 -04:00
* Community
The Factor homepage is located at http://factorcode.org/.
2005-07-21 03:45:34 -04:00
Factor developers meet in the #concatenative channel on the
irc.freenode.net server. Drop by if you want to discuss anything related
to Factor or language design in general.
* Credits
The following people have contributed code to the Factor core:
Slava Pestov: Lead developer
Alex Chapman: OpenGL binding
Doug Coleman: Mersenne Twister random number generator
Mackenzie Straight: Windows port
2006-01-18 14:16:43 -05:00
Trent Buck: Debian package
A number of contributed libraries not part of the core can be found in
contrib/. See contrib/README.txt for details.
2005-07-21 03:45:34 -04:00
Have fun!
2005-07-21 03:45:34 -04:00
:tabSize=2:indentSize=2:noTabs=true: