borgo
bflat
borgo | bflat | |
---|---|---|
8 | 27 | |
3,443 | 3,518 | |
95.9% | 1.3% | |
7.4 | 6.9 | |
17 days ago | 3 months ago | |
Rust | C# | |
- | GNU Affero General Public License v3.0 |
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.
borgo
- A new programming language that compiles to Go
- Borgo is a programming language that compiles to Go
-
Borgo is a statically typed language that compiles to Go
See the example with the `?` operator: https://github.com/borgo-lang/borgo?tab=readme-ov-file#error...
bflat
-
Borgo is a statically typed language that compiles to Go
The sibling pretty much sums it up. But if you want more detail, read on:
Generally, there are three publishing options that each make sense depending on scenario:
JIT + host runtime: by definition portable, includes slim launcher executable for convenience, the platform for which can be specified with e.g. -r osx-arm64[0].
JIT + self-contained runtime: this includes IL assemblies and runtime together, either within a single file or otherwise (so it looks like AOT, just one bin/exe). These requires specifying RID, like in the previous option.
AOT: statically linked native binary, cross-OS compilation is not supported officially[1] because macOS is painful in general, and Windows<->Linux/FreeBSD is a configuration nightmare - IL AOT Compiler depends on Clang or MSVC and a native linker so it is subject to restrictions of those as a start. But it can be done and there are alternate, more focused toolchains, that offer it, like Bflat[1].
If you just want a hello world AOT application, then the shortest path to that is `dotnet new console --aot && dotnet publish -o {folder}`.
[0] https://learn.microsoft.com/en-us/dotnet/core/rid-catalog
[1] https://github.com/bflattened/bflat (can also build UEFI binaries, lol)
-
Learn how to build beautiful and interactive .NET command-line applications using System.CommandLine and Spectre.Console with my latest blog post
See here
-
Question about NativeAOT platform support
See B flat
-
Native AOT Overview
I've been wondering how to integrate modern .NET Core into a custom build system (buck2) and was wondering similar things. There's this project I think is cool called bflat[1] that basically makes the C# compiler more like the Go compiler in the sense it's a one-shot single-use tool that can cross compile binaries natively. It's done by one of the people on the .NET Runtime team as a side project, but quite neat.
I think in practice you're supposed to compile whole .dll's or assemblies all at once, which acts as the unit of compilation; I don't think the csharp compiler generates native object-files-for-every-.cs, the kind of approach you'd expect from javac or g++. Someone please correct me if I'm wrong though! I'd like to learn more about this.
[1] https://github.com/bflattened/bflat
-
If you were stuck on a remote island, would you pick C# as your programming language
You can compile without a GC using https://github.com/bflattened/bflat
- AOT
-
Hey people, made a game for my CS homework as a freshman using C#, what do you guys think about it?
nice. have you tried compile it using https://github.com/bflattened/bflat to have native executable? as long as you don't have PackgeReference it can be compiled using bflat instead of full dotnet
- Bflat – a single ahead of time crosscompiler and runtime for C#
-
bflat - Build native C# applications independent of .NET
The creator actually addresses this issue:
What are some alternatives?
gleam - ⭐️ A friendly language for building type-safe, scalable systems!
asdf-dotnet-core - ✨ .Net Core plugin for asdf version manager
wire - Compile-time Dependency Injection for Go
zerosharp - Demo of the potential of C# for systems programming with the .NET native ahead-of-time compilation technology.
assemblyscript - A TypeScript-like language for WebAssembly.
TinyGo - Go compiler for small places. Microcontrollers, WebAssembly (WASM/WASI), and command-line tools. Based on LLVM.
rescript-compiler - The compiler for ReScript.
dmd - dmd D Programming Language compiler
grumpy - Grumpy is a Python to Go source code transcompiler and runtime.
centos-stream
ClosedTypeHierarchyDiagnosticSuppressor - Suppresses exhaustiveness warnings for switching (switch statement or expression) on closed type hierarchies
vscodium - binary releases of VS Code without MS branding/telemetry/licensing