30 lines
1.8 KiB
Factor
30 lines
1.8 KiB
Factor
USING: help.markup help.syntax words alien.c-types assocs
|
|
kernel ;
|
|
IN: tools.deploy
|
|
|
|
ARTICLE: "tools.deploy" "Application deployment"
|
|
"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."
|
|
$nl
|
|
"For example, we can deploy the " { $vocab-link "hello-world" } " demo which comes with Factor:"
|
|
{ $code "\"hello-ui\" deploy" }
|
|
{ $list
|
|
{ "On Mac OS X, this yields a program named " { $snippet "Hello world.app" } "." }
|
|
{ "On Windows, it yields a directory named " { $snippet "Hello world" } " containing a program named " { $snippet "hello-ui.exe" } "." }
|
|
{ "On Unix-like systems (Linux, BSD, Solaris, etc), it yields a directory named " { $snippet "Hello world" } " containing a program named " { $snippet "hello-ui" } "." }
|
|
}
|
|
"In all cases, running the program displays a window with a message."
|
|
$nl
|
|
"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."
|
|
$nl
|
|
"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."
|
|
{ $subsection "prepare-deploy" }
|
|
"Once the necessary deployment flags have been set, the application can be deployed:"
|
|
{ $subsection deploy }
|
|
{ $see-also "ui.tools.deploy" } ;
|
|
|
|
ABOUT: "tools.deploy"
|
|
|
|
HELP: deploy
|
|
{ $values { "vocab" "a vocabulary specifier" } }
|
|
{ $description "Deploys " { $snippet "vocab" } ", saving the deployed image as " { $snippet { $emphasis "vocab" } ".image" } "." } ;
|