From 135da7d178226a4c7aac58536320edb181538abf Mon Sep 17 00:00:00 2001 From: "J. Daniel Smith" Date: Tue, 16 Jan 2024 13:21:01 -0500 Subject: [PATCH] use mt::Transform_par() (#735) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * add nearest_neighbor test * fix unit tests * slam in "main" * remove transform_async() from coda-oss; std::async() is a bit half-baked * Squashed 'externals/coda-oss/' changes from e87c32b4d..0b7d581fa 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 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> 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 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 instead of getValue(T&) cbd0bd8f2 castValue 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: 0b7d581fa62a58ca730fbbf58d24c8ef8b32f764 * Squashed 'externals/nitro/' changes from c8ecbe9ae..90c6263e2 90c6263e2 latest from coda-oss (#544) 90d513ac5 latest from coda-oss (#543) git-subtree-dir: externals/nitro git-subtree-split: 90c6263e218e20f9d974520d955638ec35ac1085 * copy_externals * use our own `struct` rather than std::pair<> * from_AMP8I_PHS8I() is a goofy name * overloads to avoid an `if`-check inside of a loop * overload so it's no longer necessary to pass `nullptr` * No need to make "nodes" just to iterate through the data again * avoid checking pAmplitudeTable inside a loop * force include pch.h * utility to generate all 256 `uint8_t` values * overloads for NULL (none) and non-NULL (reference) amplitude table * merge develop/byteswap * remove cutoff, it's not needed in C++17 * AmplitudeTable should be clone()'d, not copyied * AmplitudeTable should be clone()'d, not copyied * Put LUT and AmplitudeTable in their own .H file; Types.h is big * use Amp8iPhs8iLookup_t type * simplify code to create lookup table * cache the lookup table on AmplitudeTable * removed dead code * use toComplex() and fromComplex() as AMP8I_PHS8I is a mouth-full * Move AMP8I/PHS8I structures to SIDD for better code structure * simplify creating a ComplexToAMP8IPHS8I instance * reduce checking for a NULL AmplitudeTable* * fix build error due to header file rearrangment * simplify special routine for unit-testing * don't need "static" utility routines anymore * no reason not to allow move for ComplexToAMP8IPHS8I * Squashed commit of the following: commit 67d0bc78b1a93d02fc496ec755fc794060ab5bb5 Merge: 42f479813 a2cb168ce Author: Dan Smith Date: Fri Jun 16 10:37:57 2023 -0400 Merge branch 'develop/complex_short' of github.com:ngageoint/six-library into develop/complex_short commit 42f479813d7b2d431753028cab5ff5c4874bb62c Author: Dan Smith Date: Fri Jun 16 10:37:43 2023 -0400 Parameter::operator==() must a member function for existing SWIG bindings commit a2cb168cebbf0b89348d106be8a878fb6746f155 Author: Dan Smith Date: Fri Jun 16 10:32:22 2023 -0400 renames from CODA-OSS commit 68d184a89f899a709c6c7e54f858e4a8a4ed2955 Author: Dan Smith Date: Fri Jun 16 10:15:28 2023 -0400 figure out ComplexInteger in SIX rather than CODA-OSS commit 802087c892ecc653c0cd0086ec888d622c9192f8 Author: Dan Smith Date: Fri Jun 16 10:01:05 2023 -0400 separate .H file for complex commit 4d24ae394a290e21f074614ee95f46a182c43e33 Author: Dan Smith Date: Fri Jun 16 09:54:05 2023 -0400 remove unneeded #include of types/Complex.h commit e021d71c2d25641afbfe7d6741f60b2c745bd12d Author: Dan Smith Date: Fri Jun 16 09:49:48 2023 -0400 zinteger -> ComplexInteger commit 91599f83e4a8d1e3e8fe77d54bca4cb6f85ea692 Author: Dan Smith Date: Fri Jun 16 09:38:53 2023 -0400 complex.h -> Complex.h from CODA-OSS commit b3653cc75b07fb0415e2a18303058e57c31718b8 Merge: 786223e8c 6e34e8717 Author: Dan Smith Date: Thu Jun 15 16:11:31 2023 -0400 Merge branch 'main' into develop/complex_short commit 786223e8c0ebc05ca46e7c55eac8a26678ff2bff Author: Dan Smith Date: Thu Jun 15 16:04:31 2023 -0400 use CODA_OSS_types_unique_zinteger commit f143d3a53c4cdce580958fae0ef5588bb12cbda5 Author: Dan Smith Date: Thu Jun 15 15:54:40 2023 -0400 Squashed commit of the following: commit 011ba83af6202c4a5358c366ac0e88edcbfd6986 Merge: 7390b8b19 4a21b2db5 Author: Dan Smith Date: Thu Jun 15 15:37:33 2023 -0400 Merge branch 'main' into develop/sync_externals commit 7390b8b19f4f9d21d0ffc34ae9906cea2227936d Merge: 7f79e6d6f b902f6c17 Author: Dan Smith Date: Thu Jun 15 14:21:10 2023 -0400 Merge commit 'b902f6c1743778d8fceeee5b3209ebca2370312a' into develop/sync_externals commit b902f6c1743778d8fceeee5b3209ebca2370312a Author: Dan Smith Date: Thu Jun 15 14:21:10 2023 -0400 Squashed 'externals/coda-oss/' changes from f4d42005f..704d6867f 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) git-subtree-dir: externals/coda-oss git-subtree-split: 704d6867f959f60e3e62c44681a3fb1f7abc99bf commit 7f79e6d6fb8972e5074e582aa4c3214e9a524459 Author: Dan Smith Date: Thu Jun 15 14:21:06 2023 -0400 latest from CODA-OSS commit 24678b33f4aab533af0d807d6706f8587bd1c103 Merge: 9eb95e3aa 35b59b9a0 Author: Dan Smith Date: Thu Jun 15 14:20:30 2023 -0400 Merge branch 'main' into develop/sync_externals commit 9eb95e3aad1562b0d7915cf48db1b61a337a3878 Author: Dan Smith Date: Tue Jun 13 17:51:55 2023 -0400 latest from CODA-OSS and NITRO commit 1bd99042ef18b76df9da27d946b5616d9dd254b1 Merge: ec161c5b3 c59d69c06 Author: Dan Smith Date: Tue Jun 13 17:51:40 2023 -0400 sync_externals commit c59d69c06eda40c7295ab607fdc8a5dad7d2c1b1 Author: Dan Smith Date: Tue Jun 13 17:51:34 2023 -0400 Squashed 'externals/nitro/' changes from c8ecbe9ae..3f01809fa 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: 3f01809fae7d471aa0f1594fc5eec1e3111cd710 commit 272cae451cbe3ad6820d1221aafe375d77b1ba04 Author: Dan Smith Date: Tue Jun 13 17:51:29 2023 -0400 Squashed 'externals/coda-oss/' changes from e87c32b4d..f4d42005f f4d42005f fix build error in NITRO ff11a5557 keep using std::complex for now (#682) c88b9c053 types::complex (#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 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> 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 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 instead of getValue(T&) cbd0bd8f2 castValue 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: f4d42005fa477ae59da193422aa2cb14b877cf0c commit ec161c5b334ea8133777a78ce94181807e591642 Merge: d2d594b9f 272cae451 Author: Dan Smith Date: Tue Jun 13 17:51:29 2023 -0400 Merge commit '272cae451cbe3ad6820d1221aafe375d77b1ba04' into develop/sync_externals commit d2d594b9ff50bc00c15a4228927ea1ec0449381b Author: Dan Smith Date: Tue Jun 13 17:51:25 2023 -0400 latest from CODA-OSS and NITRO commit 09ec30cc503ffd74daa401514ab9b674c6e4a3cf Merge: 28a4b2bd1 4a21b2db5 Author: Dan Smith Date: Thu Jun 15 15:54:31 2023 -0400 Merge branch 'main' into develop/complex_short commit 28a4b2bd17daabbb9ba94aae53a58986acd58a9b Author: Dan Smith Date: Thu Jun 15 14:58:55 2023 -0400 restore "old" CODA-OSS to minimize differences commit f41c086967d2e5b05ee8988272ab8ca8c0014f85 Author: Dan Smith Date: Thu Jun 15 14:40:31 2023 -0400 keep using std::complex<> everywhere commit bc1704c8cb985f1987a7d3ff2b37c2e48286a8fd Author: Dan Smith Date: Thu Jun 15 14:22:47 2023 -0400 latest from CODA-OSS commit 4ec782e6c9409f1985628c36a88577b286af61e7 Author: Dan Smith Date: Thu Jun 15 13:56:24 2023 -0400 build against "old" CODA-OSS commit bffd6a985d8dc8e08b42aed78bbe7a162ac45bf6 Author: Dan Smith Date: Thu Jun 15 13:56:08 2023 -0400 restore CODA-OSS changes to minimize merge differences commit d93e0e80c94013e1b957eb2c33ba112643c306c3 Author: Dan Smith Date: Thu Jun 15 13:39:37 2023 -0400 more passing the entire complex type as a template parameter commit 0872159268ff8f38e3c3d42788598725ce142616 Author: Dan Smith Date: Thu Jun 15 13:25:14 2023 -0400 no more types::complex commit 379a89312f55c86f1de95f6ff14e7aeca72df32c Author: Dan Smith Date: Thu Jun 15 12:36:06 2023 -0400 use CODA_OSS_types_unique_zinteger commit 2b9b396c4d460233418f293d6ebdf157231b8757 Author: Dan Smith Date: Thu Jun 15 11:58:00 2023 -0400 latest from CODA-OSS commit 5d19ea2946556ab9f7e2e1ec98e0d07fecf578e2 Merge: 0dab1a156 7e99024da Author: Dan Smith Date: Thu Jun 15 11:07:26 2023 -0400 Merge branch 'develop/complex' into develop/complex_short commit 7e99024da866660e7e4da621b75f4561e638044b Author: Dan Smith Date: Thu Jun 15 11:06:20 2023 -0400 unittest changes from develop/complex_short branch commit e5c0f6d52e05bf50741a6bc086eae9ce53a89e9e Author: Dan Smith Date: Thu Jun 15 11:00:34 2023 -0400 more changes from CODA-OSS commit ca7cb60f6b39a2f1a03dd1497bb20a4da5925c24 Author: Dan Smith Date: Thu Jun 15 10:34:57 2023 -0400 no more types::complex commit 6048da55638d0283cf789347740871aa2d07fba1 Author: Dan Smith Date: Thu Jun 15 10:18:44 2023 -0400 latest from CODA-OSS commit 16c99ed82bb9b57edc1ea5e28d68f89b63519664 Author: Dan Smith Date: Thu Jun 15 08:13:27 2023 -0400 pass the entire complex type and use value_type commit 4d9d2a764319f3177b427b3a03ae95c99ef02494 Author: Dan Smith Date: Thu Jun 15 09:24:49 2023 -0400 pass entire complex type as template parameter commit 0dab1a15681e51a5464b363baa0f263e25521c4a Author: Dan Smith Date: Thu Jun 15 09:24:49 2023 -0400 pass entire complex type as template parameter commit e4c29f670785b3312dda1d6b6da30847fa798b89 Author: Dan Smith Date: Thu Jun 15 09:14:37 2023 -0400 Update PVPBlock.cpp commit 7133f7f4b4752d0e049ef48241a4e1b707a5c4ec Author: Dan Smith Date: Thu Jun 15 09:09:11 2023 -0400 restore types::z* overloads commit 9a0c890090d5501bb2c563e0b36a787cfad70af6 Merge: a3a71ba35 fc8ba82bd Author: Dan Smith Date: Thu Jun 15 09:01:31 2023 -0400 Merge branch 'develop/complex' into develop/complex_short commit fc8ba82bd5357454d02276c1605ddcd5973322d1 Author: Dan Smith Date: Thu Jun 15 08:59:58 2023 -0400 findComplex() utility commit 8b762374c282458c469ad6e4502aaee7aa695079 Author: Dan Smith Date: Thu Jun 15 08:47:56 2023 -0400 const& for Parameter arguments commit a3a71ba351b9b790c20bb80e4fac861592758164 Author: Dan Smith Date: Thu Jun 15 08:26:00 2023 -0400 getComplex() overloads commit 6fc1ee4b96b722b81042f79ed476c481af13aadd Author: Dan Smith Date: Thu Jun 15 08:13:27 2023 -0400 pass the entire complex type and use value_type commit 13e44351a9e912c91fd79ada8b09a544c482874a Author: J. Daniel Smith Date: Wed Jun 14 21:47:37 2023 -0400 more progress on types::complex commit 5e72ecca7037861e87f311339c61bc2cf77305fe Author: Dan Smith Date: Wed Jun 14 17:43:52 2023 -0400 use our own type for complex commit 9bfc4f9799df5261bbc0c7afb1ffa08abc060ba1 Author: Dan Smith Date: Wed Jun 14 17:42:58 2023 -0400 latest from CODA-OSS commit 39153f274d56de88a28b526978dd4ad832e767f9 Author: Dan Smith Date: Wed Jun 14 16:45:05 2023 -0400 fix Parameter::setValue() overloads commit b8007fbad15e529eb503bbfd692c85ce6d34a0a6 Author: Dan Smith Date: Wed Jun 14 16:37:10 2023 -0400 latest from coda-oss commit 27f080ec628c4497709cfc85183f3a1ceaad11cb Author: Dan Smith Date: Wed Jun 14 16:22:29 2023 -0400 move is implicitly deleted because of =delete for copy commit bd69591ff8c93d1aaa9f184346eac2aca83b3272 Merge: 71d519492 35b59b9a0 Author: Dan Smith Date: Wed Jun 14 16:09:16 2023 -0400 Merge branch 'main' into develop/complex_short commit 71d519492046c4c61986f181f6ec7aa18cb4c0c6 Author: Dan Smith Date: Tue Jun 13 15:25:54 2023 -0400 std::complex -> six::zfloat commit a3eee8257746732f61b959c9b31442511d81b590 Merge: d0bb8c181 e13c3da4f Author: Dan Smith Date: Tue Jun 13 15:17:07 2023 -0400 Merge branch 'main' into develop/complex_short commit d0bb8c1819da2ade60c4ce3349ff40f32fe31301 Author: Dan Smith Date: Tue Jun 13 15:15:46 2023 -0400 finish (almost) switching to types::complex for integers commit bbe1320e33768a0a0f151feb138643c80a8bdfbd Author: Dan Smith Date: Tue Jun 13 14:57:21 2023 -0400 types::complex is std::complex for now commit 00047f57ea462c610d249d25fcd2f0105a7c0f41 Author: Dan Smith Date: Tue Jun 13 14:36:27 2023 -0400 latest from coda-oss commit ac376dcf72763892e9e9b9c03fb14bc34fd04630 Author: Dan Smith Date: Tue Jun 13 14:13:42 2023 -0400 Update test_dump_images.cpp commit 2907efbcfdb33f154138944831a94a2c508b5a68 Author: Dan Smith Date: Mon Jun 12 16:39:29 2023 -0400 use types::complex for TInteger commit 2580312337bf1b7ee20d5ba9eed83c8e65e06e6f Author: Dan Smith Date: Mon Jun 12 16:26:16 2023 -0400 CPHD aliaes for std::complex commit d177963c782c08c137d14b9608207d40754db568 Author: Dan Smith Date: Mon Jun 12 16:17:38 2023 -0400 latest from coda-oss commit e05937c9b568f52fa9f41b279e2c8ecfa63e5fc0 Author: Dan Smith Date: Mon Jun 12 15:41:34 2023 -0400 use types::z* aliases for complex commit 2b61dcc4974b7326db762f6f6fd60dc263bb87e6 Author: Dan Smith Date: Mon Jun 12 15:05:41 2023 -0400 begin switching to types::complex for integral T commit b4e625673c3d270896eed26b4c83bc827befc538 Author: Dan Smith Date: Mon Jun 12 14:59:30 2023 -0400 turn off _SILENCE_NONFLOATING_COMPLEX_DEPRECATION_WARNING commit 9bd683bc8858d07378c390c3cd4fcaed4a490a21 Author: Dan Smith Date: Mon Jun 12 14:54:22 2023 -0400 std::complex -> zfloat commit 47aa0e8994af5b31602f63adaac3b3415cb769c2 Author: Dan Smith Date: Mon Jun 12 14:45:00 2023 -0400 std::complex -> zfloat commit 3785ed2c8e0f812ae43e1e81971bce6777eb91a1 Author: Dan Smith Date: Mon Jun 12 14:38:18 2023 -0400 aliases for std::complex and std::complex commit d5db375ba08737551023d9b21455f3d5cd71faf0 Author: Dan Smith Date: Mon Jun 12 14:20:01 2023 -0400 Squashed commit of the following: commit bb2bb5aaf944040ea5bc42168b846324287dcad8 Merge: bbba5a210 4c146e7d0 Author: Dan Smith Date: Mon Jun 12 13:04:09 2023 -0400 Merge commit '4c146e7d01b14cf408b0e398cba96705df69090c' into develop/sync_externals commit 4c146e7d01b14cf408b0e398cba96705df69090c Author: Dan Smith Date: Mon Jun 12 13:04:09 2023 -0400 Squashed 'externals/coda-oss/' changes from aeec0131c..c88b9c053 c88b9c053 types::complex (#681) d1244a080 don't need our own make_unique in C++14 (#680) git-subtree-dir: externals/coda-oss git-subtree-split: c88b9c05325c802f88a85ddcebb498be4afacad0 commit bbba5a210c0257f622781914e9d228eeca23341c Author: Dan Smith Date: Mon Jun 12 13:04:06 2023 -0400 latest from CODA-OSS commit 370dd8876136755230624ebc955bc67642b1482b Merge: 58ff5a537 ffe1caafd Author: Dan Smith Date: Mon Jun 12 13:03:25 2023 -0400 Merge branch 'main' into develop/sync_externals commit 58ff5a5371d9158910e99613f4ce6e6fc36e543e Author: Dan Smith Date: Thu Jun 8 16:23:08 2023 -0400 latest from CODA-OSS commit 3bfc33a40274fa7a073983d4e4ddd907e45730d2 Author: Dan Smith Date: Thu Jun 8 14:34:45 2023 -0400 latest from CODA-OSS and NITRO commit 389417a983778ba2a07af9c6dbfea80484324b97 Merge: bce7ba0b1 4ad490fe4 Author: Dan Smith Date: Thu Jun 8 14:34:28 2023 -0400 latest from CODA-OSS and NITRO commit 4ad490fe4224df18ce4a437c40a257af0686140e Author: Dan Smith Date: Thu Jun 8 14:34:22 2023 -0400 Squashed 'externals/nitro/' changes from c8ecbe9ae..05dae18a3 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: 05dae18a3a9c5ad70e1ce814c21ca8ec278829be commit 86929db19a438630d531ca0c34bdcd8e8c527ae9 Author: Dan Smith Date: Thu Jun 8 14:34:18 2023 -0400 Squashed 'externals/coda-oss/' changes from e87c32b4d..aeec0131c 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 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> 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 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 instead of getValue(T&) cbd0bd8f2 castValue 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: aeec0131c51497c5d448a39be0d2df608d93bc15 commit bce7ba0b1ae40e9ddcb4f24610e7e4d702272d54 Merge: 646b70e8d 86929db19 Author: Dan Smith Date: Thu Jun 8 14:34:18 2023 -0400 Merge commit '86929db19a438630d531ca0c34bdcd8e8c527ae9' into develop/sync_externals commit 646b70e8d47438211451493837e6b2d76db4e896 Author: Dan Smith Date: Thu Jun 8 14:34:13 2023 -0400 latest from CODA-OSS and NITRO * use parallel version of std::transform with C++17 * nearest_neighbors() so that the loop is closer to the actual code * Squashed commit of the following: commit c747f326b60ba8a82b3c33e91aabe2651d6bb13d Author: Dan Smith Date: Mon Jun 19 14:30:50 2023 -0400 latest from CODA-OSS and NITRO commit b142ec4fcb2a8007e35e3d68e0ae752f4b2828d0 Merge: 2829f93c9 3d4e554aa Author: Dan Smith Date: Mon Jun 19 14:30:15 2023 -0400 sync_externals commit 3d4e554aa3934c7157bf9c2e57e2482662938b10 Author: Dan Smith Date: Mon Jun 19 14:30:07 2023 -0400 Squashed 'externals/nitro/' changes from 3f01809fa..cee9feb42 cee9feb42 latest from CODA-OSS (#558) git-subtree-dir: externals/nitro git-subtree-split: cee9feb424b0f9c1f11f37f67a1795b3cc5e8dd1 commit 2829f93c9de0e8787dbe6cb319d6f32143dcdd8e Merge: e47ccf30e 12995e63a Author: Dan Smith Date: Mon Jun 19 14:29:10 2023 -0400 Merge branch 'main' into develop/sync_externals commit e47ccf30e059e0cd32b42dc90a45f4b8a8512caf Author: Dan Smith Date: Mon Jun 19 14:19:10 2023 -0400 latest from CODA-OSS commit 04090c4a13b921f33257662950e46bfc2e58cabb Merge: cc6009422 ac1ccde84 Author: Dan Smith Date: Mon Jun 19 14:18:41 2023 -0400 sync_externals commit ac1ccde84b2be856ac947b2670dd8228c9980889 Author: Dan Smith Date: Mon Jun 19 14:18:34 2023 -0400 Squashed 'externals/nitro/' changes from c8ecbe9ae..3f01809fa 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: 3f01809fae7d471aa0f1594fc5eec1e3111cd710 commit cc6009422ec41dd6e48ade90c37bdbfd97a1bc35 Merge: fec3755e0 1ceb8e3ff Author: Dan Smith Date: Mon Jun 19 14:18:30 2023 -0400 Merge commit '1ceb8e3ffb55a240085250cfde3f4d1ab7ef0b04' into develop/sync_externals commit 1ceb8e3ffb55a240085250cfde3f4d1ab7ef0b04 Author: Dan Smith Date: Mon Jun 19 14:18:30 2023 -0400 Squashed 'externals/coda-oss/' changes from e87c32b4d..54033e70e 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 for now (#682) c88b9c053 types::complex (#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 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> 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 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 instead of getValue(T&) cbd0bd8f2 castValue 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: 54033e70e353da94340dd7b96d0b1c6652308952 commit fec3755e04a8311103aef1ded477b17ce826b044 Author: Dan Smith Date: Mon Jun 19 14:18:05 2023 -0400 latest from CODA-OSS * std::numbers::pi instead of M_PI * `long double` doesn't change results from `float` but prevents AVX/SSE * w/C++17 * it seems is broken with GCC 9.x ? * 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: 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` 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 (#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 for now (#682) c88b9c053 types::complex (#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 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> 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 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 instead of getValue(T&) cbd0bd8f2 castValue 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 * overload to return the converted data in a std::vector * use overload which returns a std::vector<> * remove unused overloads * use std::as_bytes() * more use of AMP8I_PHS8I_t rather than std::pair * use fromComplex overload returning a std::vector * cx_float -> zfloat * getPhase() utility routine * separate nearest_neighbors() member function not needed * std::complex -> six::zfloat * 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 * 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 * 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 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 * 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 * Squashed commit of the following: commit f98b867459333e552e279841b46c7a98e3f6cdf1 Merge: b0fcc18f8 7271a19cc Author: Dan Smith Date: Wed Nov 15 14:44:34 2023 -0500 Merge commit '7271a19ccad1c3dd355c0b6439aa7a06e91db710' into develop/sync_externals commit 7271a19ccad1c3dd355c0b6439aa7a06e91db710 Author: Dan Smith 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 Date: Wed Nov 15 14:44:23 2023 -0500 Merge commit 'bf2eede30519cd33b8bfa8013fbf75750f513802' into develop/sync_externals commit bf2eede30519cd33b8bfa8013fbf75750f513802 Author: Dan Smith 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 Date: Wed Nov 15 14:44:18 2023 -0500 latest from CODA-OSS and NITRO commit 3b4692d3b29961a45b3acc9a05c2998ef6f22d1e Merge: 995b923f5 d90e4c41d Author: Dan Smith Date: Wed Nov 15 14:43:46 2023 -0500 Merge branch 'main' into develop/sync_externals commit 995b923f5c8f559a749e27d65e768d51f760035b Author: Dan Smith 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 Date: Mon Nov 13 16:04:58 2023 -0500 Merge commit 'fd9950b06621dfbb6b37cc037b230db6b6147301' into develop/sync_externals commit fd9950b06621dfbb6b37cc037b230db6b6147301 Author: Dan Smith 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 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 Date: Mon Nov 13 16:04:52 2023 -0500 Merge commit '1f0e264467b8a0538a8fae9b5f0f2ea019dbe95e' into develop/sync_externals commit 659af2dc43025e0d5c19970e9651f2fcff448366 Author: Dan Smith Date: Mon Nov 13 16:04:48 2023 -0500 latest from CODA-OSS and NITRO commit 0e75de6af274bfe01148736f7a24c8bb6d757e13 Merge: 4b9245b68 0ffa37222 Author: Dan Smith Date: Mon Nov 13 16:03:52 2023 -0500 Merge branch 'main' into develop/sync_externals commit 4b9245b68c1fbaebbc8d40a9799779551659760e Merge: 19ea3e7ed e8e1c0786 Author: Dan Smith Date: Wed Nov 8 11:09:45 2023 -0500 Merge commit 'e8e1c07869c246fe8255798c1e304b62c034c986' into develop/sync_externals commit e8e1c07869c246fe8255798c1e304b62c034c986 Author: Dan Smith Date: Wed Nov 8 11:09:41 2023 -0500 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 commit 651ec2228f993a1720824e5994766651848791f1 Author: Dan Smith Date: Wed Nov 8 11:09:37 2023 -0500 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 commit 19ea3e7eda12fa7581a3ba12b17996924c0f9f2f Merge: 3e75b3859 651ec2228 Author: Dan Smith Date: Wed Nov 8 11:09:37 2023 -0500 Merge commit '651ec2228f993a1720824e5994766651848791f1' into develop/sync_externals commit 3e75b385947bada81bb465c28c83d0b328327e39 Author: Dan Smith Date: Wed Nov 8 11:09:32 2023 -0500 latest from CODA-OSS and NITRO commit f174846ca3ac27c8580c8118b3d89997410a5278 Merge: b46b11ca6 86bd245c8 Author: Dan Smith Date: Wed Nov 8 11:08:59 2023 -0500 Merge branch 'main' into develop/sync_externals commit 9a7678be7d34c94b153c8eabd24b1d9ee53dfdd9 Author: Dan Smith Date: Mon Nov 6 14:33:59 2023 -0500 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 commit b46b11ca625f763062ab5724b2b97123a21f0961 Merge: 1f3d578d2 9a7678be7 Author: Dan Smith Date: Mon Nov 6 14:33:59 2023 -0500 Merge commit '9a7678be7d34c94b153c8eabd24b1d9ee53dfdd9' into develop/sync_externals commit 1f3d578d2728499e59efe16c718795bd6cd0b662 Author: Dan Smith Date: Mon Nov 6 14:33:56 2023 -0500 latest from CODA-OSS commit f4dc51504b52d22011a94dad9db7af16868000f8 Merge: 990528a72 b5bc2b3d0 Author: Dan Smith Date: Mon Nov 6 14:33:07 2023 -0500 Merge branch 'main' into develop/sync_externals commit 990528a7270e58932ec468e090abedb38c208c77 Merge: a7a7ecc20 0d9d64fa4 Author: Dan Smith Date: Mon Oct 23 12:56:05 2023 -0400 Merge commit '0d9d64fa47108c69f4cfaac1b7ea235443b8d552' into develop/sync_externals commit 0d9d64fa47108c69f4cfaac1b7ea235443b8d552 Author: Dan Smith Date: Mon Oct 23 12:55:55 2023 -0400 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 commit e35ff93576fbc97ae678b9f941c69a96cf2b8159 Author: Dan Smith Date: Mon Oct 23 12:55:50 2023 -0400 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: 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` 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 (#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 for now (#682) c88b9c053 types::complex (#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 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> 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 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 instead of getValue(T&) cbd0bd8f2 castValue 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 commit a7a7ecc20c79c349b0aa527dabc2fc3e2f69fa26 Merge: afb830018 e35ff9357 Author: Dan Smith Date: Mon Oct 23 12:55:50 2023 -0400 Merge commit 'e35ff93576fbc97ae678b9f941c69a96cf2b8159' into develop/sync_externals commit afb830018844d675fc9601a83823bf9c2cd60d05 Author: Dan Smith Date: Mon Oct 23 12:55:44 2023 -0400 latest from CODA-OSS and NITRO * latest from CODA-OSS and NITRO * Squashed 'externals/coda-oss/' changes from 77cc841ae..cf6c4249a cf6c4249a /W3 for release builds 1ec9a072c Merge branch 'main' into cpp17 5eae4c1f6 turn of /Wall for MSVC (#755) git-subtree-dir: externals/coda-oss git-subtree-split: cf6c4249a81daa512765d488ddcd4b845d9e0999 * Squashed 'externals/nitro/' changes from c899f14ad..b5612a7df b5612a7df enable "WarningsAsErrors" for DEBUG builds 2f47cc122 Merge commit 'f067a751ac940fc485c06f003e2e2c23071a8766' into cpp17 f067a751a Squashed 'externals/coda-oss/' changes from 5015192abb..1ec9a072c4 50a3500ec Merge branch 'main' into cpp17 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: b5612a7dffc1a7340da81f6390fda40e8a59e679 * enable "Warnings as Errors" * /guard:cf * latest from CODA-OSS and NITRO * Squashed 'externals/coda-oss/' changes from cf6c4249a..aba8366d8 aba8366d8 CODA_OSS_LIBRARY_SHARED=1 52e067ec7 Merge branch 'main' into cpp17 df4e0fc1f changes to build SIX DLLs (#757) faf5d0521 allow CMake to switch between building SHARED (DLLs) or STATIC libraires d15173f38 export symbols used by NITRO (#756) 6ed3c048b use Debug DLL library in Debug git-subtree-dir: externals/coda-oss git-subtree-split: aba8366d8b11467d9986344c68947c04748e5911 * develop/sync_externals * latest from CODA-OSS and NITRO * Squashed 'externals/coda-oss/' changes from aba8366d8..0ed92d85a 0ed92d85a favor speed over size 07d78dba4 Merge branch 'main' into cpp17 28926b673 provide our own (simple) mdspan implementation (#759) 6bb722454 make SpanRC API match std::mdspan (#758) git-subtree-dir: externals/coda-oss git-subtree-split: 0ed92d85a7fea52f79fc203d24c0ab2166a52d6d * Squashed 'externals/nitro/' changes from b5612a7df..f6179b4e1 f6179b4e1 Merge branch 'main' into cpp17 09f2f458f use $(SolutionDir) to get to externals 19b260009 Merge branch 'main' into cpp17 3de4c5059 latest from CODA-OSS (#605) b5d609a0a need #pragma warning(disable) outside push/pop 185f02f14 Merge commit '5efbb0c81357a6ee4da4209e42668c942cb915da' into cpp17 5efbb0c81 Squashed 'externals/coda-oss/' changes from aba8366d8b..0ed92d85a7 0678478cb latest from CODA-OSS 3afd90921 develop/sync_externals d0d99025d Squashed 'externals/coda-oss/' changes from 1ec9a072c4..aba8366d8b c16779d74 Merge commit 'd0d99025d060792e63273741fab6e4a99700b49a' into cpp17 2f4fef813 latest from CODA-OSS 261f3752f Merge branch 'main' into cpp17 dc3a8ecf0 export more symbols (#604) 22f11f42b build as a DLL in Visual Studio (#603) 8d8184c27 NITRO can now build DLLs (#602) d3f58f038 added environment variable to enable pre-loading of TREs (#601) 4f1a05b23 /guard:cf 85a113021 Merge branch 'main' of https://github.com/mdaus/nitro a1cec9cf6 Merge branch 'main' of https://github.com/mdaus/nitro 6801fa735 Merge branch 'main' of https://github.com/mdaus/nitro eca918471 /guard:cf 5d540334b /guard:cf git-subtree-dir: externals/nitro git-subtree-split: f6179b4e11c0b236b0838ad9bd17c9591194b09a * Squashed 'externals/coda-oss/' changes from 0ed92d85a..3770d0758 3770d0758 Merge branch 'main' into cpp17 ed283d676 Only need to actually create/destroy Xerces once (#761) 8087b1e11 utility routines to convert to/from collections of paths a869c8a8e use a lookup table for str::upper() and str::lower() (#760) 43fab2bd0 DefaultErrorHandler is a base class 00e343177 Merge branch 'main' of https://github.com/mdaus/coda-oss 27085f06b DefaultErrorHandler is a base class 98ec79835 favor speed over size git-subtree-dir: externals/coda-oss git-subtree-split: 3770d0758485f3dd80ab4055c084dd5793586fb3 * Squashed 'externals/nitro/' changes from f6179b4e1..c5a06b5ae c5a06b5ae Merge commit 'b5f4e18f2ef590b39d639a96c174a27dacc9bcd7' into cpp17 b5f4e18f2 Squashed 'externals/coda-oss/' changes from 0ed92d85a7..3770d07584 31a5bfa10 Merge branch 'main' into cpp17 847101014 latest from CODA-OSS (#606) git-subtree-dir: externals/nitro git-subtree-split: c5a06b5ae7b09ffd06ed866bcb0e35475c8d7f24 * Squashed 'externals/coda-oss/' changes from 3770d0758..86ec09d4e 86ec09d4e Merge branch 'main' into cpp17 b173830ca fix C++17 overload resolution git-subtree-dir: externals/coda-oss git-subtree-split: 86ec09d4ef2a2aca28d5a4f24dec6d67fa4bc88b * Squashed 'externals/nitro/' changes from c5a06b5ae..497333fa9 497333fa9 Merge commit '53df008c44d7b20254ce928c3b8ceed1971ba496' into cpp17 53df008c4 Squashed 'externals/coda-oss/' changes from 3770d07584..86ec09d4ef git-subtree-dir: externals/nitro git-subtree-split: 497333fa97e82f9d30fdf6894e7d295a0ef0c8da * Squashed commit of the following: commit ae83db1f45aa896b60d760140dda882c7064d3b2 Merge: 1f26addd2 d8a0ee515 Author: Dan Smith Date: Tue Dec 19 13:44:42 2023 -0500 Merge commit 'd8a0ee5156ee3118138921df3a5b9ae84a0ad104' into develop/sync_externals commit d8a0ee5156ee3118138921df3a5b9ae84a0ad104 Author: Dan Smith Date: Tue Dec 19 13:44:34 2023 -0500 Squashed 'externals/nitro/' changes from 847101014..f39321c67 f39321c67 latest from CODA-OSS 60952fb78 preload the remaining TREs (#607) git-subtree-dir: externals/nitro git-subtree-split: f39321c67b2bcdc2f42d81da7b10c48c0f3c7504 commit 1f26addd2e4a141d9d2545a94fbf0c9ebb8df16b Merge: f7fcf9cff e2ca833f6 Author: Dan Smith Date: Tue Dec 19 13:44:30 2023 -0500 Merge commit 'e2ca833f641c4e0da29b5e621f81ee2c299ad5ee' into develop/sync_externals commit e2ca833f641c4e0da29b5e621f81ee2c299ad5ee Author: Dan Smith Date: Tue Dec 19 13:44:30 2023 -0500 Squashed 'externals/coda-oss/' changes from ed283d676..b173830ca b173830ca fix C++17 overload resolution git-subtree-dir: externals/coda-oss git-subtree-split: b173830ca9d9946bc4375786bd39abfdbc2ed9c9 commit f7fcf9cffde544f0b00fd4b12083af5e0baff1fb Author: Dan Smith Date: Tue Dec 19 13:44:27 2023 -0500 latest from CODA-OSS and NITRO commit 2503884012cad67d7e177b531c06671ad7cbd628 Merge: 92a8741ab d76cbe708 Author: Dan Smith Date: Tue Dec 19 13:43:21 2023 -0500 Merge branch 'main' into develop/sync_externals commit 92a8741abefdde14e581b9eeeeb8ab33c65de93d Merge: 243c86ff4 10712f532 Author: Dan Smith Date: Mon Dec 11 12:19:24 2023 -0500 Merge commit '10712f532ba879400ef7438bf130cd7e9619427c' into develop/sync_externals commit 10712f532ba879400ef7438bf130cd7e9619427c Author: Dan Smith Date: Mon Dec 11 12:19:20 2023 -0500 Squashed 'externals/nitro/' changes from 09f2f458f..847101014 847101014 latest from CODA-OSS (#606) git-subtree-dir: externals/nitro git-subtree-split: 8471010142ae5f85f596f2cf1737c8aa5d89c7fa commit b3745ac5c20ce440baa7ec3c7164e7c63d27bee5 Author: Dan Smith Date: Mon Dec 11 12:19:16 2023 -0500 Squashed 'externals/coda-oss/' changes from 28926b673..ed283d676 ed283d676 Only need to actually create/destroy Xerces once (#761) 8087b1e11 utility routines to convert to/from collections of paths a869c8a8e use a lookup table for str::upper() and str::lower() (#760) 00e343177 Merge branch 'main' of https://github.com/mdaus/coda-oss 27085f06b DefaultErrorHandler is a base class 98ec79835 favor speed over size git-subtree-dir: externals/coda-oss git-subtree-split: ed283d676654023f2ea58fd7b6385fa30c03b08a commit 243c86ff4f3bf959096833b9fd9f205ebfd7199b Merge: 2e0c1a4ec b3745ac5c Author: Dan Smith Date: Mon Dec 11 12:19:16 2023 -0500 Merge commit 'b3745ac5c20ce440baa7ec3c7164e7c63d27bee5' into develop/sync_externals commit 2e0c1a4eca6b66eba0bd4ada78256c648821d4d8 Author: Dan Smith Date: Mon Dec 11 12:19:10 2023 -0500 latest from CODA-OSS commit 064aa9ea92eeaf0ac26304604406fd0abec76122 Merge: 6d7636e20 32bafebb6 Author: Dan Smith Date: Mon Dec 11 12:18:39 2023 -0500 Merge branch 'main' into develop/sync_externals commit 48c21c451bf6966acacd87444b29ceb4577a5125 Author: Dan Smith Date: Fri Dec 1 10:54:06 2023 -0500 Squashed 'externals/nitro/' changes from 3de4c5059..09f2f458f 09f2f458f use $(SolutionDir) to get to externals git-subtree-dir: externals/nitro git-subtree-split: 09f2f458fe16fcaa6dd5f6c025b91a1ca657abe4 commit 6d7636e20a13fcae10d56c24c8326a9f2d08a12b Merge: f2fb57133 48c21c451 Author: Dan Smith Date: Fri Dec 1 10:54:06 2023 -0500 Merge commit '48c21c451bf6966acacd87444b29ceb4577a5125' into develop/sync_externals commit f2fb57133fd93eb0a9ca05299c662e3388224db4 Author: Dan Smith Date: Fri Dec 1 10:54:00 2023 -0500 latest from NITRO commit 3cce5cee8ecc7a8747935e153fab7e131904d752 Merge: c1d1b5fd7 95eb9f0f8 Author: Dan Smith Date: Fri Dec 1 10:37:27 2023 -0500 Merge commit '95eb9f0f8b619be1ac5fc260da1c4e4b256532ec' into develop/sync_externals commit 95eb9f0f8b619be1ac5fc260da1c4e4b256532ec Author: Dan Smith Date: Fri Dec 1 10:37:22 2023 -0500 Squashed 'externals/nitro/' changes from dc3a8ecf0..3de4c5059 3de4c5059 latest from CODA-OSS (#605) git-subtree-dir: externals/nitro git-subtree-split: 3de4c5059eaf7d1ba2ccd1c16c7bc84efd3f028e commit f5abe981a0cd9b43137fac77e0af0d899da91a43 Author: Dan Smith Date: Fri Dec 1 10:37:18 2023 -0500 Squashed 'externals/coda-oss/' changes from df4e0fc1f..28926b673 28926b673 provide our own (simple) mdspan implementation (#759) 6bb722454 make SpanRC API match std::mdspan (#758) git-subtree-dir: externals/coda-oss git-subtree-split: 28926b673931c3f148882ceca7d3de203accfa4e commit c1d1b5fd7ca8b93026f75d7e929e1f9278d09254 Merge: e722bff5c f5abe981a Author: Dan Smith Date: Fri Dec 1 10:37:18 2023 -0500 Merge commit 'f5abe981a0cd9b43137fac77e0af0d899da91a43' into develop/sync_externals commit e722bff5c91907e056579016ab4ea78fc363a4e2 Author: Dan Smith Date: Fri Dec 1 10:37:15 2023 -0500 latest from CODA-OSS commit d385d8ebd95a0271f5e2d6c293a6c0d9890689a3 Merge: 2980070a2 34fd74e9a Author: Dan Smith Date: Fri Dec 1 10:36:15 2023 -0500 Merge branch 'main' into develop/sync_externals commit 2980070a2a577fa19a1f26f3d2d91d537c0ad922 Merge: b6b878bcd e62fb02dc Author: Dan Smith Date: Wed Nov 29 14:21:20 2023 -0500 latest from CODA-OSS commit e62fb02dc2258c7b6afda0994474fef1dc0ae6c5 Author: Dan Smith Date: Wed Nov 29 14:20:46 2023 -0500 Squashed 'externals/nitro/' changes from de4686af0..dc3a8ecf0 dc3a8ecf0 export more symbols (#604) 22f11f42b build as a DLL in Visual Studio (#603) 8d8184c27 NITRO can now build DLLs (#602) d3f58f038 added environment variable to enable pre-loading of TREs (#601) 85a113021 Merge branch 'main' of https://github.com/mdaus/nitro a1cec9cf6 Merge branch 'main' of https://github.com/mdaus/nitro 6801fa735 Merge branch 'main' of https://github.com/mdaus/nitro eca918471 /guard:cf 5d540334b /guard:cf git-subtree-dir: externals/nitro git-subtree-split: dc3a8ecf0e5e13c23ec1f2294c323d0bbd222e2a commit ce6eb2ff528a6da74e3a39428e63fb36ff463522 Author: Dan Smith Date: Wed Nov 29 14:20:43 2023 -0500 Squashed 'externals/coda-oss/' changes from 5eae4c1f6..df4e0fc1f df4e0fc1f changes to build SIX DLLs (#757) faf5d0521 allow CMake to switch between building SHARED (DLLs) or STATIC libraires d15173f38 export symbols used by NITRO (#756) 6ed3c048b use Debug DLL library in Debug git-subtree-dir: externals/coda-oss git-subtree-split: df4e0fc1f6c564c02121d1328e850ed92552bfc1 commit b6b878bcdda708ec8283b4b28d8d64d35ad9c96c Merge: 2a6c3504c ce6eb2ff5 Author: Dan Smith Date: Wed Nov 29 14:20:43 2023 -0500 Merge commit 'ce6eb2ff528a6da74e3a39428e63fb36ff463522' into develop/sync_externals commit 2a6c3504c6f6787b68091f4e646bf4213e010b5f Merge: f98b86745 953e13265 Author: Dan Smith Date: Wed Nov 29 14:19:26 2023 -0500 Merge branch 'main' into develop/sync_externals commit f98b867459333e552e279841b46c7a98e3f6cdf1 Merge: b0fcc18f8 7271a19cc Author: Dan Smith Date: Wed Nov 15 14:44:34 2023 -0500 Merge commit '7271a19ccad1c3dd355c0b6439aa7a06e91db710' into develop/sync_externals commit 7271a19ccad1c3dd355c0b6439aa7a06e91db710 Author: Dan Smith 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 bf2eede30519cd33b8bfa8013fbf75750f513802 Author: Dan Smith 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 b0fcc18f894f8a262be06196087515642b2d114e Merge: f204c3674 bf2eede30 Author: Dan Smith Date: Wed Nov 15 14:44:23 2023 -0500 Merge commit 'bf2eede30519cd33b8bfa8013fbf75750f513802' into develop/sync_externals commit f204c367468bd72b4ff970fa9c6f61eb0df757d8 Author: Dan Smith Date: Wed Nov 15 14:44:18 2023 -0500 latest from CODA-OSS and NITRO commit 3b4692d3b29961a45b3acc9a05c2998ef6f22d1e Merge: 995b923f5 d90e4c41d Author: Dan Smith Date: Wed Nov 15 14:43:46 2023 -0500 Merge branch 'main' into develop/sync_externals commit 995b923f5c8f559a749e27d65e768d51f760035b Author: Dan Smith 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 Date: Mon Nov 13 16:04:58 2023 -0500 Merge commit 'fd9950b06621dfbb6b37cc037b230db6b6147301' into develop/sync_externals commit fd9950b06621dfbb6b37cc037b230db6b6147301 Author: Dan Smith 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 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 Date: Mon Nov 13 16:04:52 2023 -0500 Merge commit '1f0e264467b8a0538a8fae9b5f0f2ea019dbe95e' into develop/sync_externals commit 659af2dc43025e0d5c19970e9651f2fcff448366 Author: Dan Smith Date: Mon Nov 13 16:04:48 2023 -0500 latest from CODA-OSS and NITRO commit 0e75de6af274bfe01148736f7a24c8bb6d757e13 Merge: 4b9245b68 0ffa37222 Author: Dan Smith Date: Mon Nov 13 16:03:52 2023 -0500 Merge branch 'main' into develop/sync_externals commit 4b9245b68c1fbaebbc8d40a9799779551659760e Merge: 19ea3e7ed e8e1c0786 Author: Dan Smith Date: Wed Nov 8 11:09:45 2023 -0500 Merge commit 'e8e1c07869c246fe8255798c1e304b62c034c986' into develop/sync_externals commit e8e1c07869c246fe8255798c1e304b62c034c986 Author: Dan Smith Date: Wed Nov 8 11:09:41 2023 -0500 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 commit 651ec2228f993a1720824e5994766651848791f1 Author: Dan Smith Date: Wed Nov 8 11:09:37 2023 -0500 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 commit 19ea3e7eda12fa7581a3ba12b17996924c0f9f2f Merge: 3e75b3859 651ec2228 Author: Dan Smith Date: Wed Nov 8 11:09:37 2023 -0500 Merge commit '651ec2228f993a1720824e5994766651848791f1' into develop/sync_externals commit 3e75b385947bada81bb465c28c83d0b328327e39 Author: Dan Smith Date: Wed Nov 8 11:09:32 2023 -0500 latest from CODA-OSS and NITRO commit f174846ca3ac27c8580c8118b3d89997410a5278 Merge: b46b11ca6 86bd245c8 Author: Dan Smith Date: Wed Nov 8 11:08:59 2023 -0500 Merge branch 'main' into develop/sync_externals commit 9a7678be7d34c94b153c8eabd24b1d9ee53dfdd9 Author: Dan Smith Date: Mon Nov 6 14:33:59 2023 -0500 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 commit b46b11ca625f763062ab5724b2b97123a21f0961 Merge: 1f3d578d2 9a7678be7 Author: Dan Smith Date: Mon Nov 6 14:33:59 2023 -0500 Merge commit '9a7678be7d34c94b153c8eabd24b1d9ee53dfdd9' into develop/sync_externals commit 1f3d578d2728499e59efe16c718795bd6cd0b662 Author: Dan Smith Date: Mon Nov 6 14:33:56 2023 -0500 latest from CODA-OSS commit f4dc51504b52d22011a94dad9db7af16868000f8 Merge: 990528a72 b5bc2b3d0 Author: Dan Smith Date: Mon Nov 6 14:33:07 2023 -0500 Merge branch 'main' into develop/sync_externals commit 990528a7270e58932ec468e090abedb38c208c77 Merge: a7a7ecc20 0d9d64fa4 Author: Dan Smith Date: Mon Oct 23 12:56:05 2023 -0400 Merge commit '0d9d64fa47108c69f4cfaac1b7ea235443b8d552' into develop/sync_externals commit 0d9d64fa47108c69f4cfaac1b7ea235443b8d552 Author: Dan Smith Date: Mon Oct 23 12:55:55 2023 -0400 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 commit e35ff93576fbc97ae678b9f941c69a96cf2b8159 Author: Dan Smith Date: Mon Oct 23 12:55:50 2023 -0400 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: 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` 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 (#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 for now (#682) c88b9c053 types::complex (#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 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> 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 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 instead of getValue(T&) cbd0bd8f2 castValue 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 commit a7a7ecc20c79c349b0aa527dabc2fc3e2f69fa26 Merge: afb830018 e35ff9357 Author: Dan Smith Date: Mon Oct 23 12:55:50 2023 -0400 Merge commit 'e35ff93576fbc97ae678b9f941c69a96cf2b8159' into develop/sync_externals commit afb830018844d675fc9601a83823bf9c2cd60d05 Author: Dan Smith Date: Mon Oct 23 12:55:44 2023 -0400 latest from CODA-OSS and NITRO * Squashed 'externals/nitro/' changes from 497333fa9..b4eda9fe9 b4eda9fe9 Merge branch 'main' into cpp17 f39321c67 latest from CODA-OSS c2db13649 Merge branch 'main' into cpp17 60952fb78 preload the remaining TREs (#607) git-subtree-dir: externals/nitro git-subtree-split: b4eda9fe9ae6a7820b572eb5eb2979e106b0fc6f * use std::mdspan to simplify the lookup table * new 8AMPI_PHSI project * remove testing_fromComplex_() routine * add a nearest_neighbors_unrolled() routine * remove cache * use some maps to cache values * map.lower_bound() * remove _cached() * lower_bound utility * get ready to try AVX2 * add vectorclass * build w/C++17 * first pass at using vcl * more use of VCL * remove "map" as the speedup isn't worth the complexity to multi-thread * nearest_neighbors_seq() and nearest_neighbors_par() * different implementation of find_nearest_2() * get_phase_vcl() * find_nearest_vcl() * nearest_neighbors_unseq_4() * nearest_neighbors_unseq_n() * nearest_neighbors_unseq_8() * nearest_neighbors_par_unseq() * transform_async() utility * find values for par_unseq * make nearest_neighbors_unseq_n() so we don't have to pass as many parameters * if_add() instead of select() * lookup() * use _unseq for testing * nearest_() * lower_bound() * interleave() utility * move VCL and nearest_neighbors_unseq() into a separate file * get store_partial() working * arg() utility * find_nearest() utility * reduce use of templates * interleave() and store() is slower than an explicit loop. * find_nearest() as member-function so it can be called from multiple modules * trying to find the fastest use of SIMD * this seems to be the fastest so far ... * six::AmplitudeTableSize instead of hard-coded values * store magnitudes in a fixed size array * store real and imginary phase_direction components separately * build VCL on Linux * account for moved sample file * tweak thresholds * build on Windows w/CMake * macros to turn off VCL and/or std::experimental::simd * std::experimental::simd needs C++20 * remove vectorclass, it needs C++17 * restore externals to 'main' * restore more changes from 'main' * restore more changes from 'main' * restore more changes from 'main' * restore more changes from 'main' * build new 8AMPI_PHSI project * SIMD changes from other branches * first pass at "poor man's" SIMD * new Ximd from CODA-OSS * update Ximd.h from CODA-OSS * fix compiler error * fix compiler error * latest from CODA-OSS and NITRO * Squashed 'externals/coda-oss/' changes from 86ec09d4e..63659eede 63659eede provide a simple implementation of std::experimental::simd (#763) 59a47c70e update to latest versions of various actions (#762) f98c13c38 add missing #include REVERT: 86ec09d4e Merge branch 'main' into cpp17 REVERT: 3770d0758 Merge branch 'main' into cpp17 REVERT: 43fab2bd0 DefaultErrorHandler is a base class REVERT: 0ed92d85a favor speed over size REVERT: 07d78dba4 Merge branch 'main' into cpp17 REVERT: aba8366d8 CODA_OSS_LIBRARY_SHARED=1 REVERT: 52e067ec7 Merge branch 'main' into cpp17 REVERT: cf6c4249a /W3 for release builds REVERT: 1ec9a072c Merge branch 'main' into cpp17 REVERT: 77cc841ae Merge branch 'main' into cpp17 REVERT: 5015192ab Merge branch 'main' into cpp17 REVERT: 90db8e19b enable AVX2 by default, it's from 2013 REVERT: afebea485 Merge branch 'main' into cpp17 REVERT: 8b21c3828 Merge branch 'main' into cpp17 REVERT: e573adb32 WAF build works w/o __has_include REVERT: 6e2f0017b tiff_streamOpen() and tiff_readData() overload REVERT: c4978d525 Build 'libtiff' library (#748) REVERT: 68ff08297 tiff-4.6.0 source code (#749) REVERT: eb60210ff Merge branch 'main' into cpp17 REVERT: e757d9bc7 eol=lf is the default REVERT: 434b85fe5 Merge branch 'main' into cpp17 REVERT: b6ead418c fix previous merge (#744) REVERT: 07bcb3a39 Merge branch 'main' into cpp17 REVERT: 76beb7f34 Throwable always inherits from std::exception (#742) REVERT: f1a857cc4 Revert "simplify Throwable and friends: always derive from std::exception" REVERT: 8d5f4402f simplify Throwable and friends: always derive from std::exception REVERT: 70a006d8a Merge branch 'main' into cpp17 REVERT: 14f0b1545 Merge branch 'main' into cpp17 REVERT: a8c5a3b2b Merge branch 'main' into cpp17 REVERT: 5f858856e match code from 'main' REVERT: 885e02a95 Merge branch 'main' into cpp17 REVERT: 436289c92 GCC 11 matches RH devtoolset-11 REVERT: 2a1ea98fb use GCC 10 on build server REVERT: ba9851db6 restore C++17 git-subtree-dir: externals/coda-oss git-subtree-split: 63659eede36673ea4720deb34d0fa06a2dfdef79 * Squashed 'externals/nitro/' changes from b4eda9fe9..3118941cc 3118941cc update various actions to latest versions (#608) REVERT: b4eda9fe9 Merge branch 'main' into cpp17 REVERT: c2db13649 Merge branch 'main' into cpp17 REVERT: 497333fa9 Merge commit '53df008c44d7b20254ce928c3b8ceed1971ba496' into cpp17 REVERT: 53df008c4 Squashed 'externals/coda-oss/' changes from 3770d07584..86ec09d4ef REVERT: c5a06b5ae Merge commit 'b5f4e18f2ef590b39d639a96c174a27dacc9bcd7' into cpp17 REVERT: b5f4e18f2 Squashed 'externals/coda-oss/' changes from 0ed92d85a7..3770d07584 REVERT: 31a5bfa10 Merge branch 'main' into cpp17 REVERT: f6179b4e1 Merge branch 'main' into cpp17 REVERT: 19b260009 Merge branch 'main' into cpp17 REVERT: b5d609a0a need #pragma warning(disable) outside push/pop REVERT: 5efbb0c81 Squashed 'externals/coda-oss/' changes from aba8366d8b..0ed92d85a7 REVERT: 185f02f14 Merge commit '5efbb0c81357a6ee4da4209e42668c942cb915da' into cpp17 REVERT: 0678478cb latest from CODA-OSS REVERT: 3afd90921 develop/sync_externals REVERT: d0d99025d Squashed 'externals/coda-oss/' changes from 1ec9a072c4..aba8366d8b REVERT: c16779d74 Merge commit 'd0d99025d060792e63273741fab6e4a99700b49a' into cpp17 REVERT: 2f4fef813 latest from CODA-OSS REVERT: 261f3752f Merge branch 'main' into cpp17 REVERT: 4f1a05b23 /guard:cf REVERT: b5612a7df enable "WarningsAsErrors" for DEBUG builds REVERT: f067a751a Squashed 'externals/coda-oss/' changes from 5015192abb..1ec9a072c4 REVERT: 2f47cc122 Merge commit 'f067a751ac940fc485c06f003e2e2c23071a8766' into cpp17 REVERT: 50a3500ec Merge branch 'main' into cpp17 REVERT: c899f14ad Merge branch 'main' into cpp17 REVERT: f9ff61eb9 Squashed 'externals/coda-oss/' changes from 8b21c3828b..5015192abb REVERT: 50c75444b Merge commit 'f9ff61eb905ed2119f4f908c568b577643cf42f8' into cpp17 REVERT: d37a0d078 latest from CODA-OSS REVERT: c2372d744 Merge branch 'main' into cpp17 REVERT: 9618cb382 Merge branch 'main' into cpp17 REVERT: eba459da4 Squashed 'externals/coda-oss/' changes from e573adb323..8b21c3828b REVERT: c3ad6c72e Merge commit 'eba459da43c07c6a3d80b63248c9c7fb49605723' into cpp17 REVERT: 0355e94ea latest from CODA-OSS REVERT: 325fba327 Merge branch 'cpp17' of github.com:mdaus/nitro into cpp17 REVERT: 7558c7085 develop/sync_externals REVERT: 2490f6fdc Merge branch 'main' into cpp17 REVERT: 4aa042353 turn off "Warnings as Errors" to fix github builds REVERT: 45cd3febe turn off code-analysis to fix GitHub builds REVERT: 911c7b3ae Squashed 'externals/coda-oss/' changes from eb60210ff2..e573adb323 REVERT: 80a517fcb Merge commit '911c7b3ae49e1f92b94f2dc83d7716b7abc459c2' into cpp17 REVERT: c3e3d3768 add config.h files REVERT: 1cca072bd latest from CODA-OSS REVERT: cb5d115bc Squashed 'externals/coda-oss/' changes from 434b85fe53..eb60210ff2 REVERT: 8a3df82fb Merge commit 'cb5d115bcc2ecc11f81e4ccad23caff4f3f8ac29' into cpp17 REVERT: dc3074153 Merge branch 'main' into cpp17 REVERT: b40d3f96f Squashed 'externals/coda-oss/' changes from b6ead418cf..434b85fe53 REVERT: cca11bf4c Merge commit 'b40d3f96fff13bf708f319c684348ebd9884aff1' into cpp17 REVERT: 2d6d5aa31 Merge branch 'main' into cpp17 REVERT: d32176660 Merge branch 'main' into cpp17 REVERT: a8e6556aa Squashed 'externals/coda-oss/' changes from 07bcb3a39b..b6ead418cf REVERT: 53596f720 Merge commit 'a8e6556aa7bc5c105d3b4383589da7ef48982deb' into cpp17 REVERT: 29ccecf64 latest from CODA-OSS REVERT: b315d9b6c Merge branch 'main' into cpp17 REVERT: b708bd8ea `final` for NITFException REVERT: a2af78776 don't need FmtX() with no formatting REVERT: 368cead55 Squashed 'externals/coda-oss/' changes from 70a006d8a4..07bcb3a39b REVERT: 9b10c5340 Merge commit '368cead55f182d12953a6964b2598021f9629cf3' into cpp17 REVERT: 6e40d15b4 latest from CODA-OSS REVERT: 31fc61888 develop/sync_externals REVERT: eab6b6c35 Squashed 'externals/coda-oss/' changes from 14f0b1545c..70a006d8a4 REVERT: ff335eeaf Merge commit 'eab6b6c35439c1eb7fa22fb042aae4a61a936d66' into cpp17 REVERT: 5648a0267 Merge branch 'main' into cpp17 REVERT: 4fbdccb89 Squashed 'externals/coda-oss/' changes from c92a55d7c7..14f0b1545c REVERT: 732538e80 Merge commit '4fbdccb89c89f2253ae8c3fbe830e69e338ae1ac' into cpp17 REVERT: fe8900094 Merge branch 'main' into cpp17 REVERT: 331deafa2 Merge commit 'afc15cad7caa998e32e6630489dbc22be8e5e9d5' into cpp17 REVERT: afc15cad7 Squashed 'externals/coda-oss/' changes from 8dee6f7a68..a8c5a3b2b2 REVERT: 5b47be120 latest from CODA-OSS REVERT: 475d30a6e Merge branch 'main' into cpp17 REVERT: 10befb769 Merge branch 'main' into cpp17 REVERT: a5bd34266 Merge commit 'b1f170ff084565365cdca72e88b87c80b7f848ba' into cpp17 REVERT: b1f170ff0 Squashed 'externals/coda-oss/' changes from e87c32b4de..436289c928 REVERT: d6efa7ec5 restore C++17 git-subtree-dir: externals/nitro git-subtree-split: 3118941cc2b26c895f12cd5345ee6dc01a82a7ec * use same code for VCL and XIMD "unseq" implementations (#732) * merge in develop/8AMPI_PHSI * Squashed commit of the following: commit c56ac71fcb152d3a802a548b59d90ccc09dfaf83 Author: Dan Smith Date: Wed Dec 8 15:23:00 2021 -0500 merge in develop/SIDD-3.0 * unit-test breaks on Linux * trying to re-enable more unittests * test_valid_six unittests now working * Squashed commit of the following: commit e208dd4d072fd9f18860e84f54d68efdebef49a9 Author: Dan Smith Date: Thu Dec 9 14:41:12 2021 -0500 xml.lite changes from coda-oss commit 169df75cb962580fa63f1be3fbf9189c1fd74915 Author: Dan Smith Date: Wed Dec 8 14:32:37 2021 -0500 latest from coda-oss * trying to get the "french" SICD unit-test working * Squashed commit of the following: commit 8d6e11d803e167835ab3adb09bc96e18f7ac5d41 Author: Dan Smith Date: Thu Dec 9 14:51:34 2021 -0500 need updates to Python bindings too commit e208dd4d072fd9f18860e84f54d68efdebef49a9 Author: Dan Smith Date: Thu Dec 9 14:41:12 2021 -0500 xml.lite changes from coda-oss commit 169df75cb962580fa63f1be3fbf9189c1fd74915 Author: Dan Smith Date: Wed Dec 8 14:32:37 2021 -0500 latest from coda-oss * Squashed commit of the following: commit 1c72ba2639502de8e0036c5efc12ea5a2df7b983 Author: Dan Smith Date: Thu Dec 9 15:15:34 2021 -0500 trying to fine the right macro for SWIG commit 8d6e11d803e167835ab3adb09bc96e18f7ac5d41 Author: Dan Smith Date: Thu Dec 9 14:51:34 2021 -0500 need updates to Python bindings too commit e208dd4d072fd9f18860e84f54d68efdebef49a9 Author: Dan Smith Date: Thu Dec 9 14:41:12 2021 -0500 xml.lite changes from coda-oss commit 169df75cb962580fa63f1be3fbf9189c1fd74915 Author: Dan Smith Date: Wed Dec 8 14:32:37 2021 -0500 latest from coda-oss * Squashed commit of the following: commit 3526cd00c6c29b7e8578b204088cafe4ec773ee1 Author: Dan Smith Date: Thu Dec 9 16:09:17 2021 -0500 "private" is part of name mangling commit 351a45f61d63e26fbd379516f073876bf5558050 Author: Dan Smith Date: Thu Dec 9 15:54:13 2021 -0500 more xml.lite updates from coda-oss commit 1c72ba2639502de8e0036c5efc12ea5a2df7b983 Author: Dan Smith Date: Thu Dec 9 15:15:34 2021 -0500 trying to fine the right macro for SWIG commit 8d6e11d803e167835ab3adb09bc96e18f7ac5d41 Author: Dan Smith Date: Thu Dec 9 14:51:34 2021 -0500 need updates to Python bindings too commit e208dd4d072fd9f18860e84f54d68efdebef49a9 Author: Dan Smith Date: Thu Dec 9 14:41:12 2021 -0500 xml.lite changes from coda-oss commit 169df75cb962580fa63f1be3fbf9189c1fd74915 Author: Dan Smith Date: Wed Dec 8 14:32:37 2021 -0500 latest from coda-oss * option to disable XML validation for SICD too * add overloads for other code * Squashed commit of the following: commit f21f79d3f494e1ca8a5236e95ff5503fdb04e43b Author: Dan Smith Date: Thu Dec 9 17:36:09 2021 -0500 test_xmlParser might be be running in coda-oss commit 3526cd00c6c29b7e8578b204088cafe4ec773ee1 Author: Dan Smith Date: Thu Dec 9 16:09:17 2021 -0500 "private" is part of name mangling commit 351a45f61d63e26fbd379516f073876bf5558050 Author: Dan Smith Date: Thu Dec 9 15:54:13 2021 -0500 more xml.lite updates from coda-oss commit 1c72ba2639502de8e0036c5efc12ea5a2df7b983 Author: Dan Smith Date: Thu Dec 9 15:15:34 2021 -0500 trying to fine the right macro for SWIG commit 8d6e11d803e167835ab3adb09bc96e18f7ac5d41 Author: Dan Smith Date: Thu Dec 9 14:51:34 2021 -0500 need updates to Python bindings too commit e208dd4d072fd9f18860e84f54d68efdebef49a9 Author: Dan Smith Date: Thu Dec 9 14:41:12 2021 -0500 xml.lite changes from coda-oss commit 169df75cb962580fa63f1be3fbf9189c1fd74915 Author: Dan Smith Date: Wed Dec 8 14:32:37 2021 -0500 latest from coda-oss * still can't get French XML working * Squashed commit of the following: commit c9c0ec36cff6ab97ca5c03c3db712794fb511e6e Author: Dan Smith Date: Mon Dec 13 11:45:39 2021 -0500 Squashed commit of the following: commit 33bd17059640d2a02f9766285f05dcdff5de50a8 Author: Dan Smith Date: Mon Dec 13 11:44:54 2021 -0500 nitro release 2.10.7 commit ef19ad2033851682eb3a37bada3a57fcb2b93ef8 Author: Dan Smith Date: Mon Dec 13 11:42:09 2021 -0500 coda-oss release 2021-12-13 commit 86c1856021a5a944c464f9d3cba397a918f68a81 Author: Dan Smith Date: Fri Dec 10 11:57:26 2021 -0500 xml.lite tweaks from coda-oss commit f21f79d3f494e1ca8a5236e95ff5503fdb04e43b Author: Dan Smith Date: Thu Dec 9 17:36:09 2021 -0500 test_xmlParser might be be running in coda-oss commit 3526cd00c6c29b7e8578b204088cafe4ec773ee1 Author: Dan Smith Date: Thu Dec 9 16:09:17 2021 -0500 "private" is part of name mangling commit 351a45f61d63e26fbd379516f073876bf5558050 Author: Dan Smith Date: Thu Dec 9 15:54:13 2021 -0500 more xml.lite updates from coda-oss commit 1c72ba2639502de8e0036c5efc12ea5a2df7b983 Author: Dan Smith Date: Thu Dec 9 15:15:34 2021 -0500 trying to fine the right macro for SWIG commit 8d6e11d803e167835ab3adb09bc96e18f7ac5d41 Author: Dan Smith Date: Thu Dec 9 14:51:34 2021 -0500 need updates to Python bindings too commit e208dd4d072fd9f18860e84f54d68efdebef49a9 Author: Dan Smith Date: Thu Dec 9 14:41:12 2021 -0500 xml.lite changes from coda-oss commit 169df75cb962580fa63f1be3fbf9189c1fd74915 Author: Dan Smith Date: Wed Dec 8 14:32:37 2021 -0500 latest from coda-oss commit 1a74d4046085b286d6b0ae02bc62df608fc70ffa Author: Dan Smith Date: Fri Dec 10 12:26:10 2021 -0500 more use of new xml.lite infrastructure commit 5d641a46f254f78f1e8a03c11f35f2f73c54ed5a Author: Dan Smith Date: Fri Dec 10 11:58:22 2021 -0500 use new xml.lite APIs to simplify code commit 01f811e622eb3b8fcb7f20d8cba8c2d384894b31 Author: Dan Smith Date: Fri Dec 10 11:57:57 2021 -0500 Squashed commit of the following: commit 86c1856021a5a944c464f9d3cba397a918f68a81 Author: Dan Smith Date: Fri Dec 10 11:57:26 2021 -0500 xml.lite tweaks from coda-oss commit f21f79d3f494e1ca8a5236e95ff5503fdb04e43b Author: Dan Smith Date: Thu Dec 9 17:36:09 2021 -0500 test_xmlParser might be be running in coda-oss commit 3526cd00c6c29b7e8578b204088cafe4ec773ee1 Author: Dan Smith Date: Thu Dec 9 16:09:17 2021 -0500 "private" is part of name mangling commit 351a45f61d63e26fbd379516f073876bf5558050 Author: Dan Smith Date: Thu Dec 9 15:54:13 2021 -0500 more xml.lite updates from coda-oss commit 1c72ba2639502de8e0036c5efc12ea5a2df7b983 Author: Dan Smith Date: Thu Dec 9 15:15:34 2021 -0500 trying to fine the right macro for SWIG commit 8d6e11d803e167835ab3adb09bc96e18f7ac5d41 Author: Dan Smith Date: Thu Dec 9 14:51:34 2021 -0500 need updates to Python bindings too commit e208dd4d072fd9f18860e84f54d68efdebef49a9 Author: Dan Smith Date: Thu Dec 9 14:41:12 2021 -0500 xml.lite changes from coda-oss commit 169df75cb962580fa63f1be3fbf9189c1fd74915 Author: Dan Smith Date: Wed Dec 8 14:32:37 2021 -0500 latest from coda-oss commit 25b83eb24e0ebf095522df47349e7c5fbf1df8e3 Author: Dan Smith Date: Fri Dec 10 09:06:38 2021 -0500 Squashed commit of the following: commit 3f59a6260e33423c21326dde8e5bed7dc93cd9f0 Author: Dan Smith Date: Fri Dec 10 08:44:54 2021 -0500 still can't get French XML working commit 1a826e5c300d0e2781a015d1916eba8556a36c2d Author: Dan Smith Date: Thu Dec 9 17:37:11 2021 -0500 Squashed commit of the following: commit f21f79d3f494e1ca8a5236e95ff5503fdb04e43b Author: Dan Smith Date: Thu Dec 9 17:36:09 2021 -0500 test_xmlParser might be be running in coda-oss commit 3526cd00c6c29b7e8578b204088cafe4ec773ee1 Author: Dan Smith Date: Thu Dec 9 16:09:17 2021 -0500 "private" is part of name mangling commit 351a45f61d63e26fbd379516f073876bf5558050 Author: Dan Smith Date: Thu Dec 9 15:54:13 2021 -0500 more xml.lite updates from coda-oss commit 1c72ba2639502de8e0036c5efc12ea5a2df7b983 Author: Dan Smith Date: Thu Dec 9 15:15:34 2021 -0500 trying to fine the right macro for SWIG commit 8d6e11d803e167835ab3adb09bc96e18f7ac5d41 Author: Dan Smith Date: Thu Dec 9 14:51:34 2021 -0500 need updates to Python bindings too commit e208dd4d072fd9f18860e84f54d68efdebef49a9 Author: Dan Smith Date: Thu Dec 9 14:41:12 2021 -0500 xml.lite changes from coda-oss commit 169df75cb962580fa63f1be3fbf9189c1fd74915 Author: Dan Smith Date: Wed Dec 8 14:32:37 2021 -0500 latest from coda-oss commit f705be9129ea7c71d6bdc25899b53fd3f655b974 Author: Dan Smith Date: Thu Dec 9 17:35:35 2021 -0500 add overloads for other code commit d61323431bea6e33c4f91b60cb83f3401b76671d Author: Dan Smith Date: Thu Dec 9 16:57:55 2021 -0500 option to disable XML validation for SICD too commit bc2c97e9f79ce91f2dc0ce9b3d5e45a7e60a852b Author: Dan Smith Date: Thu Dec 9 16:09:44 2021 -0500 Squashed commit of the following: commit 3526cd00c6c29b7e8578b204088cafe4ec773ee1 Author: Dan Smith Date: Thu Dec 9 16:09:17 2021 -0500 "private" is part of name mangling commit 351a45f61d63e26fbd379516f073876bf5558050 Author: Dan Smith Date: Thu Dec 9 15:54:13 2021 -0500 more xml.lite updates from coda-oss commit 1c72ba2639502de8e0036c5efc12ea5a2df7b983 Author: Dan Smith Date: Thu Dec 9 15:15:34 2021 -0500 trying to fine the right macro for SWIG commit 8d6e11d803e167835ab3adb09bc96e18f7ac5d41 Author: Dan Smith Date: Thu Dec 9 14:51:34 2021 -0500 need updates to Python bindings too commit e208dd4d072fd9f18860e84f54d68efdebef49a9 Author: Dan Smith Date: Thu Dec 9 14:41:12 2021 -0500 xml.lite changes from coda-oss commit 169df75cb962580fa63f1be3fbf9189c1fd74915 Author: Dan Smith Date: Wed Dec 8 14:32:37 2021 -0500 latest from coda-oss commit 4cd813b2f115cd2446821bf01dcf7d8c27781322 Author: Dan Smith Date: Thu Dec 9 15:16:01 2021 -0500 Squashed commit of the following: commit 1c72ba2639502de8e0036c5efc12ea5a2df7b983 Author: Dan Smith Date: Thu Dec 9 15:15:34 2021 -0500 trying to fine the right macro for SWIG commit 8d6e11d803e167835ab3adb09bc96e18f7ac5d41 Author: Dan Smith Date: Thu Dec 9 14:51:34 2021 -0500 need updates to Python bindings too commit e208dd4d072fd9f18860e84f54d68efdebef49a9 Author: Dan Smith Date: Thu Dec 9 14:41:12 2021 -0500 xml.lite changes from coda-oss commit 169df75cb962580fa63f1be3fbf9189c1fd74915 Author: Dan Smith Date: Wed Dec 8 14:32:37 2021 -0500 latest from coda-oss commit 7b210f96d175c35dd4d93a8ede3b1127b6fe442c Author: Dan Smith Date: Thu Dec 9 14:51:53 2021 -0500 Squashed commit of the following: commit 8d6e11d803e167835ab3adb09bc96e18f7ac5d41 Author: Dan Smith Date: Thu Dec 9 14:51:34 2021 -0500 need updates to Python bindings too commit e208dd4d072fd9f18860e84f54d68efdebef49a9 Author: Dan Smith Date: Thu Dec 9 14:41:12 2021 -0500 xml.lite changes from coda-oss commit 169df75cb962580fa63f1be3fbf9189c1fd74915 Author: Dan Smith Date: Wed Dec 8 14:32:37 2021 -0500 latest from coda-oss commit 4a4d621a17bb568fa07453a6a06f08f34efb7b73 Author: Dan Smith Date: Thu Dec 9 14:47:21 2021 -0500 trying to get the "french" SICD unit-test working commit d63e6eace772c8d02616f467d698da48a14568dd Author: Dan Smith Date: Thu Dec 9 14:42:55 2021 -0500 Squashed commit of the following: commit e208dd4d072fd9f18860e84f54d68efdebef49a9 Author: Dan Smith Date: Thu Dec 9 14:41:12 2021 -0500 xml.lite changes from coda-oss commit 169df75cb962580fa63f1be3fbf9189c1fd74915 Author: Dan Smith Date: Wed Dec 8 14:32:37 2021 -0500 latest from coda-oss commit d1a7e6f442aff2530a7fd8078b88a56ce050238f Author: Dan Smith Date: Thu Dec 9 09:29:07 2021 -0500 test_valid_six unittests now working commit d6fb257c92ab8e97e2d2a2164484011c60d2c95d Author: Dan Smith Date: Wed Dec 8 17:45:26 2021 -0500 trying to re-enable more unittests commit c787e98a7f339740389e10f5c5cb3760617f3ed1 Author: Dan Smith Date: Wed Dec 8 16:54:28 2021 -0500 unit-test breaks on Linux commit bd82787be8ae4f4cd463faa2bb6d2cb5c6d7dba6 Author: Dan Smith Date: Wed Dec 8 15:25:31 2021 -0500 Squashed commit of the following: commit c56ac71fcb152d3a802a548b59d90ccc09dfaf83 Author: Dan Smith Date: Wed Dec 8 15:23:00 2021 -0500 merge in develop/SIDD-3.0 commit e621466a38f21d5b66847f5358b4def1fd4ea4ce Author: Dan Smith Date: Wed Dec 8 15:08:04 2021 -0500 merge in develop/8AMPI_PHSI commit 67768ea901bbd983becc4790b478afe0f17828d5 Author: Dan Smith Date: Thu Dec 9 10:02:19 2021 -0500 Squashed commit of the following: commit d1a7e6f442aff2530a7fd8078b88a56ce050238f Author: Dan Smith Date: Thu Dec 9 09:29:07 2021 -0500 test_valid_six unittests now working commit d6fb257c92ab8e97e2d2a2164484011c60d2c95d Author: Dan Smith Date: Wed Dec 8 17:45:26 2021 -0500 trying to re-enable more unittests commit c787e98a7f339740389e10f5c5cb3760617f3ed1 Author: Dan Smith Date: Wed Dec 8 16:54:28 2021 -0500 unit-test breaks on Linux commit bd82787be8ae4f4cd463faa2bb6d2cb5c6d7dba6 Author: Dan Smith Date: Wed Dec 8 15:25:31 2021 -0500 Squashed commit of the following: commit c56ac71fcb152d3a802a548b59d90ccc09dfaf83 Author: Dan Smith Date: Wed Dec 8 15:23:00 2021 -0500 merge in develop/SIDD-3.0 commit e621466a38f21d5b66847f5358b4def1fd4ea4ce Author: Dan Smith Date: Wed Dec 8 15:08:04 2021 -0500 merge in develop/8AMPI_PHSI commit b582c055ba1f0f2532d2f5ad4c97b3cd649e69bd Author: Dan Smith Date: Wed Dec 8 15:26:24 2021 -0500 Squashed commit of the following: commit bd82787be8ae4f4cd463faa2bb6d2cb5c6d7dba6 Author: Dan Smith Date: Wed Dec 8 15:25:31 2021 -0500 Squashed commit of the following: commit c56ac71fcb152d3a802a548b59d90ccc09dfaf83 Author: Dan Smith Date: Wed Dec 8 15:23:00 2021 -0500 merge in develop/SIDD-3.0 commit e621466a38f21d5b66847f5358b4def1fd4ea4ce Author: Dan Smith Date: Wed Dec 8 15:08:04 2021 -0500 merge in develop/8AMPI_PHSI commit c56ac71fcb152d3a802a548b59d90ccc09dfaf83 Author: Dan Smith Date: Wed Dec 8 15:23:00 2021 -0500 merge in develop/SIDD-3.0 * Squashed commit of the following: commit 474b7f2dc37eaa3144b97be8f785911ace32eb4d Author: Dan Smith Date: Mon Dec 13 13:00:02 2021 -0500 xml.lite changes that need to get back to coda-oss commit c9c0ec36cff6ab97ca5c03c3db712794fb511e6e Author: Dan Smith Date: Mon Dec 13 11:45:39 2021 -0500 Squashed commit of the following: commit 33bd17059640d2a02f9766285f05dcdff5de50a8 Author: Dan Smith Date: Mon Dec 13 11:44:54 2021 -0500 nitro release 2.10.7 commit ef19ad2033851682eb3a37bada3a57fcb2b93ef8 Author: Dan Smith Date: Mon Dec 13 11:42:09 2021 -0500 coda-oss release 2021-12-13 commit 86c1856021a5a944c464f9d3cba397a918f68a81 Author: Dan Smith Date: Fri Dec 10 11:57:26 2021 -0500 xml.lite tweaks from coda-oss commit f21f79d3f494e1ca8a5236e95ff5503fdb04e43b Author: Dan Smith Date: Thu Dec 9 17:36:09 2021 -0500 test_xmlParser might be be running in coda-oss commit 3526cd00c6c29b7e8578b204088cafe4ec773ee1 Author: Dan Smith Date: Thu Dec 9 16:09:17 2021 -0500 "private" is part of name mangling commit 351a45f61d63e26fbd379516f073876bf5558050 Author: Dan Smith Date: Thu Dec 9 15:54:13 2021 -0500 more xml.lite updates from coda-oss commit 1c72ba2639502de8e0036c5efc12ea5a2df7b983 Author: Dan Smith Date: Thu Dec 9 15:15:34 2021 -0500 trying to fine the right macro for SWIG commit 8d6e11d803e167835ab3adb09bc96e18f7ac5d41 Author: Dan Smith Date: Thu Dec 9 14:51:34 2021 -0500 need updates to Python bindings too commit e208dd4d072fd9f18860e84f54d68efdebef49a9 Author: Dan Smith Date: Thu Dec 9 14:41:12 2021 -0500 xml.lite changes from coda-oss commit 169df75cb962580fa63f1be3fbf9189c1fd74915 Author: Dan Smith Date: Wed Dec 8 14:32:37 2021 -0500 latest from coda-oss commit 1a74d4046085b286d6b0ae02bc62df608fc70ffa Author: Dan Smith Date: Fri Dec 10 12:26:10 2021 -0500 more use of new xml.lite infrastructure commit 5d641a46f254f78f1e8a03c11f35f2f73c54ed5a Author: Dan Smith Date: Fri Dec 10 11:58:22 2021 -0500 use new xml.lite APIs to simplify code commit 01f811e622eb3b8fcb7f20d8cba8c2d384894b31 Author: Dan Smith Date: Fri Dec 10 11:57:57 2021 -0500 Squashed commit of the following: commit 86c1856021a5a944c464f9d3cba397a918f68a81 Author: Dan Smith Date: Fri Dec 10 11:57:26 2021 -0500 xml.lite tweaks from coda-oss commit f21f79d3f494e1ca8a5236e95ff5503fdb04e43b Author: Dan Smith Date: Thu Dec 9 17:36:09 2021 -0500 test_xmlParser might be be running in coda-oss commit 3526cd00c6c29b7e8578b204088cafe4ec773ee1 Author: Dan Smith Date: Thu Dec 9 16:09:17 2021 -0500 "private" is part of name mangling commit 351a45f61d63e26fbd379516f073876bf5558050 Author: Dan Smith Date: Thu Dec 9 15:54:13 2021 -0500 more xml.lite updates from coda-oss commit 1c72ba2639502de8e0036c5efc12ea5a2df7b983 Author: Dan Smith Date: Thu Dec 9 15:15:34 2021 -0500 trying to fine the right macro for SWIG commit 8d6e11d803e167835ab3adb09bc96e18f7ac5d41 Author: Dan Smith Date: Thu Dec 9 14:51:34 2021 -0500 need updates to Python bindings too commit e208dd4d072fd9f18860e84f54d68efdebef49a9 Author: Dan Smith Date: Thu Dec 9 14:41:12 2021 -0500 xml.lite changes from coda-oss commit 169df75cb962580fa63f1be3fbf9189c1fd74915 Author: Dan Smith Date: Wed Dec 8 14:32:37 2021 -0500 latest from coda-oss commit 25b83eb24e0ebf095522df47349e7c5fbf1df8e3 Author: Dan Smith Date: Fri Dec 10 09:06:38 2021 -0500 Squashed commit of the following: commit 3f59a6260e33423c21326dde8e5bed7dc93cd9f0 Author: Dan Smith Date: Fri Dec 10 08:44:54 2021 -0500 still can't get French XML working commit 1a826e5c300d0e2781a015d1916eba8556a36c2d Author: Dan Smith Date: Thu Dec 9 17:37:11 2021 -0500 Squashed commit of the following: commit f21f79d3f494e1ca8a5236e95ff5503fdb04e43b Author: Dan Smith Date: Thu Dec 9 17:36:09 2021 -0500 test_xmlParser might be be running in coda-oss commit 3526cd00c6c29b7e8578b204088cafe4ec773ee1 Author: Dan Smith Date: Thu Dec 9 16:09:17 2021 -0500 "private" is part of name mangling commit 351a45f61d63e26fbd379516f073876bf5558050 Author: Dan Smith Date: Thu Dec 9 15:54:13 2021 -0500 more xml.lite updates from coda-oss commit 1c72ba2639502de8e0036c5efc12ea5a2df7b983 Author: Dan Smith Date: Thu Dec 9 15:15:34 2021 -0500 trying to fine the right macro for SWIG commit 8d6e11d803e167835ab3adb09bc96e18f7ac5d41 Author: Dan Smith Date: Thu Dec 9 14:51:34 2021 -0500 need updates to Python bindings too commit e208dd4d072fd9f18860e84f54d68efdebef49a9 Author: Dan Smith Date: Thu Dec 9 14:41:12 2021 -0500 xml.lite changes from coda-oss commit 169df75cb962580fa63f1be3fbf9189c1fd74915 Author: Dan Smith Date: Wed Dec 8 14:32:37 2021 -0500 latest from coda-oss commit f705be9129ea7c71d6bdc25899b53fd3f655b974 Author: Dan Smith Date: Thu Dec 9 17:35:35 2021 -0500 add overloads for other code commit d61323431bea6e33c4f91b60cb83f3401b76671d Author: Dan Smith Date: Thu Dec 9 16:57:55 2021 -0500 option to disable XML validation for SICD too commit bc2c97e9f79ce91f2dc0ce9b3d5e45a7e60a852b Author: Dan Smith Date: Thu Dec 9 16:09:44 2021 -0500 Squashed commit of the following: commit 3526cd00c6c29b7e8578b204088cafe4ec773ee1 Author: Dan Smith Date: Thu Dec 9 16:09:17 2021 -0500 "private" is part of name mangling commit 351a45f61d63e26fbd379516f073876bf5558050 Author: Dan Smith Date: Thu Dec 9 15:54:13 2021 -0500 more xml.lite updates from coda-oss commit 1c72ba2639502de8e0036c5efc12ea5a2df7b983 Author: Dan Smith Date: Thu Dec 9 15:15:34 2021 -0500 trying to fine the right macro for SWIG commit 8d6e11d803e167835ab3adb09bc96e18f7ac5d41 Author: Dan Smith Date: Thu Dec 9 14:51:34 2021 -0500 need updates to Python bindings too commit e208dd4d072fd9f18860e84f54d68efdebef49a9 Author: Dan Smith Date: Thu Dec 9 14:41:12 2021 -0500 xml.lite changes from coda-oss commit 169df75cb962580fa63f1be3fbf9189c1fd74915 Author: Dan Smith Date: Wed Dec 8 14:32:37 2021 -0500 latest from coda-oss commit 4cd813b2f115cd2446821bf01dcf7d8c27781322 Author: Dan Smith Date: Thu Dec 9 15:16:01 2021 -0500 Squashed commit of the following: commit 1c72ba2639502de8e0036c5efc12ea5a2df7b983 Author: Dan Smith Date: Thu Dec 9 15:15:34 2021 -0500 trying to fine the right macro for SWIG commit 8d6e11d803e167835ab3adb09bc96e18f7ac5d41 Author: Dan Smith Date: Thu Dec 9 14:51:34 2021 -0500 need updates to Python bindings too commit e208dd4d072fd9f18860e84f54d68efdebef49a9 Author: Dan Smith Date: Thu Dec 9 14:41:12 2021 -0500 xml.lite changes from coda-oss commit 169df75cb962580fa63f1be3fbf9189c1fd74915 Author: Dan Smith Date: Wed Dec 8 14:32:37 2021 -0500 latest from coda-oss commit 7b210f96d175c35dd4d93a8ede3b1127b6fe442c Author: Dan Smith Date: Thu Dec 9 14:51:53 2021 -0500 Squashed commit of the following: commit 8d6e11d803e167835ab3adb09bc96e18f7ac5d41 Author: Dan Smith Date: Thu Dec 9 14:51:34 2021 -0500 need updates to Python bindings too commit e208dd4d072fd9f18860e84f54d68efdebef49a9 Author: Dan Smith Date: Thu Dec 9 14:41:12 2021 -0500 xml.lite changes from coda-oss commit 169df75cb962580fa63f1be3fbf9189c1fd74915 Author: Dan Smith Date: Wed Dec 8 14:32:37 2021 -0500 latest from coda-oss commit 4a4d621a17bb568fa07453a6a06f08f34efb7b73 Author: Dan Smith Date: Thu Dec 9 14:47:21 2021 -0500 trying to get the "french" SICD unit-test working commit d63e6eace772c8d02616f467d698da48a14568dd Author: Dan Smith Date: Thu Dec 9 14:42:55 2021 -0500 Squashed commit of the following: commit e208dd4d072fd9f18860e84f54d68efdebef49a9 Author: Dan Smith Date: Thu Dec 9 14:41:12 2021 -0500 xml.lite changes from coda-oss commit 169df75cb962580fa63f1be3fbf9189c1fd74915 Author: Dan Smith Date: Wed Dec 8 14:32:37 2021 -0500 latest from coda-oss commit d1a7e6f442aff2530a7fd8078b88a56ce050238f Author: Dan Smith Date: Thu Dec 9 09:29:07 2021 -0500 test_valid_six unittests now working commit d6fb257c92ab8e97e2d2a2164484011c60d2c95d Author: Dan Smith Date: Wed Dec 8 17:45:26 2021 -0500 trying to re-enable more unittests commit c787e98a7f339740389e10f5c5cb3760617f3ed1 Author: Dan Smith Date: Wed Dec 8 16:54:28 2021 -0500 unit-test breaks on Linux commit bd82787be8ae4f4cd463faa2bb6d2cb5c6d7dba6 Author: Dan Smith Date: Wed Dec 8 15:25:31 2021 -0500 Squashed commit of the following: commit c56ac71fcb152d3a802a548b59d90ccc09dfaf83 Author: Dan Smith Date: Wed Dec 8 15:23:00 2021 -0500 merge in develop/SIDD-3.0 commit e621466a38f21d5b66847f5358b4def1fd4ea4ce Author: Dan Smith Date: Wed Dec 8 15:08:04 2021 -0500 merge in develop/8AMPI_PHSI commit 67768ea901bbd983becc4790b478afe0f17828d5 Author: Dan Smith Date: Thu Dec 9 10:02:19 2021 -0500 Squashed commit of the following: commit d1a7e6f442aff2530a7fd8078b88a56ce050238f Author: Dan Smith Date: Thu Dec 9 09:29:07 2021 -0500 test_valid_six unittests now working commit d6fb257c92ab8e97e2d2a2164484011c60d2c95d Author: Dan Smith Date: Wed Dec 8 17:45:26 2021 -0500 trying to re-enable more unittests commit c787e98a7f339740389e10f5c5cb3760617f3ed1 Author: Dan Smith Date: Wed Dec 8 16:54:28 2021 -0500 unit-test breaks on Linux commit bd82787be8ae4f4cd463faa2bb6d2cb5c6d7dba6 Author: Dan Smith Date: Wed Dec 8 15:25:31 2021 -0500 Squashed commit of the following: commit c56ac71fcb152d3a802a548b59d90ccc09dfaf83 Author: Dan Smith Date: Wed Dec 8 15:23:00 2021 -0500 merge in develop/SIDD-3.0 commit e621466a38f21d5b66847f5358b4def1fd4ea4ce Author: Dan Smith Date: Wed Dec 8 15:08:04 2021 -0500 merge in develop/8AMPI_PHSI commit b582c055ba1f0f2532d2f5ad4c97b3cd649e69bd Author: Dan Smith Date: Wed Dec 8 15:26:24 2021 -0500 Squashed commit of the following: commit bd82787be8ae4f4cd463faa2bb6d2cb5c6d7dba6 Author: Dan Smith Date: Wed Dec 8 15:25:31 2021 -0500 Squashed commit of the following: commit c56ac71fcb152d3a802a548b59d90ccc09dfaf83 Author: Dan Smith Date: Wed Dec 8 15:23:00 2021 -0500 merge in develop/SIDD-3.0 commit e621466a38f21d5b66847f5358b4def1fd4ea4ce Author: Dan Smith Date: Wed Dec 8 15:08:04 2021 -0500 merge in develop/8AMPI_PHSI commit c56ac71fcb152d3a802a548b59d90ccc09dfaf83 Author: Dan Smith Date: Wed Dec 8 15:23:00 2021 -0500 merge in develop/SIDD-3.0 * Squashed commit of the following: commit ec79f1c0aac15ee0b36ed865b341f5d65e8ae0dd Author: Dan Smith Date: Mon Jan 3 11:12:43 2022 -0500 latest from coda-oss commit 22df5a95a3cbc3128780c63114a90181b4af33f8 Merge: db052a2d7 f1f19bdb6 Author: Dan Smith Date: Wed Dec 29 12:25:28 2021 -0500 Merge branch 'master' into develop/update-externals commit db052a2d7bc7db05a9ccadcc5e1554275334bd9c Author: Dan Smith Date: Wed Dec 29 09:17:08 2021 -0500 adjust for coda-oss changes commit 74ce242cf352a333684379cc9bd0278c0cf57571 Author: Dan Smith Date: Wed Dec 29 09:01:34 2021 -0500 latest from coda-oss commit dc960f74d430442cd3359b8218ad9d9a144bd070 Author: Dan Smith Date: Tue Dec 28 10:37:48 2021 -0500 latest from coda-oss commit c6a4bd5b900d83b3407f8793cc756f46965700f4 Author: Dan Smith Date: Fri Dec 17 09:14:23 2021 -0500 sanity-check a URI commit 82b1f21388dbf0f1b3e402ffaf151421d11149b8 Author: Dan Smith Date: Wed Dec 15 09:38:14 2021 -0500 create a "path" after splitting on ":" commit 01cf2b5cadc18b97ac3a51bde9786b519755b1b1 Author: Dan Smith Date: Wed Dec 15 08:50:17 2021 -0500 simple URI validation commit 3610f8e6e0f11a643831280819efb0aff3bb373d Author: Dan Smith Date: Tue Dec 14 09:46:21 2021 -0500 xml.lite tweaks from coda-oss commit 813be14c563d9f4829d342ec008b86da5ef77b27 Merge: 873d4b9d6 9ed21bed3 Author: Dan Smith Date: Mon Dec 13 17:25:22 2021 -0500 Merge branch 'master' into develop/update-externals commit 873d4b9d6c55ae2736fc6208ece14aecf67adf10 Merge: 1c1a7222c ef191da2f Author: Dan Smith Date: Mon Dec 13 13:59:08 2021 -0500 Merge branch 'master' into develop/update-externals commit 1c1a7222c527f5ae89b9c960eb9c3fa9f2ccefa4 Author: Dan Smith Date: Mon Dec 13 13:01:14 2021 -0500 Squashed commit of the following: commit 474b7f2dc37eaa3144b97be8f785911ace32eb4d Author: Dan Smith Date: Mon Dec 13 13:00:02 2021 -0500 xml.lite changes that need to get back to coda-oss commit c9c0ec36cff6ab97ca5c03c3db712794fb511e6e Author: Dan Smith Date: Mon Dec 13 11:45:39 2021 -0500 Squashed commit of the following: commit 33bd17059640d2a02f9766285f05dcdff5de50a8 Author: Dan Smith Date: Mon Dec 13 11:44:54 2021 -0500 nitro release 2.10.7 commit ef19ad2033851682eb3a37bada3a57fcb2b93ef8 Author: Dan Smith Date: Mon Dec 13 11:42:09 2021 -0500 coda-oss release 2021-12-13 commit 86c1856021a5a944c464f9d3cba397a918f68a81 Author: Dan Smith Date: Fri Dec 10 11:57:26 2021 -0500 xml.lite tweaks from coda-oss commit f21f79d3f494e1ca8a5236e95ff5503fdb04e43b Author: Dan Smith Date: Thu Dec 9 17:36:09 2021 -0500 test_xmlParser might be be running in coda-oss commit 3526cd00c6c29b7e8578b204088cafe4ec773ee1 Author: Dan Smith Date: Thu Dec 9 16:09:17 2021 -0500 "private" is part of name mangling commit 351a45f61d63e26fbd379516f073876bf5558050 Author: Dan Smith Date: Thu Dec 9 15:54:13 2021 -0500 more xml.lite updates from coda-oss commit 1c72ba2639502de8e0036c5efc12ea5a2df7b983 Author: Dan Smith Date: Thu Dec 9 15:15:34 2021 -0500 trying to fine the right macro for SWIG commit 8d6e11d803e167835ab3adb09bc96e18f7ac5d41 Author: Dan Smith Date: Thu Dec 9 14:51:34 2021 -0500 need updates to Python bindings too commit e208dd4d072fd9f18860e84f54d68efdebef49a9 Author: Dan Smith Date: Thu Dec 9 14:41:12 2021 -0500 xml.lite changes from coda-oss commit 169df75cb962580fa63f1be3fbf9189c1fd74915 Author: Dan Smith Date: Wed Dec 8 14:32:37 2021 -0500 latest from coda-oss commit 1a74d4046085b286d6b0ae02bc62df608fc70ffa Author: Dan Smith Date: Fri Dec 10 12:26:10 2021 -0500 more use of new xml.lite infrastructure commit 5d641a46f254f78f1e8a03c11f35f2f73c54ed5a Author: Dan Smith Date: Fri Dec 10 11:58:22 2021 -0500 use new xml.lite APIs to simplify code commit 01f811e622eb3b8fcb7f20d8cba8c2d384894b31 Author: Dan Smith Date: Fri Dec 10 11:57:57 2021 -0500 Squashed commit of the following: commit 86c1856021a5a944c464f9d3cba397a918f68a81 Author: Dan Smith Date: Fri Dec 10 11:57:26 2021 -0500 xml.lite tweaks from coda-oss commit f21f79d3f494e1ca8a5236e95ff5503fdb04e43b Author: Dan Smith Date: Thu Dec 9 17:36:09 2021 -0500 test_xmlParser might be be running in coda-oss commit 3526cd00c6c29b7e8578b204088cafe4ec773ee1 Author: Dan Smith Date: Thu Dec 9 16:09:17 2021 -0500 "private" is part of name mangling commit 351a45f61d63e26fbd379516f073876bf5558050 Author: Dan Smith Date: Thu Dec 9 15:54:13 2021 -0500 more xml.lite updates from coda-oss commit 1c72ba2639502de8e0036c5efc12ea5a2df7b983 Author: Dan Smith Date: Thu Dec 9 15:15:34 2021 -0500 trying to fine the right macro for SWIG commit 8d6e11d803e167835ab3adb09bc96e18f7ac5d41 Author: Dan Smith Date: Thu Dec 9 14:51:34 2021 -0500 need updates to Python bindings too commit e208dd4d072fd9f18860e84f54d68efdebef49a9 Author: Dan Smith Date: Thu Dec 9 14:41:12 2021 -0500 xml.lite changes from coda-oss commit 169df75cb962580fa63f1be3fbf9189c1fd74915 Author: Dan Smith Date: Wed Dec 8 14:32:37 2021 -0500 latest from coda-oss commit 25b83eb24e0ebf095522df47349e7c5fbf1df8e3 Author: Dan Smith Date: Fri Dec 10 09:06:38 2021 -0500 Squashed commit of the following: commit 3f59a6260e33423c21326dde8e5bed7dc93cd9f0 Author: Dan Smith Date: Fri Dec 10 08:44:54 2021 -0500 still can't get French XML working commit 1a826e5c300d0e2781a015d1916eba8556a36c2d Author: Dan Smith Date: Thu Dec 9 17:37:11 2021 -0500 Squashed commit of the following: commit f21f79d3f494e1ca8a5236e95ff5503fdb04e43b Author: Dan Smith Date: Thu Dec 9 17:36:09 2021 -0500 test_xmlParser might be be running in coda-oss commit 3526cd00c6c29b7e8578b204088cafe4ec773ee1 Author: Dan Smith Date: Thu Dec 9 16:09:17 2021 -0500 "private" is part of name mangling commit 351a45f61d63e26fbd379516f073876bf5558050 Author: Dan Smith Date: Thu Dec 9 15:54:13 2021 -0500 more xml.lite updates from coda-oss commit 1c72ba2639502de8e0036c5efc12ea5a2df7b983 Author: Dan Smith Date: Thu Dec 9 15:15:34 2021 -0500 trying to fine the right macro for SWIG commit 8d6e11d803e167835ab3adb09bc96e18f7ac5d41 Author: Dan Smith Date: Thu Dec 9 14:51:34 2021 -0500 need updates to Python bindings too commit e208dd4d072fd9f18860e84f54d68efdebef49a9 Author: Dan Smith Date: Thu Dec 9 14:41:12 2021 -0500 xml.lite changes from coda-oss commit 169df75cb962580fa63f1be3fbf9189c1fd74915 Author: Dan Smith Date: Wed Dec 8 14:32:37 2021 -0500 latest from coda-oss commit f705be9129ea7c71d6bdc25899b53fd3f655b974 Author: Dan Smith Date: Thu Dec 9 17:35:35 2021 -0500 add overloads for other code commit d61323431bea6e33c4f91b60cb83f3401b76671d Author: Dan Smith Date: Thu Dec 9 16:57:55 2021 -0500 option to disable XML validation for SICD too commit bc2c97e9f79ce91f2dc0ce9b3d5e45a7e60a852b Author: Dan Smith Date: Thu Dec 9 16:09:44 2021 -0500 Squashed commit of the following: commit 3526cd00c6c29b7e8578b204088cafe4ec773ee1 Author: Dan Smith Date: Thu Dec 9 16:09:17 2021 -0500 "private" is part of name mangling commit 351a45f61d63e26fbd379516f073876bf5558050 Author: Dan Smith Date: Thu Dec 9 15:54:13 2021 -0500 more xml.lite updates from coda-oss commit 1c72ba2639502de8e0036c5efc12ea5a2df7b983 Author: Dan Smith Date: Thu Dec 9 15:15:34 2021 -0500 trying to fine the right macro for SWIG commit 8d6e11d803e167835ab3adb09bc96e18f7ac5d41 Author: Dan Smith Date: Thu Dec 9 14:51:34 2021 -0500 need updates to Python bindings too commit e208dd4d072fd9f18860e84f54d68efdebef49a9 Author: Dan Smith Date: Thu Dec 9 14:41:12 2021 -0500 xml.lite changes from coda-oss commit 169df75cb962580fa63f1be3fbf9189c1fd74915 Author: Dan Smith Date: Wed Dec 8 14:32:37 2021 -0500 latest from coda-oss commit 4cd813b2f115cd2446821bf01dcf7d8c27781322 Author: Dan Smith Date: Thu Dec 9 15:16:01 2021 -0500 Squashed commit of the following: commit 1c72ba2639502de8e0036c5efc12ea5a2df7b983 Author: Dan Smith Date: Thu Dec 9 15:15:34 2021 -0500 trying to fine the right macro for SWIG commit 8d6e11d803e167835ab3adb09bc96e18f7ac5d41 Author: Dan Smith Date: Thu Dec 9 14:51:34 2021 -0500 need updates to Python bindings too commit e208dd4d072fd9f18860e84f54d68efdebef49a9 Author: Dan Smith Date: Thu Dec 9 14:41:12 2021 -0500 xml.lite changes from coda-oss commit 169df75cb962580fa63f1be3fbf9189c1fd74915 Author: Dan Smith Date: Wed Dec 8 14:32:37 2021 -0500 latest from coda-oss commit 7b210f96d175c35dd4d93a8ede3b1127b6fe442c Author: Dan Smith Date: Thu Dec 9 14:51:53 2021 -0500 Squashed commit of the following: commit 8d6e11d803e167835ab3adb09bc96e18f7ac5d41 Author: Dan Smith Date: Thu Dec 9 14:51:34 2021 -0500 need updates to Python bindings too commit e208dd4d072fd9f18860e84f54d68efdebef49a9 Author: Dan Smith Date: Thu Dec 9 14:41:12 2021 -0500 xml.lite changes from coda-oss commit 169df75cb962580fa63f1be3fbf9189c1fd74915 Author: Dan Smith Date: Wed Dec 8 14:32:37 2021 -0500 latest from coda-oss commit 4a4d621a17bb568fa07453a6a06f08f34efb7b73 Author: Dan Smith Date: Thu Dec 9 14:47:21 2021 -0500 trying to get the "french" SICD unit-test working commit d63e6eace772c8d02616f467d698da48a14568dd Author: Dan Smith Date: Thu Dec 9 14:42:55 2021 -0500 Squashed commit of the following: commit e208dd4d072fd9f18860e84f54d68efdebef49a9 Author: Dan Smith Date: Thu Dec 9 14:41:12 2021 -0500 xml.lite changes from coda-oss commit 169df75cb962580fa63f1be3fbf9189c1fd74915 Author: Dan Smith Date: Wed Dec 8 14:32:37 2021 -0500 latest from coda-oss commit d1a7e6f442aff2530a7fd8078b88a56ce050238f Author: Dan Smith Date: Thu Dec 9 09:29:07 2021 -0500 test_valid_six unittests now working commit d6fb257c92ab8e97e2d2a2164484011c60d2c95d Author: Dan Smith Date: Wed Dec 8 17:45:26 2021 -0500 trying to re-enable more unittests commit c787e98a7f339740389e10f5c5cb3760617f3ed1 Author: Dan Smith Date: Wed Dec 8 16:54:28 2021 -0500 unit-test breaks on Linux commit bd82787be8ae4f4cd463faa2bb6d2cb5c6d7dba6 Author: Dan Smith Date: Wed Dec 8 15:25:31 2021 -0500 Squashed commit of the following: commit c56ac71fcb152d3a802a548b59d90ccc09dfaf83 Author: Dan Smith Date: Wed Dec 8 15:23:00 2021 -0500 merge in develop/SIDD-3.0 commit e621466a38f21d5b66847f5358b4def1fd4ea4ce Author: Dan Smith Date: Wed Dec 8 15:08:04 2021 -0500 merge in develop/8AMPI_PHSI commit 67768ea901bbd983becc4790b478afe0f17828d5 Author: Dan Smith Date: Thu Dec 9 10:02:19 2021 -0500 Squashed commit of the following: commit d1a7e6f442aff2530a7fd8078b88a56ce050238f Author: Dan Smith Date: Thu Dec 9 09:29:07 2021 -0500 test_valid_six unittests now working commit d6fb257c92ab8e97e2d2a2164484011c60d2c95d Author: Dan Smith Date: Wed Dec 8 17:45:26 2021 -0500 trying to re-enable more unittests commit c787e98a7f339740389e10f5c5cb3760617f3ed1 Author: Dan Smith Date: Wed Dec 8 16:54:28 2021 -0500 unit-test breaks on Linux commit bd82787be8ae4f4cd463faa2bb6d2cb5c6d7dba6 Author: Dan Smith Date: Wed Dec 8 15:25:31 2021 -0500 Squashed commit of the following: commit c56ac71fcb152d3a802a548b59d90ccc09dfaf83 Author: Dan Smith Date: Wed Dec 8 15:23:00 2021 -0500 merge in develop/SIDD-3.0 commit e621466a38f21d5b66847f5358b4def1fd4ea4ce Author: Dan Smith Date: Wed Dec 8 15:08:04 2021 -0500 merge in develop/8AMPI_PHSI commit b582c055ba1f0f2532d2f5ad4c97b3cd649e69bd Author: Dan Smith Date: Wed Dec 8 15:26:24 2021 -0500 Squashed commit of the following: commit bd82787be8ae4f4cd463faa2bb6d2cb5c6d7dba6 Author: Dan Smith Date: Wed Dec 8 15:25:31 2021 -0500 Squashed commit of the following: commit c56ac71fcb152d3a802a548b59d90ccc09dfaf83 Author: Dan Smith Date: Wed Dec 8 15:23:00 2021 -0500 merge in develop/SIDD-3.0 commit e621466a38f21d5b66847f5358b4def1fd4ea4ce Author: Dan Smith Date: Wed Dec 8 15:08:04 2021 -0500 merge in develop/8AMPI_PHSI commit c56ac71fcb152d3a802a548b59d90ccc09dfaf83 Author: Dan Smith Date: Wed Dec 8 15:23:00 2021 -0500 merge in develop/SIDD-3.0 commit 33bd17059640d2a02f9766285f05dcdff5de50a8 Author: Dan Smith Date: Mon Dec 13 11:44:54 2021 -0500 nitro release 2.10.7 commit ef19ad2033851682eb3a37bada3a57fcb2b93ef8 Author: Dan Smith Date: Mon Dec 13 11:42:09 2021 -0500 coda-oss release 2021-12-13 commit 86c1856021a5a944c464f9d3cba397a918f68a81 Author: Dan Smith Date: Fri Dec 10 11:57:26 2021 -0500 xml.lite tweaks from coda-oss commit f21f79d3f494e1ca8a5236e95ff5503fdb04e43b Author: Dan Smith Date: Thu Dec 9 17:36:09 2021 -0500 test_xmlParser might be be running in coda-oss commit 3526cd00c6c29b7e8578b204088cafe4ec773ee1 Author: Dan Smith Date: Thu Dec 9 16:09:17 2021 -0500 "private" is part of name mangling commit 351a45f61d63e26fbd379516f073876bf5558050 Author: Dan Smith Date: Thu Dec 9 15:54:13 2021 -0500 more xml.lite updates from coda-oss commit 1c72ba2639502de8e0036c5efc12ea5a2df7b983 Author: Dan Smith Date: Thu Dec 9 15:15:34 2021 -0500 trying to fine the right macro for SWIG commit 8d6e11d803e167835ab3adb09bc96e18f7ac5d41 Author: Dan Smith Date: Thu Dec 9 14:51:34 2021 -0500 need updates to Python bindings too commit e208dd4d072fd9f18860e84f54d68efdebef49a9 Author: Dan Smith Date: Thu Dec 9 14:41:12 2021 -0500 xml.lite changes from coda-oss commit 169df75cb962580fa63f1be3fbf9189c1fd74915 Author: Dan Smith Date: Wed Dec 8 14:32:37 2021 -0500 latest from coda-oss * we know the angle is in radians * explicitly dependency on 'units' * trying to fix broken build * "C++" -> "c++" * Squashed commit of the following: commit 0b4deaa12fade653e20ccb4460fc424bef89d4c6 Author: Dan Smith Date: Tue Jan 18 10:23:38 2022 -0500 turn off some code-analysis diagnostics commit 8797cd0b51617057496d9f89ea2a7602cabb13be Author: Dan Smith Date: Tue Jan 18 10:23:22 2022 -0500 account for str:: changes in coda-oss commit 920d0b79f1b91a1196171deaa61a91626ad7c44d Author: Dan Smith Date: Tue Jan 18 09:54:08 2022 -0500 latest from coda-oss commit 8e308afcf7b35945bdb3cb6c27cc94e63aa18b3b Author: Dan Smith Date: Mon Jan 17 15:26:32 2022 -0500 construct a std::span directly, no make_span() utility (generates CA diagnostic) commit d81a4d1aaac1cdaec1d9dc6a3838343e201d2b81 Author: Dan Smith Date: Mon Jan 17 14:06:58 2022 -0500 latest from coda-oss commit 06716b781a3e6f0cf440b0f1bc5251bec415287e Author: Dan Smith Date: Mon Jan 17 13:24:46 2022 -0500 finish renaming of sys/Filesystem.* to sys/filesystem.* commit b3d0b4b8f4ad15c64e9f000143e64da3df1b241e Author: Dan Smith Date: Mon Jan 17 13:24:07 2022 -0500 rename sys/Filesystem commit c30ae278f01cc681c83a3a32afa3f3db174cfa06 Author: Dan Smith Date: Mon Jan 17 12:30:21 2022 -0500 no more gsl::make_span commit e61dca0022fc39fdb9f4b63353dc93476fdd98bb Author: Dan Smith Date: Mon Jan 17 11:19:07 2022 -0500 sys/Bit.h -> std/bit commit bb67d052044cd1274d21b9b870f85da4b2040cf1 Author: Dan Smith Date: Mon Jan 17 10:49:02 2022 -0500 sys::Filesystem -> coda_oss::filesystem commit ef212eaf09f87ffec27e8c043217ffbd33b29d1f Author: Dan Smith Date: Mon Jan 17 10:02:46 2022 -0500 tweaks to get coda-oss building w/o warnings commit 6f6bfaacc537067b7d36a363297e716e14e2e075 Author: Dan Smith Date: Mon Jan 17 09:57:35 2022 -0500 latest from "nitro" commit 90be0243a2d384bc6ee0d81967240ee1d802bdb4 Author: Dan Smith Date: Mon Jan 17 09:54:33 2022 -0500 update to account for coda-oss changes commit 28632726cc356524c5a3db5117ead37731342824 Author: Dan Smith Date: Mon Jan 17 09:40:48 2022 -0500 latest drop from coda-oss commit 92632ef45f7369c3b0ebfdab65f4cdfa3f79f9d1 Author: Dan Smith Date: Tue Jan 11 09:59:47 2022 -0500 Utf-8 -> Windows-1252 commit 9b719935e8189bc3fbe57e4af4d221c3c49548c5 Author: Dan Smith Date: Mon Jan 10 17:20:25 2022 -0500 UTF-8 to native string conversion commit 38dbe6d88e800f360cc9ae388558b09e5b65d95a Merge: 74df9ee57 a11980f60 Author: Dan Smith Date: Mon Jan 10 17:19:11 2022 -0500 Merge branch 'master' into develop/update-externals commit 74df9ee570e4d62fb6c435b4b5e0cef84b57b9d9 Author: Dan Smith Date: Mon Jan 10 13:48:13 2022 -0500 noexcept(false) commit b5181bc210c3c2b0abc918842f6bd83b2a2d3907 Author: Dan Smith Date: Mon Jan 10 12:01:40 2022 -0500 remove comments with a backslash at the end commit 08f8f9c27f46e793d3bc3d9e65b38facc8293521 Author: Dan Smith Date: Mon Jan 10 11:36:15 2022 -0500 certain NITRO unittests don't work in externals/nitro commit dfc3ded9d3c52df1d038833afbdda94cf93e44ee Author: Dan Smith Date: Mon Jan 10 10:55:01 2022 -0500 descriptor updates from "nitro" commit c989c7ec700533a7ce0c294c09a80d68ed0ad6a4 Author: Dan Smith Date: Mon Jan 10 10:41:48 2022 -0500 fix #ifdef commit 571ab4869aeb70f35dcfa046a36aed875c822739 Author: Dan Smith Date: Mon Jan 10 10:27:53 2022 -0500 latest from "nitro" commit 26ba1a99646ac6db8b38d09e183be4318597efdd Author: Dan Smith Date: Mon Jan 10 10:26:37 2022 -0500 latest from coda-oss commit 28ab3500dc4c0f46ad61fd6356fdc76db8b4380e Merge: 2cd678b7e 28afa6552 Author: Dan Smith Date: Mon Jan 10 10:25:33 2022 -0500 Merge branch 'master' into develop/update-externals commit 2cd678b7e2d9fdd46906a6637903fd1325481ffc Author: Dan Smith Date: Thu Jan 6 15:39:49 2022 -0500 more tweaks to remove compiler warnings commit 5d8907616e5bdbf011a9ded45a7cf20e525789d8 Author: Dan Smith Date: Thu Jan 6 15:19:57 2022 -0500 remove errors/warnings from coda-oss commit a535245afdd72ba24ad89f270d3012e12fd30c14 Author: Dan Smith Date: Wed Jan 5 14:07:27 2022 -0500 latest from nitro commit aff92f496d1f402929707a3cb949c5fb7f4e14ba Author: Dan Smith Date: Wed Jan 5 14:04:39 2022 -0500 latest from coda-oss commit 41ba677e3418cb35ec636745ecb2a78fb7e1ac4e Merge: 21cc8ed1f e2e3defbb Author: Dan Smith Date: Wed Jan 5 14:03:26 2022 -0500 Merge branch 'master' into develop/update-externals commit 21cc8ed1f01d74ab9d814fae97aa4f70c1e9ce34 Author: Dan Smith Date: Mon Jan 3 16:43:08 2022 -0500 use strongly-type TRE fields commit 79eb6c8df45ee9f9d296c3d2152971458b6d8def Author: Dan Smith Date: Mon Jan 3 16:41:54 2022 -0500 str::strip from coda-oss commit faf20c7fbb3e3c1888215014b29a08c0b57f1caf Author: Dan Smith Date: Mon Jan 3 12:15:31 2022 -0500 explicitly =delete move commit ec79f1c0aac15ee0b36ed865b341f5d65e8ae0dd Author: Dan Smith Date: Mon Jan 3 11:12:43 2022 -0500 latest from coda-oss commit 22df5a95a3cbc3128780c63114a90181b4af33f8 Merge: db052a2d7 f1f19bdb6 Author: Dan Smith Date: Wed Dec 29 12:25:28 2021 -0500 Merge branch 'master' into develop/update-externals commit db052a2d7bc7db05a9ccadcc5e1554275334bd9c Author: Dan Smith Date: Wed Dec 29 09:17:08 2021 -0500 adjust for coda-oss changes commit 74ce242cf352a333684379cc9bd0278c0cf57571 Author: Dan Smith Date: Wed Dec 29 09:01:34 2021 -0500 latest from coda-oss commit dc960f74d430442cd3359b8218ad9d9a144bd070 Author: Dan Smith Date: Tue Dec 28 10:37:48 2021 -0500 latest from coda-oss commit c6a4bd5b900d83b3407f8793cc756f46965700f4 Author: Dan Smith Date: Fri Dec 17 09:14:23 2021 -0500 sanity-check a URI commit 82b1f21388dbf0f1b3e402ffaf151421d11149b8 Author: Dan Smith Date: Wed Dec 15 09:38:14 2021 -0500 create a "path" after splitting on ":" commit 01cf2b5cadc18b97ac3a51bde9786b519755b1b1 Author: Dan Smith Date: Wed Dec 15 08:50:17 2021 -0500 simple URI validation commit 3610f8e6e0f11a643831280819efb0aff3bb373d Author: Dan Smith Date: Tue Dec 14 09:46:21 2021 -0500 xml.lite tweaks from coda-oss commit 813be14c563d9f4829d342ec008b86da5ef77b27 Merge: 873d4b9d6 9ed21bed3 Author: Dan Smith Date: Mon Dec 13 17:25:22 2021 -0500 Merge branch 'master' into develop/update-externals commit 873d4b9d6c55ae2736fc6208ece14aecf67adf10 Merge: 1c1a7222c ef191da2f Author: Dan Smith Date: Mon Dec 13 13:59:08 2021 -0500 Merge branch 'master' into develop/update-externals commit 1c1a7222c527f5ae89b9c960eb9c3fa9f2ccefa4 Author: Dan Smith Date: Mon Dec 13 13:01:14 2021 -0500 Squashed commit of the following: commit 474b7f2dc37eaa3144b97be8f785911ace32eb4d Author: Dan Smith Date: Mon Dec 13 13:00:02 2021 -0500 xml.lite changes that need to get back to coda-oss commit c9c0ec36cff6ab97ca5c03c3db712794fb511e6e Author: Dan Smith Date: Mon Dec 13 11:45:39 2021 -0500 Squashed commit of the following: commit 33bd17059640d2a02f9766285f05dcdff5de50a8 Author: Dan Smith Date: Mon Dec 13 11:44:54 2021 -0500 nitro release 2.10.7 commit ef19ad2033851682eb3a37bada3a57fcb2b93ef8 Author: Dan Smith Date: Mon Dec 13 11:42:09 2021 -0500 coda-oss release 2021-12-13 commit 86c1856021a5a944c464f9d3cba397a918f68a81 Author: Dan Smith Date: Fri Dec 10 11:57:26 2021 -0500 xml.lite tweaks from coda-oss commit f21f79d3f494e1ca8a5236e95ff5503fdb04e43b Author: Dan Smith Date: Thu Dec 9 17:36:09 2021 -0500 test_xmlParser might be be running in coda-oss commit 3526cd00c6c29b7e8578b204088cafe4ec773ee1 Author: Dan Smith Date: Thu Dec 9 16:09:17 2021 -0500 "private" is part of name mangling commit 351a45f61d63e26fbd379516f073876bf5558050 Author: Dan Smith Date: Thu Dec 9 15:54:13 2021 -0500 more xml.lite updates from coda-oss commit 1c72ba2639502de8e0036c5efc12ea5a2df7b983 Author: Dan Smith Date: Thu Dec 9 15:15:34 2021 -0500 trying to fine the right macro for SWIG commit 8d6e11d803e167835ab3adb09bc96e18f7ac5d41 Author: Dan Smith Date: Thu Dec 9 14:51:34 2021 -0500 need updates to Python bindings too commit e208dd4d072fd9f18860e84f54d68efdebef49a9 Author: Dan Smith Date: Thu Dec 9 14:41:12 2021 -0500 xml.lite changes from coda-oss commit 169df75cb962580fa63f1be3fbf9189c1fd74915 Author: Dan Smith Date: Wed Dec 8 14:32:37 2021 -0500 latest from coda-oss commit 1a74d4046085b286d6b0ae02bc62df608fc70ffa Author: Dan Smith Date: Fri Dec 10 12:26:10 2021 -0500 more use of new xml.lite infrastructure commit 5d641a46f254f78f1e8a03c11f35f2f73c54ed5a Author: Dan Smith Date: Fri Dec 10 11:58:22 2021 -0500 use new xml.lite APIs to simplify code commit 01f811e622eb3b8fcb7f20d8cba8c2d384894b31 Author: Dan Smith Date: Fri Dec 10 11:57:57 2021 -0500 Squashed commit of the following: commit 86c1856021a5a944c464f9d3cba397a918f68a81 Author: Dan Smith Date: Fri Dec 10 11:57:26 2021 -0500 xml.lite tweaks from coda-oss commit f21f79d3f494e1ca8a5236e95ff5503fdb04e43b Author: Dan Smith Date: Thu Dec 9 17:36:09 2021 -0500 test_xmlParser might be be running in coda-oss commit 3526cd00c6c29b7e8578b204088cafe4ec773ee1 Author: Dan Smith Date: Thu Dec 9 16:09:17 2021 -0500 "private" is part of name mangling commit 351a45f61d63e26fbd379516f073876bf5558050 Author: Dan Smith Date: Thu Dec 9 15:54:13 2021 -0500 more xml.lite updates from coda-oss commit 1c72ba2639502de8e0036c5efc12ea5a2df7b983 Author: Dan Smith Date: Thu Dec 9 15:15:34 2021 -0500 trying to fine the right macro for SWIG commit 8d6e11d803e167835ab3adb09bc96e18f7ac5d41 Author: Dan Smith Date: Thu Dec 9 14:51:34 2021 -0500 need updates to Python bindings too commit e208dd4d072fd9f18860e84f54d68efdebef49a9 Author: Dan Smith Date: Thu Dec 9 14:41:12 2021 -0500 xml.lite changes from coda-oss commit 169df75cb962580fa63f1be3fbf9189c1fd74915 Author: Dan Smith Date: Wed Dec 8 14:32:37 2021 -0500 latest from coda-oss commit 25b83eb24e0ebf095522df47349e7c5fbf1df8e3 Author: Dan Smith Date: Fri Dec 10 09:06:38 2021 -0500 Squashed commit of the following: commit 3f59a6260e33423c21326dde8e5bed7dc93cd9f0 Author: Dan Smith Date: Fri Dec 10 08:44:54 2021 -0500 still can't get French XML working commit 1a826e5c300d0e2781a015d1916eba8556a36c2d Author: Dan Smith Date: Thu Dec 9 17:37:11 2021 -0500 Squashed commit of the following: commit f21f79d3f494e1ca8a5236e95ff5503fdb04e43b Author: Dan Smith Date: Thu Dec 9 17:36:09 2021 -0500 test_xmlParser might be be running in coda-oss commit 3526cd00c6c29b7e8578b204088cafe4ec773ee1 Author: Dan Smith Date: Thu Dec 9 16:09:17 2021 -0500 "private" is part of name mangling commit 351a45f61d63e26fbd379516f073876bf5558050 Author: Dan Smith Date: Thu Dec 9 15:54:13 2021 -0500 more xml.lite updates from coda-oss commit 1c72ba2639502de8e0036c5efc12ea5a2df7b983 Author: Dan Smith Date: Thu Dec 9 15:15:34 2021 -0500 trying to fine the right macro for SWIG commit 8d6e11d803e167835ab3adb09bc96e18f7ac5d41 Author: Dan Smith Date: Thu Dec 9 14:51:34 2021 -0500 need updates to Python bindings too commit e208dd4d072fd9f18860e84f54d68efdebef49a9 Author: Dan Smith Date: Thu Dec 9 14:41:12 2021 -0500 xml.lite changes from coda-oss commit 169df75cb962580fa63f1be3fbf9189c1fd74915 Author: Dan Smith Date: Wed Dec 8 14:32:37 2021 -0500 latest from coda-oss commit f705be9129ea7c71d6bdc25899b53fd3f655b974 Author: Dan Smith Date: Thu Dec 9 17:35:35 2021 -0500 add overloads for other code commit d61323431bea6e33c4f91b60cb83f3401b76671d Author: Dan Smith Date: Thu Dec 9 16:57:55 2021 -0500 option to disable XML validation for SICD too commit bc2c97e9f79ce91f2dc0ce9b3d5e45a7e60a852b Author: Dan Smith Date: Thu Dec 9 16:09:44 2021 -0500 Squashed commit of the following: commit 3526cd00c6c29b7e8578b204088cafe4ec773ee1 Author: Dan Smith Date: Thu Dec 9 16:09:17 2021 -0500 "private" is part of name mangling commit 351a45f61d63e26fbd379516f073876bf5558050 Author: Dan Smith Date: Thu Dec 9 15:54:13 2021 -0500 more xml.lite updates from coda-oss commit 1c72ba2639502de8e0036c5efc12ea5a2df7b983 Author: Dan Smith Date: Thu Dec 9 15:15:34 2021 -0500 trying to fine the right macro for SWIG commit 8d6e11d803e167835ab3adb09bc96e18f7ac5d41 Author: Dan Smith Date: Thu Dec 9 14:51:34 2021 -0500 need updates to Python bindings too com… * get build working after merge * _unseq reoutines are curr4ently only available in debug * mt::Transform_par() from CODA-OSS * _vcl.cpp and _ximd.cpp no longer part of project * changes from 4.0/simd * use mt::Transform_par() * prefer std::experimental::simd over VCL --------- Co-authored-by: Andrew Hardin --- .../modules/c++/mt/include/mt/Algorithm.h | 69 ++- .../c++/mt/unittests/test_mt_byte_swap.cpp | 82 ++- six/modules/c++/samples/8AMPI_PHSI.cpp | 1 - six/modules/c++/six.sicd/six.sicd.vcxproj | 4 +- .../c++/six.sicd/six.sicd.vcxproj.filters | 8 +- .../six.sicd/source/ComplexToAMP8IPHS8I.cpp | 63 +- .../source/ComplexToAMP8IPHS8I_simd.cpp | 377 ------------ .../source/ComplexToAMP8IPHS8I_unseq.cpp | 539 +++++++++--------- six/modules/c++/six.sicd/source/ImageData.cpp | 58 +- .../c++/six/include/six/AmplitudeTable.h | 32 +- 10 files changed, 426 insertions(+), 807 deletions(-) delete mode 100644 six/modules/c++/six.sicd/source/ComplexToAMP8IPHS8I_simd.cpp diff --git a/externals/coda-oss/modules/c++/mt/include/mt/Algorithm.h b/externals/coda-oss/modules/c++/mt/include/mt/Algorithm.h index ba17f39f5..8e311c9e3 100644 --- a/externals/coda-oss/modules/c++/mt/include/mt/Algorithm.h +++ b/externals/coda-oss/modules/c++/mt/include/mt/Algorithm.h @@ -20,22 +20,73 @@ * */ -#ifndef CODA_OSS_mt_Algorithm_h_INCLUDED_ -#define CODA_OSS_mt_Algorithm_h_INCLUDED_ #pragma once #include #include #include +#include "coda_oss/CPlusPlus.h" +#if CODA_OSS_cpp17 + // is broken with the older version of GCC we're using + #if (__GNUC__ >= 10) || _MSC_VER + #include + #define CODA_OSS_mt_Algorithm_has_execution 1 + #endif +#endif + namespace mt { -// There was a transform_async() utility here, but I removed it. -// -// First of all, C++11's std::async() is now (in 2023) thought of as maybe a -// bit "half baked," and perhaps shouldn't be emulated. Then, C++17 added -// parallel algorithms which might be a better ... although we're still at C++14. -} +// "Roll our own" `std::transform(execution::par)` using std::async() +// https://en.cppreference.com/w/cpp/algorithm/transform + +// Our own `Transform_par_()` is built on `std::async()`; for that we need to control +// a couple of settings. +struct Transform_par_settings final +{ + Transform_par_settings() = default; + + Transform_par_settings(ptrdiff_t cutoff) : cutoff_(cutoff) { } + Transform_par_settings(std::launch policy) : policy_(policy) { } + Transform_par_settings(ptrdiff_t cutoff, std::launch policy) : cutoff_(cutoff), policy_(policy) { } + Transform_par_settings(std::launch policy, ptrdiff_t cutoff) : Transform_par_settings(cutoff, policy) { } + + // The value of "default_cutoff" was determined by testing; there is nothing + // special about it, feel free to change it. + static constexpr ptrdiff_t dimension = 128 * 8; + static constexpr ptrdiff_t default_cutoff = dimension * dimension; + ptrdiff_t cutoff_ = default_cutoff; -#endif // CODA_OSS_mt_Algorithm_h_INCLUDED_ + // https://en.cppreference.com/w/cpp/thread/launch + std::launch policy_ = std::launch::async; // "the task is executed on a different thread, potentially by creating and launching it first" +}; + +template +inline OutputIt Transform_par_(InputIt first1, InputIt last1, OutputIt d_first, UnaryOperation unary_op, + const Transform_par_settings& settings) +{ + // https://en.cppreference.com/w/cpp/thread/async + const auto len = std::distance(first1, last1); + if (len < settings.cutoff_) + { + return std::transform(first1, last1, d_first, unary_op); + } + + const auto mid1 = first1 + len / 2; + const auto d_mid = d_first + len / 2; + auto handle = std::async(settings.policy_, Transform_par_, mid1, last1, d_mid, unary_op, settings); + Transform_par_(first1, mid1, d_first, unary_op, settings); + return handle.get(); +} +template +inline OutputIt Transform_par(InputIt first1, InputIt last1, OutputIt d_first, UnaryOperation unary_op, + Transform_par_settings settings = Transform_par_settings{}) +{ +#if CODA_OSS_mt_Algorithm_has_execution + return std::transform(std::execution::par, first1, last1, d_first, unary_op); +#else + return Transform_par_(first1, last1, d_first, unary_op, settings); +#endif // CODA_OSS_mt_Algorithm_has_execution +} +} \ No newline at end of file diff --git a/externals/coda-oss/modules/c++/mt/unittests/test_mt_byte_swap.cpp b/externals/coda-oss/modules/c++/mt/unittests/test_mt_byte_swap.cpp index d2099cf83..ccc2e92cc 100644 --- a/externals/coda-oss/modules/c++/mt/unittests/test_mt_byte_swap.cpp +++ b/externals/coda-oss/modules/c++/mt/unittests/test_mt_byte_swap.cpp @@ -28,14 +28,20 @@ #include // std::byte #include +#include + #include +#include + +#undef min +#undef max -static std::vector make_origValues(size_t NUM_PIXELS) +static std::vector make_origValues_(size_t count) { ::srand(334); - std::vector retval(NUM_PIXELS); - for (size_t ii = 0; ii < NUM_PIXELS; ++ii) + std::vector retval(count); + for (size_t ii = 0; ii < count; ++ii) { const auto value = static_cast(::rand()) / RAND_MAX * std::numeric_limits::max(); @@ -44,10 +50,16 @@ static std::vector make_origValues(size_t NUM_PIXELS) return retval; } +static constexpr size_t NUM_PIXELS = 10000; +static const std::vector& make_origValues() +{ + static const auto retval = make_origValues_(NUM_PIXELS); + return retval; +} + TEST_CASE(testThreadedByteSwap) { - constexpr size_t NUM_PIXELS = 10000; - const auto origValues = make_origValues(NUM_PIXELS); + const auto& origValues = make_origValues(); constexpr size_t numThreads = 4; @@ -59,14 +71,70 @@ TEST_CASE(testThreadedByteSwap) std::vector swappedValues2(origValues.size()); mt::threadedByteSwap(origValues.data(), sizeof(origValues[0]), NUM_PIXELS, numThreads, swappedValues2.data()); - // Everything should match - for (size_t ii = 0; ii < NUM_PIXELS; ++ii) + for (size_t ii = 0; ii < NUM_PIXELS; ++ii) // Everything should match { TEST_ASSERT_EQ(values1[ii], swappedValues2[ii]); } } +TEST_CASE(test_transform_ByteSwap) +{ + const auto& origValues = make_origValues(); + + // Byte swap the old-fashioned way + constexpr size_t numThreads = 4; + auto expected_(origValues); + constexpr auto elemSize = sizeof(expected_[0]); + mt::threadedByteSwap(expected_.data(), elemSize, NUM_PIXELS, numThreads); + const auto& expected = expected_; + + // Byte swap into output buffer + const auto byteSwap = [&](const auto& buffer_) { + auto buffer = buffer_; + sys::byteSwap(&buffer, elemSize, 1 /*numElements*/); + return buffer; + }; + + std::vector actual(origValues.size()); + std::transform(origValues.begin(), origValues.end(), actual.begin(), byteSwap); + for (size_t ii = 0; ii < NUM_PIXELS; ++ii) // Everything should match + { + TEST_ASSERT_EQ(expected[ii], actual[ii]); + } +} + +TEST_CASE(test_Transform_par_ByteSwap) +{ + const auto& origValues = make_origValues(); + + // Byte swap the old-fashioned way + constexpr size_t numThreads = 4; + auto expected_(origValues); + constexpr auto elemSize = sizeof(expected_[0]); + mt::threadedByteSwap(expected_.data(), elemSize, NUM_PIXELS, numThreads); + const auto& expected = expected_; + + // Byte swap into output buffer + const auto byteSwap = [&](const auto& buffer_) { + auto buffer = buffer_; + sys::byteSwap(&buffer, elemSize, 1 /*numElements*/); + return buffer; + }; + + // be sure we do something more than just call std::transform() + const mt::Transform_par_settings settings{ NUM_PIXELS / 4 /*cutoff*/ }; + + std::vector actual(origValues.size()); + mt::Transform_par(origValues.begin(), origValues.end(), actual.begin(), byteSwap, settings); + for (size_t ii = 0; ii < NUM_PIXELS; ++ii) // Everything should match + { + TEST_ASSERT_EQ(expected[ii], actual[ii]); + } +} + TEST_MAIN( TEST_CHECK(testThreadedByteSwap); + TEST_CHECK(test_transform_ByteSwap); + TEST_CHECK(test_Transform_par_ByteSwap); ) \ No newline at end of file diff --git a/six/modules/c++/samples/8AMPI_PHSI.cpp b/six/modules/c++/samples/8AMPI_PHSI.cpp index 5ceff52f6..14dbd7c44 100644 --- a/six/modules/c++/samples/8AMPI_PHSI.cpp +++ b/six/modules/c++/samples/8AMPI_PHSI.cpp @@ -14,7 +14,6 @@ #include #include #include -//#include #include #include "six/AmplitudeTable.h" diff --git a/six/modules/c++/six.sicd/six.sicd.vcxproj b/six/modules/c++/six.sicd/six.sicd.vcxproj index 3b0b210df..6d58ad83c 100644 --- a/six/modules/c++/six.sicd/six.sicd.vcxproj +++ b/six/modules/c++/six.sicd/six.sicd.vcxproj @@ -154,9 +154,7 @@ - - - + diff --git a/six/modules/c++/six.sicd/six.sicd.vcxproj.filters b/six/modules/c++/six.sicd/six.sicd.vcxproj.filters index fb6a88a17..f7ec2e4b0 100644 --- a/six/modules/c++/six.sicd/six.sicd.vcxproj.filters +++ b/six/modules/c++/six.sicd/six.sicd.vcxproj.filters @@ -248,13 +248,7 @@ Source Files - - Source Files - - - Source Files - - + Source Files diff --git a/six/modules/c++/six.sicd/source/ComplexToAMP8IPHS8I.cpp b/six/modules/c++/six.sicd/source/ComplexToAMP8IPHS8I.cpp index adfd97059..1bdef6f87 100644 --- a/six/modules/c++/six.sicd/source/ComplexToAMP8IPHS8I.cpp +++ b/six/modules/c++/six.sicd/source/ComplexToAMP8IPHS8I.cpp @@ -31,15 +31,7 @@ #include #include -#include -#if CODA_OSS_cpp17 - // is broken with the older version of GCC we're using - #if (__GNUC__ >= 10) || _MSC_VER - #include - #define SIX_six_sicd_ComplexToAMP8IPHS8I_has_execution 1 - #endif -#endif - +#include #include #include #include @@ -231,30 +223,6 @@ six::AMP8I_PHS8I_t six::sicd::nearest_neighbor(const details::ComplexToAMP8IPHS8 return i.nearest_neighbor_(v); } - // Yes, this is duplicated code :-( 1) hopefully it will go away someday "soon," - // that is, we'll be at C++17; 2) the cutoff/dimension values may be different. - // - // First of all, C++11's std::async() is now (in 2023) thought of as maybe a - // bit "half baked," and perhaps shouldn't be emulated. Then, C++17 added - // parallel algorithms which might be a better way of satisfying our immediate - // needs (below) ... although we're still at C++14. -template -static inline OutputIt transform_async(const InputIt first1, const InputIt last1, OutputIt d_first, TTransformFunc transform_f, - typename std::iterator_traits::difference_type cutoff) -{ - // https://en.cppreference.com/w/cpp/thread/async - const auto len = std::distance(first1, last1); - if (len < cutoff) - { - return transform_f(first1, last1, d_first); - } - - const auto mid1 = first1 + len / 2; - const auto d_mid = d_first + len / 2; - auto handle = std::async(transform_async, mid1, last1, d_mid, transform_f, cutoff); - transform_async(first1, mid1, d_first, transform_f, cutoff); - return handle.get(); -} void six::sicd::details::ComplexToAMP8IPHS8I::Impl::nearest_neighbors_par(std::span inputs, std::span results) const { @@ -262,26 +230,7 @@ void six::sicd::details::ComplexToAMP8IPHS8I::Impl::nearest_neighbors_par(std::s { return converter.nearest_neighbor_(v); }; - - const auto first = inputs.begin(); - const auto last = inputs.end(); - const auto dest = results.begin(); - -#if SIX_six_sicd_ComplexToAMP8IPHS8I_has_execution - std::ignore = std::transform(std::execution::par, first, last, dest, nearest_neighbor); -#else - constexpr ptrdiff_t cutoff_ = 0; // too slow w/o multi-threading - // The value of "default_cutoff" was determined by testing; there is nothing special about it, feel free to change it. - constexpr auto dimension = 256; - constexpr auto default_cutoff = (dimension * dimension) * 4; - const auto cutoff = cutoff_ == 0 ? default_cutoff : cutoff_; - - const auto transform_f = [&](auto first1, auto last1, auto d_first) - { - return std::transform(first1, last1, d_first, nearest_neighbor); - }; - std::ignore = transform_async(first, last, dest, transform_f, cutoff); -#endif // SIX_six_sicd_ComplexToAMP8IPHS8I_has_execution + std::ignore = mt::Transform_par(inputs.begin(), inputs.end(), results.begin(), nearest_neighbor); } std::vector six::sicd::details::ComplexToAMP8IPHS8I::nearest_neighbors_par( std::span inputs, const six::AmplitudeTable* pAmplitudeTable) @@ -323,12 +272,12 @@ std::vector six::sicd::details::ComplexToAMP8IPHS8I::nearest // TODO: there could be more complicated logic here to determine which UNSEQ // implementation to use. - #if SIX_sicd_has_VCL - return nearest_neighbors_unseq_vcl(inputs, pAmplitudeTable); - - #elif SIX_sicd_has_simd + #if SIX_sicd_has_simd return nearest_neighbors_unseq_simd(inputs, pAmplitudeTable); + #elif SIX_sicd_has_VCL + return nearest_neighbors_unseq_vcl(inputs, pAmplitudeTable); + #elif SIX_sicd_has_ximd return nearest_neighbors_unseq_ximd(inputs, pAmplitudeTable); diff --git a/six/modules/c++/six.sicd/source/ComplexToAMP8IPHS8I_simd.cpp b/six/modules/c++/six.sicd/source/ComplexToAMP8IPHS8I_simd.cpp deleted file mode 100644 index ece707b2f..000000000 --- a/six/modules/c++/six.sicd/source/ComplexToAMP8IPHS8I_simd.cpp +++ /dev/null @@ -1,377 +0,0 @@ -/* ========================================================================= -* This file is part of six.sicd-c++ -* ========================================================================= -* -* (C) Copyright 2021, Maxar Technologies, Inc. -* -* six.sicd-c++ is free software; you can redistribute it and/or modify -* it under the terms of the GNU Lesser General Public License as published by -* the Free Software Foundation; either version 3 of the License, or -* (at your option) any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU Lesser General Public License for more details. -* -* You should have received a copy of the GNU Lesser General Public -* License along with this program; If not, -* see . -* -*/ -#include "six/AmplitudeTable.h" - -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -#include "six/sicd/Utilities.h" - -#if SIX_sicd_has_simd - -#include - -// https://en.cppreference.com/w/cpp/experimental/simd/simd_cast -// > The TS specification is missing `simd_cast` and `static_simd_cast` overloads for `simd_mask`. ... -namespace stdx -{ - using namespace std::experimental; - using namespace std::experimental::__proposed; -} - -// https://en.cppreference.com/w/cpp/experimental/simd -using floatv = stdx::native_simd; -// using doublev = stdx::rebind_simd_t; -using intv = stdx::rebind_simd_t; -using zfloatv = std::array; - -auto& real(zfloatv& z) -{ - return z[0]; -} -const auto& real(const zfloatv& z) -{ - return z[0]; -} -auto& imag(zfloatv& z) -{ - return z[1]; -} -const auto& imag(const zfloatv& z) -{ - return z[1]; -} - -// https://en.cppreference.com/w/cpp/experimental/simd/simd/simd -template -inline auto make_zfloatv(TGeneratorReal&& generate_real, TGeneratorImag&& generate_imag) -{ - zfloatv retval; - real(retval) = floatv(generate_real); - imag(retval) = floatv(generate_imag); - return retval; -} - -static inline auto load(std::span p) -{ - const auto generate_real = [&](size_t i) { - return p[i].real(); - }; - const auto generate_imag = [&](size_t i) { - return p[i].imag(); - }; - return make_zfloatv(generate_real, generate_imag); -} - - -// https://en.cppreference.com/w/cpp/numeric/complex/arg -// > `std::atan2(std::imag(z), std::real(z))` -inline auto arg(const floatv& real, const floatv& imag) -{ - return atan2(imag, real); // arg() -} -inline auto arg(const zfloatv& z) -{ - return arg(real(z), imag(z)); -} - -inline auto roundi(const floatv& v) // match vcl::roundi() -{ - return static_simd_cast(round(v)); -} - -template -inline auto select(const TTest& test_, const TResult& t, const TResult& f) -{ - //const auto test = test_.__cvt(); // https://github.com/VcDevel/std-simd/issues/41 - const auto test = stdx::static_simd_cast(test_); // https://github.com/VcDevel/std-simd/issues/41 - - // https://en.cppreference.com/w/cpp/experimental/simd/where_expression - // > ... All other elements are left unchanged. - TResult retval; - where(test, retval) = t; - where(!test, retval) = f; - return retval; -} - -static inline auto getPhase(const zfloatv& v, float phase_delta) -{ - // Phase is determined via arithmetic because it's equally spaced. - // There's an intentional conversion to zero when we cast 256 -> uint8. That wrap around - // handles cases that are close to 2PI. - auto phase = arg(v); - where(phase < 0.0f, phase) += std::numbers::pi_v *2.0f; // Wrap from [0, 2PI] - return roundi(phase / phase_delta); -} - -template -static inline auto lookup(const intv& zindex, const std::array& phase_directions) -{ - // It seems that the "generator" constuctor is called with SIMD instructions. - // https://en.cppreference.com/w/cpp/experimental/simd/simd/simd - // > The calls to `generator` are unsequenced with respect to each other. - - const auto generate_real = [&](size_t i) { - const auto i_ = zindex[i]; - return phase_directions[i_].real(); - }; - const auto generate_imag = [&](size_t i) { - const auto i_ = zindex[i]; - return phase_directions[i_].imag(); - }; - return make_zfloatv(generate_real, generate_imag); -} - -// https://en.cppreference.com/w/cpp/algorithm/lower_bound -/* -template -ForwardIt lower_bound(ForwardIt first, ForwardIt last, const T& value) -{ - ForwardIt it; - typename std::iterator_traits::difference_type count, step; - count = std::distance(first, last); - - while (count > 0) - { - it = first; - step = count / 2; - std::advance(it, step); - - if (*it < value) - { - first = ++it; - count -= step + 1; - } - else - count = step; - } - - return first; -} -*/ -template -static inline auto lookup(const intv& zindex, std::span magnitudes) -{ - // It seems that the "generator" constuctor is called with SIMD instructions. - // https://en.cppreference.com/w/cpp/experimental/simd/simd/simd - // > The calls to `generator` are unsequenced with respect to each other. - - const auto generate = [&](size_t i) { - const auto i_ = zindex[i]; - return magnitudes[i_]; - }; - return floatv(generate); -} -inline auto lower_bound_(std::span magnitudes, const floatv& v) -{ - intv first = 0; - const intv last = gsl::narrow(magnitudes.size()); - - auto count = last - first; - while (any_of(count > 0)) - { - auto it = first; - const auto step = count / 2; - it += step; - - auto next = it; ++next; // ... ++it; - auto advance = count; advance -= step + 1; // ... -= step + 1; - - const auto c = lookup(it, magnitudes); // magnituides[it] - - const auto test = c < v; // (c < v).__cvt(); // https://github.com/VcDevel/std-simd/issues/41 - - //where(test, it) = next; // ... ++it - //where(test, first) = it; // first = ... - //// count -= step + 1 <...OR...> count = step - //where(test, count) = advance; - //where(!test, count) = step; - it = select(test, next, it); // ... ++it - first = select(test, it, first); // first = ... - count = select(test, advance, step); // count -= step + 1 <...OR...> count = step - } - return first; -} -inline auto lower_bound(std::span magnitudes, const floatv& value) -{ - auto retval = lower_bound_(magnitudes, value); - - #ifndef NDEBUG // i.e., debug - for (size_t i = 0; i < value.size(); i++) - { - const auto it = std::lower_bound(magnitudes.begin(), magnitudes.end(), value[i]); - const auto result = gsl::narrow(std::distance(magnitudes.begin(), it)); - assert(retval[i] == result); - } - #endif - - return retval; -} - -static auto nearest(std::span magnitudes, const floatv& value) -{ - assert(magnitudes.size() == six::AmplitudeTableSize); - - /* - const auto it = std::lower_bound(begin, end, value); - if (it == begin) return 0; - - const auto prev_it = std::prev(it); - const auto nearest_it = it == end ? prev_it : - (value - *prev_it <= *it - value ? prev_it : it); - const auto distance = std::distance(begin, nearest_it); - assert(distance <= std::numeric_limits::max()); - return gsl::narrow(distance); - */ - const auto it = ::lower_bound(magnitudes, value); - const auto prev_it = it - 1; // const auto prev_it = std::prev(it); - - const auto v0 = value - lookup(prev_it, magnitudes); // value - *prev_it - const auto v1 = lookup(it, magnitudes) - value; // *it - value - //const auto nearest_it = select(v0 <= v1, prev_it, it); // (value - *prev_it <= *it - value ? prev_it : it); - - const intv end = gsl::narrow(magnitudes.size()); - //const auto end_test = select(it == end, prev_it, nearest_it); // it == end ? prev_it : ... - const intv zero = 0; - auto retval = select(it == 0, zero, // if (it == begin) return 0; - select(it == end, prev_it, // it == end ? prev_it : ... - select(v0 <=v1, prev_it, it) // (value - *prev_it <= *it - value ? prev_it : it); - )); - return retval; -} - -static auto find_nearest(std::span magnitudes, const floatv& phase_direction_real, const floatv& phase_direction_imag, - const zfloatv& v) -{ - // We have to do a 1D nearest neighbor search for magnitude. - // But it's not the magnitude of the input complex value - it's the projection of - // the complex value onto the ray of candidate magnitudes at the selected phase. - // i.e. dot product. - const auto projection = (phase_direction_real * real(v)) + (phase_direction_imag * imag(v)); - //assert(std::abs(projection - std::abs(v)) < 1e-5); // TODO ??? - return nearest(magnitudes, projection); -} -static inline auto find_nearest(std::span magnitudes, const zfloatv& phase_direction, const zfloatv& v) -{ - return find_nearest(magnitudes, real(phase_direction), imag(phase_direction), v); -} - -void six::sicd::details::ComplexToAMP8IPHS8I::Impl::nearest_neighbors_unseq_(std::span p, std::span results) const -{ - const auto v = load(p); - - const auto phase = ::getPhase(v, phase_delta); - - const auto phase_direction = lookup(phase, phase_directions); - #ifndef NDEBUG // i.e., debug - for (size_t i = 0; i < phase.size(); i++) - { - const auto pd = phase_directions[phase[i]]; - assert(pd.real() == real(phase_direction)[i]); - assert(pd.imag() == imag(phase_direction)[i]); - } - #endif - - const auto amplitude = ::find_nearest(magnitudes, phase_direction, v); - #ifndef NDEBUG // i.e., debug - for (size_t i = 0; i < amplitude.size(); i++) - { - const auto i_ = phase[i]; - const auto a = find_nearest(phase_directions[i_], p[i]); - assert(a == amplitude[i]); - } - #endif - - auto dest = results.begin(); - for (size_t i = 0; i < v.size(); i++) - { - dest->phase = gsl::narrow_cast(phase[i]); - dest->amplitude = gsl::narrow_cast(amplitude[i]); - - ++dest; - } -} - -void six::sicd::details::ComplexToAMP8IPHS8I::Impl::nearest_neighbors_unseq(std::span inputs, std::span results) const -{ - auto first = inputs.begin(); - const auto last = inputs.end(); - auto dest = results.begin(); - - // The above code is simpler (no templates) if we use just a single VCL - // complex type: `zfloatv`. If there is any performance difference, - // it will only be for extreme edge cases since the smaller types are only used - // at the end of the loop. - // - // It also makes this loop simpler as we handle all non-multiples-of-8 in - // the same way. - constexpr auto elements_per_iteration = 8; - - // Can do these checks one-time outside of the loop - const auto distance = std::distance(first, last); - - // First, do multiples of 8 - const auto distance_ = distance - (distance % elements_per_iteration); - const auto last_ = first + distance_; - for (; first != last_; first += elements_per_iteration, dest += elements_per_iteration) - { - const auto f = sys::make_span(&(*first), elements_per_iteration); - const auto d = sys::make_span(&(*dest), elements_per_iteration); - nearest_neighbors_unseq_(f, d); - } - - // Then finish off anything left - assert(std::distance(first, last) < elements_per_iteration); - for (; first != last; ++first, ++dest) - { - const auto f = sys::make_span(&(*first), 1); - const auto d = sys::make_span(&(*dest), 1); - nearest_neighbors_seq(f, d); - } -} -std::vector six::sicd::details::ComplexToAMP8IPHS8I::nearest_neighbors_unseq_vcl( - std::span inputs, const six::AmplitudeTable* pAmplitudeTable) -{ - // make a structure to quickly find the nearest neighbor - const auto& converter = make_(pAmplitudeTable); - - std::vector retval(inputs.size()); - converter.impl.nearest_neighbors_unseq(inputs, sys::make_span(retval)); - return retval; -} - -#endif // SIX_sicd_has_simd diff --git a/six/modules/c++/six.sicd/source/ComplexToAMP8IPHS8I_unseq.cpp b/six/modules/c++/six.sicd/source/ComplexToAMP8IPHS8I_unseq.cpp index 541fb4b5c..6b546a7d1 100644 --- a/six/modules/c++/six.sicd/source/ComplexToAMP8IPHS8I_unseq.cpp +++ b/six/modules/c++/six.sicd/source/ComplexToAMP8IPHS8I_unseq.cpp @@ -31,19 +31,11 @@ #include #include -#include -#if CODA_OSS_cpp17 - // is broken with the older version of GCC we're using - #if (__GNUC__ >= 10) || _MSC_VER - #include - #define SIX_six_sicd_ComplexToAMP8IPHS8I_has_execution 1 - #endif -#endif - #include #include #include #include +#include #include "six/sicd/Utilities.h" @@ -70,76 +62,61 @@ using AMP8I_PHS8I_t = six::AMP8I_PHS8I_t; #pragma warning(pop) #endif -namespace six -{ -namespace sicd -{ -namespace vcl -{ - -constexpr auto elements_per_iteration = 4; - -using floatv = ::vcl::Vec4f; -using intv = ::vcl::Vec4i; -using zfloatv = ::vcl::Complex4f; +using vcl_intv = vcl::Vec4i; +using vcl_floatv = vcl::Vec4f; +constexpr auto vcl_elements_per_iteration = vcl_floatv::size(); -} // vcl -} // sicd -} // six - -auto real(const six::sicd::vcl::zfloatv& z) +inline int ssize(const vcl_intv& z) noexcept { - return z.real(); + return z.size(); } -auto imag(const six::sicd::vcl::zfloatv& z) +inline int ssize(const vcl_floatv& z) noexcept { - return z.imag(); + return z.size(); } -static inline size_t size(const six::sicd::vcl::zfloatv& z) noexcept + +using vcl_zfloatv = vcl::Complex4f; +auto real(const vcl_zfloatv& z) { - return z.size(); + return z.real(); } -static inline int ssize(const six::sicd::vcl::zfloatv& z) noexcept +auto imag(const vcl_zfloatv& z) { - return z.size(); + return z.imag(); } -static inline int ssize(const six::sicd::vcl::floatv& z) noexcept +inline size_t size(const vcl_zfloatv& z) noexcept { return z.size(); } -static inline int ssize(const six::sicd::vcl::intv& z) noexcept +inline int ssize(const vcl_zfloatv& z) noexcept { return z.size(); } -// https://en.cppreference.com/w/cpp/numeric/complex/arg -// > `std::atan2(std::imag(z), std::real(z))` -inline auto arg(const six::sicd::vcl::floatv& real, const six::sicd::vcl::floatv& imag) -{ - return atan2(imag, real); // arg() -} -inline auto arg(const six::sicd::vcl::zfloatv& z) +inline auto arg(const vcl_zfloatv& z) { - return arg(real(z), imag(z)); + // https://en.cppreference.com/w/cpp/numeric/complex/arg + // > `std::atan2(std::imag(z), std::real(z))` + return atan2(z.imag(), z.real()); // arg() } template -inline auto if_add(const T& f, const six::sicd::vcl::floatv& a, float b) +inline auto if_add(const T& f, const vcl_floatv& a, float b) { return vcl::if_add(f, a, b); } -inline bool any_of(const six::sicd::vcl::intv& m) +inline bool any_of(const vcl_intv& m) { return horizontal_or(m); } -static inline void copy_from(std::span p, six::sicd::vcl::floatv& result) +inline void copy_from(std::span p, vcl_floatv& result) { assert(p.size() == result.size()); result.load(p.data()); } -static inline auto copy_from(std::span p, six::sicd::vcl::zfloatv& result) +inline auto copy_from(std::span p, vcl_zfloatv& result) { // https://en.cppreference.com/w/cpp/numeric/complex // > For any pointer to an element of an array of `std::complex` named `p` and any valid array index `i`, ... @@ -148,14 +125,14 @@ static inline auto copy_from(std::span p, six::sicd::vcl::zfloatv& } template -static inline auto lookup(const six::sicd::vcl::intv& zindex, const std::array& phase_directions) +inline auto lookup(const vcl_intv& zindex, const std::array& phase_directions) { - return ::vcl::lookup(zindex, phase_directions.data()); + return vcl::lookup(zindex, phase_directions.data()); } -static inline auto lookup(const six::sicd::vcl::intv& zindex, std::span magnitudes) +inline auto lookup(const vcl_intv& zindex, std::span magnitudes) { assert(magnitudes.size() == six::AmplitudeTableSize); - return ::vcl::lookup(zindex, magnitudes.data()); + return vcl::lookup(zindex, magnitudes.data()); } #endif // SIX_sicd_has_VCL @@ -166,27 +143,73 @@ static inline auto lookup(const six::sicd::vcl::intv& zindex, std::span -namespace six +template +using ximd = sys::ximd::Ximd; + +using ximd_intv = ximd; +using ximd_intv_mask = sys::ximd::ximd_mask; + +using ximd_floatv = ximd; +using ximd_floatv_mask = sys::ximd::ximd_mask; + +constexpr auto ximd_elements_per_iteration = ximd_floatv::size(); + +template +static inline auto ssize(const ximd& v) noexcept { -namespace sicd + return gsl::narrow(v.size()); +} + +// Manage a SIMD complex as an array of two SIMDs +using ximd_zfloatv = std::array; +inline auto& real(ximd_zfloatv& z) noexcept { -namespace ximd + return z[0]; +} +inline const auto& real(const ximd_zfloatv& z) noexcept { + return z[0]; +} +inline auto& imag(ximd_zfloatv& z) noexcept +{ + return z[1]; +} +inline const auto& imag(const ximd_zfloatv& z) noexcept +{ + return z[1]; +} +inline size_t size(const ximd_zfloatv& z) noexcept +{ + auto retval = real(z).size(); + assert(retval == imag(z).size()); + return retval; +} +inline auto ssize(const ximd_zfloatv& z) noexcept +{ + return gsl::narrow(size(z)); +} -template -using simd = sys::ximd::Ximd; -using intv = simd; -using floatv = simd; -using intv_mask = sys::ximd::ximd_mask; -using floatv_mask = sys::ximd::ximd_mask; - -constexpr auto elements_per_iteration = floatv::size(); +inline auto arg(const ximd_zfloatv& z) +{ + // https://en.cppreference.com/w/cpp/numeric/complex/arg + // > `std::atan2(std::imag(z), std::real(z))` + return atan2(imag(z), real(z)); // arg() +} -// Manage a SIMD complex as an array of two SIMDs -using zfloatv = std::array; +template +static inline auto make_ximd_zfloatv(TGeneratorReal&& generate_real, TGeneratorImag&& generate_imag) +{ + ximd_zfloatv retval; + for (size_t i = 0; i < size(retval); i++) + { + real(retval)[i] = generate_real(i); + imag(retval)[i] = generate_imag(i); + } + return retval; +} template -static inline auto select(const TTest& test, const TResult& t, const TResult& f) +static inline auto ximd_select_(const TTest& test, const TResult& t, const TResult& f) { TResult retval; for (size_t i = 0; i < test.size(); i++) @@ -196,54 +219,148 @@ static inline auto select(const TTest& test, const TResult& t, const TResult& f) return retval; } -} // ximd -} // sicd -} // six +static inline auto copy_from(std::span p, ximd_floatv& result) +{ + assert(p.size() == result.size()); + result.copy_from(p.data()); +} +static inline auto copy_from(std::span p, ximd_zfloatv& result) +{ + const auto generate_real = [&](size_t i) { return p[i].real(); }; + const auto generate_imag = [&](size_t i) { return p[i].imag(); }; + result = make_ximd_zfloatv(generate_real, generate_imag); +} + +static inline auto roundi(const ximd_floatv& v) // match vcl::roundi() +{ + const auto rounded = round(v); + const auto generate_roundi = [&](size_t i) + { return static_cast(rounded[i]); }; + return ximd_intv::generate(generate_roundi); +} + +static inline auto select(const ximd_floatv_mask& test, const ximd_floatv& t, const ximd_floatv& f) +{ + return ximd_select_(test, t, f); +} +static inline auto select(const ximd_intv_mask& test, const ximd_intv& t, const ximd_intv& f) +{ + return ximd_select_(test, t, f); +} + +static inline auto if_add(const ximd_floatv_mask& m, const ximd_floatv& v, typename ximd_floatv::value_type c) +{ + // phase = if_add(phase < 0.0, phase, std::numbers::pi_v * 2.0f); // Wrap from [0, 2PI] + const auto generate_add = [&](size_t i) { + return m[i] ? v[i] + c : v[i]; + }; + return ximd_floatv::generate(generate_add); +} + +template +static inline auto lookup(const ximd_intv& zindex, const std::array& phase_directions) +{ + // It seems that the "generator" constuctor is called with SIMD instructions. + // https://en.cppreference.com/w/cpp/experimental/simd/simd/simd + // > The calls to `generator` are unsequenced with respect to each other. + + const auto generate_real = [&](size_t i) { + const auto i_ = zindex[i]; + return phase_directions[i_].real(); + }; + const auto generate_imag = [&](size_t i) { + const auto i_ = zindex[i]; + return phase_directions[i_].imag(); + }; + return make_ximd_zfloatv(generate_real, generate_imag); +} + +static auto lookup(const ximd_intv& zindex, std::span magnitudes) +{ + const auto generate = [&](size_t i) { + const auto i_ = zindex[i]; + + // The index may be out of range. This is expected because `i` might be "don't care." + if ((i_ >= 0) && (i_ < std::ssize(magnitudes))) + { + return magnitudes[i_]; + } + return NAN; // propogate "don't care" + }; + return ximd_floatv::generate(generate); +} + +#endif // SIX_sicd_has_ximd + +#if SIX_sicd_has_simd + +#include + +// https://en.cppreference.com/w/cpp/experimental/simd/simd_cast +// > The TS specification is missing `simd_cast` and `static_simd_cast` overloads for `simd_mask`. ... +namespace stdx +{ + using namespace std::experimental; + using namespace std::experimental::__proposed; +} + +template +using simd = stdx::simd; + +using simd_intv = simd; +using simd_intv_mask = typename simd_intv::mask_type; + +using simd_floatv = simd; +using simd_floatv_mask = typename simd_floatv::mask_type; + +constexpr auto simd_elements_per_iteration = simd_floatv::size(); -static inline auto& real(six::sicd::ximd::zfloatv& z) noexcept +template +static inline auto ssize(const simd& v) noexcept +{ + return gsl::narrow(v.size()); +} + +// Manage a SIMD complex as an array of two SIMDs +using simd_zfloatv = std::array; +inline auto& real(simd_zfloatv& z) noexcept { return z[0]; } -static inline const auto& real(const six::sicd::ximd::zfloatv& z) noexcept +inline const auto& real(const simd_zfloatv& z) noexcept { return z[0]; } -static inline auto& imag(six::sicd::ximd::zfloatv& z) noexcept +inline auto& imag(simd_zfloatv& z) noexcept { return z[1]; } -static inline const auto& imag(const six::sicd::ximd::zfloatv& z) noexcept +inline const auto& imag(const simd_zfloatv& z) noexcept { return z[1]; } - -static inline size_t size(const six::sicd::ximd::zfloatv& z) noexcept +inline size_t size(const simd_zfloatv& z) noexcept { auto retval = real(z).size(); assert(retval == imag(z).size()); return retval; } -static inline auto ssize(const six::sicd::ximd::zfloatv& z) noexcept +inline auto ssize(const simd_zfloatv& z) noexcept { return gsl::narrow(size(z)); } -template -static inline auto ssize(const six::sicd::ximd::simd& v) noexcept -{ - return gsl::narrow(v.size()); -} -namespace six -{ -namespace sicd -{ -namespace ximd +inline auto arg(const simd_zfloatv& z) { + // https://en.cppreference.com/w/cpp/numeric/complex/arg + // > `std::atan2(std::imag(z), std::real(z))` + return atan2(imag(z), real(z)); // arg() +} template -static inline auto make_zfloatv(TGeneratorReal&& generate_real, TGeneratorImag&& generate_imag) +static inline auto make_simd_zfloatv(TGeneratorReal&& generate_real, TGeneratorImag&& generate_imag) { - six::sicd::ximd::zfloatv retval; + simd_zfloatv retval; for (size_t i = 0; i < size(retval); i++) { real(retval)[i] = generate_real(i); @@ -252,58 +369,63 @@ static inline auto make_zfloatv(TGeneratorReal&& generate_real, TGeneratorImag&& return retval; } -} // ximd -} // sicd -} // six - - -static inline auto arg(const six::sicd::ximd::zfloatv& z) +template +static inline auto simd_select_(const TTest& test, const TResult& t, const TResult& f) { - // https://en.cppreference.com/w/cpp/numeric/complex/arg - // > `std::atan2(std::imag(z), std::real(z))` - return atan2(imag(z), real(z)); // arg() + // https://en.cppreference.com/w/cpp/experimental/simd/where_expression + // > ... All other elements are left unchanged. + TResult retval; + where(test, retval) = t; + where(!test, retval) = f; + return retval; } -static inline auto copy_from(std::span p, six::sicd::ximd::floatv& result) +static inline auto copy_from(std::span p, simd_floatv& result) { assert(p.size() == result.size()); - result.copy_from(p.data()); + result.copy_from(p.data(), stdx::element_aligned); } -static inline auto copy_from(std::span p, six::sicd::ximd::zfloatv& result) +static inline auto copy_from(std::span p, simd_zfloatv& result) { const auto generate_real = [&](size_t i) { return p[i].real(); }; const auto generate_imag = [&](size_t i) { return p[i].imag(); }; - result = six::sicd::ximd::make_zfloatv(generate_real, generate_imag); + result = make_simd_zfloatv(generate_real, generate_imag); } -static inline auto roundi(const six::sicd::ximd::floatv& v) // match vcl::roundi() +static inline auto roundi(const simd_floatv& v) // match vcl::roundi() { const auto rounded = round(v); const auto generate_roundi = [&](size_t i) - { return static_cast(rounded[i]); }; - return six::sicd::ximd::intv::generate(generate_roundi); + { return static_cast(rounded[i]); }; + return simd_intv(generate_roundi); } -static inline auto select(const six::sicd::ximd::floatv_mask& test, const six::sicd::ximd::floatv& t, const six::sicd::ximd::floatv& f) +template +static inline auto select(const TMask& test_, const simd_floatv& t, const simd_floatv& f) { - return six::sicd::ximd::select(test, t, f); + //const auto test = test_.__cvt(); // https://github.com/VcDevel/std-simd/issues/41 + const auto test = stdx::static_simd_cast(test_); // https://github.com/VcDevel/std-simd/issues/41 + return simd_select_(test, t, f); } -static inline auto select(const six::sicd::ximd::intv_mask& test, const six::sicd::ximd::intv& t, const six::sicd::ximd::intv& f) +template +static inline auto select(const TMask& test_, const simd_intv& t, const simd_intv& f) { - return six::sicd::ximd::select(test, t, f); + //const auto test = test_.__cvt(); // https://github.com/VcDevel/std-simd/issues/41 + const auto test = stdx::static_simd_cast(test_); // https://github.com/VcDevel/std-simd/issues/41 + return simd_select_(test, t, f); } -static inline auto if_add(const six::sicd::ximd::floatv_mask& m, const six::sicd::ximd::floatv& v, typename six::sicd::ximd::floatv::value_type c) +static inline auto if_add(const simd_floatv_mask& m, const simd_floatv& v, typename simd_floatv::value_type c) { // phase = if_add(phase < 0.0, phase, std::numbers::pi_v * 2.0f); // Wrap from [0, 2PI] const auto generate_add = [&](size_t i) { return m[i] ? v[i] + c : v[i]; }; - return six::sicd::ximd::floatv::generate(generate_add); + return simd_floatv(generate_add); } template -static inline auto lookup(const six::sicd::ximd::intv& zindex, const std::array& phase_directions) +static inline auto lookup(const simd_intv& zindex, const std::array& phase_directions) { // It seems that the "generator" constuctor is called with SIMD instructions. // https://en.cppreference.com/w/cpp/experimental/simd/simd/simd @@ -317,10 +439,10 @@ static inline auto lookup(const six::sicd::ximd::intv& zindex, const std::array< const auto i_ = zindex[i]; return phase_directions[i_].imag(); }; - return six::sicd::ximd::make_zfloatv(generate_real, generate_imag); + return make_simd_zfloatv(generate_real, generate_imag); } -static auto lookup(const six::sicd::ximd::intv& zindex, std::span magnitudes) +static auto lookup(const simd_intv& zindex, std::span magnitudes) { const auto generate = [&](size_t i) { const auto i_ = zindex[i]; @@ -332,10 +454,12 @@ static auto lookup(const six::sicd::ximd::intv& zindex, std::span m } return NAN; // propogate "don't care" }; - return six::sicd::ximd::floatv::generate(generate); + return simd_floatv(generate); } -#endif // SIX_sicd_has_ximd +#endif // SIX_sicd_has_simd + +/******************************************************************************************************/ template static auto getPhase(const ZFloatV& v, float phase_delta) @@ -344,7 +468,7 @@ static auto getPhase(const ZFloatV& v, float phase_delta) // There's an intentional conversion to zero when we cast 256 -> uint8. That wrap around // handles cases that are close to 2PI. auto phase = arg(v); - phase = if_add(phase < 0.0, phase, std::numbers::pi_v * 2.0f); // Wrap from [0, 2PI] + phase = if_add(phase < 0.0f, phase, std::numbers::pi_v * 2.0f); // Wrap from [0, 2PI] return roundi(phase / phase_delta); } @@ -444,7 +568,7 @@ static auto nearest(std::span magnitudes, const FloatV& value) const IntV zero = 0; auto retval = select(it == 0, zero, // if (it == begin) return 0; select(it == end, prev_it, // it == end ? prev_it : ... - select(v0 <=v1, prev_it, it) // (value - *prev_it <= *it - value ? prev_it : it); + select(v0 <= v1, prev_it, it) // (value - *prev_it <= *it - value ? prev_it : it); )); return retval; } @@ -465,24 +589,35 @@ static auto find_nearest(std::span magnitudes, #if SIX_sicd_has_VCL static auto lookup_and_find_nearest(const six::sicd::details::ComplexToAMP8IPHS8I& converter, - const six::sicd::vcl::intv& phase, const six::sicd::vcl::zfloatv& v) + const vcl_intv& phase, const vcl_zfloatv& v) { const auto& impl = converter.impl; const auto phase_direction_real = lookup(phase, impl.phase_directions_real); const auto phase_direction_imag = lookup(phase, impl.phase_directions_imag); - return ::find_nearest(impl.magnitudes, phase_direction_real, phase_direction_imag, v); + return ::find_nearest(impl.magnitudes, phase_direction_real, phase_direction_imag, v); } #endif #if SIX_sicd_has_ximd static auto lookup_and_find_nearest(const six::sicd::details::ComplexToAMP8IPHS8I& converter, - const six::sicd::ximd::intv& phase, const six::sicd::ximd::zfloatv& v) + const ximd_intv& phase, const ximd_zfloatv& v) { const auto& impl = converter.impl; const auto phase_direction = lookup(phase, impl.phase_directions); - return ::find_nearest(impl.magnitudes, real(phase_direction), imag(phase_direction), v); + return ::find_nearest(impl.magnitudes, real(phase_direction), imag(phase_direction), v); +} +#endif + +#if SIX_sicd_has_simd +static auto lookup_and_find_nearest(const six::sicd::details::ComplexToAMP8IPHS8I& converter, + const simd_intv& phase, const simd_zfloatv& v) +{ + const auto& impl = converter.impl; + + const auto phase_direction = lookup(phase, impl.phase_directions); + return ::find_nearest(impl.magnitudes, real(phase_direction), imag(phase_direction), v); } #endif @@ -497,9 +632,9 @@ void six::sicd::details::ComplexToAMP8IPHS8I::Impl::nearest_neighbors_unseq_T(st #if CODA_OSS_DEBUG for (int i = 0; i < ssize(v); i++) { - const auto z = p[i]; - assert(real(v)[i] == z.real()); - assert(imag(v)[i] == z.imag()); + //const auto z = p[i]; + //assert(real(v)[i] == z.real()); + //assert(imag(v)[i] == z.imag()); } #endif @@ -581,7 +716,7 @@ std::vector six::sicd::details::ComplexToAMP8IPHS8I::nearest_neig const auto& converter = make_(pAmplitudeTable); std::vector retval(inputs.size()); - converter.impl.nearest_neighbors_unseq(inputs, sys::make_span(retval)); + converter.impl.nearest_neighbors_unseq(inputs, sys::make_span(retval)); return retval; } #endif // SIX_sicd_has_VCL @@ -594,166 +729,20 @@ std::vector six::sicd::details::ComplexToAMP8IPHS8I::nearest_neig const auto& converter = make_(pAmplitudeTable); std::vector retval(inputs.size()); - converter.impl.nearest_neighbors_unseq(inputs, sys::make_span(retval)); + converter.impl.nearest_neighbors_unseq(inputs, sys::make_span(retval)); return retval; } #endif // SIX_sicd_has_ximd -/********************************************************************** - -// This is here (instead of **ComplexToAMP8IPHS8I.cpp**) because par_unseq() might -// need to know implementation details of _unseq() -using input_it = std::span::iterator; -using output_it = std::span::iterator; - -struct const_iterator final -{ - using Type = input_it::value_type; - - using iterator_category = std::random_access_iterator_tag; - using value_type = std::remove_cv_t; - using difference_type = std::ptrdiff_t; - using pointer = Type*; - using reference = Type&; - using const_reference = const Type&; - - input_it current_; - - const_iterator() = default; - const_iterator(input_it it) : current_(it) {} - - const_reference operator*() const noexcept - { - return *current_; - } - - const_iterator& operator++() noexcept - { - for (ptrdiff_t i = 0; i < 8; i++) - { - ++current_; - } - return *this; - } - - const_iterator& operator--() noexcept - { - --current_; - return *this; - } - - const_iterator& operator-=(const difference_type n) noexcept - { - current_ -= n; - return *this; - } - const_iterator operator-(const difference_type n) const noexcept - { - auto ret = *this; - ret -= n; - return ret; - } - difference_type operator-(const const_iterator& rhs) const noexcept - { - return current_ - rhs.current_; - } - - bool operator!=(const const_iterator& rhs) const noexcept - { - return current_ != rhs.current_; - } -}; - -struct result_wrapper final -{ - output_it current_; - - result_wrapper& operator=(const std::vector& values) - { - for (auto& v : values) - { - *current_ = v; - ++current_; - } - return *this; - } -}; - -struct iterator final -{ - using Type = output_it::value_type; - - using iterator_category = std::random_access_iterator_tag; - using value_type = std::remove_cv_t; - using difference_type = std::ptrdiff_t; - using pointer = Type*; - using reference = Type&; - - output_it current_; - - iterator() = default; - iterator(output_it it) : current_(it) {} - - result_wrapper operator*() noexcept - { - return result_wrapper{ current_}; - } - - iterator& operator++() noexcept - { - for (ptrdiff_t i = 0; i < 8; i++) - { - ++current_; - } - return *this; - } - - iterator& operator--() noexcept - { - --current_; - return *this; - } - - iterator& operator-=(const difference_type n) noexcept - { - current_ -= n; - return *this; - } - - bool operator!=(const iterator& rhs) const noexcept - { - return current_ != rhs.current_; - } -}; - -void six::sicd::details::ComplexToAMP8IPHS8I::Impl::nearest_neighbors_par_unseq(std::span inputs, std::span results) const -{ - const auto first = inputs.begin(); - const auto last = inputs.end(); - auto dest = results.begin(); - - const auto func = [&](const auto& v) { - std::span values(&v, 8); - - std::vector retval(values.size()); - nearest_neighbors_unseq(values, sys::make_span(retval)); - return retval; - }; - - std::ignore = std::transform(std::execution::seq, - const_iterator{ first }, const_iterator{ last }, iterator{ dest }, func); -} -#if SIX_sicd_ComplexToAMP8IPHS8I_unseq -std::vector six::sicd::details::ComplexToAMP8IPHS8I::nearest_neighbors_par_unseq( +#if SIX_sicd_has_simd +std::vector six::sicd::details::ComplexToAMP8IPHS8I::nearest_neighbors_unseq_simd( std::span inputs, const six::AmplitudeTable* pAmplitudeTable) { // make a structure to quickly find the nearest neighbor const auto& converter = make_(pAmplitudeTable); std::vector retval(inputs.size()); - converter.impl.nearest_neighbors_par_unseq(inputs, sys::make_span(retval)); + converter.impl.nearest_neighbors_unseq(inputs, sys::make_span(retval)); return retval; } -#endif // SIX_sicd_ComplexToAMP8IPHS8I_unseq - -**********************************************************************/ +#endif // SIX_sicd_has_simd diff --git a/six/modules/c++/six.sicd/source/ImageData.cpp b/six/modules/c++/six.sicd/source/ImageData.cpp index eaf993289..1e761cd41 100644 --- a/six/modules/c++/six.sicd/source/ImageData.cpp +++ b/six/modules/c++/six.sicd/source/ImageData.cpp @@ -32,14 +32,6 @@ #include #include -#include -#if CODA_OSS_cpp17 - // is broken with the older version of GCC we're using - #if (__GNUC__ >= 10) || _MSC_VER - #include - #define SIX_six_sicd_ImageData_has_execution 1 - #endif -#endif #include #include "six/AmplitudeTable.h" @@ -49,54 +41,6 @@ using namespace six; using namespace six::sicd; - // This was in coda-oss, but I removed it. - // - // First of all, C++11's std::async() is now (in 2023) thought of as maybe a - // bit "half baked," and perhaps shouldn't be emulated. Then, C++17 added - // parallel algorithms which might be a better way of satisfying our immediate - // needs (below) ... although we're still at C++14. -template -static inline OutputIt transform_async(const InputIt first1, const InputIt last1, OutputIt d_first, TFunc f, - typename std::iterator_traits::difference_type cutoff) -{ - // https://en.cppreference.com/w/cpp/thread/async - const auto len = std::distance(first1, last1); - if (len < cutoff) - { - return std::transform(first1, last1, d_first, f); - } - - constexpr auto policy = std::launch::async; - - const auto mid1 = first1 + len / 2; - const auto d_mid = d_first + len / 2; - auto handle = std::async(policy, transform_async, mid1, last1, d_mid, f, cutoff); - transform_async(first1, mid1, d_first, f, cutoff); - return handle.get(); -} -template -static inline void transform(std::span inputs, std::span results, TFunc f) -{ -#if SIX_six_sicd_ImageData_has_execution - std::ignore = std::transform(std::execution::par, inputs.begin(), inputs.end(), results.begin(), f); -#else - constexpr ptrdiff_t cutoff_ = 0; // too slow w/o multi-threading - //if (cutoff_ < 0) - //{ - // std::ignore = std::transform(inputs.begin(), inputs.end(), results.begin(), f); - //} - //else - { - // The value of "default_cutoff" was determined by testing; there is nothing special about it, feel free to change it. - constexpr auto dimension = 128 * 8; - constexpr auto default_cutoff = dimension * dimension; - const auto cutoff = cutoff_ == 0 ? default_cutoff : cutoff_; - - std::ignore = transform_async(inputs.begin(), inputs.end(), results.begin(), f, cutoff); - } -#endif // CODA_OSS_cpp17 -} - bool ImageData::operator==(const ImageData& rhs) const { return (pixelType == rhs.pixelType && @@ -256,7 +200,7 @@ void ImageData::toComplex(six::Amp8iPhs8iLookup_t values, std::span ImageData::toComplex(std::span inputs) const { diff --git a/six/modules/c++/six/include/six/AmplitudeTable.h b/six/modules/c++/six/include/six/AmplitudeTable.h index 966a160a9..4f44bc76b 100644 --- a/six/modules/c++/six/include/six/AmplitudeTable.h +++ b/six/modules/c++/six/include/six/AmplitudeTable.h @@ -180,8 +180,12 @@ struct SIX_SIX_API AMP8I_PHS8I_t final #else // __has_include is part of C++17 #if __has_include("../../../six.sicd/include/six/sicd/vectorclass/version2/vectorclass.h") || \ - __has_include("six.sicd/include/six/sicd/vectorclass/version2/vectorclass.h") - #define SIX_sicd_has_VCL 1 + __has_include("six/sicd/vectorclass/version2/vectorclass.h") + #if _MSC_VER + #define SIX_sicd_has_VCL !CODA_OSS_cpp20 // TODO: MSVC works with C++17, but not C++20 ... ? + #else + #define SIX_sicd_has_VCL 1 + #endif // _MSC_VER #else #define SIX_sicd_has_VCL 0 #endif // __has_include @@ -189,8 +193,8 @@ struct SIX_SIX_API AMP8I_PHS8I_t final #endif #ifndef SIX_sicd_has_simd - // Do we have the `std::experimental::simd? https://en.cppreference.com/w/cpp/experimental/simd - #if (__GNUC__ >= 999) && CODA_OSS_cpp20 // TODO: 11 instead of 999 + // Do we have `std::experimental::simd? https://en.cppreference.com/w/cpp/experimental/simd + #if (__GNUC__ >= 11) && CODA_OSS_cpp20 // https://github.com/VcDevel/std-simd "... shipping with GCC since version 11." #define SIX_sicd_has_simd 1 #else @@ -199,7 +203,7 @@ struct SIX_SIX_API AMP8I_PHS8I_t final #endif #ifndef SIX_sicd_has_ximd - // This is a "hacked up" version of std::experimental::simd using std::array. + // This is a "hacked up" version of std::experimental::simd using std::valarray. // It's primarily for development and testing: VCL needs C++17 and // std::experimental::simd is G++11/C++20. #define SIX_sicd_has_ximd CODA_OSS_DEBUG @@ -278,29 +282,29 @@ class ComplexToAMP8IPHS8I final Impl(Impl&&) = delete; // implicitly deleted because of =delete for copy Impl& operator=(Impl&&) = delete; // implicitly deleted because of =delete for copy - void nearest_neighbors_seq(std::span inputs, std::span results) const; - void nearest_neighbors_par(std::span inputs, std::span results) const; - + void nearest_neighbors_seq(std::span inputs, std::span results) const; + void nearest_neighbors_par(std::span inputs, std::span results) const; #if SIX_sicd_ComplexToAMP8IPHS8I_unseq template - void nearest_neighbors_unseq(std::span inputs, std::span results) const; - void nearest_neighbors_par_unseq(std::span inputs, std::span results) const; + void nearest_neighbors_unseq(std::span inputs, std::span results) const; + void nearest_neighbors_par_unseq(std::span inputs, std::span results) const; template - void nearest_neighbors_unseq_T(std::span, std::span) const; + void nearest_neighbors_unseq_T(std::span, std::span) const; + #endif //! The sorted set of possible magnitudes order from small to large. std::array uncached_magnitudes; std::span magnitudes; - uint8_t find_nearest(zfloat phase_direction, zfloat v) const; + uint8_t find_nearest(six::zfloat phase_direction, six::zfloat v) const; //! The difference in phase angle between two UINT phase values. float phase_delta; - uint8_t getPhase(zfloat) const; + uint8_t getPhase(six::zfloat) const; //! Unit vector rays that represent each direction that phase can point. - std::array phase_directions; // interleaved, std::complex + std::array phase_directions; // interleaved, std::complex #ifdef SIX_sicd_has_VCL std::array phase_directions_real; std::array phase_directions_imag;