• Edward Z. Yang's avatar
    Make all of TH and THC C++. (#6913) · 4caea64d
    Edward Z. Yang 提交于
    Changelist:
    
    - Move *.c to *.cpp
    - Change includes of ".c" to ".cpp"
    - A bunch of cmake configuration modifying CMAKE_C_FLAGS changed
    to CMAKE_CXX_FLAGS or add_compile_options, because if you do CMAKE_C_FLAGS it only applies when you compile C code
    - Explicitly cast void* to T* in a number of places
    - Delete extern "C" { ... } blocks; instead, properly apply TH_API to everything that should have it (TH_API handles extern "C")
    - Stop using stdatomic.h, instead, use <atomic>. This resulted in a bunch of placement-new/delete to be "totally properly correct"
    - Refactor of THLongStorageView to not have static constructor methods (since it no longer has a copy/move constructor)
    - Documentation about how the TH C interface (and extern C business) works
    - Note that THD master_worker mode is dead
    - C++ headers in TH libraries are given .hpp suffix, to make it less likely that you'll confuse them with the C-compatible headers (now suffixed .h)
    - New function THCStream_stream and THCStream_device to project out fields of THCStream instead of accessing fields directly
    - New function THStorage_(retainIfLive), which is equivalent to a retain but only if the refcount is greater than zero.
    - In general, I tried to avoid using hpp headers outside of ATen/TH. However, there were a few places where I gave up and depended on the headers for my own sanity. See Note [TH abstraction violation] for all the sites where this occurred. All other sites were refactored to use functions
    - Some extra Werror fixes (char* versus const char*)
    4caea64d
README.txt 703 字节