eb0cfb3bf2
Exception specifications are useless for production code, but make for useful assertions in dbgutil builds (on platforms where they are enforced at runtime). Because we do not have API tests that exhaustively trigger all documented error conditions, much less the undocumented or wrongly handled error conditions that would cause the implementation to violate its API specification, there is likely some benefit in having these runtime-checked specifications in debug builds, in the hope that our various tests which may incidentally call various API methods, or general soffice usage, uncovers these bugs. Also, there may be some benefit to making API implementers more aware of the exception specifications, to quote Stephan's mail: To be able to programmatically react to an exception raised by a UNO method (which is the raison d'être of non-runtime UNO exceptions), the specification of that method must document the method's behavior with respect to raising that exception, and any implementation of the method must adhere to that specification. However, with that part of a UNO method's interface moved out of sight of a programmer writing a C++ implementation of that method, I fear that adherence to specification will degrade in practice. And that negatively affects an area where we do not shine anyway: reaction to errors. This partially reverts commits: |
||
---|---|---|
.. | ||
inc/codemaker | ||
prj | ||
source | ||
test/javamaker | ||
Executable_cppumaker.mk | ||
Executable_javamaker.mk | ||
Makefile | ||
Module_codemaker.mk | ||
Package_inc.mk | ||
README | ||
StaticLibrary_codemaker.mk | ||
StaticLibrary_codemaker_cpp.mk | ||
StaticLibrary_codemaker_java.mk |
UNO interface declaration/stub generators for: - C++: cppumaker generates headers (.hpp and .hdl files) that provide the UNO API C++ binding - Java: javamaker generates class files that provide the JVM UNO API binding - the one for .Net is in module cli_ure Note the different terminology used by cppumaker vs. gbuild for the three variants that can be generated by cppumaker for some of the inline functions: (10:21:49) sberg: tml_, switch: -L; cpputype.cxx: light; gbuild: normal (10:22:02) sberg: tml_, switch: none; cpputype.cxx: normal; gbuild: bootstrap (10:22:20) sberg: tml_, switch: -C; cpputype.cxx: comprehensive; gbuild: comprehensive (10:22:45) sberg: ...a recipe for confusion