Rendered at 17:35:58 GMT+0000 (Coordinated Universal Time) with Cloudflare Workers.
Panzerschrek 12 hours ago [-]
> mcpp.toml ← project manifest
It's a fatal flaw. A declarative language isn't powerful enough to be able to describe complexity of typical C++ project. That's why cmake language (Turing-complete) exists.
sunrisepeak 11 hours ago [-]
Design Idea: Simple is better. Easy is better. (complexity shoude be gradual for devolper)
mcpp use `mcpp.toml + build.mcpp` model to describe a project (like cargo/zig)
so mcpp target is manage toolchain/package and easy to new / build / run / describe for project.
C++23/26 is simply, but run a helloworld(by `import std`) program is difficult. mcpp can do it. dont need to config any, dont need to know compiler what is. focus on program itself
```
mcpp new hello && cd hello && mcpp run
```
of course, it can also use `mcpp toolchain list` to choose gcc/llvm/msvc/mingw
(Test on Ubuntu 24 / default gcc 16 by mcpp auto-install)
However, it must be acknowledged that `mcpp` is an early-stage project, and you may encounter some issues (include library ecosystem) ,feel free reply or create issue or talk with me.
derriz 10 hours ago [-]
What sort of C++ project requires general recursion to describe its build process? I could imagine a compile step not terminating - due to some crazy template meta-programming glitch but the build system itself? The output of a compile or link operation (or preprocess or source generation step) has a distinctly different type to that of its input - so I don’t see how a potentially infinite chain of build operations can be constructed from these build steps?
It's a fatal flaw. A declarative language isn't powerful enough to be able to describe complexity of typical C++ project. That's why cmake language (Turing-complete) exists.
mcpp use `mcpp.toml + build.mcpp` model to describe a project (like cargo/zig)
- 90+% project -> mcpp.toml
- other complex project -> mcpp.toml + build.mcpp (C++ / Turing-complete)
so mcpp target is manage toolchain/package and easy to new / build / run / describe for project.
C++23/26 is simply, but run a helloworld(by `import std`) program is difficult. mcpp can do it. dont need to config any, dont need to know compiler what is. focus on program itself
```
mcpp new hello && cd hello && mcpp run
```
of course, it can also use `mcpp toolchain list` to choose gcc/llvm/msvc/mingw
Example: mcpp already support complex projects - opencv / grpc / ffmpeg
```
mcpp new mygrpc_demo --template grpc:greeter && cd mygrpc_demo && mcpp run
```
https://github.com/mcpplibs/grpc-m // use build.mcpp to codegen
(Test on Ubuntu 24 / default gcc 16 by mcpp auto-install)
However, it must be acknowledged that `mcpp` is an early-stage project, and you may encounter some issues (include library ecosystem) ,feel free reply or create issue or talk with me.