Go to file
John Benediktsson b957ad1684 vocabs: make source/docs/tests work for private vocabs. 2012-08-10 14:39:53 -07:00
Factor.app/Contents updated copyright 2011-05-04 17:19:30 -07:00
basis vocabs: make source/docs/tests work for private vocabs. 2012-08-10 14:39:53 -07:00
build-support build-support: make factor.sh check the git branch. 2012-07-11 12:08:29 -07:00
core vocabs: make source/docs/tests work for private vocabs. 2012-08-10 14:39:53 -07:00
extra sequences.extras: moved 2each-index to extras for now. 2012-08-09 16:36:35 -07:00
misc misc: support new escapes in vim. 2012-07-26 19:24:52 -07:00
unmaintained unmaintained: removing old math.transforms.fft. 2012-08-08 20:29:02 -07:00
vm bignum: incorporate some fixes from @slavapestov. 2012-08-10 14:28:44 -07:00
work Add file to work dir to ensure it gets checked in 2008-09-12 04:36:32 -05:00
.gitignore GNUmakefile: use PCH so compiler goes faster 2011-11-08 08:42:46 -08:00
GNUmakefile fix build for linux (issue #480). thanks, jcollado! 2012-03-25 14:45:17 -07:00
Nmakefile vm: strip out call-counting profiler 2011-11-10 16:01:07 -08:00
README.md README.md: A few more cleanups suggested by @mrjbq7. 2012-08-10 12:14:04 -07:00
license.txt Remove copyright notice from license 2009-04-21 16:25:04 -05:00
readme.html Update readme.html, because "Getting started" has moved 2011-03-05 21:54:12 +09:00

README.md

Factor

The Factor programming language combines powerful language features with a full-featured library. The implementation is fully compiled for performance, while still supporting interactive development. Factor applications are portable between all common platforms. Factor can deploy stand-alone applications on all platforms. Full source code for the Factor project is available under a BSD license.

Getting Started

Building Factor from source

If you have a build environment set up, then you can build Factor from git. These scripts will attempt to compile the Factor binary and bootstrap from a boot image stored on factorcode.org.

To check out Factor:

  • git clone git://factorcode.org/git/factor.git
  • cd factor

To build the latest complete Factor system from git:

  • Windows: build-support\factor.cmd
  • Unix: ./build-support/factor.sh update

Now you should have a complete Factor system ready to run.

More information on building factor and system requirements.

To run a Factor binary:

You can download a Factor binary from the grid on http://factorcode.org. The nightly builds are usually a better experience than the point releases.

  • Windows: Double-click factor.exe, or run .\factor.com in a command prompt
  • Mac OS X: Double-click Factor.app or run open Factor.app in a Terminal
  • Unix: Run ./factor in a shell

Learning Factor

A tutorial is available that can be accessed from the Factor environment:

"first-program" help

Some other simple things you can try in the listener:

"Hello, world" print

{ 4 8 15 16 23 42 } [ 2 * ] map .

1000 [1,b] sum .

4 iota  [
    "Happy Birthday " write
    2 = "dear NAME" "to You" ? print
] each

For more tips, see Learning Factor.

Documentation

The Factor environment includes extensive reference documentation and a short "cookbook" to help you get started. The best way to read the documentation is in the UI; press F1 in the UI listener to open the help browser tool. You can also browse the documentation online.

Command Line Usage

Factor supports a number of command line switches:

Usage: factor [Factor arguments] [script] [script arguments]

Common arguments:
    -help            print this message and exit
    -i=<image>       load Factor image file <image> (default factor.image)
    -run=<vocab>     run the MAIN: entry point of <vocab>
        -run=listener    run terminal listener
        -run=ui.tools    run Factor development UI
    -e=<code>        evaluate <code>
    -no-user-init    suppress loading of .factor-rc

Enter
    "command-line" help
from within Factor for more information.

You can also write scripts that can be run from the terminal, by putting #!/path/to/factor at the top of your scripts and making them executable.

Source Organization

The Factor source tree is organized as follows:

  • build-support/ - scripts used for compiling Factor (not present in binary packages)
  • vm/ - Factor VM source code (not present in binary packages)
  • core/ - Factor core library
  • basis/ - Factor basis library, compiler, tools
  • extra/ - more libraries and applications
  • misc/ - editor modes, icons, etc
  • unmaintained/ - unmaintained contributions, please help!

Community

Factor developers meet in the #concatenative channel on irc.freenode.net. Drop by if you want to discuss anything related to Factor or language design in general.

Have fun!