genie
Run Windows executables inside a Linux environment
TLDR
Initialize the bottle (run once, at start)
Run a login shell inside the bottle
Run a specified command inside the bottle
SYNOPSIS
genie [OPTION...] [FILE.gs]
PARAMETERS
-h, --help
Display help message and exit
--version
Output version information
-o, --output=NAME
Specify output file or directory name
-p, --profile=PROFILE
Use profile: debug, release, or default
--target=TARGET
Target backend: gobject or ccode
--vapi=NAME
Generate VAPI file for Vala bindings
--gir=NAME
Generate GIR file for GObject Introspection
--pkg=NAME
Add external package dependency
--cc=CC
Specify C compiler command
-g
Enable debug symbols
-O
Optimize generated code
--keep
Keep temporary C files
--thread
Enable threading support
--cflags=FLAGS
Additional C compiler flags
--ldflags=FLAGS
Additional linker flags
DESCRIPTION
Genie is a friendly programming language designed for the GNOME ecosystem, offering a clean syntax inspired by Python and Ruby while compiling to efficient C code. The genie command serves as the primary compiler for Genie source files with .gs extension.
It enables developers to build applications, libraries, and GObject-introspected code with automatic memory management via reference counting, generics, lambdas, and seamless C/GObject integration. Genie shares the Vala parser backend, ensuring high compatibility with GNOME libraries.
Key strengths include readability, rapid development, and zero runtime overhead. Compile and run interactively or produce binaries/libraries. Supports profiles like debug or release, custom targets, and VAPI/GIR generation for introspection.
Ideal for desktop apps, it's lightweight yet powerful, bridging scripting ease with systems performance. Install via package managers (e.g., apt install genie).
CAVEATS
Genie requires the genie package; not pre-installed on most distros.
Limited ecosystem compared to C++/Python; potential parser bugs in complex code.
Depends on Vala/libgee for full GObject support.
BASIC USAGE
genie hello.gs
Compiles and executes hello.gs immediately.
genie -o myapp hello.gs
Produces executable myapp.
SHEBANG SCRIPTS
Make scripts executable with #!/usr/bin/env genie as first line.
Run directly: ./script.gs
HISTORY
Created by Yamakuzure in 2009 as a Vala alternative with flexible syntax. Uses Vala 0.7+ parser. Actively maintained in Debian/Fedora repos; version 1.0+ stabilized syntax and GObject features around 2015.
SEE ALSO
valac(1), pkg-config(1), gcc(1), gdb(1)


