NHacker Next
  • new
  • past
  • show
  • ask
  • show
  • jobs
  • submit
▲C++ Insights – See your source code with the eyes of a Compiler (github.com)
tweedler290 27 minutes ago [-]
thats crazy. i made this https://github.com/oooscoos/Benzi which does the same thing but is language agnostic (supports 9 other languages). urs probs goes in deeper into c++ than mine tho
jsrcout 2 hours ago [-]
Definitely trying this out. I've always had the problem of "but what is the compiler thinking?" with C++ in particular.
alankarmisra 4 hours ago [-]
Ooo I love these things. I wrote a C++ -> Clang -> JS transpiler so I could show value change states on top of the C++ source code in html and allow people to step through the whole state change. They can also vary the input and see the values change cause the JS layer could recompute the values - which is why I bothered with the transpiling - otherwise I could have just output the state changes and parsed them as CSV for the steps. Fun project!

https://youtu.be/ZPGysUX62OY

StilesCrisis 4 hours ago [-]
I wish the readme example showed a lambda capture. Now that's where compiler magic REALLY shows up.
rramadass 3 hours ago [-]
You can see it by typing in the sample code in the tool here - https://news.ycombinator.com/item?id=49928362
2 hours ago [-]
mrlonglong 3 hours ago [-]
I second this.
WalterBright 1 hours ago [-]
[dead]
5 hours ago [-]
f1shy 2 hours ago [-]
I must be the only one who (while I like the tool) feel a little strange, somewhere between sad, angry, annoyed and disappointed (can’t really express it), that a language needs (or at least is of good use) such a tool.

Like: I wish what is the first interpretation of my code to be obvious. Is not about advanced optimization, or nitty gritty compiler tricks, is about the language. This tool is useful in any C++ compiler. How did we end with such a complex language?

I mean (sorry, very personal take) the programming language is for me a tool to help me think about a problem and its solution. In this era of LLM more than before, is not a tool to get the machine to do something, is a language for formalizing ideas, problems and solutions, like math. Should not be so obscure, that you need to be a lawyer to understand it, right? Or I am very much old and totally in the weeds with my ideas?

kccqzy 2 hours ago [-]
No a language doesn’t need it. It’s an educational tool for those new to the language or new to a particular language feature. With practice language features just become automatic so you don’t think about them when thinking about a problem.

In the README example, the C++ practitioner just doesn’t think about those automatically synthesized copy constructors and such for POD types, nor do they think about the fact that assignment is desugared to operator= or that an assignment can involve a static_cast.

f1shy 1 hours ago [-]
>> needs (or at least is of good use) such a tool.

Of course there are people who do not need that tool. The thing is, other languages doesn’t need such an explanation tool at all, is very much enough with reading a small book. I personally would like C++ to not really need it, but clearly as I stated: maybe “the only one”

esikich 2 hours ago [-]
In what language is compiling simple? Do you not like compiled languages? I'm not sure what you're complaining about here.
f1shy 1 hours ago [-]
Lisp is simple to compile. Even C (at the level this tool works anyway), also basic, and maybe other 100 languages (again, not the whole compiler, but what this tool shows).

Compilation per se is not difficult. Doing it with good error recovery, good feedback in case of error, and the optimization is difficult.

This tool does not tell me those parts (for that is gotbolt) this is about how the first layer of interpretation works, and not for making compilers, but for understanding what the code actually means, because is not obvious at first sight.

rs545837 2 hours ago [-]
I don't think it's only C++ though, Python decorators, Rust macros, almost every language's compiler write code you never see. C++ just does more of it and makes it harder to guess. Being able to look at the expanded version is useful in any language that does this.
IshKebab 2 hours ago [-]
This is what let me understand lambdas. Great tool.
rramadass 2 days ago [-]
The tool can be found at - https://cppinsights.io/
Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact
Rendered at 18:26:02 GMT+0000 (Coordinated Universal Time) with Vercel.