Skip to content

Commit

Permalink
latest from CODA-OSS (#740)
Browse files Browse the repository at this point in the history
* restore C++17

* Squashed 'externals/coda-oss/' changes from e87c32b4d..5f858856e

5f858856e match code from 'main'
885e02a95 Merge branch 'main' into cpp17
168cbae01 reduce differences between 'main' and 'cpp17' (#724)
436289c92 GCC 11 matches RH devtoolset-11
2a1ea98fb use GCC 10 on build server
ba9851db6 restore C++17
5b892bf5f release 2023-08-18 (#723)
0b1327d1e restore mem::AutoPtr; too much of a hassle moving it to numpyutils :-( (#722)
7691adb56 normalize line endings (#721)
b7d50efdd update to HDF5 1.14.2 (#720)
fcc96ec69 Update .gitattributes (#719)
bb82a94c9 xerces-c 3.2.4 (#718)
ef4ad7cf3 Update to e2fsprogs 1.47.0 (#717)
b4ca18a11 fix compiler warning about order of operations
a5df5b823 update to HighFive 2.7.1 (#716)
4109ee5d2 `mem::AutoPtr` is only for Python bindings (#715)
00d843f87 remove hdf5.lite (#714)
443dd3825 Reduce compiler warnings, speed up builds (#713)
d60861821 get optional working with partial C++17 (#712)
d5bd0d804 "warning STL4036: <ciso646> is removed in C++20."
c19ece7f9 Don't interfere with a partial C++20 implementation (#711)
065e86ddc operator==() for QName (#710)
1c16380ce remove zint* typedefs; don't want to encourage use of types::Complex (#709)
6dd247991 our optional<> is now closer to C++17 (#708)
87ac61739 strict checking on `std::complex<T>` is too much of a hassle for now
034d52c86 overloads to byte-swap type::Complex are too much trouble (#707)
42d449c33 sys::byteSwap overloads for types::Complex<T> (#705)
4092fd8e7 remove work-around for NITRO bug (#704)
e2472acfc build in NITRO and SIX (#703)
32ccf9105 Use same build paths as Visual Studio (#701)
366ac9f43 Another round of removing compiler warnings (#702)
a7f8ef260 Fix compile warnings from building CODA (#700)
f70b4202f account for coda-oss.vcxproj being in other SLNs
af3faebfc Remove more compiler/code-analysis warnings (#699)
82be2a6db unittests should work w/o install (#698)
dbb90a06d add msbuild for coda-oss.sln (#697)
5a417140a reduce compiler warnings (#696)
288619dfa all modules now part of coda-oss.vcxproj (#695)
c2fc5fc66 add more projects to coda-oss-lite.vcxproj (#694)
ceb86c186 support $(PlatformToolset) as a "special" environment variable (#693)
d78a8595a OS::getSIMDInstructionSet() utility (#692)
2d2df467d fix `python3 waf dumplib`
54033e70e Merge branch 'main' into feature/complex_short
3c63f9f65 std::numbers from C++20 (#691)
892dd0e00 ComplexInteger and ComplexReal to better match existing naming conventions (#690)
b3872181e match coda-oss naming conventions (#688)
704d6867f beef-up our complex type (#687)
47c1c1cd6 check is_absolute() for URLs (#686)
c042373e1 be sure our Path::isAbolute() matches std::filesystem::path::absolute() (#684)
ad10286bc volatile is about "special" memory, not threading (#685)
f4d42005f fix build error in NITRO
ff11a5557 keep using std::complex<short> for now (#682)
c88b9c053 types::complex<T> (#681)
d1244a080 don't need our own make_unique in C++14 (#680)
aeec0131c assert()s for mem::CopyablePtr (#679)
72b0ebd60 add types::complex_short (#678)
932130a58 patch to build other projects
c00c1f203 coda-oss release 2023-06-06 (#677)
ef54bbcd5 remove more compiler warnings (#676)
dadfc5ce6 distinguish between byte-swapping a buffer and single value (#674)
90187f6cd more xml.lite tweaks for SIDD-3.0/ISM (#675)
eb9960772 stronger type-checking for byteSwap() (#673)
ff4f820ed xml.lite tweaks to support SIDD 3.0 ISM (#672)
b1de8c0e5 std::byte should be a unique type (#671)
c05bf9a02 allow enums to be byte-swapped too
1f9fd88d6 remove spurious
47684c45b byteSwap now uses byte buffers (#670)
cbc659db2 add swapBytes() utility from SIX (#669)
891481b64 simplify byte-swapping (#668)
540ae763e more byteSwap() tweaks
0774c03c4 threaded byteSwap() (#667)
d156370d3 swapping a single-byte value makes no sense
c120e3255 be sure parameter is used to avoid compiler warning
e85ec9331 --output-on-failure for CTest (#666)
e80376197 turn off "there is no warning number" warning
c5f0a5d15 A C-string may not be NULL-terminated (#665)
0c5eb29ae use platform-specific routines for byteSwap() (#664)
0b7d581fa remove transform_async() (#663)
f6489b6be Merge branch 'main' into feature/xml.lite_tweaks
836c426a2 use function-pointers so that isConsoleOutput is only checked once
56e3c45b1 move depthPrint() functionality into non-member function in preparation for future changes
ddcd26d97 Merge branch 'main' into feature/xml.lite_tweaks
69cc0e506 use the more rigorous create_and_check_datatype()
9efb87558 Merge branch 'main' into feature/hdf5
4d2f2f417 more HighFive unittests (#662)
14191a844 HighFive::create_datatype() goes from C++ to HighFive
98583473f utility routines to read string attributes
1fa75ce81 use the C API to read a string attribute
71e7b69f5 still can't figure out how to read a string attribute :-(
e96f37a69 test reading the file attributes
a25244519 getAttribute() unittest
8f12a3000 getDataType() unittest
857ff0af3 HighFive utility routines (#661)
1d687db57 writeDataSet() utility overload
106aa6894 sigh ... H5Easy::dump() fill fails on Windows/WAF :-(
2641b60b2 Merge branch 'main' into feature/hdf5
35c19e7e8 change actions to @v3 (#660)
212bbd3a3 works on local machine, but not build server ... ?
7125118b0 dump of 1D vector doesn't work :-(
c704db435 sigh ... WAF build still failing :-(
01aae4616 does dump() of a 1D vector work?
76a53c813 comment-out H5 writing :-(
0f0e19aff test_highfive_dump()
cb8f73795 trying to get highfive_dump() unittest working w/Windows-WAF
6584a264a does test_highfive_create() work?
cde6147ce tweak HighFive wrappers (#659)
316566854 Revert "trying HighFive "write" unittests again"
a9ec24ca4 trying HighFive "write" unittests again
585ad49a5 tweak names of utility routines
4c91a4d97 make it easier to read a std::vector and std::vecotr<std::vector>
0217ffa26 readDataSet() now works for 1D data
95e8973f2 trying to get hdf5::lite::load() working
4d294611d "const" correctness
5e6305c3f fix load_complex()
4a134dc5f start work on utility routines to read complex data from HDF5
9d76a7f41 Merge branch 'main' into feature/hdf5
8f9667a24 whitepsace
ebd3fc99e Merge branch 'main' into feature/hdf5
40091b069 comment-out writing tests for now ... need to figure our WAF bulid failure
935aa3459 be sure the dataset has real data
114b9bf33 update release notes
bd9c0b26c tweak HighFive utility routines
acda1ef57 turn off diagnostics around expected failures
22a748840 readDataSet() utility routine for HighFive
bd88a8c25 HighFive writeDataSet() utility to work with our SpanRC
6142f5b33 use HighFive routines to write a HDF5 file
5bbf1abaf Use HiveFive routines to get info about the file
84fbc8378 duplicate unittests with H5Easy
f1f054c03 Merge branch 'main' into feature/hdf5
9b63ca470 fix directory names
f6f826689 fix directory names
7aeb82c33 Merge branch 'main' into feature/hdf5
d028baaeb hook up HighFive header-only library (#653)
3083b0a31 Revert "HighFive 2.6.2"
246985a7f Revert ""build" HighFive HDF5 library"
a8b75a586 Revert "turn off HighFive Boost support"
ec68d5f83 Revert "Add HighFive unittests"
f1f85b9e7 Revert "get test_high_five_base more-or-less compiling"
5ea634ee1 Revert "more work on getting HighFive unittests to build"
ecc45433c more work on getting HighFive unittests to build
bb194788a get test_high_five_base more-or-less compiling
d42bde000 Add HighFive unittests
ddc86bb32 turn off HighFive Boost support
b255122d4 "build" HighFive HDF5 library
396cc3ef2 HighFive 2.6.2
5e5f9d9c0 Merge branch 'main' into feature/hdf5
ee938b4a5 changes from SIX
bb764df90 Merge branch 'main' into feature/xml.lite_tweaks
de2a24380 make derived classes 'final' if possible
14e19bcd2 Change xml lite function to virtual (#645)
8f42ac8e9 Merge branch 'main' into feature/xml.lite_tweaks
18ad90645 hdf5Write unittest
3462e1179 createFile() and writeFile() overloads
ecee81d53 fix typos
197eecfa6 sketch-out hdf5::lite::writeFile()
bd2311795 use SpanRC for writeFile(), not yet implemented
ea9af7510 simple SpanRC to hold a 2D-size and pointer
027c19ee8 createFile() unittest
1f9d07ecb hook up createFile()
8c7e4473f start hooking up HDF5 writing
146e0bea3 Merge branch 'main' into feature/hdf5
88ca9fcb7 Merge branch 'main' into feature/hdf5
42b604b46 Squashed commit of the following:
10ee602c2 Merge branch 'main' into feature/hdf5
67aa42b69 restore changes from "main"
8bbfcbfbf unittests can be simplified to match fewer "view" classes
126bb802e Merge branch 'main' into feature/hdf5
3f8ba7a42 again, don't need a class just to convert from std::vector<> to std::span<>
24c2b489c Squashed commit of the following:
2703c119d Squashed commit of the following:
9d5228a2b don't need an entire class just to convert a std::vector<> into std::span<>
51bc931dc Merge branch 'main' into feature/hdf5
a84f25816 Squashed commit of the following:
c4d2ed696 add missing #include guards, fix type in existing #include guard
d541525a0 use a single ComplexViewConstIterator for all views
86e6a459f CODA_OSS_disable_warning causes GCC errors :-(
5d4b9c2cb only need an custom iterator for ComplexSpansView
d9f0fb128 hook up iterators
b9329e4db initial pass at a ComplexViewConstIterator
635238873 remove compiler warning about unused "constexpr" variables
b39f6096f use the casing from H5 to make copy/pasting code slightly easier
0887b13eb Merge branch 'main' into feature/hdf5
bd07df1ca Consistent casing for Dataset, Datatype, Dataspace
7acd30ee2 tweak hdf5.lite dependencies
38ab914df Jupyter notebook for creating H5 files
95a040e0b _small.h5 is now (correctly) FLOAT32
107e7c487 make a simple values() member function to avoid template magic
e1feca919 use TEST_SPECIFIC_EXCEPTION macro instead of try/catch
738333688 readDatasetT() now throws for the wrong buffer type
6b2cc2529 Merge branch 'feature/hdf5' of github.com:mdaus/coda-oss into feature/hdf5
310f8fd3d can't get template magic right for copy_axis()
86b306d59 stepping through copy ctors in the debugger is annoying
f243e92d6 trying to make wrong type of buffer fail
2b10d9652 read in new sample file
a28e59d8c help the compiler with type deduction
49bf5e9bc nested_complex_float_data_small.h5
e029325fc utility routines to "deconstruct" and array of std::complex
dede3bd39 Merge branch 'main' into feature/hdf5
904b1ef5e tweak class names, make_() and copy() utility routines
8237b9efb make it harder to pass the wrong types to ComplexViews
4d9aeda2c ComplexArrayView and ComplexParallelView utility classes
f5e367dfa test std::span<const std::complex<float>>
a4a2844f2 read in the nested "i" and "r" data
115615265 sample file has subgroups
8e1b7869a Merge branch 'feature/hdf5' of github.com:mdaus/coda-oss into feature/hdf5
9f4232a1d update sample H5 file
8c55db73a walk through HDF5 sub-groups
7775ed9c4 Update 123_barfoo_catdog_cx.h5
677975d7c Matlab code to create sample H5 file
a0e7dfe07 Update test_hdf5info.cpp
0b67e1602 pass __FILE__ and __LINE__ from calling site for a more accurate exception message
86a677321 skeleton for more sample data
85f79b099 Merge branch 'main' into feature/hdf5
18088e942 Merge branch 'main' into feature/hdf5
3a1d17692 Merge branch 'main' into feature/hdf5
1755c69d7 Merge branch 'main' into feature/hdf5
9ad015432 No more "11" suffix on exception names
c20d96251 Squashed commit of the following:
c88cee999 other values to be filled-in
bca4a4ecd incorporation NamedObject from HDF5 docs
61fa68f72 groupInfo()
460e7d766 datasetInfo()
14eb9b764 start filling in DatasetInfo
afe5f1c3a start to fill in DatasetInfo
77a968c72 start filling in GroupInfo
d81bcdfd9 openGroup() to open groups (loc)
a0cd29469 comment-out "dataset" unittest for now
86e006024 begin filling in FileInfo
366dda6ab a return_type_of utility is needed to deduce the return type
e21928263 explicitly pass return type to template
4937ccd11 template to reduce boilerplate when calling try_catch_H5Exceptions
b3b5ebde7 use new exception utility routines
ea1c03ef0 put exception handling/conversion in a utility routine
819a99d39 utility routine for exception handling
6f34eea97 put utilities in a separate file for easier reuse
fcbde4f24 break utility routines into smaller pieces for easier reuse
52358ea8a WIN32 no longer automatically defined?
5a4286472 Revert "build HDF5 with C89"
680e599e9 build HDF5 with C89
a87a07121 Merge branch 'main' into feature/hdf5
8447c1a90 Revert "sym-links instead of copying files"
db3b5e12b Merge branch 'main' into feature/xml.lite_tweaks
fb60b5696 Merge branch 'main' into feature/hdf5
5110a5cc8 Comments about _u and _q
1a937d32c Merge branch 'main' into feature/xml.lite_tweaks
fa06f04d7 get ready for hdf5.lite enhancdements
b040c7c43 sym-links instead of copying files
aa431bb47 use _u for xml::lite::Uri
3d0c6d58c fix case-sensitive #include filename
93dcd0e52 operator() for getElementByName()
75a93af85 more operator[] overloads to make attribute management easier
4ab8216f8 user-defined string literals to remove some noise around xml::lite::QName
f82f0b0fc Merge branch 'main' into feature/xml.lite_tweaks
ae30e3644 Merge branch 'feature/xml.lite_tweaks' of github.com:mdaus/coda-oss into feature/xml.lite_tweaks
ffdd9beb0 simplify attribute creation
9bf5414f5 simplify attribute creation
82d7a4e95 SWIG gets confused about namespaces
7a61d0741 fix bug on Element ctor uncovered by unittest
fdd7e58c1 QName is also in the xerces namespace which confuses SWIG bindings
a325b7053 operator+=() overload for addChild
daf30e6c0 Merge branch 'feature/xml.lite_tweaks' of github.com:mdaus/coda-oss into feature/xml.lite_tweaks
b887d2b47 provide overloads for Element& rather than creating new "reference" types
1fa6bba38 rename test_xmleasy.cpp
7c8c9e0f1 += overload
850da6f63 overload for std::string
4547fc5a7 use UIT-8 strings for characterData
4723462a3 convenient addChild() overloads
e48720753 copy over ElementReference from xml.easy
a4ca30a0d Merge branch 'main' into feature/xml.lite_tweaks
6ae9f0b71 Revert "check-in of new xml.easy (to move code between computers)"
f7466a6d7 Revert "simple routines for single element"
a5490230d Revert "make some operators simplier ways of calling functions"
c9a25630a Revert "get document creation working"
8af8710b0 Revert "free functions instead of member functions"
16c3847cb Revert "ElementReference distinct from Element"
7d68e156f Revert "ElementMutableReference"
00eb2a282 Merge branch 'main' into feature/xml.lite_tweaks
a42969c1f ElementMutableReference
a20ae9355 ElementReference distinct from Element
14eeeea0b free functions instead of member functions
4aae014b3 get document creation working
883569269 make some operators simplier ways of calling functions
053bd1212 simple routines for single element
8bf701a2e check-in of new xml.easy (to move code between computers)
41f959051 unittests for creating XML documents from scratch
9752d50ae Merge branch 'main' into feature/xml.lite_tweaks
1531d5709 by default, don't validate strings passed to Uri()
46d13d4bf Merge branch 'master' into feature/xml.lite_tweaks
39b547d32 remove more vestiges of Expat and LibXML
ec8274d52 remove LibXML and Expat as they're no longer used/supported.
20eeefeef Merge branch 'master' into feature/xml.lite_tweaks
95074b9b1 update for newer Intel compiler
7024f71e1 Merge branch 'master' into feature/xml.lite_tweaks
57b1cbc83 Merge branch 'master' into feature/xml.lite_tweaks
4b67561c3 remove validate() overload that nobody is using
fa15f1e5d Squashed commit of the following:
1484a9090 test the new validate() API
470da70fb hookup StringStreamT routines
2cddf2504 begin hooking up validate() overloads
1b5d910f3 overload validate() for UTF-8 and Windows-1252
03309b8c9 Squashed commit of the following:
b72c6c5bf older compiler doesn't like our make_unique
af8f00307 validate UTF-8 XML on Linux
211188613 unit-test for LEGACY XML validation
3c1169d2b Squashed commit of the following:
3afff19ca std::filesystem::path for FileInputStreamOS
908d452f8 WIP: validate all of our sample XML files
00f9bb16b validate against a XML schema
243d8c356 Merge branch 'master' into feature/xml.lite_tweaks
2815d707d fix to work with SWIG bindings. :-(
460862132 trying (again) to remove vestiages of old code
e3c83a858 Revert "new code should use UTF-8"
811207c92 new code should use UTF-8
0ffd835f9 Squashed commit of the following:
1e7e03ded Merge branch 'master' into feature/xml.lite_tweaks
c1d806aff Merge branch 'master' into feature/xml.lite_tweaks
850d3c811 str::strip() that can be easier to use than str::trim()
580ba9c8c explicitly =delete move
2b39831a8 Squashed commit of the following:
39eebdc23 Merge branch 'master' into feature/xml.lite_tweaks
9adf86cba force calling new UTF-8 write() routines
ea61b6204 Merge branch 'master' into feature/xml.lite_tweaks
8a34583fa overload to take schemaPaths as filesystem::path
8671b442f parse XML embedded in a binary file
ec4a902f1 updates from xerces.lite
80dc4d963 updates from xerces.lite
549766d6c Attributes::contains() no longer catches an exception
8a645ceac need "sys/" when building in other environments
36af08269 super-simple URI validation
78ef28a3e SWIG bindings are a PITA! :-(
e9cba8491 SWIG needs help with Uri
8a8d8dc07 another routines used by pre-build SWIG bindings
818e1ec5d pre-build SWIG bindings use getElementByTagName() member function
067cac5d8 old compiler gets confused on unadorned QName
ba92c0ae7 more use of Uri and QName
446c7d17a use QName in new code
d6f8b0c83 more direct use of QName
90fff1c73 use xml::lite::QName instead of tuple<string, string>
646cbb5ed more direct use of QName and Uri
ba589ea3b make QName more robust
bab0ee8b5 createElement() -> addNewElement()
e3a145747 grab changes from six-library
32285e95c Merge branch 'master' into feature/xml.lite_tweaks
9f79f0bf6 Merge branch 'master' into feature/xml.lite_tweaks
a12bbc32c make it easier to create new Elements with a value
fc9967f98 make it easy for callers to addChild() keep a reference to the Element
4627766b7 be sure test_xmlparser works in "externals" of other projects
bf2276396 "private" is part of the name-mangling
fad92bcc8 making sure copy-ctor is implemented
f90fdcead consolidate common XML test code
9fc53f2d5 use str:: utility for casting
6da6f794b still trying to find the right macro for SWIG
0c1b86c56 still trying to fix SWIG
fdc6fc9bd trying to fix SWIG build error
7835e8c27 SWIG needs copy-ctor
585695942 disable copy/assignment for Element, it's probably almost always wrong
391fed613 fix double-delete caused by copying
61790fe69 retry parsing XML with Windows-1252 if first parse() fails
63cffac59 change string_encoding to match coda-oss style of PascalCase
010479bbe read an XML file we know is wrongly encoded as Windows-1252
9a0505062 more references instead of pointers
2d44b6951 Reading Windows-1252 w/o "encoding" fails
63dc7b076 read Windows-1252 too
c9434c9cb test as UIT-8 too
f310ccf0c get reading from UTF-8 XML working on Windows
1fa39c2be get testReadUtf8XmlFile working on Linux
1a83cd815 sys::Path is too much trouble right now
ed60aa22c unit-test to read XML from a file
a9336db7c Squashed commit of the following:
0825beb0d Merge branch 'master' into feature/xml.lite_tweaks
c618489be Merge branch 'master' into feature/xml.lite_tweaks
e8e4b8fe1 determine string_encoding based on platform
1f43bcfc2 create a new Element by using the platform to determine "characterData" encoding
961bef66b Merge branch 'master' into feature/xml.lite_tweaks
e9798a5cb fix static_assert()
6f7772874 Merge branch 'master' into feature/xml.lite_tweaks
b98d4f5a9 Merge branch 'master' into feature/xml.lite_tweaks
1b5abba2a The (old) version of SWIG we're using doesn't like certain C++11 features.
53bdeabaf Merge branch 'master' into feature/xml.lite_tweaks
60cf8ae80 "" doesn't work with decltype() in older C++
97e72477a reduce getValue() overloads by making "key" a template argument
5e6373e55 reduce code duplication
f9e7cfeee provide castValue<T> instead of getValue(T&)
cbd0bd8f2 castValue<T> throws instead of returning a bool like getValue(T&)
87c7514fc Merge branch 'master' into feature/xml.lite_tweaks
10cc61223 make getElement*() consistent for zero or >1 results
f5b137e3c Merge branch 'master' into feature/xml.lite_tweaks
1765efc62 allow clients to specify toType() and toString() for getValue() and setValue()
df8b746e1 allow clients to specify their own toType/toString routines
66702726a Merge branch 'master' into feature/xml.lite_tweaks
6956311f1 Merge branch 'master' into feature/xml.lite_tweaks
d505f3593 Merge branch 'master' into feature/xml.lite_tweaks
fbd106115 catch a BadCastException and return false from getValue()
3a78377b5 use a template to reduce duplicated code
0ad4b8606 Merge branch 'master' into feature/xml.lite_tweaks
a848aa3a2 get & set the characer data as a type
f3ee1ee12 utility routines to set an attribute value
595227683 templates to get an attribute value convert to a specific type
06639227b miised a change in last commit
1aa458ef8 add getValue() overloads that return true/false rather than throwing
faa6d3075 added getElementByTagName() overloads as that's a very common use-case

git-subtree-dir: externals/coda-oss
git-subtree-split: 5f858856e773d3e5274f826edd608bd8b7ac2218

* Squashed 'externals/nitro/' changes from c8ecbe9ae..a5bd34266

a5bd34266 Merge commit 'b1f170ff084565365cdca72e88b87c80b7f848ba' into cpp17
b1f170ff0 Squashed 'externals/coda-oss/' changes from e87c32b4de..436289c928
d6efa7ec5 restore C++17
547d0aa9f NITRO-2.11.4 (#575)
fe309c4ba Merge branch 'main' of github.com:mdaus/nitro
10efa9990 latest from CODA-OSS (#574)
d08f1c0a1 CRLF
db5d3d484 latest from CODA-OSS
98c755048 CRLF
aa1482543 CRLF
bfdbe69a4 Latest from CODA-OSS (#573)
9e4ce0b58 latest from CODA-OSS (#572)
227a8a8f4 trust coda-oss for right -std flags
13869687e latest from CODA-OSS (#571)
5724d8c18 latest from CODA-OSS (#570)
fb794f0fe latest from CODA-OSS (#569)
7a6132ba0 update files changes in cpp17 branch (#568)
de91d4977 Fix bug creating NITFException (#567)
225273436 fix YAML for 'main'
5d1c83d11 single project for unittests (#566)
102a019db latest from CODA-OSS (known broken build) (#565)
b4ae2d429 match YAML from coda-oss
176bcaf6d build NITRO.SLN using msbuild (#562)
85e9043b8 latest from CODA-OSS (#561)
49ec50325 use new "PlatformToolkit" special environment variable (#560)
6c06e3711 latest from CODA-OSS (#559)
cee9feb42 latest from CODA-OSS (#558)
3f01809fa latest from coda-oss (#557)
471fb3fc1 Update test_j2k_loading++.cpp
b12caf2fc latest from CODA-OSS (#556)
0cd432624 use sys::make_span (#555)
05dae18a3 patch to build other projects
8f974e995 NITRO-2.11.3 (#554)
870aa6afd update to coda-oss 2023-06-05 (#553)
2fd7a0bfa latest from coda-oss (#552)
0eecce004 invoke() utility to reduce code duplication (#550)
59fb02fe9 latest from coda-oss (#551)
9fbf2b7b8 Fill out adapter free block which is used for nitf decompression (#549)
089ba0b5b latest from coda-oss
3b52f0025 latest from coda-oss (#547)
90c6263e2 latest from coda-oss (#544)
90d513ac5 latest from coda-oss (#543)

git-subtree-dir: externals/nitro
git-subtree-split: a5bd34266b2ab07e8970ccb9984b484db38361f7

* latest from NITRO

* Squashed 'externals/coda-oss/' changes from 5f858856e..a8c5a3b2b

a8c5a3b2b Merge branch 'main' into cpp17
00e2dd928 another FmtX() overload
165a799c5 more FmtX() overloads (#729)
8dee6f7a6 revert toString() changes (#728)
bf7ae4a71 use overloads rather than varargs for std::format() (#727)
22e050207 utility routines to reduce duplicated code (#726)
a5ea60647 remove str::EncodedStringView (#725)

git-subtree-dir: externals/coda-oss
git-subtree-split: a8c5a3b2b2c32fc150007e6a6cc20c00e7b32b54

* Squashed 'externals/nitro/' changes from a5bd34266..331deafa2

331deafa2 Merge commit 'afc15cad7caa998e32e6630489dbc22be8e5e9d5' into cpp17
afc15cad7 Squashed 'externals/coda-oss/' changes from 8dee6f7a68..a8c5a3b2b2
5b47be120 latest from CODA-OSS
475d30a6e Merge branch 'main' into cpp17
72cd86cbf latest from CODA-OSS (#580)
e4920a743 FmtX() -> str::Format()
81ea6f178 Squashed 'externals/coda-oss/' changes from e87c32b4de..8dee6f7a68
e488297c3 Merge commit '81ea6f1789863f26f06dc447f7784383dc7cb595'
72209535d toString() changes from CODA-OSS (#579)
fc1f59799 latest from CODA-OSS (#578)
02e8f80c6 latest from CODA-OSS (#577)
10befb769 Merge branch 'main' into cpp17
e7ea728ec reduce differences between cpp17 and main branches (#576)

git-subtree-dir: externals/nitro
git-subtree-split: 331deafa216548b25eb8788a15c694b7f7c07fbf

* Squashed 'externals/coda-oss/' changes from a8c5a3b2b..14f0b1545

14f0b1545 Merge branch 'main' into cpp17
c92a55d7c build in SIX
333b91024 Squashed commit of the following:
ac8c312db Only allow va_args formatting under controlled circumstances (#735)
589aacfd7 str::to_native() for when conversion to std::string really is needed
743feb41e try hard not to lose string encoding (#734)
1854a9b46 hide use of str::cast() inside `details` namespace (#733)
fbe0c85f9 compile-time getSIMDInstructionSet() (#732)
ee2c46358 more consistent naming for routines to convert between encodings (#731)

git-subtree-dir: externals/coda-oss
git-subtree-split: 14f0b1545c324fb0887289ec4bbfc6a67ffa61b6

* Squashed 'externals/nitro/' changes from 331deafa2..732538e80

732538e80 Merge commit '4fbdccb89c89f2253ae8c3fbe830e69e338ae1ac' into cpp17
4fbdccb89 Squashed 'externals/coda-oss/' changes from c92a55d7c7..14f0b1545c
fe8900094 Merge branch 'main' into cpp17
6144b2cfb Squashed 'externals/coda-oss/' changes from 8dee6f7a68..c92a55d7c7
e418beceb Merge commit '6144b2cfb436a5696bab62c81651b47edf07aa8c'
32d9c4fe4 latest from CODA-OSS
49f6338d2 latest from CODA-OSS (#581)

git-subtree-dir: externals/nitro
git-subtree-split: 732538e809b6829e24382c371b3c2ad5313ac3a8

* Squashed 'externals/coda-oss/' changes from 14f0b1545..70a006d8a

70a006d8a Merge branch 'main' into cpp17
95ff879ba make it easier to turn on AVX2/AVX512F (#740)
a950c848b enable AVX2 and AVX512F CMake builds (#739)
369737085 use std::ssize() to reduce casts (#738)
8ae7dabac std::size() and std::ssize() (#737)
8db480be5 enable ASAN for GitHub builds (#736)

git-subtree-dir: externals/coda-oss
git-subtree-split: 70a006d8a4daaca81af7a103cc8ada565eadf729

* Squashed 'externals/nitro/' changes from 732538e80..ff335eeaf

ff335eeaf Merge commit 'eab6b6c35439c1eb7fa22fb042aae4a61a936d66' into cpp17
eab6b6c35 Squashed 'externals/coda-oss/' changes from 14f0b1545c..70a006d8a4
5648a0267 Merge branch 'main' into cpp17
b26e15318 latest from CODA-OSS (#583)
0db9bdb29 fix ASAN diagnostics (#582)

git-subtree-dir: externals/nitro
git-subtree-split: ff335eeaf8071f45a0e15cbba70ffdf7bcb8a15f

* latest from CODA-OSS

* Squashed 'externals/coda-oss/' changes from 70a006d8a..b6ead418c

b6ead418c fix previous merge (#744)
07bcb3a39 Merge branch 'main' into cpp17
76beb7f34 Throwable always inherits from std::exception (#742)
959532681 reduce use of FmtX macro (#743)
f1a857cc4 Revert "simplify Throwable and friends: always derive from std::exception"
8d5f4402f simplify Throwable and friends: always derive from std::exception
fffac7fc4 Fix memory leaks in "cli" (#741)

git-subtree-dir: externals/coda-oss
git-subtree-split: b6ead418cfde26b016a3be199cd8ca7039a0a7be

* sync_externals

* Squashed 'externals/coda-oss/' changes from b6ead418c..434b85fe5

434b85fe5 Merge branch 'main' into cpp17
4a2f472c7 add extensions for .log and known Windows/Linux binaries (#746)
18f2c051f more FmtX() -> str::Format() changes (#745)

git-subtree-dir: externals/coda-oss
git-subtree-split: 434b85fe537621a2fe3f525f685126480ea4c153

* Squashed 'externals/nitro/' changes from ff335eeaf..cca11bf4c

cca11bf4c Merge commit 'b40d3f96fff13bf708f319c684348ebd9884aff1' into cpp17
b40d3f96f Squashed 'externals/coda-oss/' changes from b6ead418cf..434b85fe53
2d6d5aa31 Merge branch 'main' into cpp17
1b631e578 latest from CODA-OSS (#587)
d32176660 Merge branch 'main' into cpp17
574bfe2b6 FmtX() -> str::Format() (#586)
a8e6556aa Squashed 'externals/coda-oss/' changes from 07bcb3a39b..b6ead418cf
53596f720 Merge commit 'a8e6556aa7bc5c105d3b4383589da7ef48982deb' into cpp17
29ccecf64 latest from CODA-OSS
b315d9b6c Merge branch 'main' into cpp17
edfa0f7ce latest from CODA-OSS (#585)
b708bd8ea `final` for NITFException
a2af78776 don't need FmtX() with no formatting
368cead55 Squashed 'externals/coda-oss/' changes from 70a006d8a4..07bcb3a39b
9b10c5340 Merge commit '368cead55f182d12953a6964b2598021f9629cf3' into cpp17
6e40d15b4 latest from CODA-OSS
31fc61888 develop/sync_externals

git-subtree-dir: externals/nitro
git-subtree-split: cca11bf4c8a99e779c2a7158e2fc214d3b097337

* sync_externals

* Squashed 'externals/coda-oss/' changes from 434b85fe5..dee001e71

dee001e71 everything is text except for known binaries
f69d6d7e6 eol=lf is the default

git-subtree-dir: externals/coda-oss
git-subtree-split: dee001e71b64f25037cad0cd7674be644ce1a818

* latest from CODA-OSS and NITRO

* Squashed 'externals/coda-oss/' changes from e87c32b4d..03f1a3bdf

03f1a3bdf release 2023-10-23 (#747)
4dd7b2fbd Merge branch 'main' of github.com:mdaus/coda-oss
9428f12a0 add extensions for .log and known Windows/Linux binaries (#746)
c3fd20a88 added some OLD Visual Studio extensions
d00db384a everything is text except for known binaries
c3813bb29 eol=lf is the default
4a2f472c7 add extensions for .log and known Windows/Linux binaries (#746)
18f2c051f more FmtX() -> str::Format() changes (#745)
959532681 reduce use of FmtX macro (#743)
fffac7fc4 Fix memory leaks in "cli" (#741)
95ff879ba make it easier to turn on AVX2/AVX512F (#740)
a950c848b enable AVX2 and AVX512F CMake builds (#739)
369737085 use std::ssize() to reduce casts (#738)
8ae7dabac std::size() and std::ssize() (#737)
8db480be5 enable ASAN for GitHub builds (#736)
c92a55d7c build in SIX
333b91024 Squashed commit of the following:
ac8c312db Only allow va_args formatting under controlled circumstances (#735)
589aacfd7 str::to_native() for when conversion to std::string really is needed
743feb41e try hard not to lose string encoding (#734)
1854a9b46 hide use of str::cast() inside `details` namespace (#733)
fbe0c85f9 compile-time getSIMDInstructionSet() (#732)
ee2c46358 more consistent naming for routines to convert between encodings (#731)
00e2dd928 another FmtX() overload
165a799c5 more FmtX() overloads (#729)
8dee6f7a6 revert toString() changes (#728)
bf7ae4a71 use overloads rather than varargs for std::format() (#727)
22e050207 utility routines to reduce duplicated code (#726)
a5ea60647 remove str::EncodedStringView (#725)
168cbae01 reduce differences between 'main' and 'cpp17' (#724)
5b892bf5f release 2023-08-18 (#723)
0b1327d1e restore mem::AutoPtr; too much of a hassle moving it to numpyutils :-( (#722)
7691adb56 normalize line endings (#721)
b7d50efdd update to HDF5 1.14.2 (#720)
fcc96ec69 Update .gitattributes (#719)
bb82a94c9 xerces-c 3.2.4 (#718)
ef4ad7cf3 Update to e2fsprogs 1.47.0 (#717)
b4ca18a11 fix compiler warning about order of operations
a5df5b823 update to HighFive 2.7.1 (#716)
4109ee5d2 `mem::AutoPtr` is only for Python bindings (#715)
00d843f87 remove hdf5.lite (#714)
443dd3825 Reduce compiler warnings, speed up builds (#713)
d60861821 get optional working with partial C++17 (#712)
d5bd0d804 "warning STL4036: <ciso646> is removed in C++20."
c19ece7f9 Don't interfere with a partial C++20 implementation (#711)
065e86ddc operator==() for QName (#710)
1c16380ce remove zint* typedefs; don't want to encourage use of types::Complex (#709)
6dd247991 our optional<> is now closer to C++17 (#708)
87ac61739 strict checking on `std::complex<T>` is too much of a hassle for now
034d52c86 overloads to byte-swap type::Complex are too much trouble (#707)
42d449c33 sys::byteSwap overloads for types::Complex<T> (#705)
4092fd8e7 remove work-around for NITRO bug (#704)
e2472acfc build in NITRO and SIX (#703)
32ccf9105 Use same build paths as Visual Studio (#701)
366ac9f43 Another round of removing compiler warnings (#702)
a7f8ef260 Fix compile warnings from building CODA (#700)
f70b4202f account for coda-oss.vcxproj being in other SLNs
af3faebfc Remove more compiler/code-analysis warnings (#699)
82be2a6db unittests should work w/o install (#698)
dbb90a06d add msbuild for coda-oss.sln (#697)
5a417140a reduce compiler warnings (#696)
288619dfa all modules now part of coda-oss.vcxproj (#695)
c2fc5fc66 add more projects to coda-oss-lite.vcxproj (#694)
ceb86c186 support $(PlatformToolset) as a "special" environment variable (#693)
d78a8595a OS::getSIMDInstructionSet() utility (#692)
2d2df467d fix `python3 waf dumplib`
54033e70e Merge branch 'main' into feature/complex_short
3c63f9f65 std::numbers from C++20 (#691)
892dd0e00 ComplexInteger and ComplexReal to better match existing naming conventions (#690)
b3872181e match coda-oss naming conventions (#688)
704d6867f beef-up our complex type (#687)
47c1c1cd6 check is_absolute() for URLs (#686)
c042373e1 be sure our Path::isAbolute() matches std::filesystem::path::absolute() (#684)
ad10286bc volatile is about "special" memory, not threading (#685)
f4d42005f fix build error in NITRO
ff11a5557 keep using std::complex<short> for now (#682)
c88b9c053 types::complex<T> (#681)
d1244a080 don't need our own make_unique in C++14 (#680)
aeec0131c assert()s for mem::CopyablePtr (#679)
72b0ebd60 add types::complex_short (#678)
932130a58 patch to build other projects
c00c1f203 coda-oss release 2023-06-06 (#677)
ef54bbcd5 remove more compiler warnings (#676)
dadfc5ce6 distinguish between byte-swapping a buffer and single value (#674)
90187f6cd more xml.lite tweaks for SIDD-3.0/ISM (#675)
eb9960772 stronger type-checking for byteSwap() (#673)
ff4f820ed xml.lite tweaks to support SIDD 3.0 ISM (#672)
b1de8c0e5 std::byte should be a unique type (#671)
c05bf9a02 allow enums to be byte-swapped too
1f9fd88d6 remove spurious
47684c45b byteSwap now uses byte buffers (#670)
cbc659db2 add swapBytes() utility from SIX (#669)
891481b64 simplify byte-swapping (#668)
540ae763e more byteSwap() tweaks
0774c03c4 threaded byteSwap() (#667)
d156370d3 swapping a single-byte value makes no sense
c120e3255 be sure parameter is used to avoid compiler warning
e85ec9331 --output-on-failure for CTest (#666)
e80376197 turn off "there is no warning number" warning
c5f0a5d15 A C-string may not be NULL-terminated (#665)
0c5eb29ae use platform-specific routines for byteSwap() (#664)
0b7d581fa remove transform_async() (#663)
f6489b6be Merge branch 'main' into feature/xml.lite_tweaks
836c426a2 use function-pointers so that isConsoleOutput is only checked once
56e3c45b1 move depthPrint() functionality into non-member function in preparation for future changes
ddcd26d97 Merge branch 'main' into feature/xml.lite_tweaks
69cc0e506 use the more rigorous create_and_check_datatype()
9efb87558 Merge branch 'main' into feature/hdf5
4d2f2f417 more HighFive unittests (#662)
14191a844 HighFive::create_datatype() goes from C++ to HighFive
98583473f utility routines to read string attributes
1fa75ce81 use the C API to read a string attribute
71e7b69f5 still can't figure out how to read a string attribute :-(
e96f37a69 test reading the file attributes
a25244519 getAttribute() unittest
8f12a3000 getDataType() unittest
857ff0af3 HighFive utility routines (#661)
1d687db57 writeDataSet() utility overload
106aa6894 sigh ... H5Easy::dump() fill fails on Windows/WAF :-(
2641b60b2 Merge branch 'main' into feature/hdf5
35c19e7e8 change actions to @v3 (#660)
212bbd3a3 works on local machine, but not build server ... ?
7125118b0 dump of 1D vector doesn't work :-(
c704db435 sigh ... WAF build still failing :-(
01aae4616 does dump() of a 1D vector work?
76a53c813 comment-out H5 writing :-(
0f0e19aff test_highfive_dump()
cb8f73795 trying to get highfive_dump() unittest working w/Windows-WAF
6584a264a does test_highfive_create() work?
cde6147ce tweak HighFive wrappers (#659)
316566854 Revert "trying HighFive "write" unittests again"
a9ec24ca4 trying HighFive "write" unittests again
585ad49a5 tweak names of utility routines
4c91a4d97 make it easier to read a std::vector and std::vecotr<std::vector>
0217ffa26 readDataSet() now works for 1D data
95e8973f2 trying to get hdf5::lite::load() working
4d294611d "const" correctness
5e6305c3f fix load_complex()
4a134dc5f start work on utility routines to read complex data from HDF5
9d76a7f41 Merge branch 'main' into feature/hdf5
8f9667a24 whitepsace
ebd3fc99e Merge branch 'main' into feature/hdf5
40091b069 comment-out writing tests for now ... need to figure our WAF bulid failure
935aa3459 be sure the dataset has real data
114b9bf33 update release notes
bd9c0b26c tweak HighFive utility routines
acda1ef57 turn off diagnostics around expected failures
22a748840 readDataSet() utility routine for HighFive
bd88a8c25 HighFive writeDataSet() utility to work with our SpanRC
6142f5b33 use HighFive routines to write a HDF5 file
5bbf1abaf Use HiveFive routines to get info about the file
84fbc8378 duplicate unittests with H5Easy
f1f054c03 Merge branch 'main' into feature/hdf5
9b63ca470 fix directory names
f6f826689 fix directory names
7aeb82c33 Merge branch 'main' into feature/hdf5
d028baaeb hook up HighFive header-only library (#653)
3083b0a31 Revert "HighFive 2.6.2"
246985a7f Revert ""build" HighFive HDF5 library"
a8b75a586 Revert "turn off HighFive Boost support"
ec68d5f83 Revert "Add HighFive unittests"
f1f85b9e7 Revert "get test_high_five_base more-or-less compiling"
5ea634ee1 Revert "more work on getting HighFive unittests to build"
ecc45433c more work on getting HighFive unittests to build
bb194788a get test_high_five_base more-or-less compiling
d42bde000 Add HighFive unittests
ddc86bb32 turn off HighFive Boost support
b255122d4 "build" HighFive HDF5 library
396cc3ef2 HighFive 2.6.2
5e5f9d9c0 Merge branch 'main' into feature/hdf5
ee938b4a5 changes from SIX
bb764df90 Merge branch 'main' into feature/xml.lite_tweaks
de2a24380 make derived classes 'final' if possible
14e19bcd2 Change xml lite function to virtual (#645)
8f42ac8e9 Merge branch 'main' into feature/xml.lite_tweaks
18ad90645 hdf5Write unittest
3462e1179 createFile() and writeFile() overloads
ecee81d53 fix typos
197eecfa6 sketch-out hdf5::lite::writeFile()
bd2311795 use SpanRC for writeFile(), not yet implemented
ea9af7510 simple SpanRC to hold a 2D-size and pointer
027c19ee8 createFile() unittest
1f9d07ecb hook up createFile()
8c7e4473f start hooking up HDF5 writing
146e0bea3 Merge branch 'main' into feature/hdf5
88ca9fcb7 Merge branch 'main' into feature/hdf5
42b604b46 Squashed commit of the following:
10ee602c2 Merge branch 'main' into feature/hdf5
67aa42b69 restore changes from "main"
8bbfcbfbf unittests can be simplified to match fewer "view" classes
126bb802e Merge branch 'main' into feature/hdf5
3f8ba7a42 again, don't need a class just to convert from std::vector<> to std::span<>
24c2b489c Squashed commit of the following:
2703c119d Squashed commit of the following:
9d5228a2b don't need an entire class just to convert a std::vector<> into std::span<>
51bc931dc Merge branch 'main' into feature/hdf5
a84f25816 Squashed commit of the following:
c4d2ed696 add missing #include guards, fix type in existing #include guard
d541525a0 use a single ComplexViewConstIterator for all views
86e6a459f CODA_OSS_disable_warning causes GCC errors :-(
5d4b9c2cb only need an custom iterator for ComplexSpansView
d9f0fb128 hook up iterators
b9329e4db initial pass at a ComplexViewConstIterator
635238873 remove compiler warning about unused "constexpr" variables
b39f6096f use the casing from H5 to make copy/pasting code slightly easier
0887b13eb Merge branch 'main' into feature/hdf5
bd07df1ca Consistent casing for Dataset, Datatype, Dataspace
7acd30ee2 tweak hdf5.lite dependencies
38ab914df Jupyter notebook for creating H5 files
95a040e0b _small.h5 is now (correctly) FLOAT32
107e7c487 make a simple values() member function to avoid template magic
e1feca919 use TEST_SPECIFIC_EXCEPTION macro instead of try/catch
738333688 readDatasetT() now throws for the wrong buffer type
6b2cc2529 Merge branch 'feature/hdf5' of github.com:mdaus/coda-oss into feature/hdf5
310f8fd3d can't get template magic right for copy_axis()
86b306d59 stepping through copy ctors in the debugger is annoying
f243e92d6 trying to make wrong type of buffer fail
2b10d9652 read in new sample file
a28e59d8c help the compiler with type deduction
49bf5e9bc nested_complex_float_data_small.h5
e029325fc utility routines to "deconstruct" and array of std::complex
dede3bd39 Merge branch 'main' into feature/hdf5
904b1ef5e tweak class names, make_() and copy() utility routines
8237b9efb make it harder to pass the wrong types to ComplexViews
4d9aeda2c ComplexArrayView and ComplexParallelView utility classes
f5e367dfa test std::span<const std::complex<float>>
a4a2844f2 read in the nested "i" and "r" data
115615265 sample file has subgroups
8e1b7869a Merge branch 'feature/hdf5' of github.com:mdaus/coda-oss into feature/hdf5
9f4232a1d update sample H5 file
8c55db73a walk through HDF5 sub-groups
7775ed9c4 Update 123_barfoo_catdog_cx.h5
677975d7c Matlab code to create sample H5 file
a0e7dfe07 Update test_hdf5info.cpp
0b67e1602 pass __FILE__ and __LINE__ from calling site for a more accurate exception message
86a677321 skeleton for more sample data
85f79b099 Merge branch 'main' into feature/hdf5
18088e942 Merge branch 'main' into feature/hdf5
3a1d17692 Merge branch 'main' into feature/hdf5
1755c69d7 Merge branch 'main' into feature/hdf5
9ad015432 No more "11" suffix on exception names
c20d96251 Squashed commit of the following:
c88cee999 other values to be filled-in
bca4a4ecd incorporation NamedObject from HDF5 docs
61fa68f72 groupInfo()
460e7d766 datasetInfo()
14eb9b764 start filling in DatasetInfo
afe5f1c3a start to fill in DatasetInfo
77a968c72 start filling in GroupInfo
d81bcdfd9 openGroup() to open groups (loc)
a0cd29469 comment-out "dataset" unittest for now
86e006024 begin filling in FileInfo
366dda6ab a return_type_of utility is needed to deduce the return type
e21928263 explicitly pass return type to template
4937ccd11 template to reduce boilerplate when calling try_catch_H5Exceptions
b3b5ebde7 use new exception utility routines
ea1c03ef0 put exception handling/conversion in a utility routine
819a99d39 utility routine for exception handling
6f34eea97 put utilities in a separate file for easier reuse
fcbde4f24 break utility routines into smaller pieces for easier reuse
52358ea8a WIN32 no longer automatically defined?
5a4286472 Revert "build HDF5 with C89"
680e599e9 build HDF5 with C89
a87a07121 Merge branch 'main' into feature/hdf5
8447c1a90 Revert "sym-links instead of copying files"
db3b5e12b Merge branch 'main' into feature/xml.lite_tweaks
fb60b5696 Merge branch 'main' into feature/hdf5
5110a5cc8 Comments about _u and _q
1a937d32c Merge branch 'main' into feature/xml.lite_tweaks
fa06f04d7 get ready for hdf5.lite enhancdements
b040c7c43 sym-links instead of copying files
aa431bb47 use _u for xml::lite::Uri
3d0c6d58c fix case-sensitive #include filename
93dcd0e52 operator() for getElementByName()
75a93af85 more operator[] overloads to make attribute management easier
4ab8216f8 user-defined string literals to remove some noise around xml::lite::QName
f82f0b0fc Merge branch 'main' into feature/xml.lite_tweaks
ae30e3644 Merge branch 'feature/xml.lite_tweaks' of github.com:mdaus/coda-oss into feature/xml.lite_tweaks
ffdd9beb0 simplify attribute creation
9bf5414f5 simplify attribute creation
82d7a4e95 SWIG gets confused about namespaces
7a61d0741 fix bug on Element ctor uncovered by unittest
fdd7e58c1 QName is also in the xerces namespace which confuses SWIG bindings
a325b7053 operator+=() overload for addChild
daf30e6c0 Merge branch 'feature/xml.lite_tweaks' of github.com:mdaus/coda-oss into feature/xml.lite_tweaks
b887d2b47 provide overloads for Element& rather than creating new "reference" types
1fa6bba38 rename test_xmleasy.cpp
7c8c9e0f1 += overload
850da6f63 overload for std::string
4547fc5a7 use UIT-8 strings for characterData
4723462a3 convenient addChild() overloads
e48720753 copy over ElementReference from xml.easy
a4ca30a0d Merge branch 'main' into feature/xml.lite_tweaks
6ae9f0b71 Revert "check-in of new xml.easy (to move code between computers)"
f7466a6d7 Revert "simple routines for single element"
a5490230d Revert "make some operators simplier ways of calling functions"
c9a25630a Revert "get document creation working"
8af8710b0 Revert "free functions instead of member functions"
16c3847cb Revert "ElementReference distinct from Element"
7d68e156f Revert "ElementMutableReference"
00eb2a282 Merge branch 'main' into feature/xml.lite_tweaks
a42969c1f ElementMutableReference
a20ae9355 ElementReference distinct from Element
14eeeea0b free functions instead of member functions
4aae014b3 get document creation working
883569269 make some operators simplier ways of calling functions
053bd1212 simple routines for single element
8bf701a2e check-in of new xml.easy (to move code between computers)
41f959051 unittests for creating XML documents from scratch
9752d50ae Merge branch 'main' into feature/xml.lite_tweaks
1531d5709 by default, don't validate strings passed to Uri()
46d13d4bf Merge branch 'master' into feature/xml.lite_tweaks
39b547d32 remove more vestiges of Expat and LibXML
ec8274d52 remove LibXML and Expat as they're no longer used/supported.
20eeefeef Merge branch 'master' into feature/xml.lite_tweaks
95074b9b1 update for newer Intel compiler
7024f71e1 Merge branch 'master' into feature/xml.lite_tweaks
57b1cbc83 Merge branch 'master' into feature/xml.lite_tweaks
4b67561c3 remove validate() overload that nobody is using
fa15f1e5d Squashed commit of the following:
1484a9090 test the new validate() API
470da70fb hookup StringStreamT routines
2cddf2504 begin hooking up validate() overloads
1b5d910f3 overload validate() for UTF-8 and Windows-1252
03309b8c9 Squashed commit of the following:
b72c6c5bf older compiler doesn't like our make_unique
af8f00307 validate UTF-8 XML on Linux
211188613 unit-test for LEGACY XML validation
3c1169d2b Squashed commit of the following:
3afff19ca std::filesystem::path for FileInputStreamOS
908d452f8 WIP: validate all of our sample XML files
00f9bb16b validate against a XML schema
243d8c356 Merge branch 'master' into feature/xml.lite_tweaks
2815d707d fix to work with SWIG bindings. :-(
460862132 trying (again) to remove vestiages of old code
e3c83a858 Revert "new code should use UTF-8"
811207c92 new code should use UTF-8
0ffd835f9 Squashed commit of the following:
1e7e03ded Merge branch 'master' into feature/xml.lite_tweaks
c1d806aff Merge branch 'master' into feature/xml.lite_tweaks
850d3c811 str::strip() that can be easier to use than str::trim()
580ba9c8c explicitly =delete move
2b39831a8 Squashed commit of the following:
39eebdc23 Merge branch 'master' into feature/xml.lite_tweaks
9adf86cba force calling new UTF-8 write() routines
ea61b6204 Merge branch 'master' into feature/xml.lite_tweaks
8a34583fa overload to take schemaPaths as filesystem::path
8671b442f parse XML embedded in a binary file
ec4a902f1 updates from xerces.lite
80dc4d963 updates from xerces.lite
549766d6c Attributes::contains() no longer catches an exception
8a645ceac need "sys/" when building in other environments
36af08269 super-simple URI validation
78ef28a3e SWIG bindings are a PITA! :-(
e9cba8491 SWIG needs help with Uri
8a8d8dc07 another routines used by pre-build SWIG bindings
818e1ec5d pre-build SWIG bindings use getElementByTagName() member function
067cac5d8 old compiler gets confused on unadorned QName
ba92c0ae7 more use of Uri and QName
446c7d17a use QName in new code
d6f8b0c83 more direct use of QName
90fff1c73 use xml::lite::QName instead of tuple<string, string>
646cbb5ed more direct use of QName and Uri
ba589ea3b make QName more robust
bab0ee8b5 createElement() -> addNewElement()
e3a145747 grab changes from six-library
32285e95c Merge branch 'master' into feature/xml.lite_tweaks
9f79f0bf6 Merge branch 'master' into feature/xml.lite_tweaks
a12bbc32c make it easier to create new Elements with a value
fc9967f98 make it easy for callers to addChild() keep a reference to the Element
4627766b7 be sure test_xmlparser works in "externals" of other projects
bf2276396 "private" is part of the name-mangling
fad92bcc8 making sure copy-ctor is implemented
f90fdcead consolidate common XML test code
9fc53f2d5 use str:: utility for casting
6da6f794b still trying to find the right macro for SWIG
0c1b86c56 still trying to fix SWIG
fdc6fc9bd trying to fix SWIG build error
7835e8c27 SWIG needs copy-ctor
585695942 disable copy/assignment for Element, it's probably almost always wrong
391fed613 fix double-delete caused by copying
61790fe69 retry parsing XML with Windows-1252 if first parse() fails
63cffac59 change string_encoding to match coda-oss style of PascalCase
010479bbe read an XML file we know is wrongly encoded as Windows-1252
9a0505062 more references instead of pointers
2d44b6951 Reading Windows-1252 w/o "encoding" fails
63dc7b076 read Windows-1252 too
c9434c9cb test as UIT-8 too
f310ccf0c get reading from UTF-8 XML working on Windows
1fa39c2be get testReadUtf8XmlFile working on Linux
1a83cd815 sys::Path is too much trouble right now
ed60aa22c unit-test to read XML from a file
a9336db7c Squashed commit of the following:
0825beb0d Merge branch 'master' into feature/xml.lite_tweaks
c618489be Merge branch 'master' into feature/xml.lite_tweaks
e8e4b8fe1 determine string_encoding based on platform
1f43bcfc2 create a new Element by using the platform to determine "characterData" encoding
961bef66b Merge branch 'master' into feature/xml.lite_tweaks
e9798a5cb fix static_assert()
6f7772874 Merge branch 'master' into feature/xml.lite_tweaks
b98d4f5a9 Merge branch 'master' into feature/xml.lite_tweaks
1b5abba2a The (old) version of SWIG we're using doesn't like certain C++11 features.
53bdeabaf Merge branch 'master' into feature/xml.lite_tweaks
60cf8ae80 "" doesn't work with decltype() in older C++
97e72477a reduce getValue() overloads by making "key" a template argument
5e6373e55 reduce code duplication
f9e7cfeee provide castValue<T> instead of getValue(T&)
cbd0bd8f2 castValue<T> throws instead of returning a bool like getValue(T&)
87c7514fc Merge branch 'master' into feature/xml.lite_tweaks
10cc61223 make getElement*() consistent for zero or >1 results
f5b137e3c Merge branch 'master' into feature/xml.lite_tweaks
1765efc62 allow clients to specify toType() and toString() for getValue() and setValue()
df8b746e1 allow clients to specify their own toType/toString routines
66702726a Merge branch 'master' into feature/xml.lite_tweaks
6956311f1 Merge branch 'master' into feature/xml.lite_tweaks
d505f3593 Merge branch 'master' into feature/xml.lite_tweaks
fbd106115 catch a BadCastException and return false from getValue()
3a78377b5 use a template to reduce duplicated code
0ad4b8606 Merge branch 'master' into feature/xml.lite_tweaks
a848aa3a2 get & set the characer data as a type
f3ee1ee12 utility routines to set an attribute value
595227683 templates to get an attribute value convert to a specific type
06639227b miised a change in last commit
1aa458ef8 add getValue() overloads that return true/false rather than throwing
faa6d3075 added getElementByTagName() overloads as that's a very common use-case

git-subtree-dir: externals/coda-oss
git-subtree-split: 03f1a3bdfa72d1baf84625fb6bcf9467e5792ace

* Squashed 'externals/nitro/' changes from c8ecbe9ae..0357b1432

0357b1432 NITRO-2.11.5 (#589)
a0ad6f943 CODA-OSS 2023-10-23 (#588)
1b631e578 latest from CODA-OSS (#587)
574bfe2b6 FmtX() -> str::Format() (#586)
edfa0f7ce latest from CODA-OSS (#585)
b26e15318 latest from CODA-OSS (#583)
0db9bdb29 fix ASAN diagnostics (#582)
e418beceb Merge commit '6144b2cfb436a5696bab62c81651b47edf07aa8c'
6144b2cfb Squashed 'externals/coda-oss/' changes from 8dee6f7a68..c92a55d7c7
32d9c4fe4 latest from CODA-OSS
49f6338d2 latest from CODA-OSS (#581)
72cd86cbf latest from CODA-OSS (#580)
e4920a743 FmtX() -> str::Format()
81ea6f178 Squashed 'externals/coda-oss/' changes from e87c32b4de..8dee6f7a68
e488297c3 Merge commit '81ea6f1789863f26f06dc447f7784383dc7cb595'
72209535d toString() changes from CODA-OSS (#579)
fc1f59799 latest from CODA-OSS (#578)
02e8f80c6 latest from CODA-OSS (#577)
e7ea728ec reduce differences between cpp17 and main branches (#576)
547d0aa9f NITRO-2.11.4 (#575)
fe309c4ba Merge branch 'main' of github.com:mdaus/nitro
10efa9990 latest from CODA-OSS (#574)
d08f1c0a1 CRLF
db5d3d484 latest from CODA-OSS
98c755048 CRLF
aa1482543 CRLF
bfdbe69a4 Latest from CODA-OSS (#573)
9e4ce0b58 latest from CODA-OSS (#572)
227a8a8f4 trust coda-oss for right -std flags
13869687e latest from CODA-OSS (#571)
5724d8c18 latest from CODA-OSS (#570)
fb794f0fe latest from CODA-OSS (#569)
7a6132ba0 update files changes in cpp17 branch (#568)
de91d4977 Fix bug creating NITFException (#567)
225273436 fix YAML for 'main'
5d1c83d11 single project for unittests (#566)
102a019db latest from CODA-OSS (known broken build) (#565)
b4ae2d429 match YAML from coda-oss
176bcaf6d build NITRO.SLN using msbuild (#562)
85e9043b8 latest from CODA-OSS (#561)
49ec50325 use new "PlatformToolkit" special environment variable (#560)
6c06e3711 latest from CODA-OSS (#559)
cee9feb42 latest from CODA-OSS (#558)
3f01809fa latest from coda-oss (#557)
471fb3fc1 Update test_j2k_loading++.cpp
b12caf2fc latest from CODA-OSS (#556)
0cd432624 use sys::make_span (#555)
05dae18a3 patch to build other projects
8f974e995 NITRO-2.11.3 (#554)
870aa6afd update to coda-oss 2023-06-05 (#553)
2fd7a0bfa latest from coda-oss (#552)
0eecce004 invoke() utility to reduce code duplication (#550)
59fb02fe9 latest from coda-oss (#551)
9fbf2b7b8 Fill out adapter free block which is used for nitf decompression (#549)
089ba0b5b latest from coda-oss
3b52f0025 latest from coda-oss (#547)
90c6263e2 latest from coda-oss (#544)
90d513ac5 latest from coda-oss (#543)

git-subtree-dir: externals/nitro
git-subtree-split: 0357b143293bc7b1ce5d5d941f1a5e6564b319a9

* latest from CODA-OSS

* Squashed 'externals/coda-oss/' changes from dee001e71..eb60210ff

eb60210ff Merge branch 'main' into cpp17
03f1a3bdf release 2023-10-23 (#747)
4dd7b2fbd Merge branch 'main' of github.com:mdaus/coda-oss
9428f12a0 add extensions for .log and known Windows/Linux binaries (#746)
e757d9bc7 eol=lf is the default
c3fd20a88 added some OLD Visual Studio extensions
d00db384a everything is text except for known binaries
c3813bb29 eol=lf is the default
REVERT: dee001e71 everything is text except for known binaries
REVERT: f69d6d7e6 eol=lf is the default

git-subtree-dir: externals/coda-oss
git-subtree-split: eb60210ff29ec245b64da719da8b398240918bb0

* latest from CODA-OSS

* add config.h files

* Squashed 'externals/coda-oss/' changes from eb60210ff..e573adb32

e573adb32 WAF build works w/o __has_include
6e2f0017b tiff_streamOpen() and tiff_readData() overload
c4978d525 Build 'libtiff' library (#748)
68ff08297 tiff-4.6.0 source code (#749)

git-subtree-dir: externals/coda-oss
git-subtree-split: e573adb3235b7d58d3bc3a38e0bbf7e0ae6710a7

* Squashed 'externals/nitro/' changes from cca11bf4c..80a517fcb

80a517fcb Merge commit '911c7b3ae49e1f92b94f2dc83d7716b7abc459c2' into cpp17
911c7b3ae Squashed 'externals/coda-oss/' changes from eb60210ff2..e573adb323
c3e3d3768 add config.h files
1cca072bd latest from CODA-OSS
cb5d115bc Squashed 'externals/coda-oss/' changes from 434b85fe53..eb60210ff2
8a3df82fb Merge commit 'cb5d115bcc2ecc11f81e4ccad23caff4f3f8ac29' into cpp17
dc3074153 Merge branch 'main' into cpp17
0357b1432 NITRO-2.11.5 (#589)
a0ad6f943 CODA-OSS 2023-10-23 (#588)

git-subtree-dir: externals/nitro
git-subtree-split: 80a517fcba1d0260effe0ab4af7e39060c0433ae

* latest from CODA-OSS

* Squashed 'externals/coda-oss/' changes from 03f1a3bdf..3ae8f6afb

3ae8f6afb Merge pull request #751 from mdaus/bugfix/hdf5-missing-files-main
3ec510861 Add missing files
1693eac7e Update build_unittest.yml

git-subtree-dir: externals/coda-oss
git-subtree-split: 3ae8f6afb3816bbb2ca9a72fbbd9ef78644eb5bf

* sync_externals

* latest from CODA-OSS

* Squashed 'externals/coda-oss/' changes from e573adb32..8b21c3828

8b21c3828 Merge branch 'main' into cpp17
3ae8f6afb Merge pull request #751 from mdaus/bugfix/hdf5-missing-files-main
3ec510861 Add missing files
1693eac7e Update build_unittest.yml

git-subtree-dir: externals/coda-oss
git-subtree-split: 8b21c3828b10e8587ac614d49144c94cc0481587

* Squashed 'externals/nitro/' changes from 80a517fcb..9618cb382

9618cb382 Merge branch 'main' into cpp17
253f57b2b latest from CODA-OSS (#590)
c3ad6c72e Merge commit 'eba459da43c07c6a3d80b63248c9c7fb49605723' into cpp17
eba459da4 Squashed 'externals/coda-oss/' changes from e573adb323..8b21c3828b
0355e94ea latest from CODA-OSS
325fba327 Merge branch 'cpp17' of github.com:mdaus/nitro into cpp17
7558c7085 develop/sync_externals
2490f6fdc Merge branch 'main' into cpp17
4aa042353 turn off "Warnings as Errors" to fix github builds
45cd3febe turn off code-analysis to fix GitHub builds
d6bc1d83a disable code-analysis to fix Github builds
981e75116 Update main.yml
907bf91cd Update frequent_check.yml

git-subtree-dir: externals/nitro
git-subtree-split: 9618cb382e07fc0edff06b39ed3987426c5011e2

* latest from CODA-OSS and NITRO

* Squashed 'externals/coda-oss/' changes from 3ae8f6afb..92f8b88c7

92f8b88c7 std::ostringstream overloads
8cb27de27 reduce use of .c_str() and .str() (#752)

git-subtree-dir: externals/coda-oss
git-subtree-split: 92f8b88c758504e8d0d2a3dfb389b71d49b557e5

* Squashed 'externals/nitro/' changes from 0357b1432..0342b596a

0342b596a latest from CODA-OSS (#592)
0084f9bf7 reduce use of .str() (#591)
253f57b2b latest from CODA-OSS (#590)
d6bc1d83a disable code-analysis to fix Github builds
981e75116 Update main.yml
907bf91cd Update frequent_check.yml

git-subtree-dir: externals/nitro
git-subtree-split: 0342b596aa3b4e1809086e4676d3e49fd8ccd261

* latest from CODA-OSS and NITRO

* Squashed 'externals/coda-oss/' changes from 92f8b88c7..aea8e7b1e

aea8e7b1e reduce use of str::toString() (#754)
8062154a4 HighFive 2,8,0 (#753)

git-subtree-dir: externals/coda-oss
git-subtree-split: aea8e7b1ee845039a62fafca207a4df6e8df15e0

* Squashed 'externals/nitro/' changes from 0342b596a..a37046807

a37046807 latest from CODA-OSS (#596)
205bf8e36 infrastructure for "preloading" TREs (#593)

git-subtree-dir: externals/nitro
git-subtree-split: a37046807ab36de5268e1247e901e704e3f1e81e

* latest from CODA-OSS and NITRO

* Squashed 'externals/coda-oss/' changes from 8b21c3828..5015192ab

5015192ab Merge branch 'main' into cpp17
aea8e7b1e reduce use of str::toString() (#754)
8062154a4 HighFive 2,8,0 (#753)
90db8e19b enable AVX2 by default, it's from 2013
afebea485 Merge branch 'main' into cpp17
92f8b88c7 std::ostringstream overloads
8cb27de27 reduce use of .c_str() and .str() (#752)

git-subtree-dir: externals/coda-oss
git-subtree-split: 5015192abbfdeae1b2aaf252cbe40695507a08c9

* Squashed 'externals/nitro/' changes from 9618cb382..c899f14ad

c899f14ad Merge branch 'main' into cpp17
a37046807 latest from CODA-OSS (#596)
50c75444b Merge commit 'f9ff61eb905ed2119f4f908c568b577643cf42f8' into cpp17
f9ff61eb9 Squashed 'externals/coda-oss/' changes from 8b21c3828b..5015192abb
d37a0d078 latest from CODA-OSS
c2372d744 Merge branch 'main' into cpp17
205bf8e36 infrastructure for "preloading" TREs (#593)
0342b596a latest from CODA-OSS (#592)
0084f9bf7 reduce use of .str() (#591)

git-subtree-dir: externals/nitro
git-subtree-split: c899f14adef57a06d8baf6f9c72fa83a8e36247f

* return type needs to be explicit for subsequent specialization

* latest from CODA-OSS

* Squashed 'externals/coda-oss/' changes from 5015192ab..77cc841ae

77cc841ae Merge branch 'main' into cpp17
47d4b6b73 return type needs to be explicit (not `auto`) for subsequent specialization

git-subtree-dir: externals/coda-oss
git-subtree-split: 77cc841aef3fe478170dc2c29b66046763cdcb4c

* latest from CODA-OSS and NITRO

* Squashed 'externals/coda-oss/' changes from aea8e7b1e..5eae4c1f6

5eae4c1f6 turn of /Wall for MSVC (#755)
47d4b6b73 return type needs to be explicit (not `auto`) for subsequent specialization

git-subtree-dir: externals/coda-oss
git-subtree-split: 5eae4c1f6e3d2ba64bb78cd63ec0b525f7f6d98a

* Squashed 'externals/nitro/' changes from a37046807..de4686af0

de4686af0 improve TRE unitesting (#599)
a4d0a5130 remove /Wall from MSVC (#598)
b97c4a867 disable pre-loaded TREs (#597)
1075b4ecd be sure the string is properly padded for the field type

git-subtree-dir: externals/nitro
git-subtree-split: de4686af03ed60f9881d4fbea876a84d6f202d46

* Squashed commit of the following:

commit f98b867459333e552e279841b46c7a98e3f6cdf1
Merge: b0fcc18f8 7271a19cc
Author: Dan Smith <[email protected]>
Date:   Wed Nov 15 14:44:34 2023 -0500

    Merge commit '7271a19ccad1c3dd355c0b6439aa7a06e91db710' into develop/sync_externals

commit 7271a19ccad1c3dd355c0b6439aa7a06e91db710
Author: Dan Smith <[email protected]>
Date:   Wed Nov 15 14:44:27 2023 -0500

    Squashed 'externals/nitro/' changes from a37046807..de4686af0

    de4686af0 improve TRE unitesting (#599)
    a4d0a5130 remove /Wall from MSVC (#598)
    b97c4a867 disable pre-loaded TREs (#597)
    1075b4ecd be sure the string is properly padded for the field type

    git-subtree-dir: externals/nitro
    git-subtree-split: de4686af03ed60f9881d4fbea876a84d6f202d46

commit b0fcc18f894f8a262be06196087515642b2d114e
Merge: f204c3674 bf2eede30
Author: Dan Smith <[email protected]>
Date:   Wed Nov 15 14:44:23 2023 -0500

    Merge commit 'bf2eede30519cd33b8bfa8013fbf75750f513802' into develop/sync_externals

commit bf2eede30519cd33b8bfa8013fbf75750f513802
Author: Dan Smith <[email protected]>
Date:   Wed Nov 15 14:44:23 2023 -0500

    Squashed 'externals/coda-oss/' changes from aea8e7b1e..5eae4c1f6

    5eae4c1f6 turn of /Wall for MSVC (#755)
    47d4b6b73 return type needs to be explicit (not `auto`) for subsequent specialization

    git-subtree-dir: externals/coda-oss
    git-subtree-split: 5eae4c1f6e3d2ba64bb78cd63ec0b525f7f6d98a

commit f204c367468bd72b4ff970fa9c6f61eb0df757d8
Author: Dan Smith <[email protected]>
Date:   Wed Nov 15 14:44:18 2023 -0500

    latest from CODA-OSS and NITRO

commit 3b4692d3b29961a45b3acc9a05c2998ef6f22d1e
Merge: 995b923f5 d90e4c41d
Author: Dan Smith <[email protected]>
Date:   Wed Nov 15 14:43:46 2023 -0500

    Merge branch 'main' into develop/sync_externals

commit 995b923f5c8f559a749e27d65e768d51f760035b
Author: Dan Smith <[email protected]>
Date:   Mon Nov 13 16:38:22 2023 -0500

    return type needs to be explicit for subsequent specialization

commit ae4bcd0c2ed76c09296d607aea841e073eaf1c48
Merge: 0b0a22dd2 fd9950b06
Author: Dan Smith <[email protected]>
Date:   Mon Nov 13 16:04:58 2023 -0500

    Merge commit 'fd9950b06621dfbb6b37cc037b230db6b6147301' into develop/sync_externals

commit fd9950b06621dfbb6b37cc037b230db6b6147301
Author: Dan Smith <[email protected]>
Date:   Mon Nov 13 16:04:55 2023 -0500

    Squashed 'externals/nitro/' changes from 0342b596a..a37046807

    a37046807 latest from CODA-OSS (#596)
    205bf8e36 infrastructure for "preloading" TREs (#593)

    git-subtree-dir: externals/nitro
    git-subtree-split: a37046807ab36de5268e1247e901e704e3f1e81e

commit 1f0e264467b8a0538a8fae9b5f0f2ea019dbe95e
Author: Dan Smith <[email protected]>
Date:   Mon Nov 13 16:04:52 2023 -0500

    Squashed 'externals/coda-oss/' changes from 92f8b88c7..aea8e7b1e

    aea8e7b1e reduce use of str::toString() (#754)
    8062154a4 HighFive 2,8,0 (#753)

    git-subtree-dir: externals/coda-oss
    git-subtree-split: aea8e7b1ee845039a62fafca207a4df6e8df15e0

commit 0b0a22dd210e3030fa3fc748631dbd77b14582c0
Merge: 659af2dc4 1f0e26446
Author: Dan Smith <[email protected]>
Date:   Mon Nov 13 16:04:52 2023 -0500

    Merge commit '1f0e264467b8a0538a8fae9b5f0f2ea019dbe95e' into develop/sync_externals

commit 659af2dc43025e0d5c19970e9651f2fcff448366
Author: Dan Smith <[email protected]>
Date:   Mon Nov 13 16:04:48 2023 -0500

    latest from CODA-OSS and NITRO

commit 0e75de6af274bfe01148736f7a24c8bb6d757e13
Merge: 4b9245b68 0ffa37222
Author: Dan Smith <[email protected]>
Date:   Mon Nov 13 16:03:52 2023 -0500

 …
  • Loading branch information
JDanielSmith committed Feb 14, 2024
1 parent 8756fc0 commit ff922e6
Show file tree
Hide file tree
Showing 3 changed files with 65 additions and 21 deletions.
4 changes: 2 additions & 2 deletions externals/coda-oss/.github/workflows/build_unittest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ jobs:
os: [windows-latest]
platform: [x64]
configuration: [Debug] # Debug turns on more compiler warnings
avx: [AVX2, AVX512F]
avx: [AVX512F]
name: ${{ matrix.os }}-${{ matrix.avx }}-msbuild
runs-on: ${{ matrix.os }}

Expand Down Expand Up @@ -132,7 +132,7 @@ jobs:
matrix:
os: [ubuntu-latest]
configuration: [Debug, Release]
avx: [AVX2, AVX512F]
avx: [AVX512F]
name: ${{ matrix.os }}-${{ matrix.configuration }}-${{ matrix.avx }}-CMake
runs-on: ${{ matrix.os }}
steps:
Expand Down
28 changes: 21 additions & 7 deletions externals/coda-oss/modules/c++/avx/unittests/test_m256.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -56,20 +56,24 @@ TEST_CASE(test_getSIMDInstructionSet)
{
// This is the reverse of getSIMDInstructionSet(): it uses the macros to generate a value.
constexpr auto simdInstructionSet = sys::getSIMDInstructionSet();
#if __AVX512F__
static_assert(simdInstructionSet == sys::SIMDInstructionSet::AVX512F, "getSIMDInstructionSet()");
#elif __AVX2__
static_assert(simdInstructionSet == sys::SIMDInstructionSet::AVX2, "getSIMDInstructionSet()");
#if CODA_OSS_ENABLE_SIMD
#if __AVX512F__
static_assert(simdInstructionSet == sys::SIMDInstructionSet::AVX512F, "getSIMDInstructionSet()");
#elif __AVX2__
static_assert(simdInstructionSet == sys::SIMDInstructionSet::AVX2, "getSIMDInstructionSet()");
#else
static_assert(simdInstructionSet == sys::SIMDInstructionSet::SSE2, "getSIMDInstructionSet()");
#endif
#else
static_assert(simdInstructionSet == sys::SIMDInstructionSet::SSE2, "getSIMDInstructionSet()");
#endif
static_assert(simdInstructionSet == sys::SIMDInstructionSet::Disabled, "getSIMDInstructionSet()");
#endif // CODA_OSS_ENABLE_SIMD

CODA_OSS_disable_warning_push
#if _MSC_VER
#pragma warning(disable: 4127) // conditional expression is constant
#endif

switch (sys::getSIMDInstructionSet()) // run-time value
switch (sys::getSIMDInstructionSet()) // run-time value (well, not really, but it could be)
{
case sys::SIMDInstructionSet::SSE2:
{
Expand All @@ -86,6 +90,16 @@ TEST_CASE(test_getSIMDInstructionSet)
TEST_ASSERT(simdInstructionSet == sys::SIMDInstructionSet::AVX512F);
break;
}
case sys::SIMDInstructionSet::Disabled:
{
TEST_ASSERT(simdInstructionSet == sys::SIMDInstructionSet::Disabled);
break;
}
case sys::SIMDInstructionSet::Unknown:
{
TEST_ASSERT(simdInstructionSet == sys::SIMDInstructionSet::Unknown);
break;
}
default:
{
TEST_FAIL;
Expand Down
54 changes: 42 additions & 12 deletions externals/coda-oss/modules/c++/sys/include/sys/AbstractOS.h
Original file line number Diff line number Diff line change
Expand Up @@ -55,27 +55,57 @@ namespace sys
* Also see https://gcc.gnu.org/onlinedocs/gcc/x86-Options.html
* "... For the x86-64 compiler, these extensions [ -msse2 ] are enabled by default."
* We're 64-bit only.
*
* Well ... it turns out third parties want to compile this code in different
* enviroments which we don't know about; SIMD support makes that
* more difficult.
*/
#ifdef CODA_OSS_DISABLE_SIMD
#ifdef CODA_OSS_ENABLE_SIMD
#error "CODA_OSS_ENABLE_SIMD already #define'd'"
#endif
#define CODA_OSS_ENABLE_SIMD 0
#endif // CODA_OSS_DISABLE_SIMD

#ifndef CODA_OSS_ENABLE_SIMD
#if __AVX512F__ || __AVX2__
#define CODA_OSS_ENABLE_SIMD 1
#elif _MSC_VER && _M_X64 /*MSVC for SSE2*/
#define CODA_OSS_ENABLE_SIMD 1
#elif __GNUC__ && __SSE2__
#define CODA_OSS_ENABLE_SIMD 1
#else
#define CODA_OSS_ENABLE_SIMD 0
#endif
#endif

enum class SIMDInstructionSet
{
Disabled, // CODA_OSS_ENABLE_SIMD = 0
Unknown, // CODA_OSS_ENABLE_SIMD = 1, but can't determine

SSE2, // https://en.wikipedia.org/wiki/SSE2
AVX2, // https://en.wikipedia.org/wiki/Advanced_Vector_Extensions
AVX512F, // https://en.wikipedia.org/wiki/AVX-512
};

constexpr auto getSIMDInstructionSet() { return SIMDInstructionSet::
// https://learn.microsoft.com/en-us/cpp/preprocessor/predefined-macros?view=msvc-170

#if __AVX512F__
AVX512F
#elif __AVX2__
AVX2
#elif _M_X64 /*MSVC*/ || __SSE2__ /*GCC*/
SSE2
constexpr auto getSIMDInstructionSet() {
#if !CODA_OSS_ENABLE_SIMD
return SIMDInstructionSet::Disabled;
#else
#error "Can't determine SIMDInstructionSet'"
#endif
; }
// https://learn.microsoft.com/en-us/cpp/preprocessor/predefined-macros?view=msvc-170
#if __AVX512F__
return SIMDInstructionSet::AVX512F;
#elif __AVX2__
return SIMDInstructionSet::AVX2;
#elif _M_X64 /*MSVC*/ || __SSE2__ /*GCC*/
return SIMDInstructionSet::SSE2;
#else
#error "Can't determine SIMDInstructionSet'"
return SIMDInstructionSet::Unknown;
#endif
#endif // CODA_OSS_ENABLE_SIMD
}

/*!
* \class AbstractOS
Expand Down

0 comments on commit ff922e6

Please sign in to comment.