SYNOPSIS
ejsc --bind --debug --doc --noout --optimize level --out filename --parse --require 'module ...' --search ejsPath --standard --strict --version --warn level files...
DESCRIPTION
The ejsc command compiles Ejscript programs to produce Ejscript module files containing byte code. The module files may then be run via the ejs shell command. The ejsc command is both a compiler and link editor. Inputs can be either Ejscript source files or Ejscript modules that have come from previous invocations of the ejsc command. Outputs will be one or more Ejscript module files that contain declarations and byte code. An output module file will be created for each Ejscript module direc- tive encountered during compilation. A module file will also be created for any global variables or functions declared outside a module direc- tive. These global declarations will go into the default module that is specially reserved for global declarations. Each module file will be named according to the module directive name, but with a .mod extension appended.
LINKING
If ejsc is invoked with the --out switch, all input scripts, modules and any other dependent modules are merged together into a single out- put module. The modules retain their logical naming, but are emitted in a single output module file. When that module file is loaded, all the contained modules will be available to the program. This creates not only a convenient way to package an entire application as a single file, it also permits many optimizations by merging the entire applica- tion and its dependent modules into a single module.
BINDING
The ejsc compiler will attempt to early-bind all possible variable and function references. Binding means resolving references to the underly- ing storage for properties and functions. Doing this at compile time usually results in much faster execution at run-time. When using the --out switch, the compiler can early-bind all global --bind Bind global variable declarations into slot references. This results in faster more compact code. However, only one module can have its global variables bound. --debug Generate symbolic debug instructions. This permits symbolic debugging of Ejscript programs and enables exception stack back- traces to include line number information. --doc Include documentation strings from input scripts in the output modules. The ejsmod command can then generate HTML documentation using these doc strings. The format of the doc strings resembles that of Javadoc. --merge Merge all input files and modules together into a single output module. This option acts like a link-editor combining all inputs together. Useful if you want to distribute your application as a single module file. --optimize level Set the code optimization level. Level values must be between 0 (least) and 9 (most). Default is 9. --parse Just parse the source scripts. Don't verify, execute or generate output. Useful to check the script syntax only. --require 'module ...' List of modules to preload before compiling input files. --search ejsPath Set the module search path. The module search path is a set of directories that the ejsc command will use when locating and loading Ejscript modules. The search path will always have some system directories appended to the end. These include paths specified via the EJSPATH environment variable and key system directories such as the Ejscript system module directory and the directory containing the ejsc command. The search path value is similar in format to the system PATH variable format. On windows, path segments are separated by ";" and on Linux, Unix, FreeBSD and MAC, the path segments are sepa- rated by ":" delimiters. Given a module named "a.b.c" in a script, ejsc will use the fol- lowing search strategy to locate the module: 1. Search for a module file named "a.b.c.mod" 2. Search for a module file named "a/b/c.mod" --version Print the ejsc command version and exit. --warn level Set the compiler warning verbosity level. Level values must be between 0 (least verbose) and 9 (most). Default is 0.
BACKGROUND
Ejscript is an enhanced implementation of the JavaScript language for use in embedded applications such as web servers, embedded and mobile devices. It is especially suited for Server-Side JavaScript web appli- cations. Ejscript is a dynamic, interpreted, object-oriented scripting language that supports classes, objects, exceptions, statements, expressions and a powerful suite of data types.
REPORTING BUGS
Report bugs to dev@embedthis.com.
COPYRIGHT
Copyright (C) Embedthis Software. Ejscript is a trademark of Embedthis Software.
SEE ALSO
ejs, ejsmod ejsc March 2014 EC(1)
Man(1) output converted with man2html