ipr
ifc-spec
ipr | ifc-spec | |
---|---|---|
4 | 6 | |
216 | 69 | |
- | - | |
5.0 | 6.0 | |
10 months ago | 7 months ago | |
C++ | TeX | |
BSD 3-clause "New" or "Revised" License | Creative Commons Attribution 4.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.
ipr
-
Module interfaces for pre-built libraries
I'm not sure about clang or gcc. For VS, u/GabrielDosReis might be able to speak to the .ifc IPR stability/volatility. My wager (deferring to him to correct me) is that the IPR is still changing over time but will stabilize more over time.
-
A new design pattern: the C++ "template mixin"
Have you had a look at its uses in the IPR interface and implementation? https://github.com/GabrielDosReis/ipr/blob/main/include/ipr/interface
-
Carbon Language: An experimental successor to C++
> C++ has virtually zero tooling
CMake, Meson, Waf, Conan, Visual Studio Code, Visual Studio, CLion, Intel VTune, GDB, LLDB, XCode, Artifactory, SonarQube, clang-tidy, clang-format, astyle, Incredibuild...
> Comparing CMake to cargo is like comparing fifth century fireworks to the Space Shuttle
You are wrong here. Cargo serves a set of fixed "this-is-how-to-do-it" thing. In C++ you can build anything. I do not mean it is better, but C++ software already exists and that is the solution that it works better for it. :)
> and the committee is not interested in ever working on that
https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p08...
Interoperability effort for modules: https://github.com/GabrielDosReis/ipr
-
I hope this would ease C++ tooling
IPR Library
ifc-spec
-
C++ Modules: The Packaging Story
There is a proposal for this: https://github.com/microsoft/ifc-spec
Only Microsoft implants that so far. I gather EDG (which powers IntelliSense) has been at least researching support for consuming IFC files.
I'm not aware of anyone sponsoring work in Clang or GCC to add IFC support.
-
Module interfaces for pre-built libraries
Note that like .lib files, you'll likely need to build and share different module binary module interface files (e.g. Visual Studio's .ifc) per architecture, since #ifdefs are resolved early. Otherwise (in theory), you could share the same BMI for different architectures since they are largely a symbol table/graph of the parsed code (higher level representation before optimizations).
-
With C++20, what replaces header-only libraries?
My hope is that the IFC format can be evolved (with community inputs) into something supported (but not necessarily required) by C++ compilers. I regard something like the IFC as a necessity for the C++ community to realize the full potential of modules.
-
is it still basically useless working with modules in g++-11?
Now, Gabriel Dos Reis has a CppCon 2021 talk describing a way compilers could communicate in enough detail such that IntelliSense, static analysis, etc. would work as expected. The file format for this mechanism is called IFC and here is the link to the relevant repo. I don't have any information about it being implemented in any compiler other than Microsoft's, but it would solve a lot of problems if it were available.
-
I hope this would ease C++ tooling
For those interested in the final pdf, here is a link to the latest release containing said pdf
What are some alternatives?
crubit
cpp-docs - C++ Documentation
DIPs - D Improvement Proposals
AStarDemo - A basic A* example ported to C++/WinRT
verdigris - Qt without moc: set of macros to use Qt without needing moc
ppm2png - Basic command line utility to convert PPM images (P3) into PNG
PythonNet - Python for .NET is a package that gives Python programmers nearly seamless integration with the .NET Common Language Runtime (CLR) and provides a powerful application scripting tool for .NET developers.
docs - conan.io reStructuredText documentation
GrayC - GrayC: Greybox Fuzzing of Compilers and Analysers for C
language - Design of the Dart language
cxx - Safe interop between Rust and C++
carbon-lang - Carbon Language's main repository: documents, design, implementation, and related tools. (NOTE: Carbon Language is experimental; see README)