fut
fut copied to clipboard
Write Ć in Ć
I think it is cool.
Actually, this is a really nice idea: so cito could have bootstrapping backends when being transpiled to quite a lot of languages.
Yes, that's the plan!
I'd love to have cito
:
- without the dependency on .NET
- running right in your browser
I've made some progress already: added HashSet
and Stack
collections, refactored cito
to avoid boxing.
Cool. :-)
As I wrote in discussion: before writing Ć in Ć , can make C#-> Ć transpiler. People which can much C# code will possibility convert it to Ć before convert to other languages.
Current status: lexer fully ported to Ć, most of the AST and the parser ported to Ć.
Current status: the AST and the parser ported to Ć, the semantic pass partially ported.
- without the dependency on .NET
Maybe using .NET NativeAOT is a simpler way to get rid of the dependency on .NET (it compiles C# to native binary code and does not need .NET dependency to run the compiled program).
- running right in your browser
.NET has an experimental NativeAOT-LLVM compiler to target the wasm platform.
Yes, but a .NET NativeAOT binary is going to be tens of megabytes and slower than Ć transpiled to C++. Also, since Ć is about portability between programming languages, it just doesn't look good to rely on .NET for a cross-platform transpiler.
During the rewrite, I added several features to Ć. They will be useful in many other projects.
Current status:
- Semantic analysis ported - covered by "CiCheck" tests for Java and JavaScript.
- The remaining part are backends - started.
Current status: all backends ported, but with some native
C# blocks.
Great news: we have cito
in C++! It passes all the tests and runs much faster than the C# version.
Next steps:
- Test on macOS and Linux
- Add CI tests
- Continue porting to browser JavaScript
- Update the docs
- Release 3.0.0 with native binaries for Windows/macOS/Linux
Test on macOS and Linux
Works fine with gcc 13 on Fedora 38. xcode on macOS doesn't implement enough C++20. @pdelewski How to install gcc 13?
Add CI tests
GitHub Actions and Travis only support Ubuntu up to 22.04. I can't find gcc 13 or clang 16 packages for it.
Continue porting to browser JavaScript
make -j8 test CITO="node cito.js"
passes all the tests. :)
@pfusik I was installing via brew install gcc
13 is the latest version
@pfusik On Ubuntu 22.04 I built GCC 13 from sources, but that probably won't work in CI.
sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
sudo apt install g++-13
The language is now fully implemented in itself, except for I/O. Native binaries for Windows, macOS and Linux can be built with C++20 compilers. A release is coming soon. The transpiler also works in browser JavaScript. It will be present on the language website. And the C#-hosted transpiler continues to work, but is less performant than the C++ version.
I'd like to enable the transpilation to Java for an IntelliJ IDEA plugin. It will probably need small changes in the Java backend (Java doesn't support constant case
with a when
clause).
You can now run fut
in your browser: https://fusion-lang.org
4K monitor strongly recommended.