~yerinalexey/qlc

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

refs

main
browse  log 

clone

read-only
https://git.sr.ht/~yerinalexey/qlc
read/write
git@git.sr.ht:~yerinalexey/qlc

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

#Installation

Dependencies:

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

#Example

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
55

#Contributing

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]

#Contact

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