Skip to content

Getting Started

jj edited this page Aug 23, 2026 · 3 revisions

πŸš€ Getting Started with Sere

From your first .sere file to your first native executable.

Welcome to Sere.

If you've already read Home, you know the basic idea:

Python-like syntax. Static types. Native code. Low-level control.

This page gets you from zero to a working Sere program.


πŸ“‹ What You'll Learn

By the end of this guide, you'll know how to:

  • πŸ› οΈ Set up the Sere toolchain

  • πŸ“ Create a Sere project

  • ✍️ Write your first .sere program

  • πŸ”¨ Compile Sere source

  • ▢️ Run a Sere program

  • 🧠 Use variables and types

  • 🧩 Define functions

  • πŸ“¦ Work with collections

  • πŸ—οΈ Define structs

  • πŸ§ͺ Analyze your code

  • βš™οΈ Understand what happens during compilation


πŸ› οΈ Prerequisites

Sere is currently developed around a native LLVM-based toolchain.

The compiler development environment currently targets:

Dependency | Version -- | -- CMake | 3.28+ Ninja | 1.11+ Visual Studio Build Tools | 2022 LLVM | 22.1.8

For the complete CLI reference, see Compiler CLI.


πŸ“ Creating a Project

Once you've moved beyond a single file, use the project tooling.

Create a project:

sere init myapp

Enter it:

cd myapp

Build it:

sere build

Run it:

sere run

Clean generated files:

sere clean

This gives larger Sere applications a consistent project workflow instead of requiring every project to invent its own build process.


🧭 Where to Go Next

You've now seen the basic shape of Sere.

From here, pick your path.

🟒 Learn the Language

If you're here to write Sere:

πŸ”΅ Build Applications

If you're ready to make something:

🟣 Hack on Sere

If you're here to work on the compiler:


🎯 Your First Challenge

Try building this yourself:

struct Person:
    name: str
    age: i32

def introduce(person: Person) -> void: print(f"Hello, I'm {person.name} and I'm {person.age} years old.")

def main() -> i32: person = Person("Ada", 36)

introduce(person)

return 0</code></pre><p>Compile it.</p><p>Run it.</p><p>Then start changing it.</p><p>Add another field.</p><p>Add another function.</p><p>Create a list of people.</p><p>Experiment.</p><p>That's where Sere starts becoming more than syntax.</p><hr><h1>πŸͺΆ What's Next?</h1><p>You've got the basics.</p><p>Now it's time to learn <strong>how Sere actually works</strong>.</p><p>β†’ [[Language Reference]]</p><p>Or, if compiler internals are more your thing:</p><p>β†’ [[Architecture]]</p><blockquote><p><strong>Welcome to Sere.</strong></p><p><strong>Now go build something.</strong></p></blockquote></body></html><!--EndFragment-->

Clone this wiki locally