diff --git a/externals/coda-oss/ReleaseNotes.md b/externals/coda-oss/ReleaseNotes.md index a265066c0..845b919fc 100644 --- a/externals/coda-oss/ReleaseNotes.md +++ b/externals/coda-oss/ReleaseNotes.md @@ -1,17 +1,6 @@ -``` - _________________________ - | ____ _||_ ___ __ | - | /___ \/_||_\| __\/ \ | - | // \// || \|| \\ _ \ | - | || [===||===] ||(_)| | - | || _|| || ||| ||__ | | - | \\ _/ |\_||_/||__/|| || | - | \___/ \_||_/|___/|| || | - |__________||_____________| - ``` -# coda-oss Release Notes +# coda-oss Release Notes -## [Release 202?-??-??](https://github.com/mdaus/coda-oss/releases/tag/202?-??-??) +## [Release 2023-08-18](https://github.com/mdaus/coda-oss/releases/tag/2023-08-18) * New `sys::OS::getSIMDInstructionSet()` utility routine; SSE2 is required (default with 64-bit builds). * `types::ComplexInteger` to work-around `std::complex` no longer being [valid C++](https://en.cppreference.com/w/cpp/numeric/complex). * Another round of reducing various compiler warnings (of note: `NULL` -> `nullptr`). @@ -20,6 +9,9 @@ * Update to [e2fsprogs 1.47.0](https://e2fsprogs.sourceforge.net/e2fsprogs-release.html#1.47.0). * Update to [xerces-c 3.2.4](https://issues.apache.org/jira/secure/ReleaseNote.jspa?version=12350542&styleName=Text&projectId=10510). * Update to [HDF5](https://www.hdfgroup.org/) [1.14.2](https://github.com/HDFGroup/hdf5/releases/tag/hdf5-1_14_2). +* `mem::ComplexView`s renamed to be more descriptive. +* **hdf5.lite** removed, use [HighFive](https://github.com/BlueBrain/HighFive/) (included). +* added **.gitattributes** and normalized line-endings (`\n` for most text files). ## [Release 2023-06-05](https://github.com/mdaus/coda-oss/releases/tag/2023-06-05) * *zlib* updated to [1.2.13](https://github.com/madler/zlib/releases/tag/v1.2.13). diff --git a/externals/coda-oss/UnitTest/mem.cpp b/externals/coda-oss/UnitTest/mem.cpp index ff1819486..dba2dd8e2 100644 --- a/externals/coda-oss/UnitTest/mem.cpp +++ b/externals/coda-oss/UnitTest/mem.cpp @@ -5,6 +5,7 @@ #include #include #include +#include namespace mem { diff --git a/externals/coda-oss/modules/c++/CMakeLists.txt b/externals/coda-oss/modules/c++/CMakeLists.txt index d8f84e9f9..d30fb5766 100644 --- a/externals/coda-oss/modules/c++/CMakeLists.txt +++ b/externals/coda-oss/modules/c++/CMakeLists.txt @@ -1,6 +1,5 @@ set(TARGET_LANGUAGE c++) -# turn on maximum warnings if (MSVC) # By default, there is a /W3 on the command-line from somewhere (?); adding # /Wn results in a compiler warning. diff --git a/externals/coda-oss/modules/c++/coda-oss.vcxproj b/externals/coda-oss/modules/c++/coda-oss.vcxproj index cd29672ba..224d107e9 100644 --- a/externals/coda-oss/modules/c++/coda-oss.vcxproj +++ b/externals/coda-oss/modules/c++/coda-oss.vcxproj @@ -127,6 +127,7 @@ + diff --git a/externals/coda-oss/modules/c++/coda-oss.vcxproj.filters b/externals/coda-oss/modules/c++/coda-oss.vcxproj.filters index 4d2be7e2a..22f84d0e9 100644 --- a/externals/coda-oss/modules/c++/coda-oss.vcxproj.filters +++ b/externals/coda-oss/modules/c++/coda-oss.vcxproj.filters @@ -951,6 +951,9 @@ hdf5.lite + + mem + diff --git a/externals/coda-oss/modules/c++/coda_oss/include/coda_oss/type_traits.h b/externals/coda-oss/modules/c++/coda_oss/include/coda_oss/type_traits.h index 5c92c1d32..17f538ca4 100644 --- a/externals/coda-oss/modules/c++/coda_oss/include/coda_oss/type_traits.h +++ b/externals/coda-oss/modules/c++/coda_oss/include/coda_oss/type_traits.h @@ -18,15 +18,12 @@ * License along with this program; If not, http://www.gnu.org/licenses/. * */ +#pragma once #ifndef CODA_OSS_coda_oss_type_traits_h_INCLUDED_ #define CODA_OSS_coda_oss_type_traits_h_INCLUDED_ -#pragma once #include -#include "CPlusPlus.h" - -#include "coda_oss/namespace_.h" namespace coda_oss { using std::is_trivially_copyable; diff --git a/externals/coda-oss/modules/c++/config/include/config/Version.h b/externals/coda-oss/modules/c++/config/include/config/Version.h index 69944fc0b..8e3b223c3 100644 --- a/externals/coda-oss/modules/c++/config/include/config/Version.h +++ b/externals/coda-oss/modules/c++/config/include/config/Version.h @@ -42,13 +42,13 @@ static_assert(CODA_OSS_MAKE_VERSION_MMPB(9999, 9999, 9999, 9999) <= UINT64_MAX, // Do this ala C++ ... we don't currently have major/minor/patch //#define CODA_OSS_VERSION_ 20210910L // c.f. __cplusplus -#define CODA_OSS_VERSION_ 2023 ## 0006 ## 0005 ## 0000 ## L +#define CODA_OSS_VERSION_ 2023 ## 0008 ## 0018 ## 0000 ## L // Use the same macros other projects might want to use; overkill for us. #define CODA_OSS_VERSION_MAJOR 2023 -#define CODA_OSS_VERSION_MINOR 6 -#define CODA_OSS_VERSION_PATCH 5 -#define CODA_OSS_VERSION_BUILD 0 +#define CODA_OSS_VERSION_MINOR 8 +#define CODA_OSS_VERSION_PATCH 18 // a.k.a. "point," but too similar to "patch." +#define CODA_OSS_VERSION_BUILD 0 // a.k.a. "patch," but too similar to "point." #define CODA_OSS_VERSION CODA_OSS_MAKE_VERSION_MMPB(CODA_OSS_VERSION_MAJOR, CODA_OSS_VERSION_MINOR, CODA_OSS_VERSION_PATCH, CODA_OSS_VERSION_BUILD) namespace config diff --git a/externals/coda-oss/modules/c++/io/include/io/FileInputStreamIOS.h b/externals/coda-oss/modules/c++/io/include/io/FileInputStreamIOS.h index c23223edb..897ce8c3f 100644 --- a/externals/coda-oss/modules/c++/io/include/io/FileInputStreamIOS.h +++ b/externals/coda-oss/modules/c++/io/include/io/FileInputStreamIOS.h @@ -28,17 +28,14 @@ #include #include #include + #include "except/Exception.h" -#include "sys/filesystem.h" #include "io/InputStream.h" #include "io/SeekableStreams.h" +#include "sys/filesystem.h" -#include "sys/CPlusPlus.h" -#if CODA_OSS_cpp17 -#include -#endif -/*! + /*! * \file FileInputStreamIOS.h * \brief The InputStream representation of a file * \todo Redefine the readln function to use getline() @@ -72,11 +69,6 @@ class FileInputStreamIOS : public SeekableInputStream */ FileInputStreamIOS(const coda_oss::filesystem::path& inputFile, std::ios::openmode mode = std::ios::in); - #if CODA_OSS_cpp17 - FileInputStreamIOS(const std::filesystem::path& inputFile, - std::ios::openmode mode = std::ios::in); - #endif - /*! * Alternate Constructor. Takes an input file and a mode diff --git a/externals/coda-oss/modules/c++/io/include/io/FileOutputStreamOS.h b/externals/coda-oss/modules/c++/io/include/io/FileOutputStreamOS.h index b8e70b893..704b1946e 100644 --- a/externals/coda-oss/modules/c++/io/include/io/FileOutputStreamOS.h +++ b/externals/coda-oss/modules/c++/io/include/io/FileOutputStreamOS.h @@ -31,13 +31,8 @@ #if !defined(USE_IO_STREAMS) #include "io/SeekableStreams.h" -#include "sys/filesystem.h" #include "sys/File.h" - -#include "sys/CPlusPlus.h" -#if CODA_OSS_cpp17 -#include -#endif +#include "sys/filesystem.h" /*! * \file FileOutputStream.h @@ -64,16 +59,13 @@ class CODA_OSS_API FileOutputStreamOS : public SeekableOutputStream public: FileOutputStreamOS() = default; + using path = coda_oss::filesystem::path; // still used in SWIG bindings + /*! * Alternate Constructor. Takes an output file and a mode * \param outputFile The file name * \param creationFlags see sys::File */ - #if CODA_OSS_cpp17 - using path = std::filesystem::path; - #else - using path = coda_oss::filesystem::path; - #endif FileOutputStreamOS(const path& outputFile, int creationFlags = sys::File::CREATE | sys::File::TRUNCATE); diff --git a/externals/coda-oss/modules/c++/logging/include/logging/Setup.h b/externals/coda-oss/modules/c++/logging/include/logging/Setup.h index 1f1e960c6..ed6334d6e 100644 --- a/externals/coda-oss/modules/c++/logging/include/logging/Setup.h +++ b/externals/coda-oss/modules/c++/logging/include/logging/Setup.h @@ -26,17 +26,13 @@ #include #include -#include "sys/filesystem.h" #include "mem/SharedPtr.h" #include "logging/Logger.h" - -#include "sys/CPlusPlus.h" -#if CODA_OSS_cpp17 -#include -#endif +#include "sys/filesystem.h" namespace logging { +using path = coda_oss::filesystem::path; // still used in SWIG bindings /*! * \fn setupLogger @@ -52,11 +48,6 @@ namespace logging * \param logCount - number of rotating logs to keep (default: 0 no rotation) * \param logBytes - number of bytes per rotating log (default: 0 no rotation) */ -#if CODA_OSS_cpp17 -using path = std::filesystem::path; -#else -using path = coda_oss::filesystem::path; -#endif std::unique_ptr setupLogger( const path& program, const std::string& logLevel = "warning", diff --git a/externals/coda-oss/modules/c++/mt/include/mt/ThreadGroup.h b/externals/coda-oss/modules/c++/mt/include/mt/ThreadGroup.h index e12cbf8a9..f54e29a12 100644 --- a/externals/coda-oss/modules/c++/mt/include/mt/ThreadGroup.h +++ b/externals/coda-oss/modules/c++/mt/include/mt/ThreadGroup.h @@ -81,7 +81,7 @@ struct CODA_OSS_API ThreadGroup /*! * Creates and starts a thread from a sys::Runnable. - * \param runnable auto_ptr to sys::Runnable + * \param runnable unique_ptr to sys::Runnable */ void createThread(std::unique_ptr&& runnable); diff --git a/externals/coda-oss/modules/c++/numpyutils/include/numpyutils/AutoPtr.h b/externals/coda-oss/modules/c++/numpyutils/include/numpyutils/AutoPtr.h deleted file mode 100644 index fb7c6c0e9..000000000 --- a/externals/coda-oss/modules/c++/numpyutils/include/numpyutils/AutoPtr.h +++ /dev/null @@ -1,130 +0,0 @@ -/* ========================================================================= - * This file is part of numpyutils-c++ - * ========================================================================= - * - * (C) Copyright 2004 - 2018, MDA Information Systems LLC - * (C) Copyright 2022, Maxar Technologies, Inc. - * - * numpyutils-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 . - * - */ - -#pragma once -#ifndef CODA_OSS_numpyutils_AutoPtr_h_INCLUDED_ -#define CODA_OSS_numpyutils_AutoPtr_h_INCLUDED_ - -#include - -namespace numpyutils -{ -// std::auto_ptr (deprecated in C++17) is copyable while -// std::unique_ptr (new in C++11) isn't. While unique_ptr -// is right, making the change doesn't always work well with -// legacy code. Using shared_ptr instead of unique_ptr is -// copyable, but that changes semantics: the "old" copied-from -// object is still valid. -// -// Thus, this class to help make the transition easier. -// Using (very) sparingly! - -template -class AutoPtr final -{ - std::unique_ptr ptr_; - -public: - // https://en.cppreference.com/w/cpp/memory/auto_ptr/auto_ptr - explicit AutoPtr(T* p = nullptr) noexcept : ptr_(p) - { - } - - AutoPtr& operator=(AutoPtr& r) noexcept - { - reset(r.release()); - return *this; - } - AutoPtr(AutoPtr& r) noexcept - { - *this = r; - } - AutoPtr& operator=(const AutoPtr&) = delete; // can't change a "const" object - AutoPtr(const AutoPtr&) = delete; - - ~AutoPtr() = default; - AutoPtr(AutoPtr&&) = default; - AutoPtr& operator=(AutoPtr&&) = default; - - template - AutoPtr& operator=(std::unique_ptr&& p) noexcept - { - ptr_ = std::move(p); - return *this; - } - template - AutoPtr(std::unique_ptr&& p) noexcept - { - *this = std::move(p); - } - - template // std::auto_ptr can cause deprecated warnings - AutoPtr& assign(TAutoPtr p) noexcept - { - ptr_.reset(p.release()); - return *this; - } - template // std::auto_ptr can cause deprecated warnings - AutoPtr& operator=(TAutoPtr p) noexcept - { - return assign(p); - } - template // std::auto_ptr can cause deprecated warnings - AutoPtr(TAutoPtr p) noexcept - { - *this = assign(p); - } - - - T* get() const noexcept - { - return ptr_.get(); - } - - T* release() noexcept - { - return ptr_.release(); - } - - template - void reset(U* p = nullptr) noexcept - { - ptr_.reset(p); - } - - T& operator*() const noexcept - { - return *get(); - } - T* operator->() const noexcept - { - return get(); - } - - operator std::unique_ptr& () { return ptr_; } - operator const std::unique_ptr& () const { return ptr_; } -}; - -} // namespace numpyutils - -#endif // CODA_OSS_numpyutils_AutoPtr_h_INCLUDED_ diff --git a/externals/coda-oss/modules/c++/std/include/std/type_traits b/externals/coda-oss/modules/c++/std/include/std/type_traits index 1aba653f9..cbcd0bfd8 100644 --- a/externals/coda-oss/modules/c++/std/include/std/type_traits +++ b/externals/coda-oss/modules/c++/std/include/std/type_traits @@ -18,30 +18,11 @@ * License along with this program; If not, http://www.gnu.org/licenses/. * */ +#pragma once #ifndef CODA_OSS_std_type_traits_INCLUDED_ #define CODA_OSS_std_type_traits_INCLUDED_ -#pragma once #include -#include "coda_oss/type_traits.h" - -// Make it (too?) easy for clients to get our various std:: implementations -#ifndef CODA_OSS_NO_is_trivially_copyable - // https://stackoverflow.com/a/31798726/8877 - // workaround missing "is_trivially_copyable" in g++ < 5.0 - #if defined(__GNUC__) && (__GNUC__ < 5) - #define CODA_OSS_NO_is_trivially_copyable 0 // *need* our own - #else - #define CODA_OSS_NO_is_trivially_copyable 1 // *disabled*, unless explicitly enabled - #endif -#endif - -#if !CODA_OSS_NO_is_trivially_copyable -namespace std // This is slightly uncouth: we're not supposed to augment "std". -{ - using coda_oss::is_trivially_copyable; -} -#endif // CODA_OSS_NO_is_trivially_copyable #endif // CODA_OSS_std_type_traits_INCLUDED_ diff --git a/externals/nitro/CHANGES b/externals/nitro/CHANGES index 0be232971..dd120e468 100644 --- a/externals/nitro/CHANGES +++ b/externals/nitro/CHANGES @@ -1,19 +1,19 @@ -2.7 Changes -=========== -- 12 new TREs: CSCCGA, CSCRNA, CSEPHA, CSEXRA, CSPROA, CSSFAA, CSSHPA, GRDPSB, J2KLRA, PIXQLA, SENSRB, XML_DATA_CONTENT -- Variety of minor memory leaks, access errors, and other bug fixes -- Fixed IOInterface and BandSource C++ API so overriding methods works as expected -- Several complexity level bugs -- Fixed bug in Windows involving reading and writing files larger than 4 GB -- Build system upgrades: Among other thing, building Java bindings is now easier as it's done directly through waf automatically - -Please see our wiki for detailed change information on previous versions: - -2.5 Changes: http://nitro-nitf.sourceforge.net/wikka.php?wakka=ReleaseNotes25 - -2.0 Changes: http://nitro-nitf.sourceforge.net/wikka.php?wakka=ReleaseNotes20 - -1.5 Changes: http://nitro-nitf.sourceforge.net/wikka.php?wakka=ReleaseNotes15 - - -Wiki Home: http://nitro-nitf.sourceforge.net/ +2.7 Changes +=========== +- 12 new TREs: CSCCGA, CSCRNA, CSEPHA, CSEXRA, CSPROA, CSSFAA, CSSHPA, GRDPSB, J2KLRA, PIXQLA, SENSRB, XML_DATA_CONTENT +- Variety of minor memory leaks, access errors, and other bug fixes +- Fixed IOInterface and BandSource C++ API so overriding methods works as expected +- Several complexity level bugs +- Fixed bug in Windows involving reading and writing files larger than 4 GB +- Build system upgrades: Among other thing, building Java bindings is now easier as it's done directly through waf automatically + +Please see our wiki for detailed change information on previous versions: + +2.5 Changes: http://nitro-nitf.sourceforge.net/wikka.php?wakka=ReleaseNotes25 + +2.0 Changes: http://nitro-nitf.sourceforge.net/wikka.php?wakka=ReleaseNotes20 + +1.5 Changes: http://nitro-nitf.sourceforge.net/wikka.php?wakka=ReleaseNotes15 + + +Wiki Home: http://nitro-nitf.sourceforge.net/ diff --git a/externals/nitro/ReleaseNotes.md b/externals/nitro/ReleaseNotes.md index c15886964..061c950bc 100644 --- a/externals/nitro/ReleaseNotes.md +++ b/externals/nitro/ReleaseNotes.md @@ -1,5 +1,9 @@ # NITRO (NITF i/o) Release Notes +## [Version 2.11.4](https://github.com/mdaus/nitro/releases/tag/NITRO-2.11.4); August 18 5, 2023 +* [coda-oss](https://github.com/mdaus/coda-oss) release [2023-08-18](https://github.com/mdaus/coda-oss/releases/tag/2023-08-18) +* added **.gitattributes** and normalized line-endings (`\n` for most text files). + ## [Version 2.11.3](https://github.com/mdaus/nitro/releases/tag/NITRO-2.11.3); June 5, 2023 * [coda-oss](https://github.com/mdaus/coda-oss) release [2023-06-05](https://github.com/mdaus/coda-oss/releases/tag/2023-06-05) * Fix display of [certain TREs](https://github.com/mdaus/nitro/issues/529). diff --git a/externals/nitro/modules/c++/nitf/include/nitf/Version.hpp b/externals/nitro/modules/c++/nitf/include/nitf/Version.hpp index 094ad93d7..74935b96b 100644 --- a/externals/nitro/modules/c++/nitf/include/nitf/Version.hpp +++ b/externals/nitro/modules/c++/nitf/include/nitf/Version.hpp @@ -37,10 +37,11 @@ // 2.11.1 November 4, 2022 // 2.11.2 December 14, 2022 // 2.11.3 June 5, 2023 + // 2.11.4 August 18, 2023 #define NITF_VERSION_MAJOR 2 #define NITF_VERSION_MINOR 11 -#define NITF_VERSION_PATCH 3 -#define NITF_VERSION_BUILD 0 +#define NITF_VERSION_PATCH 4 // a.k.a. "point," but too similar to "patch." +#define NITF_VERSION_BUILD 0 // a.k.a. "patch," but too similar to "point." #define NITF_VERSION CODA_OSS_MAKE_VERSION_MMPB(NITF_VERSION_MAJOR, NITF_VERSION_MINOR, NITF_VERSION_PATCH, NITF_VERSION_BUILD) namespace nitf diff --git a/externals/nitro/modules/c/nrt/include/nrt/Version.h b/externals/nitro/modules/c/nrt/include/nrt/Version.h index ffce79677..1c142e91f 100644 --- a/externals/nitro/modules/c/nrt/include/nrt/Version.h +++ b/externals/nitro/modules/c/nrt/include/nrt/Version.h @@ -1,5 +1,5 @@ #pragma once #if !defined(NRT_LIB_VERSION) -#define NRT_LIB_VERSION "2.11.3" +#define NRT_LIB_VERSION "2.11.4" #endif