DEV Community

Stepan Dyatkovskiy
Stepan Dyatkovskiy

Posted on

C++ Levitation: Looking for contributors

Hi guys! I'm working on kind of alternative C++. Namely I developed alternative modularity for C++.

Here is a link:

C++ Levitation Project

About project

Main idea is to extend existing namespaces (instead of inventing alternative namespace concept, like in C++20 modules).

Another idea is to combine file system scope and module path, just like in Python, and very similar to Java.

There is a well detailed, so you can learn details there.

Currently I have implemented the compiler (customized clang + own meta driver). I have covered it with tests, and even tried some small apps with STL, and it works! I have tested it on Linux and on Mac OS.

I understand that it's kind of crazy to go against mainstream, I also understand, that even though I have tried to do my best and complete compiler itself, it is still merely a toy, just a pet project.

And yet sometimes I can't stand and return to it again and again.

Surprisingly, I found that indeed, it's easy to implement some small projects with my extension.

Why and how it was started?

When you develop on C++ it's always about some bicycle invention, we create some harness, some sort of dynamic cast and so on.

One day it struck me: dude, you have some experience in compiler development, why can't you bring all that "harness" into compiler AST level? Why not to make own syntax extension?

That was started for fun, and for fun it is. Though, there were periods, when I was working full time, full of ambitions! So I started to love that thing after all, haha!

Perhaps some of you guys would be interested to review or contribute, may be just for fun ;-)

Feel free to ask questions!

P.S.: Now it's good to create plugins for popular IDEs (CLion, Eclispe, etc). So this is my next step.


Discussion (2)

dynamicsquid profile image
DynamicSquid • Edited

Cool! How do you make your own syntax extension?

kaomoneus profile image
Stepan Dyatkovskiy Author • Edited

Hey! Sorry for late response. I used LLVM technology to write extension, I've just updated clang and added own meta-driver. Here is a full list of changes

Again, sorry for late answer after several months of silence I just didn't expect any comments.