|
1 |
| -<!--- |
2 |
| - Copyright (c) 2018-2020 Steven Varga, Toronto,ON Canada |
3 |
| - Author: Varga, Steven <[email protected]> |
4 |
| ----> |
5 | 1 |
|
6 |
| -Source code transformation tool for HDF5 dataformat H5CPP header only library |
7 |
| ----------------------------------------------------------------------------------------------------- |
| 2 | +[](https://github.com/vargaconsulting/h5cpp-compiler/actions/workflows/ci.yml) |
| 3 | +[](https://codecov.io/gh/vargaconsulting/h5cpp-compiler) |
| 4 | +[](LICENSE) |
| 5 | +[](https://doi.org/10.5281/zenodo.17069343) |
| 6 | + |
| 7 | +[](https://github.com/vargaconsulting/h5cpp-compiler/releases) |
| 8 | +[](https://vargaconsulting.github.io/h5cpp-compiler) |
| 9 | + |
| 10 | +# Source code transformation tool for HDF5 dataformat H5CPP header only library |
| 11 | +## Build Matrix |
| 12 | + |
| 13 | +| OS / Compiler | GCC 13 | GCC 14 | GCC 15 | Clang 14 | Clang 15 | Clang 17 | |
| 14 | +|---------------|-------------|-------------|-------------|---------------|---------------|---------------| |
| 15 | +| Ubuntu 22.04 |![gcc13][200]|![gcc14][201]|![gcc15][202]|![clang14][210]|![clang15][211]|![clang17][212]| |
| 16 | +| Ubuntu 24.04 |![gcc13][300]|![gcc14][301]|![gcc15][302]|![clang14][310]|![clang15][311]|![clang17][312]| |
| 17 | +| macOS |![gcc13][600]|![gcc14][601]|![gcc15][602]|![clang14][610]|![clang15][611]|![clang17][612]| |
| 18 | +| Windows |![gcc13][700]|![gcc13][701]|![gcc13][702]|![clang14][710]|![clang15][711]|![clang17][712]| |
| 19 | + |
8 | 20 |
|
9 | 21 | This source code transformation tool simplifies the otherwise time consuming process of generating the shim code for HDF5 Compound datatypes by building the AST of a given TU translation unit, and identifying all POD datatypes referenced from H5CPP operators/functions.
|
10 | 22 | The result is a seamless persistence much similar to python, java or other reflection based languages.
|
@@ -68,64 +80,34 @@ namespace sn {
|
68 | 80 | /* END IGNORED STRUCTS */
|
69 | 81 | ```
|
70 | 82 |
|
71 |
| -Install: |
72 |
| ----------- |
73 |
| -Only **LLVM 6.0 is supported**, to compile from source you need both the llvm and clang-dev package installed: |
74 |
| -``` |
75 |
| -sudo apt install llvm-6.0 llvm-6.0-dev libclang-6.0-dev # 640MB space needed |
76 |
| -make && make install # compile the source code transforation tool |
77 |
| -``` |
78 |
| -optionally you can remove the development libraries, and install only the runtime |
79 |
| -``` |
80 |
| -sudo apt purge llvm-6.0 libllvm-6.0-dev libclang-6.0-dev # remove development libraries |
81 |
| -sudo apt install libllvm6.0 libclang-common-6.0-dev # install runtime dependencies |
82 |
| -``` |
83 |
| -
|
84 |
| -Caveat: |
85 |
| -------- |
86 |
| -All LLVM version other than 6.0 is failing, or crashing including the clang++ chain. This is being investigated, and once resolved this message |
87 |
| -will be removed. |
88 |
| -
|
89 |
| -Usage: |
90 |
| -------- |
91 |
| -`h5cpp your_translation_unit.cpp -- -v $(CXXFLAGS) -Dgenerated.h` |
92 |
| -will run the compiler front end on the specified input, and outputs the necessary HDF5 type descriptors, or |
93 |
| -the error message if any. |
| 83 | +<!-- Ubuntu 22.04 --> |
| 84 | +[200]: https://vargaconsulting.github.io/h5cpp-compiler/badges/ubuntu-22.04-gcc-13.svg |
| 85 | +[201]: https://vargaconsulting.github.io/h5cpp-compiler/badges/ubuntu-22.04-gcc-14.svg |
| 86 | +[202]: https://vargaconsulting.github.io/h5cpp-compiler/badges/ubuntu-22.04-gcc-15.svg |
| 87 | +[210]: https://vargaconsulting.github.io/h5cpp-compiler/badges/ubuntu-22.04-clang-14.svg |
| 88 | +[211]: https://vargaconsulting.github.io/h5cpp-compiler/badges/ubuntu-22.04-clang-15.svg |
| 89 | +[212]: https://vargaconsulting.github.io/h5cpp-compiler/badges/ubuntu-22.04-clang-17.svg |
94 | 90 |
|
| 91 | +<!-- Ubuntu 24.04 --> |
| 92 | +[300]: https://vargaconsulting.github.io/h5cpp-compiler/badges/ubuntu-24.04-gcc-13.svg |
| 93 | +[301]: https://vargaconsulting.github.io/h5cpp-compiler/badges/ubuntu-24.04-gcc-14.svg |
| 94 | +[302]: https://vargaconsulting.github.io/h5cpp-compiler/badges/ubuntu-24.04-gcc-15.svg |
| 95 | +[310]: https://vargaconsulting.github.io/h5cpp-compiler/badges/ubuntu-24.04-clang-14.svg |
| 96 | +[311]: https://vargaconsulting.github.io/h5cpp-compiler/badges/ubuntu-24.04-clang-15.svg |
| 97 | +[312]: https://vargaconsulting.github.io/h5cpp-compiler/badges/ubuntu-24.04-clang-17.svg |
95 | 98 |
|
| 99 | +<!-- macOS latest --> |
| 100 | +[600]: https://vargaconsulting.github.io/h5cpp-compiler/badges/macos-latest-gcc-13.svg |
| 101 | +[601]: https://vargaconsulting.github.io/h5cpp-compiler/badges/macos-latest-gcc-14.svg |
| 102 | +[602]: https://vargaconsulting.github.io/h5cpp-compiler/badges/macos-latest-gcc-15.svg |
| 103 | +[610]: https://vargaconsulting.github.io/h5cpp-compiler/badges/macos-latest-clang-14.svg |
| 104 | +[611]: https://vargaconsulting.github.io/h5cpp-compiler/badges/macos-latest-clang-15.svg |
| 105 | +[612]: https://vargaconsulting.github.io/h5cpp-compiler/badges/macos-latest-clang-17.svg |
96 | 106 |
|
97 |
| -[hdf5]: https://support.hdfgroup.org/HDF5/doc/H5.intro.html |
98 |
| -[1]: http://en.cppreference.com/w/cpp/container/vector |
99 |
| -[2]: http://arma.sourceforge.net |
100 |
| -[4]: https://support.hdfgroup.org/HDF5/doc/RM/RM_H5Front.html |
101 |
| -[5]: https://support.hdfgroup.org/HDF5/release/obtain5.html |
102 |
| -[6]: http://eigen.tuxfamily.org/index.php?title=Main_Page |
103 |
| -[7]: http://www.boost.org/doc/libs/1_65_1/libs/numeric/ublas/doc/matrix.htm |
104 |
| -[8]: https://julialang.org/ |
105 |
| -[9]: https://en.wikipedia.org/wiki/Sparse_matrix#Compressed_sparse_row_.28CSR.2C_CRS_or_Yale_format.29 |
106 |
| -[10]: https://en.wikipedia.org/wiki/Sparse_matrix#Compressed_sparse_column_.28CSC_or_CCS.29 |
107 |
| -[11]: https://en.wikipedia.org/wiki/List_of_numerical_libraries#C++ |
108 |
| -[12]: http://en.cppreference.com/w/cpp/concept/StandardLayoutType |
109 |
| -[40]: https://support.hdfgroup.org/HDF5/Tutor/HDF5Intro.pdf |
110 |
| -[99]: https://en.wikipedia.org/wiki/C_(programming_language)#Pointers |
111 |
| -[100]: http://arma.sourceforge.net/ |
112 |
| -[101]: http://www.boost.org/doc/libs/1_66_0/libs/numeric/ublas/doc/index.html |
113 |
| -[102]: http://eigen.tuxfamily.org/index.php?title=Main_Page#Documentation |
114 |
| -[103]: https://sourceforge.net/projects/blitz/ |
115 |
| -[104]: https://sourceforge.net/projects/itpp/ |
116 |
| -[105]: http://dlib.net/linear_algebra.html |
117 |
| -[106]: https://bitbucket.org/blaze-lib/blaze |
118 |
| -[107]: https://github.com/wichtounet/etl |
119 |
| -[200]: http://h5cpp.org/md__home_steven_Documents_projects_h5cpp_profiling_README.html |
120 |
| -[201]: http://h5cpp.org/examples.html |
121 |
| -[202]: http://h5cpp.org/modules.html |
122 |
| -[305]: md__home_steven_Documents_projects_h5cpp_docs_pages_compiler_trial.html#link_try_compiler |
123 |
| -[400]: https://www.meetup.com/Chicago-C-CPP-Users-Group/events/250655716/ |
124 |
| -[401]: https://www.hdfgroup.org/2018/07/cpp-has-come-a-long-way-and-theres-plenty-in-it-for-users-of-hdf5/ |
125 |
| -[999]: http://h5cpp.org/cgi/redirect.py |
126 |
| -[301]: http://h5cpp.org/md__home_steven_Documents_projects_h5cpp_docs_pages_conversion.html |
127 |
| -[302]: http://h5cpp.org/md__home_steven_Documents_projects_h5cpp_docs_pages_exceptions.html |
128 |
| -[303]: http://h5cpp.org/md__home_steven_Documents_projects_h5cpp_docs_pages_compiler.html |
129 |
| -[304]: http://h5cpp.org/md__home_steven_Documents_projects_h5cpp_docs_pages_linalg.html |
130 |
| -[305]: http://h5cpp.org/md__home_steven_Documents_projects_h5cpp_docs_pages_install.html |
131 |
| -[400]: http://h5cpp.org/md__home_steven_Documents_projects_h5cpp_docs_pages_error_handling.html |
| 107 | +<!-- Windows (clang & gcc) --> |
| 108 | +[700]: https://vargaconsulting.github.io/h5cpp-compiler/badges/windows-latest-gcc-13.svg |
| 109 | +[701]: https://vargaconsulting.github.io/h5cpp-compiler/badges/windows-latest-gcc-14.svg |
| 110 | +[702]: https://vargaconsulting.github.io/h5cpp-compiler/badges/windows-latest-gcc-15.svg |
| 111 | +[710]: https://vargaconsulting.github.io/h5cpp-compiler/badges/windows-latest-clang-14.svg |
| 112 | +[711]: https://vargaconsulting.github.io/h5cpp-compiler/badges/windows-latest-clang-15.svg |
| 113 | +[712]: https://vargaconsulting.github.io/h5cpp-compiler/badges/windows-latest-clang-17.svg |
0 commit comments