Skip to content

C# Rewrite: From walking on nails to walking on trails#27

Open
TsukimotoX wants to merge 4 commits into
mainfrom
csharp-rewrite
Open

C# Rewrite: From walking on nails to walking on trails#27
TsukimotoX wants to merge 4 commits into
mainfrom
csharp-rewrite

Conversation

@TsukimotoX

Copy link
Copy Markdown
Collaborator

C# Rewrite: From walking on nails to walking on trails

For over 1.5 years, Neoluma has been made on a language called C++, due to it being light, powerful, efficient, the author was learning it and LLVM had the best compatibility with it.

But over the course of recent months, the project received a massive stagnation hit due to the fact that C++ is... very outdated, and unnecessarily fights you if you want to change something. And after another burnt out session, niceEli's suggestion and additional research, it has been decided.

Neoluma will be rewritten in C# programming language

This pull request will lead the global language rewrite, trying to make the compiler writing process much more pleasing, while not losing any efficiency or features. It will use a couple technologies, such as NativeAOT and LLVMSharp to achieve the required results, and much more if something gets changed mid progress.

There will be no AI involved in this rewrite, only for googling what are the c# alternatives to some features. I am quite rusty when it comes to C#, max what i made is some light game engine and something on Unity. We'll see how that goes.

P.S. also Copilot please don't do anything, just, no comment no anything. you're not permitted to do anything with this repository going forward.

