clang, opt, and lldOn Ubuntu/Debian:
sudo apt install llvm-18 clang-18 lld-18 gcc git
On Arch Linux:
sudo pacman -S llvm clang lld gcc git
On macOS:
brew install llvm gcc git
git clone https://github.com/codeyousef/SeenLang.git
cd SeenLang
./scripts/safe_rebuild.sh
The production compiler lands at compiler_seen/target/seen.
Copy the binary to your PATH:
sudo cp compiler_seen/target/seen /usr/local/bin/seen
Or add the project directory:
export PATH="$PATH:/path/to/SeenLang/compiler_seen/target"
Create hello.seen:
fun main() {
println("Hello, Seen!")
}
Compile and run:
seen build hello.seen -o hello
./hello
Or use JIT execution (no binary produced):
seen run hello.seen
A Seen project uses Seen.toml for configuration:
my_project/
├── Seen.toml
├── src/
│ └── main.seen
└── tests/
└── test_main.seen
[project]
name = "my_project"
version = "0.1.0"
language = "en"
[registries]
default = "https://seen.yousef.codes/packages"
[dependencies]
mathx = "0.1.0"
[native.dependencies]
The language field sets the keyword language. Options: en, ar, es, ru, zh, fr.
class Counter {
var count: Int
static fun new() r: Counter {
return Counter { count: 0 }
}
fun increment() {
this.count = this.count + 1
}
fun value() r: Int {
return this.count
}
}
fun main() {
let counter = Counter.new()
var i = 0
while i < 10 {
counter.increment()
i = i + 1
}
println("Count: {counter.value()}")
}
Compile:
seen build src/main.seen -o my_project
./my_project
cd vscode-seen
npm install
npm run package
code --install-extension seen-*.vsix
The extension provides:
Seen includes a built-in language server:
seen lsp
Neovim:
require'lspconfig'.seen.setup{
cmd = {"seen", "lsp"},
filetypes = {"seen"},
root_dir = require'lspconfig.util'.root_pattern("Seen.toml", ".git"),
}
Emacs:
(lsp-register-client
(make-lsp-client :new-connection (lsp-stdio-connection '("seen" "lsp"))
:major-modes '(seen-mode)
:server-id 'seen-lsp))
The same hello world in Arabic:
دالة main() {
println("!مرحبا، سين")
}
Compile with language flag:
seen build hello_ar.seen -o hello --language ar
See Multi-Language Support for full translation tables.
