REXX Language implementation
The crexx tool is the convenience driver for common \crexx{} workflows. It
can compile, assemble, execute, link, and package programs without requiring
the user to call each toolchain binary by hand.
It is also useful in larger builds because it keeps the release defaults in one
place: headerless scripts compile as Level B with rxfnsb imported, native
packaging runs through rxlink before rxcpack, and source/binary import
paths are passed to the compiler phase consistently.
Executing a simple script with \rexx{} statements and built-in functions, without having to run the tools in the chain individually and having to specify files and options on each tool
Using plugins and class libraries with minimal overhead in programs
Combining multiple source files containing functions and classes and executing them as a unit
Building a larger application using separate compilation and linking
Developing Class libraries1 together with their consumers
See which code is produced for the \crexx{} virtual machine and tools using verbosity levels
Options are used to differentiate between the choices that can be made while building a program. All options have defaults so that they can be left out in standard cases.
With the default verbosity level the tools behaves in the standard unix way where a lack of messages indicates success. This level can be increased gradually to a full explanation of everything that is done.
The following options are available (single and double dashes work for all options):
-help-version-exec.rxbin under rxvme (default).-noexec.rxbin.-compile.rxbin files (default).-nocompilerxc and rxas phases and reuse an existing <stem>.rxbin.-native--nonative. This produces an executable file for the current operating system and instruction set architecture. The native route now links the compiled program with rxlink before rxcpack generates C source.-nonative-verbose[0-4]-[no]colo[u]r-[no]optimize-keep-nokeep-decimal-l[library path]CREXX_HOME/bin. Runtime/native library loading is separate from the compiler’s -s and -i import-discovery paths.For native packaging, crexx now separates -l inputs into two groups:
.rxbin inputs such as classlib) are passed into rxlinkThis keeps the direct interpreter path fast while still producing compact native executables.
-s[path] or --source pathrxc phase. This is for off-directory .rexx modules that should be visible to source import discovery.-i[path]rxc phase. This is for .rxbin imports discovered during compilation.--import-rxasrxc phase to auto-import .rxas files from binary roots. This is off by default.--linkmap path-native, ask rxlink to write a link map.--link-keep-source-native, keep source/file metadata in the linked intermediate instead of using the default stripped output.--link-keep-inline-native, keep inline-body metadata in the linked intermediate. The native link strips this metadata by default because it is only needed by later compiler imports and debugging/tooling checks.-s, -i, and --import-rxas are compile-time controls only. They do not automatically add runtime modules to rxvme or to native links. For runtime/native library loading, continue to use -l.
Headerless top-level scripts are still compiled with --level levelb --import rxfnsb.
or function libraries ↩