Skip to content

Release v0.3.0

Compare
Choose a tag to compare
@dosisod dosisod released this 21 Oct 01:13
· 867 commits to master since this release

Since the v0.2.1 release, significant progress has been made! Before, skullc was a standalone program. In this release, skullc has been renamed to just skull, and the old REPL system has been phased out. All the code has been converted to its LLVM equivalent. Here is a short list of all of the note-worthy features added:

Addition, subtraction, division, and multiplication of int and float constants.

add := 1 + 2
sub := 2.5 - 1.0
div := 10 / 2
mul := 2 * 4

Allow for compiling and running C code from Skull

$ cat main.sk

external func

func[]

$ skull main.sk -- libfunc.o
$ ./main

Allow for fine-grain control of CC arguments via --

$ skull main.sk -- -O3 -o something
$ ./something

Escape sequences in strings and runes

hello := "hello\r\nworld!"
hex := '\x1b'

Reassigning of mutable variables

mut x := 0

x = 1234

If statements

if true [
  return 1
]

x := false

if x [
  z := 1 + 2
  return z
]

Compiler errors

$ cat bad.sk

this code wont compile

$ skull bad.sk
Compilation error: unexpected token: "this"