2
0
Fork 0
mirror of https://github.com/Astrahelm/Neoluma.git synced 2026-09-28 04:31:49 +00:00
Neoluma is a multi-level general purpose programming language designed to be a language for everything. https://neoluma.dev
  • C++ 94.6%
  • Shell 1.7%
  • Python 1.7%
  • CMake 1.5%
  • Batchfile 0.5%
Find a file
2026-09-26 22:49:10 +03:00
.idea Initial commit 2026-06-21 17:53:30 +03:00
deprecated/src Lexer, ErrorManager, cleanup 2026-09-26 22:49:10 +03:00
resources Lexer, ErrorManager, cleanup 2026-09-26 22:49:10 +03:00
src/Neoluma.Compiler Lexer, ErrorManager, cleanup 2026-09-26 22:49:10 +03:00
TestProject Middleend: IRGenerator and Optimizer (#22) 2026-06-21 17:11:59 +03:00
tests/Neoluma.Tests JSON done, finally... wait where was i? 2026-08-27 16:12:05 +03:00
.gitignore and that 2026-07-20 15:30:26 +03:00
CONTRIBUTORS.md Middleend: IRGenerator and Optimizer (#22) 2026-06-21 17:11:59 +03:00
FirstAlphaSpecification.md Middleend: IRGenerator and Optimizer (#22) 2026-06-21 17:11:59 +03:00
LICENSE Merge from main to semantic analysis branch so i didn't have to deal with outdated translations mid-coding (#17) 2026-01-02 22:21:48 +03:00
neoluma.png Website! 2025-10-09 19:20:46 +03:00
Neoluma.slnx testing suite added 2026-07-20 15:29:33 +03:00
neoluma.svg new logo + errormanager 2025-10-07 13:26:56 +03:00
neoluma_full.png Neoluma's full title and wordmark images are added. Minor changes to code. 2026-03-14 21:06:34 +03:00
neoluma_full.svg Neoluma's full title and wordmark images are added. Minor changes to code. 2026-03-14 21:06:34 +03:00
neoluma_wordmark.png Neoluma's full title and wordmark images are added. Minor changes to code. 2026-03-14 21:06:34 +03:00
neoluma_wordmark.svg Neoluma's full title and wordmark images are added. Minor changes to code. 2026-03-14 21:06:34 +03:00
README.md . 2026-08-27 20:27:08 +03:00
Specification.md parser: integrate ASTBuilder and nodes; helper & projectmanager tweaks 2025-11-13 22:47:23 +03:00
TRADEMARK.md Merge from main to semantic analysis branch so i didn't have to deal with outdated translations mid-coding (#17) 2026-01-02 22:21:48 +03:00

Neoluma

(from et.: gr. neo- & lat. -lumen, aka "New Light")

A statically typed, multi-paradigm, general-purpose programming language supporting both compiled and interpreted execution, with high-level ergonomics and low-level control, designed to be a language for everything.

Neoluma aims to be a unified language that bridges low-level control and high-level ergonomics. 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
  • ...and a lot more things, that modern languages can do everyday.

Neoluma is in early development, though, and not many features are available. Contributions and feedback are welcome!

✨ Features

  • Clean, modern syntax - inspired by Python, Typescript, and C#;
  • Static typing with optional type inference - for simplicity and safety;
  • Rich type system - such as integers, floating-point and fixed-point numbers, booleans, strings, arrays, sets, dictionaries, error-catching result and more;
  • Powerful decorators like @entry, @comptime, @unsafe, and others;
  • Flexible preprocessor directives for low-level and modular control:
    • #import - import internal or external modules, even from other languages! (e.g., C++ bindings);
    • #unsafe - enable low-level 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 management - automatic or manual, with borrow checker or not, you choose! (from what is available, of course);
  • Cross-platform compilation with LLVM backend - allows for native performance and ability to run anywhere;
  • IDE support - syntax highlighting, debugging, and project tools, to make development more enjoyable and efficient.

📃 File Formats

  • .nm — Neoluma Module: source code
  • .nlp — Neoluma Project: project structure/configuration
project/
├── main.nm
├── utils.nm
└── project.nlp

🧩 Example

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

Important

If the function doesn't have a return type, it is void by default — no return required. Also, if a function has an @entry decorator, the program starts with it's execution, otherwise it will search for main().

$ neoluma run main.nm         # Run it the interpreted way to check
Hello, Neoluma!
$ neoluma build project.nlp   # or compile it as an executable!
...

🗺️ 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.)

🔧 Building from source

Neoluma can be built from cloned source via dotnet command. Just use dotnet build in the root directory to build your branch!

📖 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!

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