alumina
bitloops-language
alumina | bitloops-language | |
---|---|---|
10 | 6 | |
154 | 338 | |
1.3% | 0.0% | |
4.6 | 4.4 | |
2 months ago | about 1 month ago | |
Rust | TypeScript | |
MIT License | GNU General Public License v3.0 only |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
alumina
-
Ask HN: LLVM vs. C
You can go surprisingly far with C, though LLVM is probably a better long-term option for a serious compiler, because it's a tool made for the job (unless you target exotic and/or embedded platforms that don't have LLVM support - but that's fairly unlikely).
C is very easy to get started with if you don't already know LLVM. The downside is that once your compiler is reasonably complete, you may spend quite a bit of time working around quirks of C (e.g. int promotion is very annoying when you already have full type information, so your compiler either has to understand C semantics fairly well or defensively cast every subexpression).
I have a C backend in my compiler (https://github.com/alumina-lang/alumina) and it works really well, though the generated C is really ugly and assembly-like. With #line directives, you can also get source-level debugging (gdb/lldb) that just works out of the box.
There are a few goodies that LLVM gives you that you don't get with C, like coverage (https://clang.llvm.org/docs/SourceBasedCodeCoverage.html). It works when done through clang, but easily be made to track the original sources.
- Alumina Programming Language
-
Show HN: Alumina Programming Language
Totally agreed about FFI. I wanted to make it easy to interop with C code and write expressive bindings.
Check for example the language bindings to LLVM's C API (fairly low level) and Tree-Sitter which is used internally (a bit higher level bindings)
https://github.com/tibordp/alumina/tree/master/libraries/llv...
https://github.com/tibordp/alumina/blob/master/libraries/tre...
-
Alumina programming language
However, I am not super happy with the current structure of the compiler and for the self-hosted one I'd like to fix those mistakes. For example, mono.rs is a giant module that does everything from mixin expansion, lowering from AST to IR, type checking and monomorphization. There are some bugs in Alumina that are quite hard to fix without a big refactoring (e.g. if a nested function binds generic parameters of the parent) and I'd like to get it right the next time around.
bitloops-language
- Next generation software development platform with its own programming language. Write code and get visual overview of how your app is structured!
- Bitloops Language is now available on GitHub! Bitloops Language is a free, open source programming language that helps you build better quality software. Follow industry best practices and learn about Hexagonal Architecture, DDD, CQRS and more!
- A new DDD-focused programming language to make good software design and testing easier. What are your thoughts?
- Should we add Rust as a target language?
- Do you think Go transpilation should be something that we should prioritize?
-
Show HN: Alumina Programming Language
We are building a new language that is not for fun and we have thought of this important issue. We solve it with a Package Ports and Package Adaptors. The Bitloops Language (BL) is a transpiled language with support for only TypeScript at the moment. Nonetheless, if it picks up we will be adding support for Java, C#, and C++ so that people can leverage their investments in their existing packages.
https://github.com/bitloops/bitloops-language
What are some alternatives?
llvm-cbe - resurrected LLVM "C Backend", with improvements
frontend_with_cleanArchitecture - ⛩ Simple frontend Todo app with clean architecture
tree-sitter-visitor - Procedural macro for generating a visitor trait for Tree Sitter Rust bindings
ai-study-planner - AI Study Planner using Next.js 13, Google PaLM API and TailwindCSS
readable-tests-by-example - Project that was used to demonstrate how to write tests that can serve as living code documentation. (DDD, Hexagonal Architecture, DSL, BDD)
testeranto - ATDD typescript tests
TSCPL - Moved to https://codeberg.org/mdwalters/TSCPL
modular-monolith-with-ddd - Full Modular Monolith application with Domain-Driven Design approach.
domain-driven-hexagon - Learn Domain-Driven Design, software architecture, design patterns, best practices. Code examples included
typescript-ddd-example - 🔷🎯 TypeScript DDD Example: Complete project applying Hexagonal Architecture and Domain-Driven Design patterns