General-purpose toy programming language for Unix-like systems
check: promote operands of comparison operators
check: use the correct scope for where bindings
Implement 'where' clause


browse  log 



You can also use your local clone with git send-email.

#The Q programming language

General-purpose toy programming language for Unix-like systems.

Disclaimer: Highly work in progress, breaking changes may happen.

#Build status

  • Linux (x86_64): builds.sr.ht status



  • C11 compiler
  • QBE
  • Gas compatiable assembler and a linker C compiler is required to build programs right now.
$ make


pub fn main(): u8 = {
	printf("%d\n", fib(10))
	return 0
fn printf(fmt: *u8, i: i32)

fn fib(n: i32): i32 =
	if (n <= 1) n else fib(n - 1) + fib(n - 2)

// -> 55

This example lives in examples/fib.q. Use ./qlcc -R examples/fib.q to compile and execute it.

$ ./qlcc -R examples/fib.q


While Q is still young and there are not much easy areas to work into, but still, any contributions are welcome!

Check the bug tracker for things to work on.

Send patches using git send-email to the mailing list [archives]


IRC (nick: yyp):

  • #myrddin on irc.eigenstate.org
  • ##yyp on irc.libera.chat
  • ... or pretty much any off-topic channel where you can find me