- Organisation: CERN-HSF
- Student: Vaibhav Garg
- Mentors: Vassil Vasilev, Bertrand Bellenot.
ROOT has several features that interact with libraries and require implicit header inclusion. This can be triggered by reading or writing data on disk, or user actions at the prompt. Exposing the full shared library descriptors to the interpreter at runtime translates into an increased memory footprint. ROOT’s exploratory programming concepts allow implicit and explicit runtime shared library loading. It requires the interpreter to load the library descriptor. Re-parsing of descriptors’ content has a noticeable effect on runtime performance. C++ Modules are designed to minimize the reparsing of the same header content by providing an efficient on-disk representation of the C++ Code. C++ Modules had already been implemented for Unix and OS X systems. This project aimed to extend the C++ Modules support for Windows.
- Enable the std module on Windows.
- ROOT's Core suite builds and works on Windows with Modules enabled.
- ROOT builds and works on Windows with Modules enabled with flag -Droottest=Off.
- ROOT builds and works on Windows with Modules enabled. (65% tests passing)
-
Pull Requests:
- Update clingUtils/CMakeLists.txt to copy module.modulemap in cling includes for Windows. #5086
- Remove duplicate include of subdirectory builtins/glew. #5525
- Backport D51910 and add stub windows modulemaps. #5294
- Create vcruntime.modulemap for use in Windows. #5586
- Fix std and libc modules on Windows. #5610
- Make xtimec.h and xthreads.h textual in std_msvc.modulemap. #5622
- Fix Core.pcm on Windows. #5636
- Fix Thread.pcm on Windows. #5681
- Remove Cling as a dependency of win32gdk. #5796
- Fix MathCore.pcm build on Windows. #5800
- Fix NO_CXXMODULE handling logic for dependencies. #5903
- Add missing header TEveVector.h in Eve module. #6042
- Fix libary path of modules for Windows. #6043
- Teach DLM to recognise symbols in COFF Object Files. #6154
- Configure tests for modules on Windows. #6179
- Shift to standard C++ filestreams when generating _rdict files. #6184
- Rename -fmodule-map-file flag to -moduleMapFile. #6227
- Backport D83174 - Teach AttachPreviousImpl to inherit MSInheritanceAttr attribute. #6245
-
LLVM Reviews:
Presentation for the work done: http://bit.ly/Vaibhav_GSoC