# Conflicts:
#	deprecated/CMakeLists.txt
#	deprecated/CMakePresets.json
#	deprecated/build.bat
#	deprecated/build.sh
#	deprecated/crowdin.yml
#	deprecated/resources/app.icns
#	deprecated/resources/app.ico
#	deprecated/resources/app.rc
#	deprecated/run.bat
#	deprecated/src/CLI/CLI.cpp
#	deprecated/src/CLI/CLI.hpp
#	deprecated/src/CLI/CLIHelperFunctions.cpp
#	deprecated/src/CLI/CLIHelperFunctions.hpp
#	deprecated/src/CLI/LicenseTemplates/Apache.txt
#	deprecated/src/CLI/LicenseTemplates/BSDv2Simplified.txt
#	deprecated/src/CLI/LicenseTemplates/BSDv3NewRevised.txt
#	deprecated/src/CLI/LicenseTemplates/BoostV1.txt
#	deprecated/src/CLI/LicenseTemplates/CC0v1.txt
#	deprecated/src/CLI/LicenseTemplates/EclipseV2.txt
#	deprecated/src/CLI/LicenseTemplates/GNUAGPLv3.txt
#	deprecated/src/CLI/LicenseTemplates/GNUGPLv2.txt
#	deprecated/src/CLI/LicenseTemplates/GNUGPLv3.txt
#	deprecated/src/CLI/LicenseTemplates/GNULGPLv2_1.txt
#	deprecated/src/CLI/LicenseTemplates/MIT.txt
#	deprecated/src/CLI/LicenseTemplates/MozillaV2.txt
#	deprecated/src/CLI/LicenseTemplates/Unlicense.txt
#	deprecated/src/Core/Compiler.cpp
#	deprecated/src/Core/Compiler.hpp
#	deprecated/src/Core/Extras/ErrorManager/ErrorManager.cpp
#	deprecated/src/Core/Extras/ErrorManager/ErrorManager.hpp
#	deprecated/src/Core/Extras/ProjectManager/ProjectManager.hpp
#	deprecated/src/Core/Frontend/Lexer/Lexer.cpp
#	deprecated/src/Core/Frontend/Lexer/Lexer.hpp
#	deprecated/src/Core/Frontend/Nodes.cpp
#	deprecated/src/Core/Frontend/Nodes.hpp
#	deprecated/src/Core/Frontend/Orchestrator/Orchestrator.cpp
#	deprecated/src/Core/Frontend/Orchestrator/Orchestrator.hpp
#	deprecated/src/Core/Frontend/Parser/ASTBuilder.hpp
#	deprecated/src/Core/Frontend/Parser/Parser.cpp
#	deprecated/src/Core/Frontend/Parser/Parser.hpp
#	deprecated/src/Core/Frontend/SemanticAnalysis/SemanticAnalysis.cpp
#	deprecated/src/Core/Frontend/SemanticAnalysis/SemanticAnalysis.hpp
#	deprecated/src/Core/Frontend/Token.cpp
#	deprecated/src/Core/Frontend/Token.hpp
#	deprecated/src/Core/Middleend/IRGenerator/IRGenerator.cpp
#	deprecated/src/Core/Middleend/IRGenerator/IRGenerator.hpp
#	deprecated/src/HelperFunctions.cpp
#	deprecated/src/HelperFunctions.hpp
#	deprecated/src/IntrinsicModules/std/LICENSE
#	deprecated/src/IntrinsicModules/std/src/fs.nm
#	deprecated/src/IntrinsicModules/std/src/io.nm
#	deprecated/src/IntrinsicModules/std/src/iter.nm
#	deprecated/src/IntrinsicModules/std/src/math.nm
#	deprecated/src/IntrinsicModules/std/src/random.nm
#	deprecated/src/IntrinsicModules/std/src/time.nm
#	deprecated/src/IntrinsicModules/std/std.nlp
#	deprecated/src/Libraries/Asker/Asker.cpp
#	deprecated/src/Libraries/Asker/Asker.hpp
#	deprecated/src/Libraries/Color/Color.cpp
#	deprecated/src/Libraries/Color/Color.hpp
#	deprecated/src/Libraries/Json/Json.cpp
#	deprecated/src/Libraries/Json/Json.hpp
#	deprecated/src/Libraries/Json/JsonGet.hpp
#	deprecated/src/Libraries/Localization/Localization.cpp
#	deprecated/src/Libraries/Localization/Localization.hpp
#	deprecated/src/Libraries/Paths/Paths.cpp
#	deprecated/src/Libraries/Paths/Paths.hpp
#	deprecated/src/Libraries/Toml/Toml.cpp
#	deprecated/src/Libraries/Toml/Toml.hpp
#	deprecated/src/Libraries/Utils/Types/Array.hpp
#	deprecated/src/Libraries/Utils/Types/Hashmap.hpp
#	deprecated/src/Libraries/Utils/Types/String.cpp
#	deprecated/src/Libraries/Utils/Types/String.hpp
#	deprecated/src/Libraries/Utils/Utils.hpp
#	deprecated/src/Localization/CLI/ar_SA.jsonc
#	deprecated/src/Localization/CLI/de_DE.jsonc
#	deprecated/src/Localization/CLI/en_US.jsonc
#	deprecated/src/Localization/CLI/it_IT.jsonc
#	deprecated/src/Localization/CLI/ru_RU.jsonc
#	deprecated/src/Localization/ErrorManager/en_US.jsonc
#	deprecated/src/Localization/ErrorManager/ru_RU.jsonc
#	deprecated/src/Localization/Libraries/ar_SA.jsonc
#	deprecated/src/Localization/Libraries/de_DE.jsonc
#	deprecated/src/Localization/Libraries/en_US.jsonc
#	deprecated/src/Localization/Libraries/ru_RU.jsonc
#	deprecated/src/main.cpp
#	deprecated/tests/.gitignore
#	deprecated/tests/README.md
#	deprecated/tests/cases/orchestrator/invalid/empty_project/expect.json
#	deprecated/tests/cases/orchestrator/invalid/import_alias_conflict_native_resolved/bar.nm
#	deprecated/tests/cases/orchestrator/invalid/import_alias_conflict_native_resolved/expect.json
#	deprecated/tests/cases/orchestrator/invalid/import_alias_conflict_native_resolved/foo.nm
#	deprecated/tests/cases/orchestrator/invalid/import_alias_conflict_native_resolved/main.nm
#	deprecated/tests/cases/orchestrator/invalid/no_entrypoint/expect.json
#	deprecated/tests/cases/orchestrator/invalid/no_entrypoint/main.nm
#	deprecated/tests/cases/parser/invalid/malformed_array/expect.json
#	deprecated/tests/cases/parser/invalid/malformed_array/main.nm
#	deprecated/tests/cases/parser/invalid/malformed_dict/expect.json
#	deprecated/tests/cases/parser/invalid/malformed_dict/main.nm
#	deprecated/tests/cases/parser/invalid/malformed_set/expect.json
#	deprecated/tests/cases/parser/invalid/malformed_set/main.nm
#	deprecated/tests/cases/parser/valid/decorator_entry/expect.json
#	deprecated/tests/cases/parser/valid/decorator_entry/main.nm
#	deprecated/tests/cases/semantic/invalid/break_outside_loop/expect.json
#	deprecated/tests/cases/semantic/invalid/break_outside_loop/main.nm
#	deprecated/tests/cases/semantic/invalid/const_reassignment/expect.json
#	deprecated/tests/cases/semantic/invalid/const_reassignment/main.nm
#	deprecated/tests/cases/semantic/invalid/continue_outside_loop/expect.json
#	deprecated/tests/cases/semantic/invalid/continue_outside_loop/main.nm
#	deprecated/tests/cases/semantic/invalid/duplicate_parameter/expect.json
#	deprecated/tests/cases/semantic/invalid/duplicate_parameter/main.nm
#	deprecated/tests/cases/semantic/invalid/return_outside_function/expect.json
#	deprecated/tests/cases/semantic/invalid/return_outside_function/main.nm
#	deprecated/tests/cases/semantic/invalid/undefined_function/expect.json
#	deprecated/tests/cases/semantic/invalid/undefined_function/main.nm
#	deprecated/tests/cases/semantic/invalid/undefined_variable/expect.json
#	deprecated/tests/cases/semantic/invalid/undefined_variable/main.nm
#	deprecated/tests/runner/testrunner.py
@TsukimotoX TsukimotoX self-assigned this Jun 21, 2026
Copilot AI review requested due to automatic review settings June 21, 2026 15:09
@TsukimotoX TsukimotoX added documentation Improvements or additions to documentation enhancement New feature or request dependencies Pull requests that update a dependency file labels Jun 21, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR introduces a new deprecated/ subtree that snapshots the legacy (C++) Neoluma implementation along with build scripts, localization assets, and a regression test suite, while removing older example/IDE artifacts.

