VALAC(1)
π VALAC β bestie edition β¨
okay so you found the valac(1) page, it lives in the User Commands section of the manual, and honestly? it's a whole vibe. grab a snack π, we're learning the Vala compiler together.
πΈ NAME
valac β the compiler that translates Vala source code into C source and header files. that's it, that's the whole job, and she does it flawlessly π
π¦ SYNOPSIS
valac [OPTION]... [FILE]...
options first, files after. or files first, honestly, she's flexible π
β¨ DESCRIPTION
Vala is a programming language that aims to bring modern programming language features to GNOME developers without imposing any additional runtime requirements and without using a different ABI compared to applications and libraries written in C. no cap β that's the whole pitch and it eats π
valac, the Vala compiler, is a self-hosting compiler that translates Vala source code into C source and header files. she uses the GObject type system to create classes and interfaces declared in the Vala source code. iconic behavior, truly π
π Usage:
valac [OPTION?] FILE... - Vala Compiler
π Help Options:
-?,--helpβ show help options. the "wait what does this flag do" button π«Ά
π₯ Application Options:
--vapidir=DIRECTORY...β look for package bindings in DIRECTORY--girdir=DIRECTORY...β look for.girfiles in DIRECTORY--metadatadir=DIRECTORY...β look for GIR.metadatafiles in DIRECTORY--pkg=PACKAGE...β include binding for PACKAGE--vapi=FILEβ output VAPI file name--library=NAMEβ library name--shared-library=NAMEβ shared library name used in generated gir--gir=NAME-VERSION.girβ GObject-Introspection repository file name-b,--basedir=DIRECTORYβ base source directory-d,--directory=DIRECTORYβ change output directory from current working directory--versionβ display version number--api-versionβ display API version number-C,--ccodeβ output C code-H,--header=FILEβ output C header file--use-headerβ use C header file--includedir=DIRECTORYβ directory used to include the C header file-h,--internal-header=FILEβ output internal C header file--internal-vapi=FILEβ output vapi with internal api--fast-vapiβ output vapi without performing symbol resolution--use-fast-vapiβ use--fast-vapioutput during this compile--vapi-commentsβ include comments in generated vapi--depsβ write make-style dependency information to this file--depfileβ write make-style external dependency information for build systems to this file--list-sourcesβ output a list of all source and binding files which are used--symbols=FILEβ output symbols file-c,--compileβ compile but do not link-o,--output=FILEβ place output in file FILE-g,--debugβ produce debug information--threadβ enable multithreading support. DEPRECATED AND IGNORED π she's retired, she's not coming back, don't @ her--enable-mem-profilerβ enable GLib memory profiler-D,--define=SYMBOL...β define SYMBOL--main=SYMBOL...β use SYMBOL as entry point--nostdpkgβ do not include standard packages--disable-assertβ disable assertions--enable-checkingβ enable additional run-time checks--enable-deprecatedβ enable deprecated features--hide-internalβ hide symbols marked as internal--enable-experimentalβ enable experimental features--disable-warningsβ disable warnings--fatal-warningsβ treat warnings as fatal--disable-since-checkβ do not check whether used symbols exist in local packages-k,--keep-goingβ continue as much as possible after an error. the "no thoughts head empty, keep going" flag π§--enable-experimental-non-nullβ enable experimental enhancements for non-null types--enable-gobject-tracingβ enable GObject creation tracing--cc=COMMANDβ use COMMAND as C compiler command-X,--Xcc=OPTION...β pass OPTION to the C compiler--pkg-config=COMMANDβ use COMMAND aspkg-configcommand--dump-tree=FILEβ write code tree to FILE--save-tempsβ keep temporary files--profile=PROFILEβ use the given profile instead of the default-q,--quietβ do not print messages to the console π€«-v,--verboseβ print additional messages to the console. opposite of quiet, she yaps (affectionate) π¬--no-colorβ disable colored output, alias for--color=never--color=WHENβ enable color output, options are'always','never', or'auto'. When no value is given always is implied. When neither--coloror--no-colorare declared then--color=autois used where output is colored when stderr is a terminal.--target-glib='MAJOR.MINOR', or'auto'β target version of glib for code generation--gresources=FILE...β XML of gresources--gresourcesdir=DIRECTORY...β look for resources in DIRECTORY--enable-version-headerβ write vala build version in generated files--disable-version-headerβ do not write vala build version in generated files--run-argsβ arguments passed to directly compiled executable--abi-stabilityβ enable support for ABI stability
β οΈ okay listen up for this one bestie, because it's the serious one:--abi-stabilitychanges the current behaviour to output public members of classes and interfaces the same order as they appear in Vala source. For libraries it is recommended to use--abi-stabilityto ensure the maintainability of the resulting Application Binary Interface (ABI). This option is disabled by default for backward compatibility because it can break the ABI of existing projects. so likeβ¦ know what you're doing π«£
π BUGS
found one? she's not hiding:
https://gitlab.gnome.org/GNOME/vala/issues
π HOMEPAGE OR CONTACT
https://wiki.gnome.org/Projects/Vala
β FEATURES
the whole roster, no skips: interfaces, properties, signals, foreach, lambda expressions, type inference for local variables, generics, non-null types, assisted memory management, exception handling. she really does it all, main character energy fr fr π
π AUTHORS
J??rg Billeter, Raffaele Sandrini, Rico Tzschichholz.
and that's the page! this is Vala 0.48.19, dated August 2021 β huge thank you to everyone who wrote her, she's been slaying since day one ππ
β¨ go compile something cute, bestie. valac believes in you. periodt. β¨
π¦ where this page comes from
- centos-stream 9: vala 0.48.19-1.el9 Β· LGPLv2+ and BSD
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms