Compiling Factor on Windows
Tuesday, November 14, 2006
To compile Factor you will need:
- MinGW
- MSYS
- darcs
- freetype6.dll
- zlib1.dll
-
Download MinGW and install it.
-
Download MSYS and install it. Make sure to tell the batch script about your MinGW install.
-
Download the latest package version of darcs and unzip it to c:\darcsdir-w32. darcs 1.0.7 is broken on Windows, so you must also grab the 1.0.8 binary and copy it into your darcs install directory over the broken version.
-
Set your path to include darcs. Run:
start->Control Panel->System->Advanced->Environment Variables
In System Variables, edit PATH, and append c:\darcsdir-w32 so that your path resembles:
c:\Program Files\sqlite;c:\darcsdir-w32
Start cmd.exe from the Run box and try out your darcs installation:
C:\Documents and Settings\Administrator>darcs --version 1.0.8 (release)
-
(Optional) To push patches to a remote server, you will need to generate an RSA key with puttygen unless you already have a public key. Run puttygen (installed with the darcs bundle), click generate, and move the mouse around to make your key. Save both your public and private keys in c:\darcsdir-w32. Adding a passphrase is optional (I didn’t do it).
-
(Optional) On your remote Linux box running sshd, edit the file ~/.ssh/authorized_keys2 and paste your public key so that it looks something like this (but all on one line):
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAgMPa1vvlSi4ZrS7hrk/XJNwd9trM+TyvJjhkMzf3fhks n8TFin7dhrRfFhVdjka0ep0+RGJrUI/ja6nDyG2SvzG1ka5Ml/Nes2PtpHWcwK7fwU9gBUZNzlvXCkOk UKO7X7N65LnyCPjJDZa+8LPqrBeESjbVmstG4cw7uh0= doug@windows
-
(Optional) So that darcs can find your key, start Regedit and add a key for Pageant:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run Name: Pageant Data: c:\darcsdir-w32\pageant.exe c:\darcsdir-w32\private.ppk
When you reboot or run the above command, pageant will find your key and you can begin using darcs to push patches to your Linux box.
-
To get the Factor source, run this command wherever you want your local copy, perhaps from c:\
darcs get http://factorcode.org/repos
-
Additionally, put these dlls in your Factor directory (repos/Factor/ on a default checkout):
freetype6.dll zlib1.dll
-
Start MSYS (the blue M link) and change to your Factor directory. Mine is at c:\repos\Factor, so the command is:
cd /c/repos/Factor
-
From here you should be able to
make windows
-
From cmd.exe, change to the Factor directory and bootstrap with an image (x86) from factorcode.org:
f -i=boot.image.x86
Now you can run Factor!
f
I recommend bootstrapping and running Factor from cmd.exe because MSYS messes up stderr–you will not notice for a while if Factor has an internal error because there will be no output.
As a final note, the latest version from darcs is usually the best. If the boot image of Factor is stale and bootstrap fails, contact one of the devs in #concatenative on irc.freenode.org.
Happy Windows Factoring!
Update: Troubleshooting
Q: When starting Factor, why do I get the error ‘alien-invoke-error-library “freetype”, alien-invoke-error-symbol “FT_Init_FreeType”’?
A: You forgot to put freetype6.dll and zlib1.dll in the Factor directory. Download these and bootstrap again.
Q: When I bootstrap, why does Factor spew “*** Data GC (5 minor, 24 cards)” and error out with ‘Word not found in current vocabulary search path delegate f no-word-name “\u000c”’?
A: On bootstrap you must pass the ‘-i’ command line argument. The correct command line is:
./f -i=boot.image.x86