Check, run and build
ASPL 0.7.0 · Current release
Check source, run it, build a standalone ELF and distinguish output from process status.
On this page
Check source without running
After installing the verified native tool, save the canonical Hello source as hello.aspl. Commands accept one root source file, ending in .aspl or .لبات, plus its explicit imported source modules. Standard input supplies program data, not source.
aspl --diagnostic-language=en check hello.asplcheck compiles and validates without executing source, reading program input, loading foreign libraries or writing a program. Successful checking is silent and returns zero. It cannot prove that execution will succeed.
Run and inspect process status
aspl run hello.aspl
printf 'status=%s\n' "$?"Hello prints nothing and returns zero. To see normal output, download a source variant from the Sum example as sum.aspl. aspl run sum.aspl prints 55 followed by a newline and returns zero. print writes stdout. The integer returned by start_main sets process status, not printed output. Read $? immediately after the command you are measuring.
Normal entry results range from 0 to 255. A nonzero entry result is allowed; an out-of-range result traps with invalid-process-status. Failures use the command status table, so the status number alone cannot distinguish a normal result from an execution failure. Read stderr too.
Build and execute a standalone program
aspl build -o hello hello.aspl
./hello
printf 'status=%s\n' "$?"Put -o before the source path. build compiles, validates and atomically publishes an executable ELF. It does not run the program, load its foreign libraries, or invoke a C compiler or linker. Without -o, it removes the final source suffix to choose the output name. It does not create missing parent directories. A failure before publication preserves an existing output.
The ELF contains its VM and private bytecode. It runs without the source, ASPL installation, C compiler or separate bytecode file. The compatible Linux loader and system libraries are still required, as are any program-specific foreign libraries and data files. Relative runtime file paths use the process working directory. See native input and built programs.
Recover from common failures
Fix source diagnostics before running or building. A missing source file is a host failure. Multiple root sources, trailing options, unsupported arguments or an output that is the source produce usage errors. For a source name starting with a dash, use aspl check -- -name.aspl. Arabic diagnostics are the default even for English source. See the Linux command grammar and phases for exact forms.