Skip to content

Astrahelm/Neoluma

Repository files navigation

Neoluma Neoluma

Neoluma (from et.: gr. neo- & lat. -lumen, aka "New Light") is a multi-level, general-purpose programming language designed to be a language for everything. Whether you're crafting a quick script on your knee or developing a large operating system, Neoluma is made with developer experience in mind. Featuring a clean, Python-JS-like syntax with the structure and power of C++ & C# - it's expressive, efficient, and built for modern development.

| Website | License | Discord |

✨ Features

  • Clean, modern syntax inspired by Python, JavaScript, and C#
  • Static typing with type inference for simplicity and safety
  • Rich type system, including a custom fixed-point number type, plus int, float, bool, string, set, dict, array, result, and more
  • Powerful decorators like @entry, @comptime, @unsafe, and others
  • Flexible preprocessor directives for low-level and modular control:
    • #import — import local or external modules (e.g., C++ bindings)
    • #unsafe — enable pointer operations
    • #macro — define macros for compile-time logic
  • Built-in async/await for concurrency
  • Compile-time evaluation and an evolving macro system (WIP)
  • Configurable memory managementautomatic or manual, your choice
  • Cross-platform compilation with LLVM backend for native performance
  • IDE support (planned) — syntax highlighting, debugging, and project tools

📃 File Formats

  • .nmNeoluma Module: source code
  • .nlpNeoluma Project: project structure/configuration
project_name/
├── main.nm
├── utils.nm
└── project.nlp

🧩 Example

@entry
fn main() {
    name = "Neoluma";
    print("Hello, ${name}!")
}

If the function doesn't have a return type, it is void by default — no return required.

⌨️ Usage (planned CLI)

neoluma build project.nlp #compiled way
neoluma run main.nm #interpreted way

🗺️ Roadmap

  • Lexer
  • Parser
  • Semantic Analyzer
  • LLVM IR Compiler [In progress]
  • CLI Toolchain
  • Cross-platform support (Linux / Windows / macOS / Android / iOS / etc.)
  • Plugin system and editor integration
  • Transpilation support (C++, JS, etc.)

🕶️ Vision

Neoluma aims to be a unified language that bridges low-level control and high-level productivity. It is designed for:

  • Systems programming (including OS kernels)
  • Cross-platform apps and utilities
  • Educational tools and experimentation
  • Scripting with performance
  • Future self-hosting development

🚦 Status

Neoluma is in early development. Contributions and feedback are welcome!

🔧 Building from source

Neoluma can be built from cloned source via building scripts.

It doesn't require much input aside from just running the script. Usage:

./build.<ext> [release|debug] [neoluma|payload|installer|all] [--no-install (available only on Unix)]

It generates the full installation output at ./.build/.runtime/[Debug|Release]/

📖 Credits

Created by TsukimotoX under Astrahelm Project and Apache License.

Neoluma™ is a trademark of the Neoluma project; the name and branding are not granted under the Apache-2.0 license.

More documentation and compiler features coming soon! Join our Discord server!

Help us translate Neoluma to other languages via our Crowdin!

This project uses LLVM under the Apache License v2.0 with LLVM Exceptions.

About

Neoluma is a multi-level general purpose programming language designed to be a language for everything.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Contributors