1 USING: help.markup help.syntax words alien.c-types assocs
5 ARTICLE: "tools.deploy" "Application deployment"
6 "The stand-alone application deployment tool compiles a vocabulary down to a native executable which runs the vocabulary's " { $link POSTPONE: MAIN: } " hook. Deployed executables do not depend on Factor being installed, and do not expose any source code, and thus are suitable for delivering commercial end-user applications."
8 "For example, we can deploy the " { $vocab-link "hello-world" } " demo which comes with Factor:"
9 { $code "\"hello-ui\" deploy" }
11 { "On Mac OS X, this yields a program named " { $snippet "Hello world.app" } "." }
12 { "On Windows, it yields a directory named " { $snippet "Hello world" } " containing a program named " { $snippet "hello-ui.exe" } "." }
13 { "On Unix-like systems (Linux, BSD, Solaris, etc), it yields a directory named " { $snippet "Hello world" } " containing a program named " { $snippet "hello-ui" } "." }
15 "In all cases, running the program displays a window with a message."
17 "The deployment tool works by bootstrapping a fresh image, loading the vocabulary into this image, then applying various heuristics to strip the image down to minimal size."
19 "You must explicitly specify major subsystems which are required, as well as the level of reflection support needed. This is done by modifying the deployment configuration prior to deployment."
20 { $subsection "prepare-deploy" }
21 "Once the necessary deployment flags have been set, the application can be deployed:"
22 { $subsection deploy }
23 { $see-also "ui.tools.deploy" } ;
28 { $values { "vocab" "a vocabulary specifier" } }
29 { $description "Deploys " { $snippet "vocab" } ", saving the deployed image as " { $snippet { $emphasis "vocab" } ".image" } "." } ;