.TH JANET 1 .SH NAME janet \- run the Janet language abstract machine .SH SYNOPSIS .B janet [\fB\-hvsrpnqk\fR] [\fB\-e\fR \fISOURCE\fR] [\fB\-l\fR \fIMODULE\fR] [\fB\-m\fR \fIPATH\fR] [\fB\-c\fR \fIMODULE JIMAGE\fR] [\fB\-\-\fR] .IR script .IR args ... .SH DESCRIPTION Janet is a functional and imperative programming language and bytecode interpreter. It is a modern lisp, but lists are replaced by other data structures with better utility and performance (arrays, tables, structs, tuples). The language also features bridging to native code written in C, meta-programming with macros, and bytecode assembly. There is a repl for trying out the language, as well as the ability to run script files. This client program is separate from the core runtime, so Janet could be embedded into other programs. Try Janet in your browser at https://janet-lang.org. Implemented in mostly standard C99, Janet runs on Windows, Linux and macOS. The few features that are not standard C99 (dynamic library loading, compiler specific optimizations), are fairly straight forward. Janet can be easily ported to most new platforms. .SH DOCUMENTATION For more complete API documentation, run a REPL (Read Eval Print Loop), and use the doc macro to see documentation on individual bindings. .SH OPTIONS .TP .BR \-h Shows the usage text and exits immediately. .TP .BR \-v Shows the version text and exits immediately. .TP .BR \-s Read raw input from stdin and forgo prompt history and other readline-like features. .TP .BR \-e\ code Execute a string of Janet source. Source code is executed in the order it is encountered, so earlier arguments are executed before later ones. .TP .BR \-n Disable ANSI colors in the repl. Has no effect if no repl is run. .TP .BR \-r Open a REPL (Read Eval Print Loop) after executing all sources. By default, if Janet is called with no arguments, a REPL is opened. .TP .BR \-p Turn on the persistent flag. By default, when Janet is executing commands from a file and encounters an error, it will immediately exit after printing the error message. In persistent mode, Janet will keep executing commands after an error. Persistent mode can be good for debugging and testing. .TP .BR \-q Quiet output. Don't print a repl prompt or expression results to stdout. .TP .BR \-k Don't execute a script, only compile it to check for errors. Useful for linting scripts. .TP .BR \-m\ syspath Set the dynamic binding :syspath to the string syspath so that Janet will load system modules from a directory different than the default. The default is set when Janet is built, and defaults to /usr/local/lib/janet on Linux/Posix, and C:/Janet/Library on Windows. This option supersedes JANET_PATH. .TP .BR \-c\ source\ output Precompiles Janet source code into an image, a binary dump that can be efficiently loaded later. Source should be a path to the Janet module to compile, and output should be the file path of resulting image. Output should usually end with the .jimage extension. .TP .BR \-l\ path Load a Janet file before running a script or repl. Multiple files can be loaded in this manner, and exports from each file will be made available to the script or repl. .TP .BR \-\- Stop parsing command line arguments. All arguments after this one will be considered file names and then arguments to the script. .SH ENVIRONMENT .B JANET_PATH .RS The location to look for Janet libraries. This is the only environment variable Janet needs to find native and source code modules. If no JANET_PATH is set, Janet will look in the default location set at compile time. .RE .SH AUTHOR Written by Calvin Rose