]> gitweb.factorcode.org Git - factor.git/blob - basis/tools/deploy/deploy-docs.factor
eccb3982c7c3342399b7797c6a179b89a67294da
[factor.git] / basis / tools / deploy / deploy-docs.factor
1 USING: help.markup help.syntax words alien.c-types assocs
2 kernel ;
3 IN: tools.deploy
4
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."
7 $nl
8 "For example, we can deploy the " { $vocab-link "hello-world" } " demo which comes with Factor:"
9 { $code "\"hello-ui\" deploy" }
10 { $list
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" } "." }
14 }
15 "In all cases, running the program displays a window with a message."
16 $nl
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."
18 $nl
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" } ;
24
25 ABOUT: "tools.deploy"
26
27 HELP: deploy
28 { $values { "vocab" "a vocabulary specifier" } }
29 { $description "Deploys " { $snippet "vocab" } ", saving the deployed image as " { $snippet { $emphasis "vocab" } ".image" } "." } ;