You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Haskell and OCAML have an edge on C++ tooling in that they can reason about side effects with the operating system.
This is especially important in compiling C++ to newer architectures like FPGAs where IO can be very costly, or when reasoning about program security.
std::experimental::decl_io(expr)
It would return an operating system defined struct. The struct could be as simple as an enum of {PURE, IMPURE, UNKNOWN}; or detailed information of which files/memory locations could be modified.
Another thing the C++ standard could do is define a format for linker metadata files similar Haskell's ".hi" files, so side effects can be reasoned about across precompiled libraries without recompilation; or a standard interface to such a file so operating systems can decide their own linker metadata formats.
The text was updated successfully, but these errors were encountered:
This issue list is for editorial defects in the current working draft. For proposals to change the language itself, please visit www.isocpp.org, and https://isocpp.org/std in particular.
Thank you for the clarification. Know of any work on formal verification of the declytype() specification? Throwing https://embed.cs.utah.edu/csmith/ expressions into decltype() may yield some very interesting edge cases.
@chadbrewbaker: I'm afraid that a) I don't know anything about that, and b) this is not a good forum for this at all, since nobody really comes here looking for those kind of discussions. I recommend the mailing lists referred from the isocpp website I mentioned above; those seem like a good place.
Haskell and OCAML have an edge on C++ tooling in that they can reason about side effects with the operating system.
This is especially important in compiling C++ to newer architectures like FPGAs where IO can be very costly, or when reasoning about program security.
It would return an operating system defined struct. The struct could be as simple as an enum of {PURE, IMPURE, UNKNOWN}; or detailed information of which files/memory locations could be modified.
Another thing the C++ standard could do is define a format for linker metadata files similar Haskell's ".hi" files, so side effects can be reasoned about across precompiled libraries without recompilation; or a standard interface to such a file so operating systems can decide their own linker metadata formats.
The text was updated successfully, but these errors were encountered: