NAME¶
Kayac - Compiler for the kaya language
SYNOPSIS¶
kayac FILE [-L DIRECTORY [-L ...]] [-libdir DIRECTORY [-libdir ...]]
[-force] [-nochase] [-noprelude] [-nortchecks|-fastvm] [-noopts] [-repl]
[-pic] [-xmldocs] [-static] [-profile] [-seedkey STRING] [-dumptac] [-dumpraw]
[-dumptree] [-dumpsimpl] [-dumpeqns] [-dumpcg] [-dumpdeps] [-keepc]
[-showgcc]
kayac [-version|-v|-help|-h|-?|-installdir]
DESCRIPTION¶
kayac compiles modules, programs and web applications in the Kaya
programming language.
kayac will automatically compile dependencies as necessary provided that, for a
dependency Foo, the source file is called Foo.k and is in the current working
directory.
OPTIONS¶
- -? | -h | -help
- Show usage summary
- -v | -version
- Show version number
- -installdir
- Show the directory in which the libraries are installed
- -L DIRECTORY | -libdir DIRECTORY
- Add DIRECTORY to the library search path.
- -force
- Force compilation even if kayac thinks it isn't needed.
- -q
- Quiet compilation; don't report which module is being built.
- -nochase
- Don't chase up and compile dependencies. Implies -force and
-q.
- -deprfail
- Fail compilation if a deprecated function is called.
- -noprelude
- Don't import the Prelude (probably only useful when compiling the standard
library). Compiling anything other than modules with this option is
unlikely to work well.
- -noenvlibs
- kayac will ignore the KAYA_LIBRARY_PATH environment variable when
compiling, and will not import from the compiled-in library directories
(probably only useful when compiling the standard library)
- -nortchecks
- Disables some run-time checking. This speeds up the final program, at the
cost of making errors harder to track down (and possibly introducing
additional subtle errors where an exception would previously have
occurred). Only recommended for bug free programs...
- -fastvm
- Uses a version of the Kaya VM that is optimised for applications such as
web applications with a short run-time (a few seconds or less) for which
it is significantly faster than the normal VM. However, for longer-running
applications memory usage can grow very rapidly. This option implies and
takes precedence over -nortchecks.
- -noopts
- Disables compile-time optimisations. Probably only useful for debugging
purposes.
- -repl
- Read-Eval-Print loop mode. In this mode you can interactively test the
behaviour of functions without needing to build a separate testing
program, in a top-level interpreter. See kaya(1) for more
information. This option implies -pic.
- -pic
- Use the -fPIC option of the C compiler to make position-independent code
suitable for shared libraries. This option has no effect on Windows, where
all code is position-independent.
- -xmldocs
- Generate XML documentation. This can then be converted into HTML or
Manpage format using the KayaDoc module and the xml2man(1) tool.
- -static
- Statically link executables so that they can be run on a wider range of
systems at the cost of signficantly increased file size. This is generally
only useful if you are making a pre-compiled binary distribution. You may
get some warnings from the linker about potential problems and limitations
when linking some libraries, or compilation may fail entirely if the
static libraries are unavailable.
- -profile
- Turns on profiling in the output code. The program will then generate a
gmon.out file when run, which can then be analysed with a program such as
gprof(1). This option also enables -static, and to get a useful
call graph report from gprof, your libgc library must have been compiled
with profiling enabled.
- -seedkey STRING
- Use a string to seed the random number generator which makes a secret key.
Useful for testing web apps.
DEBUGGING OPTIONS¶
These options generate debugging information.
- -dumptac
- Dump bytecode
- -dumpraw
- Dump the raw parse tree.
- -dumptree
- Dump the type checked parse tree.
- -dumpsimpl
- Dump the simplified, desugared and optimised code in a human readable
(almost) form.
- -dumpeqns
- Dump the type equations used in type inference
- -dumpcg
- Dump the function call graph
- -dumpdeps
- Dump the module dependency graph
- -keepc
- Keep the generated C code
- -showgcc
- Print the command sent to gcc
ENVIRONMENT VARIABLES¶
- KAYA_LIBRARY_PATH
- A list of extra paths to search for kaya libraries. Paths are separated by
':' on Posix systems, and ';' on Windows.
DOCUMENTATION¶
Library documentation for Kaya can be found at
<
http://kayalang.org/library> or in the manual section
3kaya
OBTAINING¶
The latest release of Kaya can be obtained from
<
http://kayalang.org/download>. You can receive announcements of new
versions of Kaya by subscribing to the kaya-announce mailing list
<
http://lists.kayalang.org/lists/listinfo/kaya-announce>
Development versions can be obtained using
darcs(1) from
<
http://kayalang.org/darcs/>
BUGS¶
Please report bugs found to <kaya@kayalang.org>
LICENSE¶
kayac is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License (version 2 or any later version)
as published by the Free Software Foundation.
SEE ALSO¶
darcs(1) gcc(1) gprof(1) rekey(1) xml2man(1)