Changes:

  • Adds the legacy C++ compiler sources, build tooling (CMake + scripts), and resources under deprecated/.
  • Adds a regression test suite scaffold under deprecated/tests/ (cases + runner + README).
  • Removes example.nm and the IntelliJ module file (.idea/neoluma.iml).

Reviewed changes

Copilot reviewed 1 out of 123 changed files in this pull request and generated no comments.

Show a summary per file
File Description
.idea/neoluma.iml Removed IDE module file
example.nm Removed language example file
deprecated/build.bat Windows build script
deprecated/build.sh Unix build script
deprecated/CMakeLists.txt CMake build configuration
deprecated/CMakePresets.json CMake presets
deprecated/crowdin.yml Localization tooling config
deprecated/run.bat Windows run script
deprecated/resources/app.icns App icon resource
deprecated/resources/app.ico App icon resource
deprecated/resources/app.rc Windows resource script
deprecated/src/HelperFunctions.cpp Shared helper implementations
deprecated/src/HelperFunctions.hpp Shared helper declarations/templates
deprecated/src/main.cpp Legacy CLI entry point
deprecated/src/CLI/CLI.cpp CLI implementation
deprecated/src/CLI/CLI.hpp CLI declarations
deprecated/src/CLI/CLIHelperFunctions.cpp CLI helper implementations
deprecated/src/CLI/CLIHelperFunctions.hpp CLI helper declarations
deprecated/src/CLI/LicenseTemplates/Apache.txt License template
deprecated/src/CLI/LicenseTemplates/BoostV1.txt License template
deprecated/src/CLI/LicenseTemplates/BSDv2Simplified.txt License template
deprecated/src/CLI/LicenseTemplates/BSDv3NewRevised.txt License template
deprecated/src/CLI/LicenseTemplates/CC0v1.txt License template
deprecated/src/CLI/LicenseTemplates/EclipseV2.txt License template
deprecated/src/CLI/LicenseTemplates/GNUAGPLv3.txt License template
deprecated/src/CLI/LicenseTemplates/GNUGPLv2.txt License template
deprecated/src/CLI/LicenseTemplates/GNUGPLv3.txt License template
deprecated/src/CLI/LicenseTemplates/GNULGPLv2_1.txt License template
deprecated/src/CLI/LicenseTemplates/MIT.txt License template
deprecated/src/CLI/LicenseTemplates/MozillaV2.txt License template
deprecated/src/CLI/LicenseTemplates/Unlicense.txt License template
deprecated/src/Core/Compiler.cpp Compiler orchestration logic
deprecated/src/Core/Compiler.hpp Compiler API
deprecated/src/Core/Extras/ErrorManager/ErrorManager.cpp Error reporting + JSON output
deprecated/src/Core/Extras/ErrorManager/ErrorManager.hpp Error reporting API
deprecated/src/Core/Extras/ProjectManager/ProjectManager.hpp Project manager API
deprecated/src/Core/Extras/LangPacks/filler Placeholder file
deprecated/src/Core/Backend/Codegen/filler Placeholder file
deprecated/src/Core/Middleend/Optimizer/filler Placeholder file
deprecated/src/Core/Middleend/IRGenerator/IRGenerator.cpp IR generation implementation
deprecated/src/Core/Middleend/IRGenerator/IRGenerator.hpp IR generation API
deprecated/src/Core/Frontend/Nodes.cpp AST node implementations
deprecated/src/Core/Frontend/Nodes.hpp AST node declarations
deprecated/src/Core/Frontend/Token.cpp Token implementation
deprecated/src/Core/Frontend/Token.hpp Token declarations
deprecated/src/Core/Frontend/Lexer/Lexer.cpp Lexer implementation
deprecated/src/Core/Frontend/Lexer/Lexer.hpp Lexer declarations
deprecated/src/Core/Frontend/Orchestrator/Orchestrator.cpp Module orchestration implementation
deprecated/src/Core/Frontend/Orchestrator/Orchestrator.hpp Module orchestration API
deprecated/src/Core/Frontend/Parser/ASTBuilder.hpp Parser AST builder
deprecated/src/Core/Frontend/Parser/Parser.cpp Parser implementation
deprecated/src/Core/Frontend/Parser/Parser.hpp Parser declarations
deprecated/src/Core/Frontend/SemanticAnalysis/SemanticAnalysis.cpp Semantic analysis implementation
deprecated/src/Core/Frontend/SemanticAnalysis/SemanticAnalysis.hpp Semantic analysis API
deprecated/src/Libraries/Asker/Asker.cpp Interactive input library
deprecated/src/Libraries/Asker/Asker.hpp Interactive input API
deprecated/src/Libraries/Color/Color.cpp Console color helpers
deprecated/src/Libraries/Color/Color.hpp Console color API
deprecated/src/Libraries/Json/Json.cpp JSON implementation
deprecated/src/Libraries/Json/Json.hpp JSON API
deprecated/src/Libraries/Json/JsonGet.hpp JSON access helpers
deprecated/src/Libraries/Localization/Localization.cpp Localization runtime
deprecated/src/Libraries/Localization/Localization.hpp Localization API
deprecated/src/Libraries/Paths/Paths.cpp Path resolution logic
deprecated/src/Libraries/Paths/Paths.hpp Path resolution API
deprecated/src/Libraries/Toml/Toml.cpp TOML parsing
deprecated/src/Libraries/Toml/Toml.hpp TOML API
deprecated/src/Libraries/Utils/Utils.hpp Utility header
deprecated/src/Libraries/Utils/Types/Array.hpp Custom Array type
deprecated/src/Libraries/Utils/Types/Hashmap.hpp Custom Hashmap type
deprecated/src/Libraries/Utils/Types/String.cpp Custom String implementation
deprecated/src/Libraries/Utils/Types/String.hpp Custom String API
deprecated/src/IntrinsicModules/std/LICENSE Std module license
deprecated/src/IntrinsicModules/std/std.nlp Std module project file
deprecated/src/IntrinsicModules/std/src/fs.nm Std module source
deprecated/src/IntrinsicModules/std/src/io.nm Std module source
deprecated/src/IntrinsicModules/std/src/iter.nm Std module source
deprecated/src/IntrinsicModules/std/src/math.nm Std module source
deprecated/src/IntrinsicModules/std/src/random.nm Std module source
deprecated/src/IntrinsicModules/std/src/time.nm Std module source
deprecated/src/Localization/CLI/ar_SA.jsonc CLI localization
deprecated/src/Localization/CLI/de_DE.jsonc CLI localization
deprecated/src/Localization/CLI/en_US.jsonc CLI localization
deprecated/src/Localization/CLI/it_IT.jsonc CLI localization
deprecated/src/Localization/CLI/ru_RU.jsonc CLI localization
deprecated/src/Localization/ErrorManager/en_US.jsonc Error localization
deprecated/src/Localization/ErrorManager/ru_RU.jsonc Error localization
deprecated/src/Localization/Libraries/ar_SA.jsonc Library localization
deprecated/src/Localization/Libraries/de_DE.jsonc Library localization
deprecated/src/Localization/Libraries/en_US.jsonc Library localization
deprecated/src/Localization/Libraries/ru_RU.jsonc Library localization
deprecated/tests/.gitignore Test temp output ignore rules
deprecated/tests/README.md Test runner documentation
deprecated/tests/runner/testrunner.py Regression runner script
deprecated/tests/cases/orchestrator/invalid/empty_project/expect.json Orchestrator fixture
deprecated/tests/cases/orchestrator/invalid/import_alias_conflict_native_resolved/main.nm Orchestrator fixture
deprecated/tests/cases/orchestrator/invalid/import_alias_conflict_native_resolved/foo.nm Orchestrator fixture
deprecated/tests/cases/orchestrator/invalid/import_alias_conflict_native_resolved/bar.nm Orchestrator fixture
deprecated/tests/cases/orchestrator/invalid/import_alias_conflict_native_resolved/expect.json Orchestrator fixture
deprecated/tests/cases/orchestrator/invalid/no_entrypoint/main.nm Orchestrator fixture
deprecated/tests/cases/orchestrator/invalid/no_entrypoint/expect.json Orchestrator fixture
deprecated/tests/cases/parser/valid/decorator_entry/main.nm Parser fixture
deprecated/tests/cases/parser/valid/decorator_entry/expect.json Parser fixture
deprecated/tests/cases/parser/invalid/malformed_array/main.nm Parser fixture
deprecated/tests/cases/parser/invalid/malformed_array/expect.json Parser fixture
deprecated/tests/cases/parser/invalid/malformed_dict/main.nm Parser fixture
deprecated/tests/cases/parser/invalid/malformed_dict/expect.json Parser fixture
deprecated/tests/cases/parser/invalid/malformed_set/main.nm Parser fixture
deprecated/tests/cases/parser/invalid/malformed_set/expect.json Parser fixture
deprecated/tests/cases/semantic/invalid/undefined_variable/main.nm Semantic fixture
deprecated/tests/cases/semantic/invalid/undefined_variable/expect.json Semantic fixture
deprecated/tests/cases/semantic/invalid/undefined_function/main.nm Semantic fixture
deprecated/tests/cases/semantic/invalid/undefined_function/expect.json Semantic fixture
deprecated/tests/cases/semantic/invalid/return_outside_function/main.nm Semantic fixture
deprecated/tests/cases/semantic/invalid/return_outside_function/expect.json Semantic fixture
deprecated/tests/cases/semantic/invalid/duplicate_parameter/main.nm Semantic fixture
deprecated/tests/cases/semantic/invalid/duplicate_parameter/expect.json Semantic fixture
deprecated/tests/cases/semantic/invalid/continue_outside_loop/main.nm Semantic fixture
deprecated/tests/cases/semantic/invalid/continue_outside_loop/expect.json Semantic fixture
deprecated/tests/cases/semantic/invalid/const_reassignment/main.nm Semantic fixture
deprecated/tests/cases/semantic/invalid/const_reassignment/expect.json Semantic fixture
deprecated/tests/cases/semantic/invalid/break_outside_loop/main.nm Semantic fixture
deprecated/tests/cases/semantic/invalid/break_outside_loop/expect.json Semantic fixture
Files not reviewed (1)
  • .idea/neoluma.iml: Generated file

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file documentation Improvements or additions to documentation enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants