From 494c619cc1cfc7e7d38bc48cdb8a5593f6d416ff Mon Sep 17 00:00:00 2001 From: mdw Date: Thu, 12 Mar 2026 10:00:36 -0400 Subject: [PATCH 001/131] Added a Toomre-type disk for deprojection primarily --- include/DiskModels.H | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/include/DiskModels.H b/include/DiskModels.H index 3b46da803..273638d4f 100644 --- a/include/DiskModels.H +++ b/include/DiskModels.H @@ -196,6 +196,35 @@ public: } }; +//! Toomre disk +class Toomre : public EmpCylSL::AxiDisk +{ +private: + double a, h, n; + double norm; + +public: + + Toomre(double a, double h, double n=3, double M=1) : + a(a), h(h), n(n), EmpCylSL::AxiDisk(M, "Toomre") + { + params.push_back(a); + params.push_back(h); + params.push_back(n); + if (n <= 2) throw std::runtime_error("Toomre index must be > 2"); + norm = (n - 2.0)/(2.0*M_PI*a*a); + } + + double operator()(double R, double z, double phi=0.) + { + double sigma = std::pow(1.0 * (R/a)*(R/a), -0.5*n) * norm; + double Z = std::fabs(z); + double Q = std::exp(-Z/h); + double sech = 2.0*Q/(1.0 + Q*Q); + return sigma * sech*sech * 0.25/h; + } +}; + //! Truncate a AxiDisk class Truncated : public EmpCylSL::AxiDisk { From c7bf5eeca05a244a3a78fe758660fb475aa46a4d Mon Sep 17 00:00:00 2001 From: mdw Date: Thu, 12 Mar 2026 10:01:30 -0400 Subject: [PATCH 002/131] Added an enum and reflector for deprojection disk types and included the Toomre model in the updated list of valid types --- expui/BiorthBasis.H | 19 +++++++++++++++-- expui/BiorthBasis.cc | 50 ++++++++++++++++++++++++++++++++++++++------ 2 files changed, 61 insertions(+), 8 deletions(-) diff --git a/expui/BiorthBasis.H b/expui/BiorthBasis.H index f40875985..054e28a35 100644 --- a/expui/BiorthBasis.H +++ b/expui/BiorthBasis.H @@ -999,8 +999,9 @@ namespace BasisClasses std::string pyname; //! DiskType support - // - enum DiskType { constant, gaussian, mn, exponential, doubleexpon, diskbulge, python }; + //! + enum class DiskType + { constant, gaussian, mn, exponential, doubleexpon, diskbulge, python }; DiskType DTYPE; std::string mtype, dtype, dmodel; @@ -1009,6 +1010,20 @@ namespace BasisClasses double dcond(double R, double z, double phi, int M); std::shared_ptr pyDens; + //@{ + //! DeprojType support + + //! Disk models used for deprojection + enum class DeprojType + { mn, toomre, python, exponential}; + + //! Current model + DeprojType PTYPE; + + //! Look up by string + static const std::map dplookup; + //@} + protected: //! Evaluate basis in spherical coordinates diff --git a/expui/BiorthBasis.cc b/expui/BiorthBasis.cc index d8574afcb..fda83a3ef 100644 --- a/expui/BiorthBasis.cc +++ b/expui/BiorthBasis.cc @@ -1198,6 +1198,14 @@ namespace BasisClasses {"python", DiskType::python} }; + // Dprojection model for cylindrical basis construction + const std::map Cylindrical::dplookup = + { {"mn", DeprojType::mn}, + {"exponential", DeprojType::exponential}, + {"toomre", DeprojType::toomre}, + {"python", DeprojType::python} + }; + const std::set Cylindrical::valid_keys = { "tk_type", @@ -1233,6 +1241,7 @@ namespace BasisClasses "expcond", "ignore", "deproject", + "dmodel", "logr", "pcavar", "pcaeof", @@ -1494,7 +1503,7 @@ namespace BasisClasses if (conf["cmapz" ]) cmapZ = conf["cmapz" ].as(); if (conf["ignore" ]) Ignore = conf["ignore" ].as(); if (conf["deproject" ]) deproject = conf["deproject" ].as(); - if (conf["dmodel" ]) dmodel = conf["dmodel" ].as(); + if (conf["dmodel" ]) dmodel = conf["dmodel" ].as(); if (conf["aratio" ]) aratio = conf["aratio" ].as(); if (conf["hratio" ]) hratio = conf["hratio" ].as(); @@ -1697,16 +1706,45 @@ namespace BasisClasses // EmpCylSL::AxiDiskPtr model; - if (dmodel.compare("MN")==0) // Miyamoto-Nagai + // Convert dmodel string to lower case + // + std::transform(dmodel.begin(), dmodel.end(), dmodel.begin(), + [](unsigned char c){ return std::tolower(c); }); + + + // Check for map entry + try { + PTYPE = dplookup.at(dmodel); + + // Report DeprojType + if (myid==0) { + std::cout << "---- Deprojection type is <" << dmodel + << ">" << std::endl; + } + } + catch (const std::out_of_range& err) { + if (myid==0) { + std::cout << "DeprojType error in configuraton file" << std::endl; + std::cout << "Valid options are: "; + for (auto v : dplookup) std::cout << v.first << " "; + std::cout << std::endl; + } + throw std::runtime_error("Cylindrical::initialize: invalid DiskModel"); + } + + if (PTYPE == DeprojType::mn) // Miyamoto-Nagai model = std::make_shared(1.0, H); - else if (DTYPE == DiskType::python) { + else if (PTYPE == DeprojType::toomre) { + model = std::make_shared(1.0, H); + } else if (PTYPE == DeprojType::python and + DTYPE == DiskType::python) { model = std::make_shared(pyname, acyl); std::cout << "Using AxiSymPyModel for deprojection from Python function <" << pyname << ">" << std::endl; - } - else // Default to exponential + } else { // Default to exponential model = std::make_shared(1.0, H); - + } + if (rwidth>0.0) { model = std::make_shared(rtrunc/acyl, rwidth/acyl, From 6efc02486a20147ba7d3594f96aec4e031217601 Mon Sep 17 00:00:00 2001 From: "Martin D. Weinberg" Date: Fri, 13 Mar 2026 12:05:29 -0400 Subject: [PATCH 003/131] Addded a test routine for Abel deprojection; updated EmpCylSL for derivative form, which is more accurate near the center --- exputil/EmpCylSL.cc | 33 ++++-- include/EmpCylSL.H | 6 + utils/Test/CMakeLists.txt | 8 +- utils/Test/CubicSpline.H | 31 +++++ utils/Test/CubicSpline.cc | 73 ++++++++++++ utils/Test/Deprojector.H | 58 +++++++++ utils/Test/Deprojector.cc | 200 ++++++++++++++++++++++++++++++++ utils/Test/testDeprojPlummer.cc | 76 ++++++++++++ utils/Test/testDeproject.cc | 63 ++++++++++ 9 files changed, 539 insertions(+), 9 deletions(-) create mode 100644 utils/Test/CubicSpline.H create mode 100644 utils/Test/CubicSpline.cc create mode 100644 utils/Test/Deprojector.H create mode 100644 utils/Test/Deprojector.cc create mode 100644 utils/Test/testDeprojPlummer.cc create mode 100644 utils/Test/testDeproject.cc diff --git a/exputil/EmpCylSL.cc b/exputil/EmpCylSL.cc index a89afa68e..e5bba4a83 100644 --- a/exputil/EmpCylSL.cc +++ b/exputil/EmpCylSL.cc @@ -487,28 +487,45 @@ void EmpCylSL::create_deprojection(double H, double Rf, int NUMR, int NINT, // Now, compute Abel inverion integral // for (int i=0; i rho(NUMR), mass(NUMR); - - Linear1d intgr(rl, rhoI); + Linear1d intgr; + if (abel_type == AbelType::IBP) intgr = Linear1d(rl, rhoI); - for (int i=0; i rho(NUMR), mass(NUMR); + for (int i=0; i + +namespace Deproject +{ + + class CubicSpline { + public: + CubicSpline() = default; + CubicSpline(const std::vector& x_in, const std::vector& y_in); + + // set data (x must be strictly increasing) + void set_data(const std::vector& x_in, const std::vector& y_in); + + // evaluate spline and its derivative (xx should lie within [xmin(), xmax()], but endpoints are clamped) + double eval(double xx) const; + double deriv(double xx) const; + + double xmin() const; + double xmax() const; + + private: + std::vector x_, y_, y2_; + int locate(double xx) const; + }; + +} + +#endif // CUBIC_SPLINE_H diff --git a/utils/Test/CubicSpline.cc b/utils/Test/CubicSpline.cc new file mode 100644 index 000000000..c88f899db --- /dev/null +++ b/utils/Test/CubicSpline.cc @@ -0,0 +1,73 @@ +#include + +#include "CubicSpline.H" + +namespace Deproject +{ + + CubicSpline::CubicSpline(const std::vector& x_in, const std::vector& y_in) { + set_data(x_in, y_in); + } + + void CubicSpline::set_data(const std::vector& x_in, const std::vector& y_in) { + x_ = x_in; + y_ = y_in; + int n = (int)x_.size(); + if (n < 2 || (int)y_.size() != n) throw std::runtime_error("CubicSpline: need at least two points and equal-sized x,y."); + + y2_.assign(n, 0.0); + std::vector u(n - 1, 0.0); + + // natural spline boundary conditions (second derivatives at endpoints = 0) + for (int i = 1; i < n - 1; ++i) { + double sig = (x_[i] - x_[i-1]) / (x_[i+1] - x_[i-1]); + double p = sig * y2_[i-1] + 2.0; + y2_[i] = (sig - 1.0) / p; + double dY1 = (y_[i+1] - y_[i]) / (x_[i+1] - x_[i]); + double dY0 = (y_[i] - y_[i-1]) / (x_[i] - x_[i-1]); + u[i] = (6.0 * (dY1 - dY0) / (x_[i+1] - x_[i-1]) - sig * u[i-1]) / p; + } + + for (int k = n - 2; k >= 0; --k) y2_[k] = y2_[k] * y2_[k+1] + u[k]; + } + + int CubicSpline::locate(double xx) const { + int n = (int)x_.size(); + if (xx <= x_.front()) return 0; + if (xx >= x_.back()) return n - 2; + int lo = 0, hi = n - 1; + while (hi - lo > 1) { + int mid = (lo + hi) >> 1; + if (x_[mid] > xx) hi = mid; else lo = mid; + } + return lo; + } + + double CubicSpline::eval(double xx) const { + int klo = locate(xx); + int khi = klo + 1; + double h = x_[khi] - x_[klo]; + if (h <= 0.0) throw std::runtime_error("CubicSpline::eval: non-increasing x."); + double A = (x_[khi] - xx) / h; + double B = (xx - x_[klo]) / h; + double val = A * y_[klo] + B * y_[khi] + + ((A*A*A - A) * y2_[klo] + (B*B*B - B) * y2_[khi]) * (h*h) / 6.0; + return val; + } + + double CubicSpline::deriv(double xx) const { + int klo = locate(xx); + int khi = klo + 1; + double h = x_[khi] - x_[klo]; + if (h <= 0.0) throw std::runtime_error("CubicSpline::deriv: non-increasing x."); + double A = (x_[khi] - xx) / h; + double B = (xx - x_[klo]) / h; + double dy = (y_[khi] - y_[klo]) / h + + ( - (3.0*A*A - 1.0) * y2_[klo] + (3.0*B*B - 1.0) * y2_[khi] ) * (h / 6.0); + return dy; + } + + double CubicSpline::xmin() const { return x_.front(); } + double CubicSpline::xmax() const { return x_.back(); } + +} diff --git a/utils/Test/Deprojector.H b/utils/Test/Deprojector.H new file mode 100644 index 000000000..ba542d34f --- /dev/null +++ b/utils/Test/Deprojector.H @@ -0,0 +1,58 @@ +#ifndef DEPROJECTOR_H +#define DEPROJECTOR_H + +#include +#include + +#include "CubicSpline.H" + +namespace Deproject +{ + + class Deprojector { + public: + // Construct from analytic Sigma functor. If dSigmaFunc is empty, numerical derivative is used. + // R_data_min and R_data_max define where SigmaFunc is trusted for tail matching. + Deprojector(std::function SigmaFunc, + std::function dSigmaFunc, + double R_data_min, + double R_data_max, + double R_max_extend = -1.0, + double tail_power = -3.0, + int Ngrid = 4000); + + // Construct from sampled data arrays (R must be positive and will be sorted) + Deprojector(const std::vector& R_in, + const std::vector& Sigma_in, + double R_max_extend = -1.0, + double tail_power = -3.0, + int Ngrid = 4000); + + // Evaluate rho at a single radius + double rho_at(double r) const; + + // Evaluate rho for a vector of r + std::vector rho(const std::vector& r_eval) const; + + private: + void build_grid(int Ngrid); + + std::function sigma_func_; + std::function dsigma_func_; // may be empty + CubicSpline spline_; // used when constructed from sampled data + + double Rdata_min_, Rdata_max_; + double Rmin_, Rmax_; + double tail_power_; + + std::vector dx_; // grid spacings + + std::vector fineR_; + std::vector Sigma_f_; + std::vector dSigma_f_; + }; + +} + +#endif // DEPROJECTOR_H + diff --git a/utils/Test/Deprojector.cc b/utils/Test/Deprojector.cc new file mode 100644 index 000000000..d778a29b3 --- /dev/null +++ b/utils/Test/Deprojector.cc @@ -0,0 +1,200 @@ +#include +#include +#include + +#include "Deprojector.H" + +#ifndef M_PI +#define M_PI 3.14159265358979323846 +#endif + +namespace Deproject +{ + + Deprojector::Deprojector(std::function SigmaFunc, + std::function dSigmaFunc, + double R_data_min, + double R_data_max, + double R_max_extend, + double tail_power, + int Ngrid) + : sigma_func_(SigmaFunc), dsigma_func_(dSigmaFunc), + Rdata_min_(R_data_min), Rdata_max_(R_data_max), + tail_power_(tail_power) + { + if (Rdata_min_ <= 0.0 || Rdata_max_ <= Rdata_min_) + throw std::runtime_error("Invalid R_data_min/R_data_max."); + Rmin_ = Rdata_min_; + Rmax_ = (R_max_extend > Rdata_max_) ? R_max_extend : Rdata_max_; + build_grid(Ngrid); + } + + Deprojector::Deprojector(const std::vector& R_in, + const std::vector& Sigma_in, + double R_max_extend, + double tail_power, + int Ngrid) + : Rdata_min_(0.0), Rdata_max_(0.0), tail_power_(tail_power) + { + if (R_in.size() != Sigma_in.size() || R_in.size() < 2) throw std::runtime_error("Input R and Sigma must be same size and >=2."); + // copy & sort + std::vector> pairs; + pairs.reserve(R_in.size()); + for (size_t i=0;i R(R_in.size()), S(R_in.size()); + for (size_t i=0;i Rdata_max_) ? R_max_extend : Rdata_max_; + + sigma_func_ = [this](double rr){ return this->spline_.eval(rr); }; + dsigma_func_ = [this](double rr){ return this->spline_.deriv(rr); }; + + build_grid(Ngrid); + } + + + // --- updated build_grid --- + void Deprojector::build_grid(int Ngrid) { + if (Ngrid < 3) Ngrid = 3; + fineR_.resize(Ngrid); + for (int i = 0; i < Ngrid; ++i) { + double t = (double)i / (Ngrid - 1); + fineR_[i] = Rmin_ + t * (Rmax_ - Rmin_); + } + + // precompute spacing + dx_.resize(Ngrid - 1); + for (int i = 0; i < Ngrid - 1; ++i) dx_[i] = fineR_[i+1] - fineR_[i]; + + Sigma_f_.assign(Ngrid, 0.0); + dSigma_f_.assign(Ngrid, 0.0); + + bool have_dsf = static_cast(dsigma_func_); + + if (have_dsf) { + for (int i = 0; i < Ngrid; ++i) { + double rr = fineR_[i]; + if (rr <= Rdata_max_) { + Sigma_f_[i] = sigma_func_(rr); + dSigma_f_[i] = dsigma_func_(rr); + } else { + double Sig_at = sigma_func_(Rdata_max_); + double factor = std::pow(rr / Rdata_max_, tail_power_); + Sigma_f_[i] = Sig_at * factor; + if (rr > 0.0) + dSigma_f_[i] = Sig_at * tail_power_ * std::pow(rr, tail_power_ - 1.0) / std::pow(Rdata_max_, tail_power_); + else + dSigma_f_[i] = 0.0; + } + } + } else { + // compute Sigma on grid, then finite-difference derivative using neighbor spacing + for (int i = 0; i < Ngrid; ++i) { + double rr = fineR_[i]; + if (rr <= Rdata_max_) Sigma_f_[i] = sigma_func_(rr); + else { + double Sig_at = sigma_func_(Rdata_max_); + double factor = std::pow(rr / Rdata_max_, tail_power_); + Sigma_f_[i] = Sig_at * factor; + } + } + + for (int i = 0; i < Ngrid; ++i) { + if (i > 0 && i < Ngrid - 1) { + // centered difference using grid neighbors (robust) + double x1 = fineR_[i-1], x2 = fineR_[i+1]; + double y1 = Sigma_f_[i-1], y2 = Sigma_f_[i+1]; + dSigma_f_[i] = (y2 - y1) / (x2 - x1); + } else if (i == 0) { + // forward diff + double x1 = fineR_[1]; + dSigma_f_[i] = (Sigma_f_[1] - Sigma_f_[0]) / (x1 - fineR_[0]); + } else { // i == Ngrid-1 + double x1 = fineR_[Ngrid-2]; + dSigma_f_[i] = (Sigma_f_[Ngrid-1] - Sigma_f_[Ngrid-2]) / (fineR_[Ngrid-1] - x1); + } + } + } + } + + // --- updated rho_at --- + double Deprojector::rho_at(double r) const { + if (r >= Rmax_) return 0.0; + + // find index near r + // choose local offset delta = 0.5 * local grid spacing to avoid singularity + auto it0 = std::lower_bound(fineR_.begin(), fineR_.end(), r); + int idx0 = (int)std::distance(fineR_.begin(), it0); + // clamp idx0 + if (idx0 <= 0) idx0 = 1; + if (idx0 >= (int)dx_.size()) idx0 = (int)dx_.size() - 1; + + double local_dx = dx_[std::max(0, idx0 - 1)]; + double delta = 0.5 * local_dx; // half a local cell + double rstart = r + delta; + // ensure rstart >= fineR_[0] + if (rstart < fineR_[0]) rstart = fineR_[0]; + + // locate starting index after rstart + auto it = std::lower_bound(fineR_.begin(), fineR_.end(), rstart); + int idx = (int)std::distance(fineR_.begin(), it); + if (idx >= (int)fineR_.size()) return 0.0; + + double integral = 0.0; + int N = (int)fineR_.size(); + + // integrate using trapezoid on intervals [R_{i-1}, R_i] for all i such that R_{i-1} >= rstart or partial first + if (idx > 0) { + // partial segment from a = max(fineR_[idx-1], rstart) to b = fineR_[idx] + int i0 = idx - 1; + double R0 = fineR_[i0], R1 = fineR_[i0+1]; + double a = std::max(R0, rstart); + double b = R1; + if (b > a) { + // linear interpolation for derivative at 'a' + double t = (a - R0) / (R1 - R0); + double dSigma_a = dSigma_f_[i0] + t * (dSigma_f_[i0+1] - dSigma_f_[i0]); + double f_a = - dSigma_a / std::sqrt(std::max(1e-300, a*a - r*r)); + double f_b = - dSigma_f_[i0+1] / std::sqrt(std::max(1e-300, b*b - r*r)); + integral += 0.5 * (f_a + f_b) * (b - a); + } + // full segments from i = idx+1 .. N-1 + for (int i = idx + 1; i < N; ++i) { + double Rlo = fineR_[i-1], Rhi = fineR_[i]; + double f_lo = - dSigma_f_[i-1] / std::sqrt(std::max(1e-300, Rlo*Rlo - r*r)); + double f_hi = - dSigma_f_[i] / std::sqrt(std::max(1e-300, Rhi*Rhi - r*r)); + integral += 0.5 * (f_lo + f_hi) * (Rhi - Rlo); + } + } else { + // idx == 0 case: integrate over full segments starting at fineR_[0] + for (int i = 1; i < N; ++i) { + double Rlo = fineR_[i-1], Rhi = fineR_[i]; + double f_lo = - dSigma_f_[i-1] / std::sqrt(std::max(1e-300, Rlo*Rlo - r*r)); + double f_hi = - dSigma_f_[i] / std::sqrt(std::max(1e-300, Rhi*Rhi - r*r)); + integral += 0.5 * (f_lo + f_hi) * (Rhi - Rlo); + } + } + + return integral / M_PI; + } + + std::vector Deprojector::rho(const std::vector& r_eval) const { + std::vector out; + out.reserve(r_eval.size()); + for (double r : r_eval) out.push_back(rho_at(r)); + return out; + } + +} diff --git a/utils/Test/testDeprojPlummer.cc b/utils/Test/testDeprojPlummer.cc new file mode 100644 index 000000000..f72ecf63d --- /dev/null +++ b/utils/Test/testDeprojPlummer.cc @@ -0,0 +1,76 @@ +#include +#include +#include +#include +#include + +#include "Deprojector.H" + +using namespace Deproject; + +int main() +{ + std::function SigmaFunc, dSigmaFunc, RhoFunc; + + enum class Type { Plummer, Gaussian, Toomre }; + Type which = Type::Toomre; + + switch (which) { + case Type::Toomre: + // Test function + SigmaFunc = [](double R)->double + { return 1.0 / std::pow(1.0 + R*R, 1.5); }; + // Analytic derivative + dSigmaFunc = [](double R)->double + { return -3.0 * R / std::pow(1.0 + R*R, 2.5); }; + // Expected result + RhoFunc = [](double r)->double + { return 2.0 / std::pow(1.0 + r*r, 2.0) / M_PI; }; + break; + case Type::Gaussian: + // Test function + SigmaFunc = [](double R)->double + { return exp(-0.5*R*R); }; + // Analytic derivative + dSigmaFunc = [](double R)->double + { return -R*exp(-0.5*R*R); }; + // Expected result + RhoFunc = [](double r)->double + { return exp(-0.5*r*r)/sqrt(2.0*M_PI); }; + break; + default: + case Type::Plummer: + // Test function + SigmaFunc = [](double R)->double + { return 4.0 / 3.0 / std::pow(1.0 + R*R, 2.0); }; + // Analytic derivative + dSigmaFunc = [](double R)->double + { return -16.0 * R / 3.0 / std::pow(1.0 + R*R, 3.0); }; + // Expected result + RhoFunc = [](double r)->double + { return 1.0 / std::pow(1.0 + r*r, 2.5); }; + break; + } + + Deprojector D(SigmaFunc, dSigmaFunc, /*R_data_min=*/0.01, /*R_data_max=*/10.0, + /*R_max_extend=*/50.0, /*tail_power=*/-4.0, /*Ngrid=*/6000); + + std::vector r_eval; + int Nr = 150; + for (int i = 0; i < Nr; ++i) { + double t = (double)i / (Nr - 1); + r_eval.push_back(0.01 + t * 8.0); + } + auto rho = D.rho(r_eval); + + std::ofstream ofs("rho_test.txt"); + for (size_t i = 0; i < r_eval.size(); ++i) + ofs << std::setw(16) << r_eval[i] + << std::setw(16) << rho[i] + << std::setw(16) << RhoFunc(r_eval[i]) + << std::endl; + ofs.close(); + std::cout << "Wrote rho_test.txt\n"; + + return 0; +} diff --git a/utils/Test/testDeproject.cc b/utils/Test/testDeproject.cc new file mode 100644 index 000000000..c376adb6d --- /dev/null +++ b/utils/Test/testDeproject.cc @@ -0,0 +1,63 @@ +#include +#include +#include +#include + +#include "Deprojector.H" + +using namespace Deproject; + +int main() +{ + // Example A: construct from sampled data + { + std::vector Rdata, Sigma; + int Ndata = 2000; + double Rmin = 0.01, Rmax = 10.0; + for (int i = 0; i < Ndata; ++i) { + double t = (double)i / (Ndata - 1); + double r = Rmin + t * (Rmax - Rmin); + Rdata.push_back(r); + Sigma.push_back(1.0 / std::pow(1.0 + r*r, -1.5)); + } + + Deprojector D(Rdata, Sigma, /*R_max_extend=*/50.0, /*tail_power=*/-4.0, /*Ngrid=*/6000); + + std::vector r_eval; + int Nr = 150; + for (int i = 0; i < Nr; ++i) { + double t = (double)i / (Nr - 1); + r_eval.push_back(0.01 + t * 8.0); + } + auto rho = D.rho(r_eval); + + std::ofstream ofs("rho_from_sampled.txt"); + for (size_t i = 0; i < r_eval.size(); ++i) ofs << r_eval[i] << " " << rho[i] << "\n"; + ofs.close(); + std::cout << "Wrote rho_from_sampled.txt\n"; + } + + // Example B: construct from analytic functor + analytic derivative + { + auto SigmaFunc = [](double R)->double { return 1.0 / std::pow(1.0 + R*R, -1.5); }; + auto dSigmaFunc = [](double R)->double { return -3.0 * R / std::pow(1.0 + R*R, -2.5); }; // analytic derivative + + Deprojector D(SigmaFunc, dSigmaFunc, /*R_data_min=*/0.01, /*R_data_max=*/10.0, + /*R_max_extend=*/50.0, /*tail_power=*/-4.0, /*Ngrid=*/6000); + + std::vector r_eval; + int Nr = 150; + for (int i = 0; i < Nr; ++i) { + double t = (double)i / (Nr - 1); + r_eval.push_back(0.01 + t * 8.0); + } + auto rho = D.rho(r_eval); + + std::ofstream ofs("rho_from_functor.txt"); + for (size_t i = 0; i < r_eval.size(); ++i) ofs << r_eval[i] << " " << rho[i] << "\n"; + ofs.close(); + std::cout << "Wrote rho_from_functor.txt\n"; + } + + return 0; +} From 22adb601bc86f192539370402fc42febb12605b6 Mon Sep 17 00:00:00 2001 From: "Martin D. Weinberg" Date: Fri, 13 Mar 2026 12:09:46 -0400 Subject: [PATCH 004/131] Missing source driver file --- utils/Test/testEmpDeproj.cc | 167 ++++++++++++++++++++++++++++++++++++ 1 file changed, 167 insertions(+) create mode 100644 utils/Test/testEmpDeproj.cc diff --git a/utils/Test/testEmpDeproj.cc b/utils/Test/testEmpDeproj.cc new file mode 100644 index 000000000..6c344a2cd --- /dev/null +++ b/utils/Test/testEmpDeproj.cc @@ -0,0 +1,167 @@ +#include +#include +#include +#include +#include + +#include "Deprojector.H" +#include "EmpDeproj.H" +#include "cxxopts.H" + +using namespace Deproject; + +int main(int argc, char* argv[]) +{ + + // Parameters + // + std::string type, abel, fname; + double H, Rmin, Rmax, Rcut, Rwid; + int Nr, Ngrid, NumR, Nint; + + // Parse command-line options + // + cxxopts::Options options("testEmpDeproj", + "Test the EmpDeproj class against Deprojector" + "for various surface density profiles."); + options.add_options() + ("h,help", "Print help") + ("type", "Surface density type (plummer, gaussian, toomre)", cxxopts::value()->default_value("toomre")) + ("abel", "Abel inversion method (derivative, subtraction, ibp)", cxxopts::value()->default_value("derivative")) + ("H", "Scale height for empirical deprojection", cxxopts::value(H)->default_value("0.1")) + ("Nr", "Number of radial points to evaluate", cxxopts::value(Nr)->default_value("150")) + ("o,output", "Output file name", cxxopts::value(fname)->default_value("rho_test.txt")) + ("Rmin", "Minimum radius for evaluation", cxxopts::value(Rmin)->default_value("0.01")) + ("Rmax", "Maximum radius for evaluation", cxxopts::value(Rmax)->default_value("10.0")) + ("Rcut", "Inner cutoff for donut test", cxxopts::value(Rcut)->default_value("-1.0")) + ("Rwid", "Width of transition region to inner donut", cxxopts::value(Rwid)->default_value("0.2")) + ("Ngrid", "Number of grid points for Deprojector", cxxopts::value(Ngrid)->default_value("6000")) + ("NumR", "Number of radial points for EmpDeproj", cxxopts::value(NumR)->default_value("1000")) + ("Nint", "Number of integration points for EmpDeproj", cxxopts::value(Nint)->default_value("800")); + + auto result = options.parse(argc, argv); + + if (result.count("help")) { + std::cout << options.help() << std::endl; + return 0; + } + + // Map Abel type string to enum + // + EmpDeproj::AbelType type_enum; + std::map abel_type_map = { + {"derivative", EmpDeproj::AbelType::Derivative}, + {"subtraction", EmpDeproj::AbelType::Subtraction}, + {"ibp", EmpDeproj::AbelType::IBP} + }; + + // Convert type string to lower case + // + std::transform(abel.begin(), abel.end(), abel.begin(), + [](unsigned char c){ return std::tolower(c); }); + + auto it_abel = abel_type_map.find(result["abel"].as()); + + if (it_abel != abel_type_map.end()) { + type_enum = it_abel->second; + } else { + throw std::runtime_error("Unknown Abel type: " + result["abel"].as()); + } + + std::function SigmaFunc, dSigmaFunc, RhoFunc; + enum class Type { Plummer, Gaussian, Toomre }; + Type which = Type::Toomre; + + std::map type_map = { + {"plummer", Type::Plummer}, + {"gaussian", Type::Gaussian}, + {"toomre", Type::Toomre} + }; + + // Convert type string to lower case + // + std::transform(type.begin(), type.end(), type.begin(), + [](unsigned char c){ return std::tolower(c); }); + + auto it = type_map.find(result["type"].as()); + + if (it != type_map.end()) { + which = it->second; + } else { + throw std::runtime_error("Unknown type: " + result["type"].as()); + } + + switch (which) { + case Type::Toomre: + // Test function + SigmaFunc = [](double R)->double + { return 1.0 / std::pow(1.0 + R*R, 1.5); }; + // Analytic derivative + dSigmaFunc = [](double R)->double + { return -3.0 * R / std::pow(1.0 + R*R, 2.5); }; + // Expected result + RhoFunc = [](double r)->double + { return 2.0 / std::pow(1.0 + r*r, 2.0) / M_PI; }; + break; + case Type::Gaussian: + // Test function + SigmaFunc = [](double R)->double + { return exp(-0.5*R*R); }; + // Analytic derivative + dSigmaFunc = [](double R)->double + { return -R*exp(-0.5*R*R); }; + // Expected result + RhoFunc = [](double r)->double + { return exp(-0.5*r*r)/sqrt(2.0*M_PI); }; + break; + default: + case Type::Plummer: + // Test function + SigmaFunc = [](double R)->double + { return 4.0 / 3.0 / std::pow(1.0 + R*R, 2.0); }; + // Analytic derivative + dSigmaFunc = [](double R)->double + { return -16.0 * R / 3.0 / std::pow(1.0 + R*R, 3.0); }; + // Expected result + RhoFunc = [](double r)->double + { return 1.0 / std::pow(1.0 + r*r, 2.5); }; + break; + } + + Deprojector D(SigmaFunc, dSigmaFunc, /*R_data_min=*/0.01, /*R_data_max=*/10.0, + /*R_max_extend=*/50.0, /*tail_power=*/-4.0, /*Ngrid=*/6000); + + auto SigmaZFunc = [SigmaFunc, H, Rcut, Rwid](double R, double z)->double + { double Q = exp(-std::fabs(z)/(2.0*H)); + double sech = 2.0*Q / (1.0 + Q*Q); + double hole = 1.0; + if (Rcut > 0.0) { + double x = (R - Rcut) / Rwid; + hole = 0.5 * (1.0 + std::tanh(x)); + } + return SigmaFunc(R)*sech*sech*hole/(4.0*H); }; + + EmpDeproj E(H, Rmin, Rmax, NumR, Nint, SigmaZFunc, type_enum); + + std::vector r_eval; + for (int i = 0; i < Nr; ++i) { + double t = (double)i / (Nr - 1); + r_eval.push_back(0.01 + t * 8.0); + } + auto rho = D.rho(r_eval); + + std::ofstream ofs(fname); + for (size_t i = 0; i < r_eval.size(); ++i) + ofs << std::setw(16) << r_eval[i] + << std::setw(16) << rho[i] + << std::setw(16) << E.density(r_eval[i]) + << std::setw(16) << RhoFunc(r_eval[i]) + << std::setw(16) << SigmaFunc(r_eval[i]) + << std::setw(16) << E.surfaceDensity(r_eval[i]) + << std::endl; + + ofs.close(); + std::cout << "Wrote " << fname << std::endl; + + return 0; +} From b12a1f8f38ef448933bf15abad990cec2890e684 Mon Sep 17 00:00:00 2001 From: "Martin D. Weinberg" Date: Fri, 13 Mar 2026 12:10:52 -0400 Subject: [PATCH 005/131] Missing test class --- utils/Test/EmpDeproj.H | 40 +++++++++++++ utils/Test/EmpDeproj.cc | 123 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 163 insertions(+) create mode 100644 utils/Test/EmpDeproj.H create mode 100644 utils/Test/EmpDeproj.cc diff --git a/utils/Test/EmpDeproj.H b/utils/Test/EmpDeproj.H new file mode 100644 index 000000000..402f547cf --- /dev/null +++ b/utils/Test/EmpDeproj.H @@ -0,0 +1,40 @@ +#pragma once + +#include +#include "interp.H" + +class EmpDeproj +{ +private: + //! Interpolators for density and mass + Linear1d densRg, massRg, surfRg; + +public: + //! Abel type + enum class AbelType { Derivative, Subtraction, IBP }; + + //! Construct from analytic Sigma functor + EmpDeproj(double H, double Rmin, double Rmax, int NUMR, int NINT, + std::function func, + AbelType type = AbelType::Derivative); + + //! Destructor + ~EmpDeproj() {} + + //! Evaluate deprojected density at a single radius + double density(double R) + { + return densRg.eval(log(R)); + } + + double surfaceDensity(double R) + { + return surfRg.eval(log(R)); + } + + //! Evaluate deprojected mass at a single radius + double mass(double R) + { + return massRg.eval(log(R)); + } +}; diff --git a/utils/Test/EmpDeproj.cc b/utils/Test/EmpDeproj.cc new file mode 100644 index 000000000..ceea6a7d9 --- /dev/null +++ b/utils/Test/EmpDeproj.cc @@ -0,0 +1,123 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "EmpDeproj.H" +#include "gaussQ.H" + +// EmpCylSL: Empirical cylindrical deprojection by numerical +// integration and finite difference + +EmpDeproj::EmpDeproj(double H, double RMIN, double RMAX, int NUMR, int NINT, + std::function func, AbelType type) +{ + LegeQuad lq(NINT); + + std::vector rr(NUMR), rl(NUMR), sigI(NUMR), rhoI(NUMR, 0.0); + + double Rmin = log(RMIN); + double Rmax = log(RMAX); + + double dr = (Rmax - Rmin)/(NUMR-1); + + // Compute surface mass density, Sigma(R) + // + for (int i=0; i rho(NUMR), mass(NUMR); + for (int i=0; i Date: Fri, 13 Mar 2026 12:42:38 -0400 Subject: [PATCH 006/131] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- include/DiskModels.H | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/DiskModels.H b/include/DiskModels.H index 273638d4f..ec18dc6b4 100644 --- a/include/DiskModels.H +++ b/include/DiskModels.H @@ -217,7 +217,7 @@ public: double operator()(double R, double z, double phi=0.) { - double sigma = std::pow(1.0 * (R/a)*(R/a), -0.5*n) * norm; + double sigma = norm * std::pow(1.0 + (R/a)*(R/a), -0.5*n); double Z = std::fabs(z); double Q = std::exp(-Z/h); double sech = 2.0*Q/(1.0 + Q*Q); From a03bbe692698f2513ac37c43d15651568a48ae88 Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Fri, 13 Mar 2026 12:43:11 -0400 Subject: [PATCH 007/131] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- include/DiskModels.H | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/DiskModels.H b/include/DiskModels.H index ec18dc6b4..f7b631503 100644 --- a/include/DiskModels.H +++ b/include/DiskModels.H @@ -212,7 +212,7 @@ public: params.push_back(h); params.push_back(n); if (n <= 2) throw std::runtime_error("Toomre index must be > 2"); - norm = (n - 2.0)/(2.0*M_PI*a*a); + norm = M*(n - 2.0)/(2.0*M_PI*a*a); } double operator()(double R, double z, double phi=0.) From 40425440d7d1b348aee565965de30c2c103d1352 Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Fri, 13 Mar 2026 12:43:34 -0400 Subject: [PATCH 008/131] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- include/DiskModels.H | 1 + 1 file changed, 1 insertion(+) diff --git a/include/DiskModels.H b/include/DiskModels.H index f7b631503..54edc17bb 100644 --- a/include/DiskModels.H +++ b/include/DiskModels.H @@ -3,6 +3,7 @@ #include "EmpCylSL.H" #include "DiskDensityFunc.H" +#include //! A Ferrers Ellipsoid + Evacuated Exponential Disc (semi-realistic //! bar+disk model) From db0e02d07fadf94006d41588492c2c3ae9425949 Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Fri, 13 Mar 2026 12:45:35 -0400 Subject: [PATCH 009/131] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- utils/Test/testEmpDeproj.cc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/utils/Test/testEmpDeproj.cc b/utils/Test/testEmpDeproj.cc index 6c344a2cd..a3f75d11d 100644 --- a/utils/Test/testEmpDeproj.cc +++ b/utils/Test/testEmpDeproj.cc @@ -3,6 +3,11 @@ #include #include #include +#include +#include +#include +#include +#include #include "Deprojector.H" #include "EmpDeproj.H" From dfc99f9d2f8b7ac66dc109ed23543a4cf5fa17f0 Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Fri, 13 Mar 2026 12:46:13 -0400 Subject: [PATCH 010/131] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- utils/Test/testDeprojPlummer.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utils/Test/testDeprojPlummer.cc b/utils/Test/testDeprojPlummer.cc index f72ecf63d..e4fb296af 100644 --- a/utils/Test/testDeprojPlummer.cc +++ b/utils/Test/testDeprojPlummer.cc @@ -13,7 +13,7 @@ int main() std::function SigmaFunc, dSigmaFunc, RhoFunc; enum class Type { Plummer, Gaussian, Toomre }; - Type which = Type::Toomre; + Type which = Type::Plummer; switch (which) { case Type::Toomre: From 2e6fee4adf8b9ceb21b7a814773582cddcb7a804 Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Fri, 13 Mar 2026 12:49:09 -0400 Subject: [PATCH 011/131] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- utils/Test/EmpDeproj.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/utils/Test/EmpDeproj.cc b/utils/Test/EmpDeproj.cc index ceea6a7d9..cfef407f1 100644 --- a/utils/Test/EmpDeproj.cc +++ b/utils/Test/EmpDeproj.cc @@ -7,6 +7,7 @@ #include #include #include +#include #include "EmpDeproj.H" #include "gaussQ.H" From 204d43d9b6f5493f44b8c4d88668b7d6325053c3 Mon Sep 17 00:00:00 2001 From: "Martin D. Weinberg" Date: Fri, 13 Mar 2026 12:56:28 -0400 Subject: [PATCH 012/131] Add a test routine from EmpDeproj alone; fix parsing error in testEmpDeproj for method variables --- utils/Test/CMakeLists.txt | 3 +- utils/Test/testEmp.cc | 145 ++++++++++++++++++++++++++++++++++++ utils/Test/testEmpDeproj.cc | 8 +- 3 files changed, 151 insertions(+), 5 deletions(-) create mode 100644 utils/Test/testEmp.cc diff --git a/utils/Test/CMakeLists.txt b/utils/Test/CMakeLists.txt index 78d7e4952..1cd889a1f 100644 --- a/utils/Test/CMakeLists.txt +++ b/utils/Test/CMakeLists.txt @@ -1,6 +1,6 @@ set(bin_PROGRAMS testBarrier expyaml orthoTest testDeproj - testDeprojPlum testEmpDeproj) + testDeprojPlum testEmpDeproj testEmp) set(common_LINKLIB OpenMP::OpenMP_CXX MPI::MPI_CXX expui exputil yaml-cpp ${VTK_LIBRARIES}) @@ -38,6 +38,7 @@ add_executable(testDeprojPlum testDeprojPlummer.cc CubicSpline.cc Deprojector.cc) add_executable(testEmpDeproj testEmpDeproj.cc CubicSpline.cc Deprojector.cc EmpDeproj.cc) +add_executable(testEmp testEmp.cc EmpDeproj.cc) foreach(program ${bin_PROGRAMS}) target_link_libraries(${program} ${common_LINKLIB}) diff --git a/utils/Test/testEmp.cc b/utils/Test/testEmp.cc new file mode 100644 index 000000000..796d016d9 --- /dev/null +++ b/utils/Test/testEmp.cc @@ -0,0 +1,145 @@ +#include +#include +#include +#include +#include + +#include "Deprojector.H" +#include "EmpDeproj.H" +#include "cxxopts.H" + +using namespace Deproject; + +int main(int argc, char* argv[]) +{ + + // Parameters + // + std::string type, abel, fname; + double H, Rmin, Rmax, Rcut, Rwid; + int Nr, NumR, Nint; + + // Parse command-line options + // + cxxopts::Options options("testDonut", + "Test the EmpDeproj class for an inner donut-shaped " + "density distribution, using the Toomre profile as " + "a test case."); + + options.add_options() + ("h,help", "Print help") + ("type", "Surface density type (plummer, gaussian, toomre)", cxxopts::value()->default_value("toomre")) + ("abel", "Abel inversion method (derivative, subtraction, ibp)", cxxopts::value()->default_value("derivative")) + ("H", "Scale height for empirical deprojection", cxxopts::value(H)->default_value("0.1")) + ("Nr", "Number of radial points to evaluate", cxxopts::value(Nr)->default_value("150")) + ("o,output", "Output file name", cxxopts::value(fname)->default_value("rho_test.txt")) + ("Rmin", "Minimum radius for evaluation", cxxopts::value(Rmin)->default_value("0.01")) + ("Rmax", "Maximum radius for evaluation", cxxopts::value(Rmax)->default_value("10.0")) + ("Rcut", "Inner cutoff for donut test", cxxopts::value(Rcut)->default_value("-1.0")) + ("Rwid", "Width of transition region to inner donut", cxxopts::value(Rwid)->default_value("0.2")) + ("NumR", "Number of radial points for EmpDeproj", cxxopts::value(NumR)->default_value("1000")) + ("Nint", "Number of integration points for EmpDeproj", cxxopts::value(Nint)->default_value("800")); + + auto result = options.parse(argc, argv); + + if (result.count("help")) { + std::cout << options.help() << std::endl; + return 0; + } + + // Map Abel type string to enum + // + EmpDeproj::AbelType type_enum; + std::map abel_type_map = { + {"derivative", EmpDeproj::AbelType::Derivative}, + {"subtraction", EmpDeproj::AbelType::Subtraction}, + {"ibp", EmpDeproj::AbelType::IBP} + }; + + // Convert type string to lower case + // + std::transform(abel.begin(), abel.end(), abel.begin(), + [](unsigned char c){ return std::tolower(c); }); + + auto it_abel = abel_type_map.find(result["abel"].as()); + + if (it_abel != abel_type_map.end()) { + type_enum = it_abel->second; + } else { + throw std::runtime_error("Unknown Abel type: " + result["abel"].as()); + } + + std::function SigmaFunc, dSigmaFunc, RhoFunc; + enum class Type { Plummer, Gaussian, Toomre }; + Type which = Type::Toomre; + + std::map type_map = { + {"plummer", Type::Plummer}, + {"gaussian", Type::Gaussian}, + {"toomre", Type::Toomre} + }; + + // Convert type string to lower case + // + std::transform(type.begin(), type.end(), type.begin(), + [](unsigned char c){ return std::tolower(c); }); + + auto it = type_map.find(result["type"].as()); + + if (it != type_map.end()) { + which = it->second; + } else { + throw std::runtime_error("Unknown type: " + result["type"].as()); + } + + switch (which) { + case Type::Toomre: + // Test function + SigmaFunc = [](double R)->double + { return 1.0 / std::pow(1.0 + R*R, 1.5); }; + // Analytic derivative + break; + case Type::Gaussian: + // Test function + SigmaFunc = [](double R)->double + { return exp(-0.5*R*R); }; + // Analytic derivative + break; + default: + case Type::Plummer: + // Test function + SigmaFunc = [](double R)->double + { return 4.0 / 3.0 / std::pow(1.0 + R*R, 2.0); }; + break; + } + + auto SigmaZFunc = [SigmaFunc, H, Rcut, Rwid](double R, double z)->double + { double Q = exp(-std::fabs(z)/(2.0*H)); + double sech = 2.0*Q / (1.0 + Q*Q); + double hole = 1.0; + if (Rcut > 0.0) { + double x = (R - Rcut) / Rwid; + hole = 0.5 * (1.0 + std::tanh(x)); + } + return SigmaFunc(R)*sech*sech*hole/(4.0*H); }; + + EmpDeproj E(H, Rmin, Rmax, NumR, Nint, SigmaZFunc, type_enum); + + std::vector r_eval; + for (int i = 0; i < Nr; ++i) { + double t = (double)i / (Nr - 1); + r_eval.push_back(0.01 + t * 8.0); + } + + std::ofstream ofs(fname); + for (size_t i = 0; i < r_eval.size(); ++i) + ofs << std::setw(16) << r_eval[i] + << std::setw(16) << E.density(r_eval[i]) + << std::setw(16) << E.surfaceDensity(r_eval[i]) + << std::endl; + + ofs.close(); + std::cout << "Wrote " << fname << std::endl; + + return 0; +} diff --git a/utils/Test/testEmpDeproj.cc b/utils/Test/testEmpDeproj.cc index a3f75d11d..966313028 100644 --- a/utils/Test/testEmpDeproj.cc +++ b/utils/Test/testEmpDeproj.cc @@ -31,8 +31,8 @@ int main(int argc, char* argv[]) "for various surface density profiles."); options.add_options() ("h,help", "Print help") - ("type", "Surface density type (plummer, gaussian, toomre)", cxxopts::value()->default_value("toomre")) - ("abel", "Abel inversion method (derivative, subtraction, ibp)", cxxopts::value()->default_value("derivative")) + ("type", "Surface density type (plummer, gaussian, toomre)", cxxopts::value(type)->default_value("toomre")) + ("abel", "Abel inversion method (derivative, subtraction, ibp)", cxxopts::value(abel)->default_value("derivative")) ("H", "Scale height for empirical deprojection", cxxopts::value(H)->default_value("0.1")) ("Nr", "Number of radial points to evaluate", cxxopts::value(Nr)->default_value("150")) ("o,output", "Output file name", cxxopts::value(fname)->default_value("rho_test.txt")) @@ -65,7 +65,7 @@ int main(int argc, char* argv[]) std::transform(abel.begin(), abel.end(), abel.begin(), [](unsigned char c){ return std::tolower(c); }); - auto it_abel = abel_type_map.find(result["abel"].as()); + auto it_abel = abel_type_map.find(abel); if (it_abel != abel_type_map.end()) { type_enum = it_abel->second; @@ -88,7 +88,7 @@ int main(int argc, char* argv[]) std::transform(type.begin(), type.end(), type.begin(), [](unsigned char c){ return std::tolower(c); }); - auto it = type_map.find(result["type"].as()); + auto it = type_map.find(type); if (it != type_map.end()) { which = it->second; From 0e82cb6d409a3f11a1a7dc8e5586f35b2be41b7a Mon Sep 17 00:00:00 2001 From: mdw Date: Fri, 13 Mar 2026 12:58:44 -0400 Subject: [PATCH 013/131] Updated parsing in BiorthBasis::Cylindrical for deprojection --- expui/BiorthBasis.cc | 2 +- include/DiskModels.H | 11 +++++------ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/expui/BiorthBasis.cc b/expui/BiorthBasis.cc index fda83a3ef..386d3b136 100644 --- a/expui/BiorthBasis.cc +++ b/expui/BiorthBasis.cc @@ -1735,7 +1735,7 @@ namespace BasisClasses if (PTYPE == DeprojType::mn) // Miyamoto-Nagai model = std::make_shared(1.0, H); else if (PTYPE == DeprojType::toomre) { - model = std::make_shared(1.0, H); + model = std::make_shared(1.0, H, 5.0); } else if (PTYPE == DeprojType::python and DTYPE == DiskType::python) { model = std::make_shared(pyname, acyl); diff --git a/include/DiskModels.H b/include/DiskModels.H index 54edc17bb..a951a2267 100644 --- a/include/DiskModels.H +++ b/include/DiskModels.H @@ -213,16 +213,15 @@ public: params.push_back(h); params.push_back(n); if (n <= 2) throw std::runtime_error("Toomre index must be > 2"); - norm = M*(n - 2.0)/(2.0*M_PI*a*a); + norm = M*(n - 2.0)/(2.0*M_PI*a*a*4.0*h); } double operator()(double R, double z, double phi=0.) { - double sigma = norm * std::pow(1.0 + (R/a)*(R/a), -0.5*n); - double Z = std::fabs(z); - double Q = std::exp(-Z/h); - double sech = 2.0*Q/(1.0 + Q*Q); - return sigma * sech*sech * 0.25/h; + double sigma = std::pow(1.0 + (R/a)*(R/a), -0.5*n) * norm; + double Q = std::exp(-std::fabs(z)/h); + double sech = 2.0*Q/(1.0 + Q*Q); // Prevent overflow + return sigma * sech*sech; } }; From cb5e150f5060d613b9d465db61c99d7df80777bc Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Fri, 13 Mar 2026 14:32:22 -0400 Subject: [PATCH 014/131] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- expui/BiorthBasis.cc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/expui/BiorthBasis.cc b/expui/BiorthBasis.cc index 386d3b136..d6cba31a6 100644 --- a/expui/BiorthBasis.cc +++ b/expui/BiorthBasis.cc @@ -1711,6 +1711,10 @@ namespace BasisClasses std::transform(dmodel.begin(), dmodel.end(), dmodel.begin(), [](unsigned char c){ return std::tolower(c); }); + // Map legacy/short model names to canonical keys expected by dplookup + if (dmodel == "exp") { + dmodel = "exponential"; + } // Check for map entry try { From 5f151bc0a2c385276d08ee75667301a53c14f3eb Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Fri, 13 Mar 2026 14:32:45 -0400 Subject: [PATCH 015/131] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- expui/BiorthBasis.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/expui/BiorthBasis.cc b/expui/BiorthBasis.cc index d6cba31a6..819ce37bb 100644 --- a/expui/BiorthBasis.cc +++ b/expui/BiorthBasis.cc @@ -1728,7 +1728,7 @@ namespace BasisClasses } catch (const std::out_of_range& err) { if (myid==0) { - std::cout << "DeprojType error in configuraton file" << std::endl; + std::cout << "DeprojType error in configuration file" << std::endl; std::cout << "Valid options are: "; for (auto v : dplookup) std::cout << v.first << " "; std::cout << std::endl; From b7610507d79b2fbe7ef6c702802c5d844e0c950f Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Fri, 13 Mar 2026 14:39:35 -0400 Subject: [PATCH 016/131] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- utils/Test/Deprojector.cc | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/utils/Test/Deprojector.cc b/utils/Test/Deprojector.cc index d778a29b3..10288b8b6 100644 --- a/utils/Test/Deprojector.cc +++ b/utils/Test/Deprojector.cc @@ -46,10 +46,14 @@ namespace Deproject for (size_t i=0;i Date: Fri, 13 Mar 2026 14:40:20 -0400 Subject: [PATCH 017/131] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- utils/Test/testDeproject.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/utils/Test/testDeproject.cc b/utils/Test/testDeproject.cc index c376adb6d..309c9cf88 100644 --- a/utils/Test/testDeproject.cc +++ b/utils/Test/testDeproject.cc @@ -18,7 +18,7 @@ int main() double t = (double)i / (Ndata - 1); double r = Rmin + t * (Rmax - Rmin); Rdata.push_back(r); - Sigma.push_back(1.0 / std::pow(1.0 + r*r, -1.5)); + Sigma.push_back(std::pow(1.0 + r*r, -1.5)); } Deprojector D(Rdata, Sigma, /*R_max_extend=*/50.0, /*tail_power=*/-4.0, /*Ngrid=*/6000); @@ -39,7 +39,7 @@ int main() // Example B: construct from analytic functor + analytic derivative { - auto SigmaFunc = [](double R)->double { return 1.0 / std::pow(1.0 + R*R, -1.5); }; + auto SigmaFunc = [](double R)->double { return std::pow(1.0 + R*R, -1.5); }; auto dSigmaFunc = [](double R)->double { return -3.0 * R / std::pow(1.0 + R*R, -2.5); }; // analytic derivative Deprojector D(SigmaFunc, dSigmaFunc, /*R_data_min=*/0.01, /*R_data_max=*/10.0, From f9a6ae297f5ec0b73db46412817cc3bed728ab6a Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Fri, 13 Mar 2026 14:40:34 -0400 Subject: [PATCH 018/131] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- utils/Test/testEmp.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/utils/Test/testEmp.cc b/utils/Test/testEmp.cc index 796d016d9..c2af16a16 100644 --- a/utils/Test/testEmp.cc +++ b/utils/Test/testEmp.cc @@ -3,6 +3,7 @@ #include #include #include +#include #include "Deprojector.H" #include "EmpDeproj.H" From 5a66623825241789c16e4c485769fcf103aadd7a Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Fri, 13 Mar 2026 14:41:16 -0400 Subject: [PATCH 019/131] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- utils/Test/EmpDeproj.cc | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/utils/Test/EmpDeproj.cc b/utils/Test/EmpDeproj.cc index cfef407f1..b43962a5e 100644 --- a/utils/Test/EmpDeproj.cc +++ b/utils/Test/EmpDeproj.cc @@ -104,18 +104,20 @@ EmpDeproj::EmpDeproj(double H, double RMIN, double RMAX, int NUMR, int NINT, // Debug // - if (true) { +#ifdef EMPDEPROJ_DEBUG + { std::string fname("deproject_sl.txt"); std::ofstream out(fname); if (out) { for (int i=0; i Date: Fri, 13 Mar 2026 14:42:09 -0400 Subject: [PATCH 020/131] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- utils/Test/testDeprojPlummer.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/utils/Test/testDeprojPlummer.cc b/utils/Test/testDeprojPlummer.cc index e4fb296af..0e34cff9e 100644 --- a/utils/Test/testDeprojPlummer.cc +++ b/utils/Test/testDeprojPlummer.cc @@ -64,12 +64,13 @@ int main() auto rho = D.rho(r_eval); std::ofstream ofs("rho_test.txt"); - for (size_t i = 0; i < r_eval.size(); ++i) + for (size_t i = 0; i < r_eval.size(); ++i) { ofs << std::setw(16) << r_eval[i] << std::setw(16) << rho[i] << std::setw(16) << RhoFunc(r_eval[i]) << std::endl; - ofs.close(); + } + ofs.close(); std::cout << "Wrote rho_test.txt\n"; return 0; From 31dad722f0ce52ae8041a355b4f374020cfc9976 Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Fri, 13 Mar 2026 14:42:45 -0400 Subject: [PATCH 021/131] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- expui/BiorthBasis.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/expui/BiorthBasis.cc b/expui/BiorthBasis.cc index 819ce37bb..92c3343af 100644 --- a/expui/BiorthBasis.cc +++ b/expui/BiorthBasis.cc @@ -1503,7 +1503,7 @@ namespace BasisClasses if (conf["cmapz" ]) cmapZ = conf["cmapz" ].as(); if (conf["ignore" ]) Ignore = conf["ignore" ].as(); if (conf["deproject" ]) deproject = conf["deproject" ].as(); - if (conf["dmodel" ]) dmodel = conf["dmodel" ].as(); + if (conf["dmodel" ]) dmodel = conf["dmodel" ].as(); if (conf["aratio" ]) aratio = conf["aratio" ].as(); if (conf["hratio" ]) hratio = conf["hratio" ].as(); From 9c2f36f96518986f7fac46d0e7f21b1b18dd2345 Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Fri, 13 Mar 2026 14:43:19 -0400 Subject: [PATCH 022/131] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- expui/BiorthBasis.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/expui/BiorthBasis.cc b/expui/BiorthBasis.cc index 92c3343af..c7a679a6d 100644 --- a/expui/BiorthBasis.cc +++ b/expui/BiorthBasis.cc @@ -1198,7 +1198,7 @@ namespace BasisClasses {"python", DiskType::python} }; - // Dprojection model for cylindrical basis construction + // Deprojection model for cylindrical basis construction const std::map Cylindrical::dplookup = { {"mn", DeprojType::mn}, {"exponential", DeprojType::exponential}, From 22b6493b22adfe096db0576f1435a1bbf6747b8e Mon Sep 17 00:00:00 2001 From: "Martin D. Weinberg" Date: Fri, 13 Mar 2026 15:08:58 -0400 Subject: [PATCH 023/131] Use new sech^2 scaling --- include/DiskModels.H | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/include/DiskModels.H b/include/DiskModels.H index 54edc17bb..8272e4b03 100644 --- a/include/DiskModels.H +++ b/include/DiskModels.H @@ -213,16 +213,16 @@ public: params.push_back(h); params.push_back(n); if (n <= 2) throw std::runtime_error("Toomre index must be > 2"); - norm = M*(n - 2.0)/(2.0*M_PI*a*a); + norm = M*(n - 2.0)/(2.0*M_PI*a*a*4.0*h); } double operator()(double R, double z, double phi=0.) { double sigma = norm * std::pow(1.0 + (R/a)*(R/a), -0.5*n); double Z = std::fabs(z); - double Q = std::exp(-Z/h); + double Q = std::exp(-0.5*Z/h); double sech = 2.0*Q/(1.0 + Q*Q); - return sigma * sech*sech * 0.25/h; + return sigma * sech*sech; } }; From 9439daa5ce94885e9ec4f6290310291800e7a58c Mon Sep 17 00:00:00 2001 From: "Martin D. Weinberg" Date: Fri, 13 Mar 2026 19:39:09 -0400 Subject: [PATCH 024/131] Python deprojection test routine; add possibility of a separate Python functor for deprojection in EmpCylSL --- expui/BiorthBasis.H | 2 +- expui/BiorthBasis.cc | 11 +- utils/Test/CMakeLists.txt | 3 + utils/Test/testEmp.cc | 306 ++++++++++++++++++++++++++++---------- 4 files changed, 241 insertions(+), 81 deletions(-) diff --git a/expui/BiorthBasis.H b/expui/BiorthBasis.H index 054e28a35..d52341ab6 100644 --- a/expui/BiorthBasis.H +++ b/expui/BiorthBasis.H @@ -996,7 +996,7 @@ namespace BasisClasses //! Basis construction parameters double aratio, hratio, dweight, rwidth, ashift, rfactor, rtrunc, ppow, Mfac, HERNA; bool Ignore, deproject; - std::string pyname; + std::string pyname, pyproj; //! DiskType support //! diff --git a/expui/BiorthBasis.cc b/expui/BiorthBasis.cc index c7a679a6d..24608fb21 100644 --- a/expui/BiorthBasis.cc +++ b/expui/BiorthBasis.cc @@ -1270,7 +1270,8 @@ namespace BasisClasses "playback", "coefCompute", "coefMaster", - "pyname" + "pyname", + "pyproj" }; Cylindrical::Cylindrical(const YAML::Node& CONF) : @@ -1519,6 +1520,7 @@ namespace BasisClasses if (conf["dtype" ]) dtype = conf["dtype" ].as(); if (conf["vflag" ]) vflag = conf["vflag" ].as(); if (conf["pyname" ]) pyname = conf["pyname" ].as(); + if (conf["pyproj" ]) pyname = conf["pyproj" ].as(); if (conf["pcavar"] ) pcavar = conf["pcavar" ].as(); if (conf["subsamp"] ) sampT = conf["subsamp" ].as(); @@ -1712,11 +1714,13 @@ namespace BasisClasses [](unsigned char c){ return std::tolower(c); }); // Map legacy/short model names to canonical keys expected by dplookup + // if (dmodel == "exp") { dmodel = "exponential"; } // Check for map entry + // try { PTYPE = dplookup.at(dmodel); @@ -1740,9 +1744,8 @@ namespace BasisClasses model = std::make_shared(1.0, H); else if (PTYPE == DeprojType::toomre) { model = std::make_shared(1.0, H, 5.0); - } else if (PTYPE == DeprojType::python and - DTYPE == DiskType::python) { - model = std::make_shared(pyname, acyl); + } else if (PTYPE == DeprojType::python) { + model = std::make_shared(pyproj, acyl); std::cout << "Using AxiSymPyModel for deprojection from Python function <" << pyname << ">" << std::endl; } else { // Default to exponential diff --git a/utils/Test/CMakeLists.txt b/utils/Test/CMakeLists.txt index 1cd889a1f..45531c968 100644 --- a/utils/Test/CMakeLists.txt +++ b/utils/Test/CMakeLists.txt @@ -47,4 +47,7 @@ foreach(program ${bin_PROGRAMS}) # install(TARGETS ${program} DESTINATION bin) endforeach() +# For Python interpreter... +target_link_libraries(testEmp ${common_LINKLIB} pybind11::embed) + install(TARGETS expyaml DESTINATION bin) diff --git a/utils/Test/testEmp.cc b/utils/Test/testEmp.cc index c2af16a16..9ee505732 100644 --- a/utils/Test/testEmp.cc +++ b/utils/Test/testEmp.cc @@ -1,36 +1,43 @@ #include #include #include +#include +#include +#include #include +#include #include -#include +#include -#include "Deprojector.H" #include "EmpDeproj.H" #include "cxxopts.H" -using namespace Deproject; +// pybind11 embedding +#include +#include +namespace py = pybind11; int main(int argc, char* argv[]) { - - // Parameters - // - std::string type, abel, fname; - double H, Rmin, Rmax, Rcut, Rwid; - int Nr, NumR, Nint; + // Default parameters + std::string type_opt; + std::string abel_opt; + std::string fname; + double H = 0.1, Rmin = 0.01, Rmax = 10.0, Rcut = -1.0, Rwid = 0.2; + int Nr = 150, NumR = 1000, Nint = 800; // Parse command-line options - // cxxopts::Options options("testDonut", - "Test the EmpDeproj class for an inner donut-shaped " - "density distribution, using the Toomre profile as " - "a test case."); + "Test the EmpDeproj class for an inner donut-shaped " + "density distribution, using the Toomre profile as " + "a test case."); options.add_options() ("h,help", "Print help") - ("type", "Surface density type (plummer, gaussian, toomre)", cxxopts::value()->default_value("toomre")) - ("abel", "Abel inversion method (derivative, subtraction, ibp)", cxxopts::value()->default_value("derivative")) + ("type", "Surface density type (plummer, gaussian, toomre) - ignored if Python function supplied", + cxxopts::value(type_opt)->default_value("toomre")) + ("abel", "Abel inversion method (derivative, subtraction, ibp)", + cxxopts::value(abel_opt)->default_value("derivative")) ("H", "Scale height for empirical deprojection", cxxopts::value(H)->default_value("0.1")) ("Nr", "Number of radial points to evaluate", cxxopts::value(Nr)->default_value("150")) ("o,output", "Output file name", cxxopts::value(fname)->default_value("rho_test.txt")) @@ -39,7 +46,10 @@ int main(int argc, char* argv[]) ("Rcut", "Inner cutoff for donut test", cxxopts::value(Rcut)->default_value("-1.0")) ("Rwid", "Width of transition region to inner donut", cxxopts::value(Rwid)->default_value("0.2")) ("NumR", "Number of radial points for EmpDeproj", cxxopts::value(NumR)->default_value("1000")) - ("Nint", "Number of integration points for EmpDeproj", cxxopts::value(Nint)->default_value("800")); + ("Nint", "Number of integration points for EmpDeproj", cxxopts::value(Nint)->default_value("800")) + // Python integration options + ("pymodule", "Python module name OR path to a .py file containing a function", cxxopts::value()) + ("pyfunc", "Function name inside module/file (default: 'Sigma')", cxxopts::value()->default_value("Sigma")); auto result = options.parse(argc, argv); @@ -49,7 +59,6 @@ int main(int argc, char* argv[]) } // Map Abel type string to enum - // EmpDeproj::AbelType type_enum; std::map abel_type_map = { {"derivative", EmpDeproj::AbelType::Derivative}, @@ -57,90 +66,235 @@ int main(int argc, char* argv[]) {"ibp", EmpDeproj::AbelType::IBP} }; - // Convert type string to lower case - // - std::transform(abel.begin(), abel.end(), abel.begin(), - [](unsigned char c){ return std::tolower(c); }); - - auto it_abel = abel_type_map.find(result["abel"].as()); + std::string abel_l = result["abel"].as(); + std::transform(abel_l.begin(), abel_l.end(), abel_l.begin(), + [](unsigned char c){ return std::tolower(c); }); + auto it_abel = abel_type_map.find(abel_l); if (it_abel != abel_type_map.end()) { type_enum = it_abel->second; } else { throw std::runtime_error("Unknown Abel type: " + result["abel"].as()); } - std::function SigmaFunc, dSigmaFunc, RhoFunc; - enum class Type { Plummer, Gaussian, Toomre }; - Type which = Type::Toomre; + // Prepare SigmaZFunc to pass into EmpDeproj + std::function SigmaZFunc; - std::map type_map = { - {"plummer", Type::Plummer}, - {"gaussian", Type::Gaussian}, - {"toomre", Type::Toomre} - }; + // For pybind11 embedding, we need to keep the interpreter alive for + // the duration of the SigmaZFunc usage. We can use a unique_ptr to + // manage the lifetime of the interpreter guard. If no Python is + // used, this will just be an empty guard that does nothing. + // + std::unique_ptr pyguard; - // Convert type string to lower case + // If user supplied a Python module/file and function, embed Python + // and load it here // - std::transform(type.begin(), type.end(), type.begin(), - [](unsigned char c){ return std::tolower(c); }); + if (result.count("pymodule")) { + std::string pymod = result["pymodule"].as(); + std::string pyfuncname = result["pyfunc"].as(); - auto it = type_map.find(result["type"].as()); + // Start the Python interpreter + pyguard = std::make_unique(); - if (it != type_map.end()) { - which = it->second; - } else { - throw std::runtime_error("Unknown type: " + result["type"].as()); - } + py::object py_module; - switch (which) { - case Type::Toomre: - // Test function - SigmaFunc = [](double R)->double - { return 1.0 / std::pow(1.0 + R*R, 1.5); }; - // Analytic derivative - break; - case Type::Gaussian: - // Test function - SigmaFunc = [](double R)->double - { return exp(-0.5*R*R); }; - // Analytic derivative - break; - default: - case Type::Plummer: - // Test function - SigmaFunc = [](double R)->double - { return 4.0 / 3.0 / std::pow(1.0 + R*R, 2.0); }; - break; - } - - auto SigmaZFunc = [SigmaFunc, H, Rcut, Rwid](double R, double z)->double - { double Q = exp(-std::fabs(z)/(2.0*H)); - double sech = 2.0*Q / (1.0 + Q*Q); - double hole = 1.0; - if (Rcut > 0.0) { - double x = (R - Rcut) / Rwid; - hole = 0.5 * (1.0 + std::tanh(x)); + // If pymod ends with .py, treat it as filepath: insert its + // directory to sys.path and import by stem + std::filesystem::path p(pymod); + try { + if (p.has_extension() && p.extension() == ".py") { + std::string dir = p.parent_path().string(); + std::string modname = p.stem().string(); + if (!dir.empty()) { + py::module_ sys = py::module_::import("sys"); + // insert at front so local dir is found first + sys.attr("path").attr("insert")(0, dir); + } + py_module = py::module_::import(modname.c_str()); + } else { + // treat as module name + py_module = py::module_::import(pymod.c_str()); + } + } catch (const py::error_already_set &e) { + throw std::runtime_error(std::string("Failed to import Python module '") + + pymod + "': " + e.what()); + } + + py::object pyfunc = py_module.attr(pyfuncname.c_str()); + + if (!py::isinstance(pyfunc) && !py::hasattr(pyfunc, "__call__")) { + throw std::runtime_error("Python object " + pyfuncname + + " is not callable."); + } + + // Inspect function argument count to decide whether it's Sigma(R) + // or SigmaZ(R,z). This is probably overkill and might not be + // robust for all callables, but it allows some flexibility for + // users. + // + int argcount = 0; + try { + // functions have __code__.co_argcount; builtins may not — in + // that case prefer calling and checking. I'm still not sure if + // this is the best way to do it, but it should cover most cases + // (functions, builtins, callables). Python experts? + // + if (py::hasattr(pyfunc, "__code__")) { + argcount = pyfunc.attr("__code__").attr("co_argcount").cast(); + } else if (py::hasattr(pyfunc, "__call__") && py::hasattr(pyfunc.attr("__call__"), "__code__")) { + argcount = pyfunc.attr("__call__").attr("__code__").attr("co_argcount").cast() - 1; // bound method + } else { + // fallback, try calling with 2 args first and catch + argcount = -1; + } + } catch (...) { + argcount = -1; } - return SigmaFunc(R)*sech*sech*hole/(4.0*H); }; + if (argcount == 1) { + // User provided Sigma(R). Wrap it and add vertical profile + + // hole logic here. Keep a copy of pyfunc alive by capturing + // py::object by value. + std::function Sigma = [pyfunc](double R)->double { + py::gil_scoped_acquire gil; + py::object out = pyfunc(R); + return out.cast(); + }; + + SigmaZFunc = [Sigma, H, Rcut, Rwid](double R, double z)->double { + // vertical profile: sech^2 with scale H (same form as original) + double Q = std::exp(-std::fabs(z) / (2.0 * H)); + double sech = 2.0 * Q / (1.0 + Q * Q); + double hole = 1.0; + if (Rcut > 0.0) { + double x = (R - Rcut) / Rwid; + hole = 0.5 * (1.0 + std::tanh(x)); + } + double s = Sigma(R); + return s * sech * sech * hole / (4.0 * H); + }; + + } else if (argcount == 2) { + // User provided SigmaZ(R,z) directly. Use it as-is (no extra + // vertical/hole logic). + py::object pyfunc2 = pyfunc; + SigmaZFunc = [pyfunc2](double R, double z)->double { + py::gil_scoped_acquire gil; + py::object out = pyfunc2(R, z); + return out.cast(); + }; + + } else { + // ambiguous: try calling with 2 args; if that fails try 1 arg + try { + // test call with dummy values + py::gil_scoped_acquire gil; + pyfunc(1.0, 0.0); + // succeeded: treat as SigmaZ(R,z) + py::object pyfunc2 = pyfunc; + SigmaZFunc = [pyfunc2](double R, double z)->double { + py::gil_scoped_acquire gil2; + py::object out = pyfunc2(R, z); + return out.cast(); + }; + } catch (const py::error_already_set &) { + // fallback: try as Sigma(R) + py::object pyfunc1 = pyfunc; + std::function Sigma = [pyfunc1](double R)->double { + py::gil_scoped_acquire gil2; + py::object out = pyfunc1(R); + return out.cast(); + }; + SigmaZFunc = [Sigma, H, Rcut, Rwid](double R, double z)->double { + double Q = std::exp(-std::fabs(z) / (2.0 * H)); + double sech = 2.0 * Q / (1.0 + Q * Q); + double hole = 1.0; + if (Rcut > 0.0) { + double x = (R - Rcut) / Rwid; + hole = 0.5 * (1.0 + std::tanh(x)); + } + double s = Sigma(R); + return s * sech * sech * hole / (4.0 * H); + }; + } + } + } // end python handling + else { + // No Python supplied: use internal choices (plummer/gaussian/toomre) + std::function SigmaFunc; + enum class Type { Plummer, Gaussian, Toomre }; + Type which = Type::Toomre; + + std::map type_map = { + {"plummer", Type::Plummer}, + {"gaussian", Type::Gaussian}, + {"toomre", Type::Toomre} + }; + + std::string type_l = result["type"].as(); + std::transform(type_l.begin(), type_l.end(), type_l.begin(), + [](unsigned char c){ return std::tolower(c); }); + + auto it = type_map.find(type_l); + if (it != type_map.end()) { + which = it->second; + } else { + throw std::runtime_error("Unknown type: " + result["type"].as()); + } + + switch (which) { + case Type::Toomre: + SigmaFunc = [](double R)->double { return 1.0 / std::pow(1.0 + R*R, 1.5); }; + break; + case Type::Gaussian: + SigmaFunc = [](double R)->double { return std::exp(-0.5*R*R); }; + break; + default: + case Type::Plummer: + SigmaFunc = [](double R)->double { return 4.0 / 3.0 / std::pow(1.0 + R*R, 2.0); }; + break; + } + + // Build SigmaZFunc from SigmaFunc, using the same vertical/hole + // logic + SigmaZFunc = [SigmaFunc, H, Rcut, Rwid](double R, double z)->double { + double Q = std::exp(-std::fabs(z) / (2.0 * H)); + double sech = 2.0 * Q / (1.0 + Q * Q); + double hole = 1.0; + if (Rcut > 0.0) { + double x = (R - Rcut) / Rwid; + hole = 0.5 * (1.0 + std::tanh(x)); + } + return SigmaFunc(R) * sech * sech * hole / (4.0 * H); + }; + } // end else internal choice + + // Construct EmpDeproj and evaluate EmpDeproj E(H, Rmin, Rmax, NumR, Nint, SigmaZFunc, type_enum); + // radial evaluation points std::vector r_eval; for (int i = 0; i < Nr; ++i) { double t = (double)i / (Nr - 1); - r_eval.push_back(0.01 + t * 8.0); + r_eval.push_back(Rmin + t * (Rmax - Rmin)); } - + std::ofstream ofs(fname); - for (size_t i = 0; i < r_eval.size(); ++i) + if (!ofs) { + std::cerr << "Failed to open output file: " << fname << std::endl; + return 1; + } + + for (size_t i = 0; i < r_eval.size(); ++i) { ofs << std::setw(16) << r_eval[i] - << std::setw(16) << E.density(r_eval[i]) - << std::setw(16) << E.surfaceDensity(r_eval[i]) - << std::endl; + << std::setw(16) << E.density(r_eval[i]) + << std::setw(16) << E.surfaceDensity(r_eval[i]) + << std::endl; + } ofs.close(); std::cout << "Wrote " << fname << std::endl; - + return 0; } From 1d50ae5c1c9f7107d518cb3e988abd1774799d83 Mon Sep 17 00:00:00 2001 From: mdw Date: Sat, 14 Mar 2026 09:05:53 -0400 Subject: [PATCH 025/131] Fix typo in parameter assignment --- expui/BiorthBasis.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/expui/BiorthBasis.cc b/expui/BiorthBasis.cc index 24608fb21..ca7b01472 100644 --- a/expui/BiorthBasis.cc +++ b/expui/BiorthBasis.cc @@ -1520,7 +1520,7 @@ namespace BasisClasses if (conf["dtype" ]) dtype = conf["dtype" ].as(); if (conf["vflag" ]) vflag = conf["vflag" ].as(); if (conf["pyname" ]) pyname = conf["pyname" ].as(); - if (conf["pyproj" ]) pyname = conf["pyproj" ].as(); + if (conf["pyproj" ]) pyproj = conf["pyproj" ].as(); if (conf["pcavar"] ) pcavar = conf["pcavar" ].as(); if (conf["subsamp"] ) sampT = conf["subsamp" ].as(); From eb1f9eb2d612e4adb302fd27bd9f59a20a459b88 Mon Sep 17 00:00:00 2001 From: "Martin D. Weinberg" Date: Sat, 14 Mar 2026 10:54:02 -0400 Subject: [PATCH 026/131] Remove the initial test function; add doc strings to the help stanza on the standalone tests --- utils/Test/CMakeLists.txt | 4 +- utils/Test/testDeprojPlummer.cc | 77 ---------------- utils/Test/testDeproject.cc | 153 ++++++++++++++++++++++---------- utils/Test/testEmp.cc | 7 +- utils/Test/testEmpDeproj.cc | 4 +- 5 files changed, 113 insertions(+), 132 deletions(-) delete mode 100644 utils/Test/testDeprojPlummer.cc diff --git a/utils/Test/CMakeLists.txt b/utils/Test/CMakeLists.txt index 45531c968..123e6120d 100644 --- a/utils/Test/CMakeLists.txt +++ b/utils/Test/CMakeLists.txt @@ -1,6 +1,6 @@ set(bin_PROGRAMS testBarrier expyaml orthoTest testDeproj - testDeprojPlum testEmpDeproj testEmp) + testEmpDeproj testEmp) set(common_LINKLIB OpenMP::OpenMP_CXX MPI::MPI_CXX expui exputil yaml-cpp ${VTK_LIBRARIES}) @@ -34,8 +34,6 @@ add_executable(testBarrier test_barrier.cc) add_executable(expyaml test_config.cc) add_executable(orthoTest orthoTest.cc Biorth2Ortho.cc) add_executable(testDeproj testDeproject.cc CubicSpline.cc Deprojector.cc) -add_executable(testDeprojPlum testDeprojPlummer.cc CubicSpline.cc - Deprojector.cc) add_executable(testEmpDeproj testEmpDeproj.cc CubicSpline.cc Deprojector.cc EmpDeproj.cc) add_executable(testEmp testEmp.cc EmpDeproj.cc) diff --git a/utils/Test/testDeprojPlummer.cc b/utils/Test/testDeprojPlummer.cc deleted file mode 100644 index 0e34cff9e..000000000 --- a/utils/Test/testDeprojPlummer.cc +++ /dev/null @@ -1,77 +0,0 @@ -#include -#include -#include -#include -#include - -#include "Deprojector.H" - -using namespace Deproject; - -int main() -{ - std::function SigmaFunc, dSigmaFunc, RhoFunc; - - enum class Type { Plummer, Gaussian, Toomre }; - Type which = Type::Plummer; - - switch (which) { - case Type::Toomre: - // Test function - SigmaFunc = [](double R)->double - { return 1.0 / std::pow(1.0 + R*R, 1.5); }; - // Analytic derivative - dSigmaFunc = [](double R)->double - { return -3.0 * R / std::pow(1.0 + R*R, 2.5); }; - // Expected result - RhoFunc = [](double r)->double - { return 2.0 / std::pow(1.0 + r*r, 2.0) / M_PI; }; - break; - case Type::Gaussian: - // Test function - SigmaFunc = [](double R)->double - { return exp(-0.5*R*R); }; - // Analytic derivative - dSigmaFunc = [](double R)->double - { return -R*exp(-0.5*R*R); }; - // Expected result - RhoFunc = [](double r)->double - { return exp(-0.5*r*r)/sqrt(2.0*M_PI); }; - break; - default: - case Type::Plummer: - // Test function - SigmaFunc = [](double R)->double - { return 4.0 / 3.0 / std::pow(1.0 + R*R, 2.0); }; - // Analytic derivative - dSigmaFunc = [](double R)->double - { return -16.0 * R / 3.0 / std::pow(1.0 + R*R, 3.0); }; - // Expected result - RhoFunc = [](double r)->double - { return 1.0 / std::pow(1.0 + r*r, 2.5); }; - break; - } - - Deprojector D(SigmaFunc, dSigmaFunc, /*R_data_min=*/0.01, /*R_data_max=*/10.0, - /*R_max_extend=*/50.0, /*tail_power=*/-4.0, /*Ngrid=*/6000); - - std::vector r_eval; - int Nr = 150; - for (int i = 0; i < Nr; ++i) { - double t = (double)i / (Nr - 1); - r_eval.push_back(0.01 + t * 8.0); - } - auto rho = D.rho(r_eval); - - std::ofstream ofs("rho_test.txt"); - for (size_t i = 0; i < r_eval.size(); ++i) { - ofs << std::setw(16) << r_eval[i] - << std::setw(16) << rho[i] - << std::setw(16) << RhoFunc(r_eval[i]) - << std::endl; - } - ofs.close(); - std::cout << "Wrote rho_test.txt\n"; - - return 0; -} diff --git a/utils/Test/testDeproject.cc b/utils/Test/testDeproject.cc index 309c9cf88..046855022 100644 --- a/utils/Test/testDeproject.cc +++ b/utils/Test/testDeproject.cc @@ -1,63 +1,122 @@ #include +#include #include #include #include #include "Deprojector.H" +#include "cxxopts.H" using namespace Deproject; -int main() +int main(int argc, char* argv[]) { - // Example A: construct from sampled data - { - std::vector Rdata, Sigma; - int Ndata = 2000; - double Rmin = 0.01, Rmax = 10.0; - for (int i = 0; i < Ndata; ++i) { - double t = (double)i / (Ndata - 1); - double r = Rmin + t * (Rmax - Rmin); - Rdata.push_back(r); - Sigma.push_back(std::pow(1.0 + r*r, -1.5)); - } - - Deprojector D(Rdata, Sigma, /*R_max_extend=*/50.0, /*tail_power=*/-4.0, /*Ngrid=*/6000); - - std::vector r_eval; - int Nr = 150; - for (int i = 0; i < Nr; ++i) { - double t = (double)i / (Nr - 1); - r_eval.push_back(0.01 + t * 8.0); - } - auto rho = D.rho(r_eval); - - std::ofstream ofs("rho_from_sampled.txt"); - for (size_t i = 0; i < r_eval.size(); ++i) ofs << r_eval[i] << " " << rho[i] << "\n"; - ofs.close(); - std::cout << "Wrote rho_from_sampled.txt\n"; + // Command-line options + std::string type; + cxxopts::Options options("testDeprojector", + "Test the Deproject class for various surface density profiles.\n" + "Independent implemenation for comparison with the EmpCylSL-based\n" + "EmpDeproj class.\n"); + + options.add_options() + ("h,help", "Print help") + ("type", "Surface density type (plummer, gaussian, toomre)", cxxopts::value(type)->default_value("plummer")); + + auto result = options.parse(argc, argv); + + if (result.count("help")) { + std::cout << options.help() << std::endl; + return 0; + } + + // Density function and derivative functors + // + std::function SigmaFunc, dSigmaFunc, RhoFunc; + + // Convert type id string to lower case + // + std::transform(type.begin(), type.end(), type.begin(), + [](unsigned char c){ return std::tolower(c); }); + + // Test densities + // + enum class Type { Plummer, Gaussian, Toomre }; + + // Reflect type string to enum + // + std::map type_map = { + {"plummer", Type::Plummer}, + {"gaussian", Type::Gaussian}, + {"toomre", Type::Toomre} + }; + + Type which = Type::Plummer; + + auto it = type_map.find(type); + + if (it != type_map.end()) { + which = it->second; + } else { + throw std::runtime_error("Unknown type: " + type); + } + + switch (which) { + case Type::Toomre: + // Test function + SigmaFunc = [](double R)->double + { return 1.0 / std::pow(1.0 + R*R, 1.5); }; + // Analytic derivative + dSigmaFunc = [](double R)->double + { return -3.0 * R / std::pow(1.0 + R*R, 2.5); }; + // Expected result + RhoFunc = [](double r)->double + { return 2.0 / std::pow(1.0 + r*r, 2.0) / M_PI; }; + break; + case Type::Gaussian: + // Test function + SigmaFunc = [](double R)->double + { return exp(-0.5*R*R); }; + // Analytic derivative + dSigmaFunc = [](double R)->double + { return -R*exp(-0.5*R*R); }; + // Expected result + RhoFunc = [](double r)->double + { return exp(-0.5*r*r)/sqrt(2.0*M_PI); }; + break; + default: + case Type::Plummer: + // Test function + SigmaFunc = [](double R)->double + { return 4.0 / 3.0 / std::pow(1.0 + R*R, 2.0); }; + // Analytic derivative + dSigmaFunc = [](double R)->double + { return -16.0 * R / 3.0 / std::pow(1.0 + R*R, 3.0); }; + // Expected result + RhoFunc = [](double r)->double + { return 1.0 / std::pow(1.0 + r*r, 2.5); }; + break; + } + + Deprojector D(SigmaFunc, dSigmaFunc, /*R_data_min=*/0.01, /*R_data_max=*/10.0, + /*R_max_extend=*/50.0, /*tail_power=*/-4.0, /*Ngrid=*/6000); + + std::vector r_eval; + int Nr = 150; + for (int i = 0; i < Nr; ++i) { + double t = (double)i / (Nr - 1); + r_eval.push_back(0.01 + t * 8.0); } + auto rho = D.rho(r_eval); - // Example B: construct from analytic functor + analytic derivative - { - auto SigmaFunc = [](double R)->double { return std::pow(1.0 + R*R, -1.5); }; - auto dSigmaFunc = [](double R)->double { return -3.0 * R / std::pow(1.0 + R*R, -2.5); }; // analytic derivative - - Deprojector D(SigmaFunc, dSigmaFunc, /*R_data_min=*/0.01, /*R_data_max=*/10.0, - /*R_max_extend=*/50.0, /*tail_power=*/-4.0, /*Ngrid=*/6000); - - std::vector r_eval; - int Nr = 150; - for (int i = 0; i < Nr; ++i) { - double t = (double)i / (Nr - 1); - r_eval.push_back(0.01 + t * 8.0); - } - auto rho = D.rho(r_eval); - - std::ofstream ofs("rho_from_functor.txt"); - for (size_t i = 0; i < r_eval.size(); ++i) ofs << r_eval[i] << " " << rho[i] << "\n"; - ofs.close(); - std::cout << "Wrote rho_from_functor.txt\n"; + std::ofstream ofs("rho_test.txt"); + for (size_t i = 0; i < r_eval.size(); ++i) { + ofs << std::setw(16) << r_eval[i] + << std::setw(16) << rho[i] + << std::setw(16) << RhoFunc(r_eval[i]) + << std::endl; } + ofs.close(); + std::cout << "Wrote rho_test.txt\n"; return 0; } diff --git a/utils/Test/testEmp.cc b/utils/Test/testEmp.cc index 9ee505732..c3e8e9309 100644 --- a/utils/Test/testEmp.cc +++ b/utils/Test/testEmp.cc @@ -28,9 +28,10 @@ int main(int argc, char* argv[]) // Parse command-line options cxxopts::Options options("testDonut", - "Test the EmpDeproj class for an inner donut-shaped " - "density distribution, using the Toomre profile as " - "a test case."); + "Test the EmpDeproj class for any Python-supplied density function.\n" + "If the Python module is not supplied, one of the hard-coded\n" + "functions: Plummer, Gaussian, Toomre may be selected. The internal\n" + "Abel method: Derivative, Substraction, or IBP may be chosen as well.\n"); options.add_options() ("h,help", "Print help") diff --git a/utils/Test/testEmpDeproj.cc b/utils/Test/testEmpDeproj.cc index 966313028..54a3a8cc2 100644 --- a/utils/Test/testEmpDeproj.cc +++ b/utils/Test/testEmpDeproj.cc @@ -27,8 +27,8 @@ int main(int argc, char* argv[]) // Parse command-line options // cxxopts::Options options("testEmpDeproj", - "Test the EmpDeproj class against Deprojector" - "for various surface density profiles."); + "Test the EmpDeproj class against Deproject" + "for various surface density profiles.\n"); options.add_options() ("h,help", "Print help") ("type", "Surface density type (plummer, gaussian, toomre)", cxxopts::value(type)->default_value("toomre")) From 6402d49b314168df35a6f44e646cf847c4535c83 Mon Sep 17 00:00:00 2001 From: "Martin D. Weinberg" Date: Sat, 14 Mar 2026 13:14:30 -0400 Subject: [PATCH 027/131] Only print deprojection info from one node --- expui/BiorthBasis.cc | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/expui/BiorthBasis.cc b/expui/BiorthBasis.cc index ca7b01472..f8a2e426d 100644 --- a/expui/BiorthBasis.cc +++ b/expui/BiorthBasis.cc @@ -1745,9 +1745,10 @@ namespace BasisClasses else if (PTYPE == DeprojType::toomre) { model = std::make_shared(1.0, H, 5.0); } else if (PTYPE == DeprojType::python) { - model = std::make_shared(pyproj, acyl); - std::cout << "Using AxiSymPyModel for deprojection from Python function <" - << pyname << ">" << std::endl; + model = std::make_shared(pyproj, 1.0); + if (myid==0) + std::cout << "---- Using AxiSymPyModel for deprojection from " + << "Python module <" << pyproj << ">" << std::endl; } else { // Default to exponential model = std::make_shared(1.0, H); } From c934a7961c5a9d26fcdb94d36567262c2b5d418c Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Sat, 14 Mar 2026 18:12:59 -0400 Subject: [PATCH 028/131] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- expui/BiorthBasis.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/expui/BiorthBasis.cc b/expui/BiorthBasis.cc index dd12aaf70..b294d4da9 100644 --- a/expui/BiorthBasis.cc +++ b/expui/BiorthBasis.cc @@ -1253,7 +1253,7 @@ namespace BasisClasses "coefCompute", "coefMaster", "pyname", - "pyproj" + "pyproj", "nint", "totalCovar", "fullCovar" From 5a95b504e5b6288eae2e952a7768c65305f6acf0 Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Sat, 14 Mar 2026 18:14:38 -0400 Subject: [PATCH 029/131] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- utils/Test/testDeproject.cc | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/utils/Test/testDeproject.cc b/utils/Test/testDeproject.cc index 046855022..c9ae00e40 100644 --- a/utils/Test/testDeproject.cc +++ b/utils/Test/testDeproject.cc @@ -7,6 +7,10 @@ #include "Deprojector.H" #include "cxxopts.H" +namespace { + constexpr double pi = std::acos(-1.0); +} + using namespace Deproject; int main(int argc, char* argv[]) @@ -70,7 +74,7 @@ int main(int argc, char* argv[]) { return -3.0 * R / std::pow(1.0 + R*R, 2.5); }; // Expected result RhoFunc = [](double r)->double - { return 2.0 / std::pow(1.0 + r*r, 2.0) / M_PI; }; + { return 2.0 / std::pow(1.0 + r*r, 2.0) / pi; }; break; case Type::Gaussian: // Test function @@ -81,7 +85,7 @@ int main(int argc, char* argv[]) { return -R*exp(-0.5*R*R); }; // Expected result RhoFunc = [](double r)->double - { return exp(-0.5*r*r)/sqrt(2.0*M_PI); }; + { return exp(-0.5*r*r)/sqrt(2.0*pi); }; break; default: case Type::Plummer: From 402dc2511b6f17a90c24a00c56f2d73a5553a930 Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Sat, 14 Mar 2026 18:15:04 -0400 Subject: [PATCH 030/131] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- utils/Test/testEmpDeproj.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utils/Test/testEmpDeproj.cc b/utils/Test/testEmpDeproj.cc index 54a3a8cc2..c8201c01e 100644 --- a/utils/Test/testEmpDeproj.cc +++ b/utils/Test/testEmpDeproj.cc @@ -27,7 +27,7 @@ int main(int argc, char* argv[]) // Parse command-line options // cxxopts::Options options("testEmpDeproj", - "Test the EmpDeproj class against Deproject" + "Test the EmpDeproj class against Deproject " "for various surface density profiles.\n"); options.add_options() ("h,help", "Print help") From 4513d2a5dffa4776a022e63cf99b2cb28d485248 Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Sat, 14 Mar 2026 18:15:30 -0400 Subject: [PATCH 031/131] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- utils/Test/testEmp.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utils/Test/testEmp.cc b/utils/Test/testEmp.cc index c3e8e9309..81c293fa1 100644 --- a/utils/Test/testEmp.cc +++ b/utils/Test/testEmp.cc @@ -31,7 +31,7 @@ int main(int argc, char* argv[]) "Test the EmpDeproj class for any Python-supplied density function.\n" "If the Python module is not supplied, one of the hard-coded\n" "functions: Plummer, Gaussian, Toomre may be selected. The internal\n" - "Abel method: Derivative, Substraction, or IBP may be chosen as well.\n"); + "Abel method: Derivative, Subtraction, or IBP may be chosen as well.\n"); options.add_options() ("h,help", "Print help") From e719f9f2503b598e9d53205586909fe5b9d86dea Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Sat, 14 Mar 2026 18:16:14 -0400 Subject: [PATCH 032/131] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- utils/Test/CubicSpline.H | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utils/Test/CubicSpline.H b/utils/Test/CubicSpline.H index f9fde2f9a..38bd77b11 100644 --- a/utils/Test/CubicSpline.H +++ b/utils/Test/CubicSpline.H @@ -14,7 +14,7 @@ namespace Deproject // set data (x must be strictly increasing) void set_data(const std::vector& x_in, const std::vector& y_in); - // evaluate spline and its derivative (xx should lie within [xmin(), xmax()], but endpoints are clamped) + // evaluate spline and its derivative (xx is expected in [xmin(), xmax()]; values outside are extrapolated using the end intervals) double eval(double xx) const; double deriv(double xx) const; From 627de499b1c611b8f9d6e71f257bcd105f172c65 Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Sat, 14 Mar 2026 18:16:42 -0400 Subject: [PATCH 033/131] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- utils/Test/testEmpDeproj.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utils/Test/testEmpDeproj.cc b/utils/Test/testEmpDeproj.cc index c8201c01e..9e9ef0374 100644 --- a/utils/Test/testEmpDeproj.cc +++ b/utils/Test/testEmpDeproj.cc @@ -134,7 +134,7 @@ int main(int argc, char* argv[]) } Deprojector D(SigmaFunc, dSigmaFunc, /*R_data_min=*/0.01, /*R_data_max=*/10.0, - /*R_max_extend=*/50.0, /*tail_power=*/-4.0, /*Ngrid=*/6000); + /*R_max_extend=*/50.0, /*tail_power=*/-4.0, /*Ngrid=*/Ngrid); auto SigmaZFunc = [SigmaFunc, H, Rcut, Rwid](double R, double z)->double { double Q = exp(-std::fabs(z)/(2.0*H)); From f5a39b41f0bfc4f9b2d5256e5659fadee4ef3608 Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Sat, 14 Mar 2026 18:17:28 -0400 Subject: [PATCH 034/131] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- utils/Test/testEmpDeproj.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/utils/Test/testEmpDeproj.cc b/utils/Test/testEmpDeproj.cc index 9e9ef0374..e0217cb7e 100644 --- a/utils/Test/testEmpDeproj.cc +++ b/utils/Test/testEmpDeproj.cc @@ -150,8 +150,8 @@ int main(int argc, char* argv[]) std::vector r_eval; for (int i = 0; i < Nr; ++i) { - double t = (double)i / (Nr - 1); - r_eval.push_back(0.01 + t * 8.0); + double t = (Nr > 1) ? static_cast(i) / (Nr - 1) : 0.0; + r_eval.push_back(Rmin + t * (Rmax - Rmin)); } auto rho = D.rho(r_eval); From b6f5c037b794ba0f0726a9b2efa0a79d7930e934 Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Sat, 14 Mar 2026 18:17:46 -0400 Subject: [PATCH 035/131] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- utils/Test/testEmpDeproj.cc | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/utils/Test/testEmpDeproj.cc b/utils/Test/testEmpDeproj.cc index e0217cb7e..1ae2b0158 100644 --- a/utils/Test/testEmpDeproj.cc +++ b/utils/Test/testEmpDeproj.cc @@ -24,6 +24,9 @@ int main(int argc, char* argv[]) double H, Rmin, Rmax, Rcut, Rwid; int Nr, Ngrid, NumR, Nint; + // Define pi in a portable way instead of relying on non-standard M_PI + constexpr double pi = std::acos(-1.0); + // Parse command-line options // cxxopts::Options options("testEmpDeproj", @@ -105,8 +108,8 @@ int main(int argc, char* argv[]) dSigmaFunc = [](double R)->double { return -3.0 * R / std::pow(1.0 + R*R, 2.5); }; // Expected result - RhoFunc = [](double r)->double - { return 2.0 / std::pow(1.0 + r*r, 2.0) / M_PI; }; + RhoFunc = [pi](double r)->double + { return 2.0 / std::pow(1.0 + r*r, 2.0) / pi; }; break; case Type::Gaussian: // Test function @@ -116,8 +119,8 @@ int main(int argc, char* argv[]) dSigmaFunc = [](double R)->double { return -R*exp(-0.5*R*R); }; // Expected result - RhoFunc = [](double r)->double - { return exp(-0.5*r*r)/sqrt(2.0*M_PI); }; + RhoFunc = [pi](double r)->double + { return exp(-0.5*r*r)/sqrt(2.0*pi); }; break; default: case Type::Plummer: From 3dcafad23fa220b6c4309514ba426fbc20cc04b6 Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Sat, 14 Mar 2026 18:18:03 -0400 Subject: [PATCH 036/131] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- utils/Test/EmpDeproj.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utils/Test/EmpDeproj.cc b/utils/Test/EmpDeproj.cc index b43962a5e..51244508b 100644 --- a/utils/Test/EmpDeproj.cc +++ b/utils/Test/EmpDeproj.cc @@ -53,7 +53,7 @@ EmpDeproj::EmpDeproj(double H, double RMIN, double RMAX, int NUMR, int NINT, Linear1d surf(rl, sigI); surfRg = surf; - // Now, compute Abel inverion integral + // Now, compute Abel inversion integral // for (int i=0; i Date: Sat, 14 Mar 2026 18:18:27 -0400 Subject: [PATCH 037/131] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- utils/Test/EmpDeproj.cc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/utils/Test/EmpDeproj.cc b/utils/Test/EmpDeproj.cc index 51244508b..7c6d2d5a2 100644 --- a/utils/Test/EmpDeproj.cc +++ b/utils/Test/EmpDeproj.cc @@ -9,6 +9,10 @@ #include #include +#ifndef M_PI +#define M_PI std::acos(-1.0) +#endif + #include "EmpDeproj.H" #include "gaussQ.H" From 79e0233c0b1635b9bf00f273ecce26dd900b2056 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 14 Mar 2026 22:46:59 +0000 Subject: [PATCH 038/131] Initial plan From 9c0d024e6f38aba68da09c8c9a551c7fead715b3 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 14 Mar 2026 22:49:17 +0000 Subject: [PATCH 039/131] Fix clang build: change constexpr to const for pi = std::acos(-1.0) Co-authored-by: The9Cat <25960766+The9Cat@users.noreply.github.com> --- utils/Test/testDeproject.cc | 2 +- utils/Test/testEmpDeproj.cc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/utils/Test/testDeproject.cc b/utils/Test/testDeproject.cc index c9ae00e40..8675b9643 100644 --- a/utils/Test/testDeproject.cc +++ b/utils/Test/testDeproject.cc @@ -8,7 +8,7 @@ #include "cxxopts.H" namespace { - constexpr double pi = std::acos(-1.0); + const double pi = std::acos(-1.0); } using namespace Deproject; diff --git a/utils/Test/testEmpDeproj.cc b/utils/Test/testEmpDeproj.cc index 1ae2b0158..a502331ba 100644 --- a/utils/Test/testEmpDeproj.cc +++ b/utils/Test/testEmpDeproj.cc @@ -25,7 +25,7 @@ int main(int argc, char* argv[]) int Nr, Ngrid, NumR, Nint; // Define pi in a portable way instead of relying on non-standard M_PI - constexpr double pi = std::acos(-1.0); + const double pi = std::acos(-1.0); // Parse command-line options // From 45a578f1ac29d591463bd7043af6c2b167aa1df8 Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Sun, 15 Mar 2026 12:26:17 -0400 Subject: [PATCH 040/131] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- expui/BiorthBasis.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/expui/BiorthBasis.cc b/expui/BiorthBasis.cc index b294d4da9..f3fa14c46 100644 --- a/expui/BiorthBasis.cc +++ b/expui/BiorthBasis.cc @@ -1224,7 +1224,7 @@ namespace BasisClasses "ignore", "deproject", "dmodel", - "logr", + "ppow", "pcavar", "pcaeof", "pcavtk", From 36120a312e42ef9b03cb53d4e14129420504a5b0 Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Sun, 15 Mar 2026 12:26:47 -0400 Subject: [PATCH 041/131] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- expui/BiorthBasis.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/expui/BiorthBasis.cc b/expui/BiorthBasis.cc index f3fa14c46..09e285e1e 100644 --- a/expui/BiorthBasis.cc +++ b/expui/BiorthBasis.cc @@ -1500,7 +1500,7 @@ namespace BasisClasses if (conf["ashift" ]) ashift = conf["ashift" ].as(); if (conf["rfactor" ]) rfactor = conf["rfactor" ].as(); if (conf["rtrunc" ]) rtrunc = conf["rtrunc" ].as(); - if (conf["pow" ]) ppow = conf["ppow" ].as(); + if (conf["ppow" ]) ppow = conf["ppow" ].as(); if (conf["mtype" ]) mtype = conf["mtype" ].as(); if (conf["dtype" ]) dtype = conf["dtype" ].as(); if (conf["vflag" ]) vflag = conf["vflag" ].as(); From 1b1f297a91bc5ad37ce455e0dd7fd2bf66e68eeb Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Sun, 15 Mar 2026 12:27:23 -0400 Subject: [PATCH 042/131] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- expui/BiorthBasis.cc | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/expui/BiorthBasis.cc b/expui/BiorthBasis.cc index 09e285e1e..93245b321 100644 --- a/expui/BiorthBasis.cc +++ b/expui/BiorthBasis.cc @@ -1731,6 +1731,16 @@ namespace BasisClasses else if (PTYPE == DeprojType::toomre) { model = std::make_shared(1.0, H, 5.0); } else if (PTYPE == DeprojType::python) { + if (pyproj.empty()) { + if (myid==0) { + std::cout << "DeprojType is set to 'python' but no Python " + << "projection module name (pyname/pyproj) was provided." + << std::endl; + } + throw std::runtime_error( + "Cylindrical::initialize: DeprojType 'python' requires a " + "non-empty Python module name (pyname/pyproj)."); + } model = std::make_shared(pyproj, 1.0); if (myid==0) std::cout << "---- Using AxiSymPyModel for deprojection from " From fdb16edd212d78d59092c0cc546db8f9532cc43a Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Sun, 15 Mar 2026 12:27:55 -0400 Subject: [PATCH 043/131] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- utils/Test/EmpDeproj.cc | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/utils/Test/EmpDeproj.cc b/utils/Test/EmpDeproj.cc index 7c6d2d5a2..46f28835a 100644 --- a/utils/Test/EmpDeproj.cc +++ b/utils/Test/EmpDeproj.cc @@ -8,6 +8,7 @@ #include #include #include +#include #ifndef M_PI #define M_PI std::acos(-1.0) @@ -22,6 +23,23 @@ EmpDeproj::EmpDeproj(double H, double RMIN, double RMAX, int NUMR, int NINT, std::function func, AbelType type) { + // Validate input arguments to avoid domain errors and division by zero + if (H <= 0.0) { + throw std::invalid_argument("EmpDeproj: H must be > 0"); + } + if (RMIN <= 0.0) { + throw std::invalid_argument("EmpDeproj: RMIN must be > 0"); + } + if (RMAX <= RMIN) { + throw std::invalid_argument("EmpDeproj: RMAX must be > RMIN > 0"); + } + if (NUMR < 2) { + throw std::invalid_argument("EmpDeproj: NUMR must be >= 2"); + } + if (NINT < 1) { + throw std::invalid_argument("EmpDeproj: NINT must be >= 1"); + } + LegeQuad lq(NINT); std::vector rr(NUMR), rl(NUMR), sigI(NUMR), rhoI(NUMR, 0.0); From d2406792371199d2cb7629a1230049ee9f4a0a3b Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Sun, 15 Mar 2026 12:28:23 -0400 Subject: [PATCH 044/131] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- utils/Test/testEmp.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/utils/Test/testEmp.cc b/utils/Test/testEmp.cc index 81c293fa1..524d72e52 100644 --- a/utils/Test/testEmp.cc +++ b/utils/Test/testEmp.cc @@ -275,6 +275,9 @@ int main(int argc, char* argv[]) EmpDeproj E(H, Rmin, Rmax, NumR, Nint, SigmaZFunc, type_enum); // radial evaluation points + if (Nr < 2) { + throw std::runtime_error("Nr must be at least 2 (received " + std::to_string(Nr) + ")"); + } std::vector r_eval; for (int i = 0; i < Nr; ++i) { double t = (double)i / (Nr - 1); From 18b14555ab8ced6b606bc998ed00772d977e77db Mon Sep 17 00:00:00 2001 From: "Martin D. Weinberg" Date: Mon, 16 Mar 2026 16:41:46 -0400 Subject: [PATCH 045/131] Accidentally deleted the 'logr' key; restored --- expui/BiorthBasis.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/expui/BiorthBasis.cc b/expui/BiorthBasis.cc index 93245b321..528f354e5 100644 --- a/expui/BiorthBasis.cc +++ b/expui/BiorthBasis.cc @@ -1223,6 +1223,7 @@ namespace BasisClasses "expcond", "ignore", "deproject", + "logr", "dmodel", "ppow", "pcavar", From ab919512abc3c0bd962fd9e9fd313ce4ad96cf12 Mon Sep 17 00:00:00 2001 From: Michael Petersen Date: Mon, 23 Mar 2026 14:06:28 +0000 Subject: [PATCH 046/131] Apply suggestions from code review This applies a couple more copilot suggestions. Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- exputil/EmpCylSL.cc | 2 +- utils/Test/EmpDeproj.H | 17 +++++++++++------ utils/Test/testDeproject.cc | 1 + 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/exputil/EmpCylSL.cc b/exputil/EmpCylSL.cc index 08f1c4f20..8fc5e5ba2 100644 --- a/exputil/EmpCylSL.cc +++ b/exputil/EmpCylSL.cc @@ -485,7 +485,7 @@ void EmpCylSL::create_deprojection(double H, double Rf, int NUMR, int NINT, Linear1d surf(rl, sigI); - // Now, compute Abel inverion integral + // Now, compute Abel inversion integral // for (int i=0; i +#include +#include #include "interp.H" class EmpDeproj @@ -22,19 +24,22 @@ public: ~EmpDeproj() {} //! Evaluate deprojected density at a single radius - double density(double R) + double density(double R) const { - return densRg.eval(log(R)); + assert(R > 0.0); + return densRg.eval(std::log(R)); } - double surfaceDensity(double R) + double surfaceDensity(double R) const { - return surfRg.eval(log(R)); + assert(R > 0.0); + return surfRg.eval(std::log(R)); } //! Evaluate deprojected mass at a single radius - double mass(double R) + double mass(double R) const { - return massRg.eval(log(R)); + assert(R > 0.0); + return massRg.eval(std::log(R)); } }; diff --git a/utils/Test/testDeproject.cc b/utils/Test/testDeproject.cc index 8675b9643..ed606a312 100644 --- a/utils/Test/testDeproject.cc +++ b/utils/Test/testDeproject.cc @@ -3,6 +3,7 @@ #include #include #include +#include #include "Deprojector.H" #include "cxxopts.H" From 446d52bc79139a46cca0079b8a90f796091ae9b1 Mon Sep 17 00:00:00 2001 From: michael-petersen Date: Mon, 23 Mar 2026 14:12:14 +0000 Subject: [PATCH 047/131] add version number increment proposal --- include/EmpCylSL.H | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/include/EmpCylSL.H b/include/EmpCylSL.H index a05179d1f..e6822ac01 100644 --- a/include/EmpCylSL.H +++ b/include/EmpCylSL.H @@ -239,7 +239,9 @@ protected: bool ReadH5Cache(); //! Cache versioning - inline static const std::string Version = "1.0"; + // Version 1.0 corresponds to bases generated with the first public release of EXP (7.8). + // Version 1.1 corresponds to bases generated with improved Abel inversion and deprojection methods (7.10). + inline static const std::string Version = "1.1"; //! The cache file name std::string cachefile; From cb3c977ff3d2bdfa41143acf1fb4d06fc0dfb954 Mon Sep 17 00:00:00 2001 From: michael-petersen Date: Mon, 23 Mar 2026 14:24:59 +0000 Subject: [PATCH 048/131] erroneous const breaking compile --- utils/Test/EmpDeproj.H | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/utils/Test/EmpDeproj.H b/utils/Test/EmpDeproj.H index 6c6c2c818..0120021fb 100644 --- a/utils/Test/EmpDeproj.H +++ b/utils/Test/EmpDeproj.H @@ -24,20 +24,20 @@ public: ~EmpDeproj() {} //! Evaluate deprojected density at a single radius - double density(double R) const + double density(double R) { assert(R > 0.0); return densRg.eval(std::log(R)); } - double surfaceDensity(double R) const + double surfaceDensity(double R) { assert(R > 0.0); return surfRg.eval(std::log(R)); } //! Evaluate deprojected mass at a single radius - double mass(double R) const + double mass(double R) { assert(R > 0.0); return massRg.eval(std::log(R)); From ccd4630ac91ee88c0588ab8151b685cdd90feb3d Mon Sep 17 00:00:00 2001 From: "Martin D. Weinberg" Date: Mon, 23 Mar 2026 18:34:04 -0400 Subject: [PATCH 049/131] Added first implemenation for saving and reading DTYPE and Python md5sum info --- expui/BiorthBasis.cc | 135 ++++++++++++++++++++++++++++++++++++++++- exputil/CMakeLists.txt | 2 +- exputil/getmd5sum.cc | 35 +++++++++++ include/exputils.H | 4 ++ 4 files changed, 174 insertions(+), 2 deletions(-) create mode 100644 exputil/getmd5sum.cc diff --git a/expui/BiorthBasis.cc b/expui/BiorthBasis.cc index 528f354e5..70c251481 100644 --- a/expui/BiorthBasis.cc +++ b/expui/BiorthBasis.cc @@ -1596,7 +1596,105 @@ namespace BasisClasses // Attempt to read EOF cache // - if (sl->read_cache() == 0) { + int cache_status = sl->read_cache(); + + // Define the HighFive mapping for DTYPE + // + HighFive::EnumType disk_type({ + {"constant", DiskType::constant}, + {"gaussian", DiskType::gaussian}, + {"mn", DiskType::mn}, + {"exponential", DiskType::exponential}, + {"doubleexpon", DiskType::doubleexpon}, + {"diskbulge", DiskType::diskbulge}, + {"python", DiskType::python} + }); + + std::map disk_type_string = { + {DiskType::constant, "constant"}, + {DiskType::gaussian, "gaussian"}, + {DiskType::mn, "mn"}, + {DiskType::exponential, "exponential"}, + {DiskType::doubleexpon, "doubleexpon"}, + {DiskType::diskbulge, "diskbulge"}, + {DiskType::python, "python"} + }; + + + // Checking for cache consistency with current DiskType and Python module (if applicable) + // + if (cache_status == 1) { + + try { + // Open the cache file for reading the Python metadata + // + HighFive::File file(cachename, HighFive::File::ReadOnly); + + // Sanity: check that the DiskType attribute exists + // + if (!file.hasAttribute("DiskType")) { + if (myid==0) { + std::cout << "---- Cylindrical: DiskType attribute not found in cache file <" << cachename << ">. " + << "---- This may indicate an old cache file created before DiskType metadata was added. " + << "---- We will continue...but consider remaking the cache to avoid confusion." << std::endl; + } + } else { + // Open existing DiskType attribute + // + auto read_attr = file.getAttribute("DiskType"); + + DiskType loaded_dtype; + read_attr.read(loaded_dtype); + + if (loaded_dtype != DTYPE) { + if (myid==0) { + std::cout << "---- Cylindrical: DiskType for cache file <" << cachename << "> is <" + << disk_type_string[loaded_dtype] << ">, which does not match the requested DiskType <" + << disk_type_string[DTYPE] << ">. Forcing cache recomputation." << std::endl; + } + // Force cache recomputation + cache_status = 0; + } + else if (loaded_dtype == DiskType::python) { + // Get the pyname attribute + auto read_attr = file.getAttribute("pyname"); + std::string loaded_pyname; + read_attr.read(loaded_pyname); + + std::string loaded_md5, current_md5; + + // Get the md5sum for requested Python module + try { + current_md5 = get_md5sum(pyname); + loaded_md5 = get_md5sum(loaded_pyname); + } catch (const std::runtime_error& e) { + std::cerr << "Error: " << e.what() << std::endl; + } + + // Check that the md5sums match for the current Python + // module and the loaded Python module used to create the + // cache. If they do not match, force cache recomputation + // to ensure consistency with the current Python module. + if (current_md5 != loaded_md5) { + if (myid==0) { + std::cout << "---- Cylindrical: Python module for disk density has changed since cache creation." << std::endl + << "---- Current module: <" << pyname << ">, md5sum: " << current_md5 << std::endl + << "---- Loaded module: <" << loaded_pyname << ">, md5sum: " << loaded_md5 << std::endl + << "---- Forcing cache recomputation to ensure consistency with current Python module." << std::endl; + } + cache_status = 0; + } + } + } + } + catch (const HighFive::Exception& err) { + std::cerr << "---- BiorthBasis inconsistency in Cylindrical cache: " << err.what() << std::endl; + std::cerr << "---- Forcing cache recomputation." << std::endl; + cache_status = 0; // Fallback... + } + } + + if (cache_status == 0) { // Remake cylindrical basis // @@ -1771,6 +1869,41 @@ namespace BasisClasses }; sl->generate_eof(rnum, pnum, tnum, f); + + try { + // Open the cache file for writing the Python metadata + // + HighFive::File file(cachename, HighFive::File::ReadWrite); + + // Create a Scalar DataSpace for the single value + HighFive::DataSpace space = HighFive::DataSpace::From(DTYPE); + + // Create the attribute using the explicit (Name, DataSpace, + // DataType) signature using the base class 'DataType' to + // match the expected signature + auto attr = file.createAttribute("DiskType", space, (HighFive::DataType)disk_type); + + // Write the actual enum value + attr.write(DTYPE); + + // Get the md5sum for the Python module + if (DTYPE == DiskType::python) { + try { + std::string md5_hash = get_md5sum(pyname); + file.createAttribute + ("pyname", + HighFive::DataSpace::From(pyname)).write(pyname); + } catch (const std::runtime_error& e) { + std::cerr << "Error: " << e.what() << std::endl; + std::cerr << "Can not write the md5 hash to HDF5" << std::endl; + } + } + + } catch (const HighFive::Exception& err) { + std::cerr << err.what() << std::endl; + std::cerr << "Error writing metadata to cache file <" << cachename + << std::endl; + } } // Orthogonality sanity check diff --git a/exputil/CMakeLists.txt b/exputil/CMakeLists.txt index 0a029c2ec..3ba43a308 100644 --- a/exputil/CMakeLists.txt +++ b/exputil/CMakeLists.txt @@ -14,7 +14,7 @@ set(UTIL_SRC nrutil.cc elemfunc.cc euler.cc euler_slater.cc TransformFFT.cc QDHT.cc YamlCheck.cc # Hankel.cc parseVersionString.cc EXPmath.cc laguerre_polynomial.cpp YamlConfig.cc orthoTest.cc OrthoFunction.cc VtkGrid.cc - Sutils.cc fpetrap.cc) + Sutils.cc fpetrap.cc getmd5sum.cc) if(HAVE_VTK) list(APPEND UTIL_SRC VtkPCA.cc) diff --git a/exputil/getmd5sum.cc b/exputil/getmd5sum.cc new file mode 100644 index 000000000..b8ab2ca4a --- /dev/null +++ b/exputil/getmd5sum.cc @@ -0,0 +1,35 @@ +#include +#include +#include +#include +#include +#include + +std::string get_md5sum(const std::string& filename) +{ + // Command to execute: md5sum + std::string command = "md5sum " + filename; + std::array buffer; + std::string result = ""; + + // Use popen to execute the command and read its output + // "r" mode opens the pipe for reading + std::unique_ptr + pipe(popen(command.c_str(), "r"), pclose); + if (!pipe) { + throw std::runtime_error("popen() failed!"); + } + + // Read the output line by line + while (fgets(buffer.data(), buffer.size(), pipe.get()) != nullptr) { + result += buffer.data(); + } + + // The stanard GNU/Linux md5sum output format is: "32-char-hash + // filename". We extract the 32-character hash part... + if (result.length() >= 32) { + return result.substr(0, 32); + } else { + throw std::runtime_error("Failed to parse md5sum output."); + } +} diff --git a/include/exputils.H b/include/exputils.H index 986aed037..c530e8e68 100644 --- a/include/exputils.H +++ b/include/exputils.H @@ -12,4 +12,8 @@ orthoCompute(const std::vector& tests); void orthoTest(const std::vector& tests, const std::string& classname, const std::string& indexname); +// Signature for md5sum function computation +std::string get_md5sum(const std::string&); + + #endif From 6acbe733953460856bca78231c63869d41234e20 Mon Sep 17 00:00:00 2001 From: "Martin D. Weinberg" Date: Mon, 23 Mar 2026 21:15:40 -0400 Subject: [PATCH 050/131] Added ptype support to the Cylindrical cache --- expui/BiorthBasis.cc | 153 ++++++++++++++++++++++++++++++------------- 1 file changed, 109 insertions(+), 44 deletions(-) diff --git a/expui/BiorthBasis.cc b/expui/BiorthBasis.cc index 70c251481..2f996cb14 100644 --- a/expui/BiorthBasis.cc +++ b/expui/BiorthBasis.cc @@ -1598,19 +1598,7 @@ namespace BasisClasses // int cache_status = sl->read_cache(); - // Define the HighFive mapping for DTYPE - // - HighFive::EnumType disk_type({ - {"constant", DiskType::constant}, - {"gaussian", DiskType::gaussian}, - {"mn", DiskType::mn}, - {"exponential", DiskType::exponential}, - {"doubleexpon", DiskType::doubleexpon}, - {"diskbulge", DiskType::diskbulge}, - {"python", DiskType::python} - }); - - std::map disk_type_string = { + std::map disk_type = { {DiskType::constant, "constant"}, {DiskType::gaussian, "gaussian"}, {DiskType::mn, "mn"}, @@ -1620,7 +1608,6 @@ namespace BasisClasses {DiskType::python, "python"} }; - // Checking for cache consistency with current DiskType and Python module (if applicable) // if (cache_status == 1) { @@ -1634,8 +1621,8 @@ namespace BasisClasses // if (!file.hasAttribute("DiskType")) { if (myid==0) { - std::cout << "---- Cylindrical: DiskType attribute not found in cache file <" << cachename << ">. " - << "---- This may indicate an old cache file created before DiskType metadata was added. " + std::cout << "---- Cylindrical: DiskType attribute not found in cache file <" << cachename << ">. " << std::endl + << "---- This may indicate an old cache file created before DiskType metadata was added. " << std::endl << "---- We will continue...but consider remaking the cache to avoid confusion." << std::endl; } } else { @@ -1643,30 +1630,31 @@ namespace BasisClasses // auto read_attr = file.getAttribute("DiskType"); - DiskType loaded_dtype; + std::string loaded_dtype; read_attr.read(loaded_dtype); - if (loaded_dtype != DTYPE) { + DiskType disktype = dtlookup.at(loaded_dtype); + + if (disktype != DTYPE) { if (myid==0) { std::cout << "---- Cylindrical: DiskType for cache file <" << cachename << "> is <" - << disk_type_string[loaded_dtype] << ">, which does not match the requested DiskType <" - << disk_type_string[DTYPE] << ">. Forcing cache recomputation." << std::endl; + << loaded_dtype << ">, which does not match the requested DiskType <" + << dtype << ">. Forcing cache recomputation." << std::endl; } // Force cache recomputation cache_status = 0; } - else if (loaded_dtype == DiskType::python) { + else if (disktype == DiskType::python) { // Get the pyname attribute - auto read_attr = file.getAttribute("pyname"); - std::string loaded_pyname; - read_attr.read(loaded_pyname); + std::vector pyinfo; + auto read_attr = file.getAttribute("pythonDiskType"); + read_attr.read(pyinfo); - std::string loaded_md5, current_md5; - + std::string current_md5; + // Get the md5sum for requested Python module try { current_md5 = get_md5sum(pyname); - loaded_md5 = get_md5sum(loaded_pyname); } catch (const std::runtime_error& e) { std::cerr << "Error: " << e.what() << std::endl; } @@ -1675,16 +1663,80 @@ namespace BasisClasses // module and the loaded Python module used to create the // cache. If they do not match, force cache recomputation // to ensure consistency with the current Python module. - if (current_md5 != loaded_md5) { + if (current_md5 != pyinfo[1]) { if (myid==0) { std::cout << "---- Cylindrical: Python module for disk density has changed since cache creation." << std::endl << "---- Current module: <" << pyname << ">, md5sum: " << current_md5 << std::endl - << "---- Loaded module: <" << loaded_pyname << ">, md5sum: " << loaded_md5 << std::endl + << "---- Loaded module: <" << pyinfo[0] << ">, md5sum: " << pyinfo[1] << std::endl << "---- Forcing cache recomputation to ensure consistency with current Python module." << std::endl; } cache_status = 0; } } + + // Get the deproject attribute + // + read_attr = file.getAttribute("deproject"); + bool loaded_deproject; + read_attr.read(loaded_deproject); + + if (deproject != loaded_deproject) { + if (myid==0) { + std::cout << "---- Cylindrical: deproject flag for cache file <" << cachename << "> is <" + << std::boolalpha << loaded_deproject << std::noboolalpha + << ">, which does not match the requested deproject flag <" + << std::boolalpha << deproject << std::noboolalpha + << ">. Forcing cache recomputation." << std::endl; + } + // Force cache recomputation + cache_status = 0; + } + + if (cache_status == 1 and deproject) { + // Get the dmodel attribute + // + read_attr = file.getAttribute("dmodel"); + std::string loaded_dmodel; + read_attr.read(loaded_dmodel); + + if (loaded_dmodel != dmodel) { + if (myid==0) { + std::cout << "---- Cylindrical: dmodel for cache file <" << cachename << "> is <" + << loaded_dmodel << ">, which does not match the requested dmodel <" + << dmodel << ">. Forcing cache recomputation." << std::endl; + } + // Force cache recomputation + cache_status = 0; + } + + if (cache_status == 1 and dmodel == "python") { + // Get the Python info + // + std::vector pyinfo; + read_attr = file.getAttribute("pythonProjType"); + read_attr.read(pyinfo); + + std::string current_md5; + + // Get the md5sum for requested Python projection module + try { + current_md5 = get_md5sum(pyproj); + } catch (const std::runtime_error& e) { + std::cerr << "Error: " << e.what() << std::endl; + } + // Check that the md5sums match for the current Python projection + // + if (current_md5 != pyinfo[1]) { + if (myid==0) { + std::cout << "---- Cylindrical: Python module for deprojection has changed since cache creation." << std::endl + << "---- Current module: <" << pyproj << ">, md5sum: " << current_md5 << std::endl + << "---- Loaded module: <" << pyinfo[0] << ">, md5sum: " << pyinfo[1] << std::endl + << "---- Forcing cache recomputation to ensure consistency with current Python projection module." << std::endl; + } + cache_status = 0; + } + } + } } } catch (const HighFive::Exception& err) { @@ -1743,7 +1795,7 @@ namespace BasisClasses // Set DiskType. This is the functional form for the disk used to // condition the basis. // - try { // Check for map entry, will through if the + try { // Check for map entry, will throw if the DTYPE = dtlookup.at(dtype); // key is not in the map. if (myid==0) { // Report DiskType @@ -1875,30 +1927,43 @@ namespace BasisClasses // HighFive::File file(cachename, HighFive::File::ReadWrite); - // Create a Scalar DataSpace for the single value - HighFive::DataSpace space = HighFive::DataSpace::From(DTYPE); - - // Create the attribute using the explicit (Name, DataSpace, - // DataType) signature using the base class 'DataType' to - // match the expected signature - auto attr = file.createAttribute("DiskType", space, (HighFive::DataType)disk_type); - - // Write the actual enum value - attr.write(DTYPE); + file.createAttribute("DiskType", + HighFive::DataSpace::From(dtype)).write(dtype); - // Get the md5sum for the Python module + // Write the md5sum for the Python module if (DTYPE == DiskType::python) { try { - std::string md5_hash = get_md5sum(pyname); + std::vector pyinfo = {pyname, get_md5sum(pyname)}; file.createAttribute - ("pyname", - HighFive::DataSpace::From(pyname)).write(pyname); + ("pythonDiskType", HighFive::DataSpace::From(pyinfo)).write(pyinfo); } catch (const std::runtime_error& e) { std::cerr << "Error: " << e.what() << std::endl; std::cerr << "Can not write the md5 hash to HDF5" << std::endl; } } + + // Save the deprojection flag + file.createAttribute + ("deproject", + HighFive::DataSpace::From(deproject)).write(deproject); + + // Reopen the DataSpace for DMODEL since we need to write it as a string + if (deproject) { + file.createAttribute + ("ProjType", HighFive::DataSpace::From(dmodel)).write(dmodel); + if (PTYPE == DeprojType::python) { + try { + std::vector pyinfo = {pyproj, get_md5sum(pyproj)}; + file.createAttribute + ("pythonProjType", + HighFive::DataSpace::From(pyinfo)).write(pyinfo); + } catch (const std::runtime_error& e) { + std::cerr << "Error: " << e.what() << std::endl; + std::cerr << "Can not writine the md5 hash to HDF5" << std::endl; + } + } + } } catch (const HighFive::Exception& err) { std::cerr << err.what() << std::endl; std::cerr << "Error writing metadata to cache file <" << cachename From 8dcc0a81b6c4e6e1b0b1ce2346d3342cb4d4466c Mon Sep 17 00:00:00 2001 From: "Martin D. Weinberg" Date: Mon, 23 Mar 2026 23:15:01 -0400 Subject: [PATCH 051/131] Clean up the unique_ptr using a custom deleter --- exputil/getmd5sum.cc | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/exputil/getmd5sum.cc b/exputil/getmd5sum.cc index b8ab2ca4a..f15b8a9ff 100644 --- a/exputil/getmd5sum.cc +++ b/exputil/getmd5sum.cc @@ -5,8 +5,20 @@ #include #include +// Define the custom deleter +struct PcloseDeleter { + void operator()(FILE* f) const { + if (f) pclose(f); + } +}; + std::string get_md5sum(const std::string& filename) { + // Check if md5sum is available on the system + if (std::system("which md5sum > /dev/null 2>&1") != 0) { + throw std::runtime_error("md5sum command not found. Please ensure it is installed and in your PATH."); + } + // Command to execute: md5sum std::string command = "md5sum " + filename; std::array buffer; @@ -14,8 +26,7 @@ std::string get_md5sum(const std::string& filename) // Use popen to execute the command and read its output // "r" mode opens the pipe for reading - std::unique_ptr - pipe(popen(command.c_str(), "r"), pclose); + std::unique_ptr pipe(popen(command.c_str(), "r")); if (!pipe) { throw std::runtime_error("popen() failed!"); } From 9d11213bb1f121bcc635431391daabb46507f8a1 Mon Sep 17 00:00:00 2001 From: michael-petersen Date: Tue, 24 Mar 2026 10:40:34 +0000 Subject: [PATCH 052/131] restore testED binary --- utils/Test/CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/utils/Test/CMakeLists.txt b/utils/Test/CMakeLists.txt index 6382664cb..01570787d 100644 --- a/utils/Test/CMakeLists.txt +++ b/utils/Test/CMakeLists.txt @@ -1,6 +1,6 @@ set(bin_PROGRAMS testBarrier expyaml orthoTest testDeproj - testEmpDeproj testEmp) + testEmpDeproj testEmp testED) set(common_LINKLIB OpenMP::OpenMP_CXX MPI::MPI_CXX expui exputil @@ -38,7 +38,7 @@ add_executable(testDeproj testDeproject.cc CubicSpline.cc Deprojector.cc) add_executable(testEmpDeproj testEmpDeproj.cc CubicSpline.cc Deprojector.cc EmpDeproj.cc) add_executable(testEmp testEmp.cc EmpDeproj.cc) - +add_executable(testED testED.cc EmpDeproj.cc) foreach(program ${bin_PROGRAMS}) target_link_libraries(${program} ${common_LINKLIB}) From cc7f53e1b7cb031cbc42e69b3fcc4fe99bdf8cd0 Mon Sep 17 00:00:00 2001 From: "Martin D. Weinberg" Date: Tue, 24 Mar 2026 10:37:12 -0400 Subject: [PATCH 053/131] Added standalone md5 hash code to avoid problems with Mac and Windows down the line --- .gitmodules | 3 +++ CMakeLists.txt | 1 + expui/BiorthBasis.cc | 11 +++++++---- exputil/CMakeLists.txt | 14 ++++++++------ exputil/getmd5sum.cc | 3 +++ extern/QuickDigest5 | 1 + utils/Test/CMakeLists.txt | 4 +++- 7 files changed, 26 insertions(+), 11 deletions(-) create mode 160000 extern/QuickDigest5 diff --git a/.gitmodules b/.gitmodules index 3775929f0..cae935cf6 100644 --- a/.gitmodules +++ b/.gitmodules @@ -8,3 +8,6 @@ [submodule "extern/HighFive"] path = extern/HighFive url = https://github.com/BlueBrain/HighFive.git +[submodule "extern/QuickDigest5"] + path = extern/QuickDigest5 + url = https://github.com/nthnn/QuickDigest5.git diff --git a/CMakeLists.txt b/CMakeLists.txt index e2d49dba5..9ed3fa60c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -259,6 +259,7 @@ execute_process( include_directories(${PROJECT_SOURCE_DIR}/extern/yaml-cpp/include) include_directories(${PROJECT_SOURCE_DIR}/extern/pybind11/include) +include_directories(${PROJECT_SOURCE_DIR}/extern/QuickDigest5/include) # Report to the user message("Configuring build for ${GIT_BRANCH}/${GIT_COMMIT} at ${COMPILE_TIME}") diff --git a/expui/BiorthBasis.cc b/expui/BiorthBasis.cc index 2f996cb14..97d94e694 100644 --- a/expui/BiorthBasis.cc +++ b/expui/BiorthBasis.cc @@ -1,5 +1,6 @@ #include +#include "quickdigest5.hpp" #include "YamlCheck.H" #include "EXPException.H" #include "BiorthBasis.H" @@ -1654,7 +1655,7 @@ namespace BasisClasses // Get the md5sum for requested Python module try { - current_md5 = get_md5sum(pyname); + current_md5 = QuickDigest5::fileToHash(pyname); } catch (const std::runtime_error& e) { std::cerr << "Error: " << e.what() << std::endl; } @@ -1720,7 +1721,7 @@ namespace BasisClasses // Get the md5sum for requested Python projection module try { - current_md5 = get_md5sum(pyproj); + current_md5 = QuickDigest5::fileToHash(pyproj); } catch (const std::runtime_error& e) { std::cerr << "Error: " << e.what() << std::endl; } @@ -1933,7 +1934,8 @@ namespace BasisClasses // Write the md5sum for the Python module if (DTYPE == DiskType::python) { try { - std::vector pyinfo = {pyname, get_md5sum(pyname)}; + std::string hash = QuickDigest5::fileToHash(pyname); + std::vector pyinfo = {pyname, hash}; file.createAttribute ("pythonDiskType", HighFive::DataSpace::From(pyinfo)).write(pyinfo); } catch (const std::runtime_error& e) { @@ -1954,7 +1956,8 @@ namespace BasisClasses if (PTYPE == DeprojType::python) { try { - std::vector pyinfo = {pyproj, get_md5sum(pyproj)}; + std::string hash = QuickDigest5::fileToHash(pyproj); + std::vector pyinfo = {pyproj, hash}; file.createAttribute ("pythonProjType", HighFive::DataSpace::From(pyinfo)).write(pyinfo); diff --git a/exputil/CMakeLists.txt b/exputil/CMakeLists.txt index 3ba43a308..7d70b5c02 100644 --- a/exputil/CMakeLists.txt +++ b/exputil/CMakeLists.txt @@ -42,19 +42,21 @@ set(SLEDGE_SRC sledge.f) set(PARTICLE_SRC Particle.cc ParticleReader.cc header.cc) set(CUDA_SRC cudaParticle.cu cudaSLGridMP2.cu) set(PYWRAP_SRC DiskDensityFunc.cc) +set(QD5_SRC ${PROJECT_SOURCE_DIR}/extern/QuickDigest5/src/quickdigest5.cpp) -set(exputil_SOURCES ${ODE_SRC} ${ROOT_SRC} ${QUAD_SRC} - ${RANDOM_SRC} ${UTIL_SRC} ${SPECFUNC_SRC} - ${PHASE_SRC} ${SYMP_SRC} ${INTERP_SRC} ${MASSMODEL_SRC} - ${ORBIT_SRC} ${BIORTH_SRC} ${POLY_SRC} ${GAUSS_SRC} - ${QPDISTF_SRC} ${BESSEL_SRC} ${OPTIMIZATION_SRC} - ${SLEDGE_SRC} ${PARTICLE_SRC} ${CUDA_SRC} ${PYWRAP_SRC}) + +set(exputil_SOURCES ${ODE_SRC} ${ROOT_SRC} ${QUAD_SRC} ${RANDOM_SRC} + ${UTIL_SRC} ${SPECFUNC_SRC} ${PHASE_SRC} ${SYMP_SRC} ${INTERP_SRC} + ${MASSMODEL_SRC} ${ORBIT_SRC} ${BIORTH_SRC} ${POLY_SRC} ${GAUSS_SRC} + ${QPDISTF_SRC} ${BESSEL_SRC} ${OPTIMIZATION_SRC} ${SLEDGE_SRC} + ${PARTICLE_SRC} ${CUDA_SRC} ${PYWRAP_SRC} ${QD5_SRC}) set(common_INCLUDE_DIRS $ $ $ ${CMAKE_BINARY_DIR} $ $ + $ ${DEP_INC} ${EIGEN3_INCLUDE_DIR} ${HDF5_INCLUDE_DIRS} ${FFTW_INCLUDE_DIRS}) diff --git a/exputil/getmd5sum.cc b/exputil/getmd5sum.cc index f15b8a9ff..bea4b3673 100644 --- a/exputil/getmd5sum.cc +++ b/exputil/getmd5sum.cc @@ -1,3 +1,6 @@ +// Initial reference implementation. Better to use QuickDigest5 which +// is currently a git submodule. + #include #include #include diff --git a/extern/QuickDigest5 b/extern/QuickDigest5 new file mode 160000 index 000000000..1d61aece0 --- /dev/null +++ b/extern/QuickDigest5 @@ -0,0 +1 @@ +Subproject commit 1d61aece0e023e4c41cf24547fa1ac2f8028219d diff --git a/utils/Test/CMakeLists.txt b/utils/Test/CMakeLists.txt index 123e6120d..1d006a1a5 100644 --- a/utils/Test/CMakeLists.txt +++ b/utils/Test/CMakeLists.txt @@ -1,6 +1,6 @@ set(bin_PROGRAMS testBarrier expyaml orthoTest testDeproj - testEmpDeproj testEmp) + testEmpDeproj testEmp testmd5) set(common_LINKLIB OpenMP::OpenMP_CXX MPI::MPI_CXX expui exputil yaml-cpp ${VTK_LIBRARIES}) @@ -11,6 +11,7 @@ endif() set(common_INCLUDE $ + $ $ $ ${CMAKE_BINARY_DIR} ${DEP_INC} @@ -37,6 +38,7 @@ add_executable(testDeproj testDeproject.cc CubicSpline.cc Deprojector.cc) add_executable(testEmpDeproj testEmpDeproj.cc CubicSpline.cc Deprojector.cc EmpDeproj.cc) add_executable(testEmp testEmp.cc EmpDeproj.cc) +add_executable(testmd5 testmd5.cc) foreach(program ${bin_PROGRAMS}) target_link_libraries(${program} ${common_LINKLIB}) From 11987e503f7dfacd9d0a569865c70e66bb0eb6a2 Mon Sep 17 00:00:00 2001 From: "Martin D. Weinberg" Date: Tue, 24 Mar 2026 10:45:30 -0400 Subject: [PATCH 054/131] Added missing md5 hash test code --- utils/Test/testmd5.cc | 48 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 utils/Test/testmd5.cc diff --git a/utils/Test/testmd5.cc b/utils/Test/testmd5.cc new file mode 100644 index 000000000..d8895000b --- /dev/null +++ b/utils/Test/testmd5.cc @@ -0,0 +1,48 @@ +// This test verifies that QuickDigest5 correctly computes the MD5 +// hash of a file + +#include +#include + +#include "quickdigest5.hpp" + +#include "exputils.H" // For get_md5sum which uses the system's md5sum + // command for verification + +int main(int argc, char* argv[]) +{ + // Default to example.txt if no argument + std::string filePath = argc > 1 ? argv[1] : "example.txt"; + + // Check if the file exists before trying to hash it + std::filesystem::path p(filePath); + if (!std::filesystem::exists(p)) { + std::cout << "File <" << filePath << "> not found." << std::endl + << "Usage: " << argv[0] << " [file_path]" << std::endl + << "Defaulting to example.txt if it exists." << std::endl; + } + + // One-line method to get the hex digest of a file + std::string hash = QuickDigest5::fileToHash(filePath); + + if (!hash.empty()) { + std::cout << "MD5: " << hash << std::endl; + } else { + std::cerr << "Error: Could not process file." << std::endl; + } + + // System version of md5sum for comparison + try { + std::string systemHash = get_md5sum(filePath); + std::cout << "System md5sum: " << systemHash << std::endl; + if (hash == systemHash) { + std::cout << "Success: hashes match!" << std::endl; + } else { + std::cerr << "Error: hashes do not match!" << std::endl; + } + } catch (const std::exception& e) { + std::cerr << "Error computing system md5sum: " << e.what() << std::endl; + } + + return 0; +} From fc16ed95c5ba0d1689fd745f4295ba7c48411d25 Mon Sep 17 00:00:00 2001 From: "Martin D. Weinberg" Date: Tue, 24 Mar 2026 11:14:39 -0400 Subject: [PATCH 055/131] Additional cache failure info for debug --- expui/BiorthBasis.cc | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/expui/BiorthBasis.cc b/expui/BiorthBasis.cc index 97d94e694..69cf5ab26 100644 --- a/expui/BiorthBasis.cc +++ b/expui/BiorthBasis.cc @@ -1638,9 +1638,15 @@ namespace BasisClasses if (disktype != DTYPE) { if (myid==0) { - std::cout << "---- Cylindrical: DiskType for cache file <" << cachename << "> is <" - << loaded_dtype << ">, which does not match the requested DiskType <" - << dtype << ">. Forcing cache recomputation." << std::endl; + std::cout << "---- Cylindrical: DiskType for cache file <" + << cachename << "> is <" + << loaded_dtype << ">," << std::endl + << "which does not match the requested DiskType <" + << dtype << ">, disktype=" + << (int)disktype << ", DTYPE=" + << (int)DTYPE << std::endl + << "---- Cylindrical: forcing cache recomputation" + << std::endl; } // Force cache recomputation cache_status = 0; @@ -1669,7 +1675,7 @@ namespace BasisClasses std::cout << "---- Cylindrical: Python module for disk density has changed since cache creation." << std::endl << "---- Current module: <" << pyname << ">, md5sum: " << current_md5 << std::endl << "---- Loaded module: <" << pyinfo[0] << ">, md5sum: " << pyinfo[1] << std::endl - << "---- Forcing cache recomputation to ensure consistency with current Python module." << std::endl; + << "---- Cylindrical: forcing cache recomputation to ensure consistency" << std::endl; } cache_status = 0; } @@ -1687,7 +1693,8 @@ namespace BasisClasses << std::boolalpha << loaded_deproject << std::noboolalpha << ">, which does not match the requested deproject flag <" << std::boolalpha << deproject << std::noboolalpha - << ">. Forcing cache recomputation." << std::endl; + << ">" << std::endl + << "---- Cylindrical: forcing cache recomputation" << std::endl; } // Force cache recomputation cache_status = 0; @@ -1704,7 +1711,8 @@ namespace BasisClasses if (myid==0) { std::cout << "---- Cylindrical: dmodel for cache file <" << cachename << "> is <" << loaded_dmodel << ">, which does not match the requested dmodel <" - << dmodel << ">. Forcing cache recomputation." << std::endl; + << dmodel << ">" << std::endl + << "---- Cylindirical: forcing cache recomputation" << std::endl; } // Force cache recomputation cache_status = 0; @@ -1732,7 +1740,7 @@ namespace BasisClasses std::cout << "---- Cylindrical: Python module for deprojection has changed since cache creation." << std::endl << "---- Current module: <" << pyproj << ">, md5sum: " << current_md5 << std::endl << "---- Loaded module: <" << pyinfo[0] << ">, md5sum: " << pyinfo[1] << std::endl - << "---- Forcing cache recomputation to ensure consistency with current Python projection module." << std::endl; + << "---- Cylindrical: forcing cache recomputation to ensure consistency" << std::endl; } cache_status = 0; } @@ -1742,7 +1750,7 @@ namespace BasisClasses } catch (const HighFive::Exception& err) { std::cerr << "---- BiorthBasis inconsistency in Cylindrical cache: " << err.what() << std::endl; - std::cerr << "---- Forcing cache recomputation." << std::endl; + std::cerr << "---- Cylindrical: forcing cache recomputation" << std::endl; cache_status = 0; // Fallback... } } From 31925de857c6a49feffc4456d90d6a880680c3f9 Mon Sep 17 00:00:00 2001 From: "Martin D. Weinberg" Date: Tue, 24 Mar 2026 11:20:36 -0400 Subject: [PATCH 056/131] Need to define DTYPE before cache check --- expui/BiorthBasis.cc | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/expui/BiorthBasis.cc b/expui/BiorthBasis.cc index 69cf5ab26..2e182d6b2 100644 --- a/expui/BiorthBasis.cc +++ b/expui/BiorthBasis.cc @@ -1609,7 +1609,17 @@ namespace BasisClasses {DiskType::python, "python"} }; - // Checking for cache consistency with current DiskType and Python module (if applicable) + // Convert dtype string to lower case + // + std::transform(dtype.begin(), dtype.end(), dtype.begin(), + [](unsigned char c){ return std::tolower(c); }); + + + // Check for map entry, will throw if the key is not in the map. + DTYPE = dtlookup.at(dtype); + + // Checking for cache consistency with current DiskType and Python + // module (if applicable) // if (cache_status == 1) { @@ -1796,17 +1806,10 @@ namespace BasisClasses throw std::runtime_error("Cylindrical:initialize: EmpCylSL bad parameter"); } - // Convert dtype string to lower case - // - std::transform(dtype.begin(), dtype.end(), dtype.begin(), - [](unsigned char c){ return std::tolower(c); }); - // Set DiskType. This is the functional form for the disk used to // condition the basis. // - try { // Check for map entry, will throw if the - DTYPE = dtlookup.at(dtype); // key is not in the map. - + try { if (myid==0) { // Report DiskType std::cout << "---- DiskType is <" << dtype << ">" << std::endl; From f40f1ed89bcfd83df20bc8ebcdbf1f54663e9ab8 Mon Sep 17 00:00:00 2001 From: "Martin D. Weinberg" Date: Tue, 24 Mar 2026 13:01:39 -0400 Subject: [PATCH 057/131] Updates on the n-body side to handle conditioning types --- expui/BiorthBasis.cc | 103 +++++++++------- src/CMakeLists.txt | 1 + src/Cylinder.H | 51 +++++++- src/Cylinder.cc | 286 ++++++++++++++++++++++++++++++++++++++++--- 4 files changed, 380 insertions(+), 61 deletions(-) diff --git a/expui/BiorthBasis.cc b/expui/BiorthBasis.cc index 2e182d6b2..3e56af745 100644 --- a/expui/BiorthBasis.cc +++ b/expui/BiorthBasis.cc @@ -1673,7 +1673,8 @@ namespace BasisClasses try { current_md5 = QuickDigest5::fileToHash(pyname); } catch (const std::runtime_error& e) { - std::cerr << "Error: " << e.what() << std::endl; + if (myid==0) + std::cerr << "Error: " << e.what() << std::endl; } // Check that the md5sums match for the current Python @@ -1722,7 +1723,7 @@ namespace BasisClasses std::cout << "---- Cylindrical: dmodel for cache file <" << cachename << "> is <" << loaded_dmodel << ">, which does not match the requested dmodel <" << dmodel << ">" << std::endl - << "---- Cylindirical: forcing cache recomputation" << std::endl; + << "---- Cylindrical: forcing cache recomputation" << std::endl; } // Force cache recomputation cache_status = 0; @@ -1741,7 +1742,8 @@ namespace BasisClasses try { current_md5 = QuickDigest5::fileToHash(pyproj); } catch (const std::runtime_error& e) { - std::cerr << "Error: " << e.what() << std::endl; + if (myid==0) + std::cerr << "Error: " << e.what() << std::endl; } // Check that the md5sums match for the current Python projection // @@ -1759,8 +1761,10 @@ namespace BasisClasses } } catch (const HighFive::Exception& err) { - std::cerr << "---- BiorthBasis inconsistency in Cylindrical cache: " << err.what() << std::endl; - std::cerr << "---- Cylindrical: forcing cache recomputation" << std::endl; + if (myid==0) { + std::cerr << "---- Cylindrical: " << err.what() << std::endl; + std::cerr << "---- Cylindrical: forcing cache recomputation" << std::endl; + } cache_status = 0; // Fallback... } } @@ -1934,55 +1938,66 @@ namespace BasisClasses sl->generate_eof(rnum, pnum, tnum, f); - try { - // Open the cache file for writing the Python metadata - // - HighFive::File file(cachename, HighFive::File::ReadWrite); - - file.createAttribute("DiskType", - HighFive::DataSpace::From(dtype)).write(dtype); - - // Write the md5sum for the Python module - if (DTYPE == DiskType::python) { - try { - std::string hash = QuickDigest5::fileToHash(pyname); - std::vector pyinfo = {pyname, hash}; - file.createAttribute - ("pythonDiskType", HighFive::DataSpace::From(pyinfo)).write(pyinfo); - } catch (const std::runtime_error& e) { - std::cerr << "Error: " << e.what() << std::endl; - std::cerr << "Can not write the md5 hash to HDF5" << std::endl; - } - } - - // Save the deprojection flag - file.createAttribute - ("deproject", - HighFive::DataSpace::From(deproject)).write(deproject); + if (myid==0) { + try { + // Open the cache file for writing the Python metadata + // + HighFive::File file(cachename, HighFive::File::ReadWrite); - // Reopen the DataSpace for DMODEL since we need to write it as a string - if (deproject) { - file.createAttribute - ("ProjType", HighFive::DataSpace::From(dmodel)).write(dmodel); + file.createAttribute("DiskType", + HighFive::DataSpace::From(dtype)).write(dtype); - if (PTYPE == DeprojType::python) { + // Write the md5sum for the Python module + if (DTYPE == DiskType::python) { try { - std::string hash = QuickDigest5::fileToHash(pyproj); - std::vector pyinfo = {pyproj, hash}; + std::vector pyinfo = + {pyname, QuickDigest5::fileToHash(pyname)}; file.createAttribute - ("pythonProjType", + ("pythonDiskType", HighFive::DataSpace::From(pyinfo)).write(pyinfo); } catch (const std::runtime_error& e) { - std::cerr << "Error: " << e.what() << std::endl; - std::cerr << "Can not writine the md5 hash to HDF5" << std::endl; + if (myid==0) { + std::cerr << "Error: " << e.what() << std::endl; + std::cerr << "Can not write the md5 hash to HDF5" << std::endl; + } } } + + // Save the deprojection flag + file.createAttribute + ("deproject", + HighFive::DataSpace::From(deproject)).write(deproject); + + // Reopen the DataSpace for DMODEL since we need to write it as a string + if (deproject) { + file.createAttribute + ("ProjType", HighFive::DataSpace::From(dmodel)).write(dmodel); + + if (PTYPE == DeprojType::python) { + try { + std::vector pyinfo = + {pyproj, QuickDigest5::fileToHash(pyproj)}; + file.createAttribute + ("pythonProjType", + HighFive::DataSpace::From(pyinfo)).write(pyinfo); + } catch (const std::runtime_error& e) { + if (myid==0) { + std::cerr << "Error: " << e.what() << std::endl; + std::cerr << "Can not writine the md5 hash to HDF5" << std::endl; + } + } + } + } + } catch (const HighFive::Exception& err) { + if (myid==0) { + std::cerr << err.what() << std::endl; + std::cerr << "Error writing metadata to cache file <" << cachename + << std::endl; + } } - } catch (const HighFive::Exception& err) { - std::cerr << err.what() << std::endl; - std::cerr << "Error writing metadata to cache file <" << cachename - << std::endl; + // Errors will prevent metadata from being written to the cache } + // Only the root process should be updating the cache } // Orthogonality sanity check diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index fa7ea2057..87df43c8f 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -25,6 +25,7 @@ set(common_INCLUDE_DIRS $ $ $ + $ ${CMAKE_BINARY_DIR} ${DEP_INC} ${CMAKE_CURRENT_SOURCE_DIR} ${EIGEN3_INCLUDE_DIR}) diff --git a/src/Cylinder.H b/src/Cylinder.H index 5cadda2f8..49faa5de6 100644 --- a/src/Cylinder.H +++ b/src/Cylinder.H @@ -7,6 +7,7 @@ #include "Basis.H" #include "CylEXP.H" #include "Coefficients.H" +#include "DiskDensityFunc.H" #include "config_exp.h" @@ -37,6 +38,12 @@ class MixtureBasis; @param hcyl is the scale height + @param aratio is the scale length ratio for disk basis construction (default: 1.0) + + @param hratio is the scale height ratio for disk basis construction (default: 1.0) + + @param dweight is the relative weight of the second component in the double-exponential disk basis construction (default: 1.0) + @param lmaxfid is the maximum spherical harmonic index for EOF construction @param nmaxfid is the maximum radial index for EOF construction @@ -150,8 +157,11 @@ private: void initialize(void); - // Parameters + // Parameters + // double rcylmin, rcylmax, zmax, acyl; + double aratio, hratio, dweight; // Disk basis construction parameters for double-exponential disk + double Mfac, HERNA; // Disk bulge parameters: mass fraction and Hernquist scale length int nmaxfid, lmaxfid, mmax, mlim, nint; int ncylnx, ncylny, ncylr; double hcyl, hexp, snr, rem; @@ -275,7 +285,6 @@ protected: //@} - #endif /** Test change level counts for deep debugging enabled by setting @@ -336,6 +345,44 @@ protected: //! Write basis-specific parameters to HDF5 covariance file void writeCovarH5Params(HighFive::File& file); + enum class DiskType + { constant, gaussian, mn, exponential, doubleexpon, diskbulge, python }; + + //@{ + //! Disk target types + const std::map dtlookup = + { {"constant", DiskType::constant}, + {"gaussian", DiskType::gaussian}, + {"mn", DiskType::mn}, + {"exponential", DiskType::exponential}, + {"doubleexpon", DiskType::doubleexpon}, + {"diskbulge", DiskType::diskbulge}, + {"python", DiskType::python} + }; + + const std::map dtstring = + { {DiskType::constant, "constant"}, + {DiskType::gaussian, "gaussian"}, + {DiskType::mn, "mn"}, + {DiskType::exponential, "exponential"}, + {DiskType::doubleexpon, "doubleexpon"}, + {DiskType::diskbulge, "diskbulge"}, + {DiskType::python, "python"} + }; + + DiskType DTYPE = DiskType::exponential; + + std::string dtype; + + //! Dtype cache check for consistency between cache and current parameters + bool checkDtype(); + void saveDtype(); + + double DiskDens(double R, double z, double phi); + std::shared_ptr pyDens; + //@} + + public: //! Mutexes for multithreading diff --git a/src/Cylinder.cc b/src/Cylinder.cc index 9c7f84203..8fe9be50b 100644 --- a/src/Cylinder.cc +++ b/src/Cylinder.cc @@ -11,9 +11,10 @@ #include "Cylinder.H" #include "MixtureBasis.H" #include "DiskDensityFunc.H" -#include "Timer.H" -#include "exputils.H" -#include "NVTX.H" +#include "Timer.H" // for timing code sections +#include "exputils.H" // utility functions +#include "NVTX.H" // for NVTX profiling of CUDA code +#include "quickdigest5.hpp" // for md5 hashing of Python modules //@{ //! These are for testing exclusively (should be set false for production) @@ -31,6 +32,11 @@ Cylinder::valid_keys = { "hcyl", "sech2", "hexp", + "aratio", + "hratio", + "dweight", + "Mfac", + "HERNA", "snr", "evcut", "nmaxfid", @@ -74,6 +80,7 @@ Cylinder::valid_keys = { "playback", "coefCompute", "coefMaster", + "dtype", "pyname", "dumpbasis", "fullCovar", @@ -116,6 +123,16 @@ Cylinder::Cylinder(Component* c0, const YAML::Node& conf, MixtureBasis *m) : ncylodd = 9; ncylrecomp = -1; + // For disk basis construction with doubleexpon + // + aratio = 1.0; // Radial scale length ratio + hratio = 1.0; // Vertical scale height ratio + dweight = 1.0; // Ratio of second disk relative to the first disk + + // For disk bulge + Mfac = 1.0; // mass fraction for disk + HERNA = 0.10; // Hernquist scale a disk bulge + rnum = 200; pnum = 1; tnum = 80; @@ -182,6 +199,14 @@ Cylinder::Cylinder(Component* c0, const YAML::Node& conf, MixtureBasis *m) : ortho = std::make_shared (nmaxfid, lmaxfid, mmax, nmax, acyl, hcyl, ncylodd, cachename); + // Convert dtype string to lower case + // + std::transform(dtype.begin(), dtype.end(), dtype.begin(), + [](unsigned char c){ return std::tolower(c); }); + + // Check for map entry, will throw if the key is not in the map. + DTYPE = dtlookup.at(dtype); + // Set azimuthal harmonic order restriction? // if (mlim>=0) ortho->set_mlim(mlim); @@ -220,6 +245,10 @@ Cylinder::Cylinder(Component* c0, const YAML::Node& conf, MixtureBasis *m) : if (std::filesystem::exists(cachename)) { cache_ok = ortho->read_cache(); + + if (cache_ok) { + cache_ok = checkDtype(); + } // If new cache is requested, backup existing basis file // @@ -269,19 +298,44 @@ Cylinder::Cylinder(Component* c0, const YAML::Node& conf, MixtureBasis *m) : << "this step will take many minutes." << std::endl; - std::shared_ptr dfunc; - if (pyname.size()) dfunc = std::make_shared(pyname); - // Use either the user-supplied Python target or the default - // exponential disk model - auto DiskDens = [&](double R, double z, double phi) - { - if (dfunc) return (*dfunc)(R, z, phi); - double h = sech2 ? 0.5*hcyl : hcyl; - double f = exp(-fabs(z)/h); // Overflow prevention - double s = 2.0*f/(1.0 + f*f); // in sech computation - return exp(-R/acyl)*s*s/(4.0*M_PI*acyl*acyl*h); - }; + // Set DiskType. This is the functional form for the disk used to + // condition the basis. + // + try { + if (myid==0) { // Report DiskType + std::cout << "---- DiskType is <" << dtype << ">" << std::endl; + + if (not sech2) { + switch (DTYPE) { + case DiskType::doubleexpon: + case DiskType::exponential: + case DiskType::diskbulge: + std::cout << "---- pyEXP assumes sech^2(z/(2h)) by default in v7.9.0 and later" << std::endl + << "---- Use the 'sech2: true' in your YAML config to use sech^2(z/(2h))" << std::endl + << "---- This warning will be removed in v7.10.0." << std::endl; + break; + default: + break; + } + } + } + } + catch (const std::out_of_range& err) { + if (myid==0) { + std::cout << "DiskType error in configuraton file" << std::endl; + std::cout << "Valid options are: "; + for (auto v : dtlookup) std::cout << v.first << " "; + std::cout << std::endl; + } + throw std::runtime_error("Cylindrical::initialize: invalid DiskType"); + } + + // Check for and initialize the Python density type + // + if (DTYPE == DiskType::python) { + pyDens = std::make_shared(pyname); + } // The conditioning function for the EOF with an optional shift // for M>0 @@ -310,6 +364,7 @@ Cylinder::Cylinder(Component* c0, const YAML::Node& conf, MixtureBasis *m) : }; ortho->generate_eof(rnum, pnum, tnum, dcond); + saveDtype(); } firstime = false; @@ -444,6 +499,12 @@ void Cylinder::initialize() if (conf["eof_file" ]) cachename = conf["eof_file" ].as(); if (conf["samplesz" ]) defSampT = conf["samplesz" ].as(); + if (conf["aratio" ]) aratio = conf["aratio" ].as(); + if (conf["hratio" ]) hratio = conf["hratio" ].as(); + if (conf["dweight" ]) dweight = conf["dweight" ].as(); + if (conf["Mfac" ]) Mfac = conf["Mfac" ].as(); + if (conf["HERNA" ]) HERNA = conf["HERNA" ].as(); + if (conf["rnum" ]) rnum = conf["rnum" ].as(); if (conf["pnum" ]) pnum = conf["pnum" ].as(); if (conf["tnum" ]) tnum = conf["tnum" ].as(); @@ -463,6 +524,8 @@ void Cylinder::initialize() if (conf["cmapr" ]) cmapR = conf["cmapr" ].as(); if (conf["cmapz" ]) cmapZ = conf["cmapz" ].as(); if (conf["vflag" ]) vflag = conf["vflag" ].as(); + if (conf["dtype" ]) dtype = conf["dtype" ].as(); + if (conf["pyname" ]) pyname = conf["pyname" ].as(); // Deprecation warning if (not sech2 and not conf["pyname"]) { @@ -598,6 +661,83 @@ void Cylinder::initialize() } } +double Cylinder::DiskDens(double R, double z, double phi) +{ + double ans = 0.0; + + switch (DTYPE) { + + case DiskType::constant: + if (R < acyl && fabs(z) < hcyl) + ans = 1.0/(2.0*hcyl*M_PI*acyl*acyl); + break; + + case DiskType::gaussian: + if (fabs(z) < hcyl) + ans = 1.0/(2.0*hcyl*2.0*M_PI*acyl*acyl)* + exp(-R*R/(2.0*acyl*acyl)); + break; + + case DiskType::mn: + { + double Z2 = z*z + hcyl*hcyl; + double Z = sqrt(Z2); + double Q2 = (acyl + Z)*(acyl + Z); + ans = 0.25*hcyl*hcyl/M_PI*(acyl*R*R + (acyl + 3.0*Z)*Q2)/( pow(R*R + Q2, 2.5) * Z*Z2 ); + } + break; + + case DiskType::doubleexpon: + { + double a1 = acyl; + double a2 = acyl*aratio; + double h1 = hcyl; + double h2 = hcyl*hratio; + double w1 = 1.0/(1.0+dweight); + double w2 = dweight/(1.0+dweight); + + if (sech2) { h1 *= 0.5; h2 *= 0.5; } + + double f1 = cosh(z/h1); + double f2 = cosh(z/h2); + + ans = + w1*exp(-R/a1)/(4.0*M_PI*a1*a1*h1*f1*f1) + + w2*exp(-R/a2)/(4.0*M_PI*a2*a2*h2*f2*f2) ; + } + break; + + case DiskType::diskbulge: + { + double h = sech2 ? 0.5*hcyl : hcyl; + double f = cosh(z/h); + double rr = pow(pow(R, 2) + pow(z,2), 0.5); + double w1 = Mfac; + double w2 = 1.0 - Mfac; + double as = HERNA; + + ans = w1*exp(-R/acyl)/(4.0*M_PI*acyl*acyl*h*f*f) + + w2*pow(as, 4)/(2.0*M_PI*rr)*pow(rr+as,-3.0) ; + } + break; + case DiskType::python: + ans = (*pyDens)(R, z, phi); + break; + case DiskType::exponential: + default: + { + double h = sech2 ? 0.5*hcyl : hcyl; + double f = cosh(z/h); + ans = exp(-R/acyl)/(4.0*M_PI*acyl*acyl*h*f*f); + } + break; + } + + // if (rwidth>0.0) ans *= erf((rtrunc-R)/rwidth); + + return ans; +} + void Cylinder::get_acceleration_and_potential(Component* C) { nvTracerPtr tPtr; @@ -919,6 +1059,10 @@ void Cylinder::determine_coefficients_particles(void) bool cache_ok = false; if (try_cache || restart) { cache_ok = ortho->read_cache(); + + if (cache_ok) { + cache_ok = checkDtype(); + } // For a restart, cache must be read // otherwise, abort if (restart && !cache_ok) { @@ -1878,3 +2022,115 @@ void Cylinder::writeCovarH5Params(HighFive::File& file) file.createAttribute("hcyl", HighFive::DataSpace::From(hcyl)).write(hcyl); } + +bool Cylinder::checkDtype() +{ + bool cache_status = true; + + // Open the cache file for reading the Python metadata + // + HighFive::File file(cachename, HighFive::File::ReadOnly); + + // Sanity: check that the DiskType attribute exists + // + if (!file.hasAttribute("DiskType")) { + if (myid==0) { + std::cout << "---- Cylinder: DiskType attribute not found in cache file <" << cachename << ">. " << std::endl + << "---- This may indicate an old cache file created before DiskType metadata was added. " << std::endl + << "---- We will continue...but consider remaking the cache to avoid confusion." << std::endl; + } + } else { + // Open existing DiskType attribute + // + auto read_attr = file.getAttribute("DiskType"); + + std::string loaded_dtype; + read_attr.read(loaded_dtype); + + DiskType disktype = dtlookup.at(loaded_dtype); + + if (disktype != DTYPE) { + if (myid==0) { + std::cout << "---- Cylindrical: DiskType for cache file <" + << cachename << "> is <" + << loaded_dtype << ">," << std::endl + << "which does not match the requested DiskType <" + << dtype << ">, disktype=" + << (int)disktype << ", DTYPE=" + << (int)DTYPE << std::endl + << "---- Cylindrical: forcing cache recomputation" + << std::endl; + } + // Force cache recomputation + cache_status = false; + } + else if (disktype == DiskType::python) { + // Get the pyname attribute + std::vector pyinfo; + auto read_attr = file.getAttribute("pythonDiskType"); + read_attr.read(pyinfo); + + std::string current_md5; + + // Get the md5sum for requested Python module + try { + current_md5 = QuickDigest5::fileToHash(pyname); + } catch (const std::runtime_error& e) { + if (myid==0) + std::cerr << "Error: " << e.what() << std::endl; + } + + // Check that the md5sums match for the current Python + // module and the loaded Python module used to create the + // cache. If they do not match, force cache recomputation + // to ensure consistency with the current Python module. + if (current_md5 != pyinfo[1]) { + if (myid==0) { + std::cout << "---- Cylindrical: Python module for disk density has changed since cache creation." << std::endl + << "---- Current module: <" << pyname << ">, md5sum: " << current_md5 << std::endl + << "---- Loaded module: <" << pyinfo[0] << ">, md5sum: " << pyinfo[1] << std::endl + << "---- Cylindrical: forcing cache recomputation to ensure consistency" << std::endl; + } + cache_status = false; + } + } + } + + return cache_status; +} + +void Cylinder::saveDtype() +{ + // Only one process needs to write the dtype metadata + if (myid) return; + + std::string dtype = dtstring.at(DTYPE); + + try { + // Open the cache file for writing the Python metadata + // + HighFive::File file(cachename, HighFive::File::ReadWrite); + + file.createAttribute + ("DiskType", + HighFive::DataSpace::From(dtype)).write(dtype); + + // Write the md5sum for the Python module + if (DTYPE == DiskType::python) { + try { + std::vector pyinfo = + {pyname, QuickDigest5::fileToHash(pyname)}; + file.createAttribute + ("pythonDiskType", + HighFive::DataSpace::From(pyinfo)).write(pyinfo); + } catch (const std::runtime_error& e) { + std::cerr << "Error: " << e.what() << std::endl; + std::cerr << "Can not write the md5 hash to HDF5" << std::endl; + } + } + } catch (const HighFive::Exception& err) { + std::cerr << err.what() << std::endl; + std::cerr << "Error writing metadata to cache file <" << cachename + << std::endl; + } +} From 8f524056e166349556dd961e3409347779828388 Mon Sep 17 00:00:00 2001 From: "Martin D. Weinberg" Date: Tue, 24 Mar 2026 13:14:30 -0400 Subject: [PATCH 058/131] A few minor checks for md5 tests; requires a GNU/Linux system --- exputil/getmd5sum.cc | 4 ++-- utils/Test/testmd5.cc | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/exputil/getmd5sum.cc b/exputil/getmd5sum.cc index bea4b3673..b7c234175 100644 --- a/exputil/getmd5sum.cc +++ b/exputil/getmd5sum.cc @@ -1,5 +1,5 @@ -// Initial reference implementation. Better to use QuickDigest5 which -// is currently a git submodule. +// Initial reference implementation for testing. Production code uses +// QuickDigest5 as a git submodule. #include #include diff --git a/utils/Test/testmd5.cc b/utils/Test/testmd5.cc index d8895000b..7490a8d2d 100644 --- a/utils/Test/testmd5.cc +++ b/utils/Test/testmd5.cc @@ -33,6 +33,10 @@ int main(int argc, char* argv[]) // System version of md5sum for comparison try { + if (std::system("which md5sum > /dev/null 2>&1") != 0) { + std::cerr << "Warning: md5sum command not found. Skipping system md5sum comparison." << std::endl; + return 0; + } std::string systemHash = get_md5sum(filePath); std::cout << "System md5sum: " << systemHash << std::endl; if (hash == systemHash) { From f608704b0e56168f0a494cfd9377f2ad7d42f140 Mon Sep 17 00:00:00 2001 From: "Martin D. Weinberg" Date: Tue, 24 Mar 2026 13:50:32 -0400 Subject: [PATCH 059/131] Add more HDF5 diagnostics --- expui/BiorthBasis.cc | 189 ++++++++++++++++++++++++++----------------- 1 file changed, 116 insertions(+), 73 deletions(-) diff --git a/expui/BiorthBasis.cc b/expui/BiorthBasis.cc index 3e56af745..1ff0488c1 100644 --- a/expui/BiorthBasis.cc +++ b/expui/BiorthBasis.cc @@ -1595,6 +1595,17 @@ namespace BasisClasses if (oldcache) sl->AllowOldCache(); + // Temporary muting of HDF5 error messages for EOF cache reading + H5E_auto2_t old_func; + void* old_client_data; + H5Eget_auto2(H5E_DEFAULT, &old_func, &old_client_data); + + // Mute HDF5 error messages + H5Eset_auto2(H5E_DEFAULT, NULL, NULL); + + // Unmute (Restore) + // H5Eset_auto2(H5E_DEFAULT, old_func, old_client_data); + // Attempt to read EOF cache // int cache_status = sl->read_cache(); @@ -1652,9 +1663,7 @@ namespace BasisClasses << cachename << "> is <" << loaded_dtype << ">," << std::endl << "which does not match the requested DiskType <" - << dtype << ">, disktype=" - << (int)disktype << ", DTYPE=" - << (int)DTYPE << std::endl + << dtype << ">" << std::endl << "---- Cylindrical: forcing cache recomputation" << std::endl; } @@ -1662,99 +1671,130 @@ namespace BasisClasses cache_status = 0; } else if (disktype == DiskType::python) { - // Get the pyname attribute - std::vector pyinfo; - auto read_attr = file.getAttribute("pythonDiskType"); - read_attr.read(pyinfo); - - std::string current_md5; - // Get the md5sum for requested Python module - try { - current_md5 = QuickDigest5::fileToHash(pyname); - } catch (const std::runtime_error& e) { - if (myid==0) - std::cerr << "Error: " << e.what() << std::endl; - } - - // Check that the md5sums match for the current Python - // module and the loaded Python module used to create the - // cache. If they do not match, force cache recomputation - // to ensure consistency with the current Python module. - if (current_md5 != pyinfo[1]) { + if (file.hasAttribute("pythonDiskType") == false) { if (myid==0) { - std::cout << "---- Cylindrical: Python module for disk density has changed since cache creation." << std::endl - << "---- Current module: <" << pyname << ">, md5sum: " << current_md5 << std::endl - << "---- Loaded module: <" << pyinfo[0] << ">, md5sum: " << pyinfo[1] << std::endl - << "---- Cylindrical: forcing cache recomputation to ensure consistency" << std::endl; + std::cout << "---- Cylindrical: pythonDiskType attribute not found in cache file <" << cachename << ">. " << std::endl; + std::cout << "---- This may indicate an old cache file created before pythonDiskType metadata was added. " << std::endl; } cache_status = 0; + } else { + // Get the pyname attribute + auto read_attr = file.getAttribute("pythonDiskType"); + + std::vector pyinfo; + read_attr.read(pyinfo); + + std::string current_md5; + + // Get the md5sum for requested Python module + try { + current_md5 = QuickDigest5::fileToHash(pyname); + } catch (const std::runtime_error& e) { + if (myid==0) + std::cerr << "Error: " << e.what() << std::endl; + } + + // Check that the md5sums match for the current Python + // module and the loaded Python module used to create the + // cache. If they do not match, force cache recomputation + // to ensure consistency with the current Python module. + if (current_md5 != pyinfo[1]) { + if (myid==0) { + std::cout << "---- Cylindrical: Python module for disk density has changed since cache creation." << std::endl + << "---- Current module: <" << pyname << ">, md5sum: " << current_md5 << std::endl + << "---- Loaded module: <" << pyinfo[0] << ">, md5sum: " << pyinfo[1] << std::endl + << "---- Cylindrical: forcing cache recomputation to ensure consistency" << std::endl; + } + cache_status = 0; + } } } // Get the deproject attribute // - read_attr = file.getAttribute("deproject"); - bool loaded_deproject; - read_attr.read(loaded_deproject); - - if (deproject != loaded_deproject) { + if (!file.hasAttribute("deproject")) { if (myid==0) { - std::cout << "---- Cylindrical: deproject flag for cache file <" << cachename << "> is <" - << std::boolalpha << loaded_deproject << std::noboolalpha - << ">, which does not match the requested deproject flag <" - << std::boolalpha << deproject << std::noboolalpha - << ">" << std::endl - << "---- Cylindrical: forcing cache recomputation" << std::endl; + std::cout << "---- Cylindrical: deproject attribute not found in cache file <" << cachename << ">. " << std::endl; + std::cout << "---- This may indicate an old cache file created before deproject metadata was added. " << std::endl; } - // Force cache recomputation - cache_status = 0; - } - - if (cache_status == 1 and deproject) { - // Get the dmodel attribute - // - read_attr = file.getAttribute("dmodel"); - std::string loaded_dmodel; - read_attr.read(loaded_dmodel); - - if (loaded_dmodel != dmodel) { + cache_status = 0; + } else { + read_attr = file.getAttribute("deproject"); + bool loaded_deproject; + read_attr.read(loaded_deproject); + + if (deproject != loaded_deproject) { if (myid==0) { - std::cout << "---- Cylindrical: dmodel for cache file <" << cachename << "> is <" - << loaded_dmodel << ">, which does not match the requested dmodel <" - << dmodel << ">" << std::endl + std::cout << "---- Cylindrical: deproject flag for cache file <" << cachename << "> is <" + << std::boolalpha << loaded_deproject << std::noboolalpha + << ">, which does not match the requested deproject flag <" + << std::boolalpha << deproject << std::noboolalpha + << ">" << std::endl << "---- Cylindrical: forcing cache recomputation" << std::endl; } // Force cache recomputation - cache_status = 0; - } + cache_status = 0; + } - if (cache_status == 1 and dmodel == "python") { - // Get the Python info + // Now check for deproject flag + // + if (cache_status == 1 and deproject) { + + // Get the dmodel attribute // - std::vector pyinfo; - read_attr = file.getAttribute("pythonProjType"); - read_attr.read(pyinfo); + read_attr = file.getAttribute("dmodel"); + std::string loaded_dmodel; + read_attr.read(loaded_dmodel); - std::string current_md5; - - // Get the md5sum for requested Python projection module - try { - current_md5 = QuickDigest5::fileToHash(pyproj); - } catch (const std::runtime_error& e) { - if (myid==0) - std::cerr << "Error: " << e.what() << std::endl; + if (loaded_dmodel != dmodel) { + if (myid==0) { + std::cout << "---- Cylindrical: dmodel for cache file <" << cachename << "> is <" + << loaded_dmodel << ">, which does not match the requested dmodel <" + << dmodel << ">" << std::endl + << "---- Cylindrical: forcing cache recomputation" << std::endl; + } + // Force cache recomputation + cache_status = 0; } - // Check that the md5sums match for the current Python projection + } + + if (cache_status == 1 and dmodel == "python") { + // Get the Python info // - if (current_md5 != pyinfo[1]) { + if (!file.hasAttribute("pythonProjType")) { if (myid==0) { - std::cout << "---- Cylindrical: Python module for deprojection has changed since cache creation." << std::endl - << "---- Current module: <" << pyproj << ">, md5sum: " << current_md5 << std::endl - << "---- Loaded module: <" << pyinfo[0] << ">, md5sum: " << pyinfo[1] << std::endl - << "---- Cylindrical: forcing cache recomputation to ensure consistency" << std::endl; + std::cout << "---- Cylindrical: pythonProjType attribute not found in cache file <" << cachename << ">. " << std::endl; + std::cout << "---- This may indicate an old cache file created before pythonProjType metadata was added. " << std::endl; } + cache_status = 0; + + } else { + read_attr = file.getAttribute("pythonProjType"); + std::vector pyinfo; + read_attr.read(pyinfo); + + std::string current_md5; + + // Get the md5sum for requested Python projection module + try { + current_md5 = QuickDigest5::fileToHash(pyproj); + } catch (const std::runtime_error& e) { + if (myid==0) + std::cerr << "Error: " << e.what() << std::endl; + } + // Check that the md5sums match for the current Python projection + // + if (current_md5 != pyinfo[1]) { + if (myid==0) { + std::cout << "---- Cylindrical: Python module for deprojection has changed since cache creation." << std::endl + << "---- Current module: <" << pyproj << ">, md5sum: " << current_md5 << std::endl + << "---- Loaded module: <" << pyinfo[0] << ">, md5sum: " << pyinfo[1] << std::endl + << "---- Cylindrical: forcing cache recomputation to ensure consistency" << std::endl; + } + cache_status = 0; + } } } } @@ -2000,6 +2040,9 @@ namespace BasisClasses // Only the root process should be updating the cache } + // Unmute HDF5 error messages (Restore) + H5Eset_auto2(H5E_DEFAULT, old_func, old_client_data); + // Orthogonality sanity check // if (myid==0) orthoTest(); From e02eb789d0c0a961218621db0aebb5ace3c54b21 Mon Sep 17 00:00:00 2001 From: "Martin D. Weinberg" Date: Tue, 24 Mar 2026 13:56:40 -0400 Subject: [PATCH 060/131] Fix mistake in storing pyname info vector --- expui/BiorthBasis.cc | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/expui/BiorthBasis.cc b/expui/BiorthBasis.cc index 1ff0488c1..2696f19a5 100644 --- a/expui/BiorthBasis.cc +++ b/expui/BiorthBasis.cc @@ -12,6 +12,8 @@ #include #endif +#define HDF5_QUIET + namespace BasisClasses { const std::set @@ -1596,6 +1598,7 @@ namespace BasisClasses // Temporary muting of HDF5 error messages for EOF cache reading +#ifdef HDF5_QUIET H5E_auto2_t old_func; void* old_client_data; H5Eget_auto2(H5E_DEFAULT, &old_func, &old_client_data); @@ -1605,6 +1608,7 @@ namespace BasisClasses // Unmute (Restore) // H5Eset_auto2(H5E_DEFAULT, old_func, old_client_data); +#endif // Attempt to read EOF cache // @@ -1992,7 +1996,7 @@ namespace BasisClasses try { std::vector pyinfo = {pyname, QuickDigest5::fileToHash(pyname)}; - file.createAttribute + file.createAttribute> ("pythonDiskType", HighFive::DataSpace::From(pyinfo)).write(pyinfo); } catch (const std::runtime_error& e) { @@ -2017,7 +2021,7 @@ namespace BasisClasses try { std::vector pyinfo = {pyproj, QuickDigest5::fileToHash(pyproj)}; - file.createAttribute + file.createAttribute> ("pythonProjType", HighFive::DataSpace::From(pyinfo)).write(pyinfo); } catch (const std::runtime_error& e) { @@ -2040,9 +2044,10 @@ namespace BasisClasses // Only the root process should be updating the cache } +#ifdef HDF5_QUIET // Unmute HDF5 error messages (Restore) - H5Eset_auto2(H5E_DEFAULT, old_func, old_client_data); - + H5Eset_auto2(H5E_DEFAULT, old_func, old_client_data); +#endif // Orthogonality sanity check // if (myid==0) orthoTest(); From 8cba2a72c4cfe2cb5f51232c54842f4679bd0ac7 Mon Sep 17 00:00:00 2001 From: "Martin D. Weinberg" Date: Tue, 24 Mar 2026 14:13:39 -0400 Subject: [PATCH 061/131] Additional comments [no CI] --- expui/BiorthBasis.cc | 24 +++++++++++++++++++++--- src/Cylinder.cc | 24 ++++++++++++++++++------ 2 files changed, 39 insertions(+), 9 deletions(-) diff --git a/expui/BiorthBasis.cc b/expui/BiorthBasis.cc index 2696f19a5..811607469 100644 --- a/expui/BiorthBasis.cc +++ b/expui/BiorthBasis.cc @@ -1646,6 +1646,11 @@ namespace BasisClasses // Sanity: check that the DiskType attribute exists // if (!file.hasAttribute("DiskType")) { + // If the DiskType attribute is missing, this may indicate + // an old cache file created before the DiskType metadata + // was added. We will continue with a warning, but trigger + // cache recomputation to ensure consistency with the + // current DiskType. if (myid==0) { std::cout << "---- Cylindrical: DiskType attribute not found in cache file <" << cachename << ">. " << std::endl << "---- This may indicate an old cache file created before DiskType metadata was added. " << std::endl @@ -1676,10 +1681,17 @@ namespace BasisClasses } else if (disktype == DiskType::python) { + // If the DiskType is python, we also need to check that + // the Python module used to create the cache matches the + // current Python module to ensure consistency. This tag + // should be present in the cache if it was created with a + // recent version of the code, but if it is missing we + // will trigger cache recomputation to ensure consistency + // with the current Python module. if (file.hasAttribute("pythonDiskType") == false) { if (myid==0) { std::cout << "---- Cylindrical: pythonDiskType attribute not found in cache file <" << cachename << ">. " << std::endl; - std::cout << "---- This may indicate an old cache file created before pythonDiskType metadata was added. " << std::endl; + std::cout << "---- Cylindrical: this may be a logic error, trigger recomputation." << std::endl; } cache_status = 0; } else { @@ -1718,9 +1730,13 @@ namespace BasisClasses // Get the deproject attribute // if (!file.hasAttribute("deproject")) { + // We should not be able to get here since the deproject + // attribute is required for cache creation, but if it is + // missing we will trigger cache recomputation to ensure + // consistency. if (myid==0) { std::cout << "---- Cylindrical: deproject attribute not found in cache file <" << cachename << ">. " << std::endl; - std::cout << "---- This may indicate an old cache file created before deproject metadata was added. " << std::endl; + std::cout << "---- Cylindrical: this may be a logic error, trigger recomputation." << std::endl; } cache_status = 0; } else { @@ -1767,9 +1783,11 @@ namespace BasisClasses // Get the Python info // if (!file.hasAttribute("pythonProjType")) { + // We should not be able to get here since the pythonProjType + // attribute is required for cache creation with the Python if (myid==0) { std::cout << "---- Cylindrical: pythonProjType attribute not found in cache file <" << cachename << ">. " << std::endl; - std::cout << "---- This may indicate an old cache file created before pythonProjType metadata was added. " << std::endl; + std::cout << "---- Cylindrical: this may be a logic error, trigger recomputation." << std::endl; } cache_status = 0; diff --git a/src/Cylinder.cc b/src/Cylinder.cc index 8fe9be50b..4f34c64a2 100644 --- a/src/Cylinder.cc +++ b/src/Cylinder.cc @@ -2055,9 +2055,7 @@ bool Cylinder::checkDtype() << cachename << "> is <" << loaded_dtype << ">," << std::endl << "which does not match the requested DiskType <" - << dtype << ">, disktype=" - << (int)disktype << ", DTYPE=" - << (int)DTYPE << std::endl + << dtype << ">" << std::endl << "---- Cylindrical: forcing cache recomputation" << std::endl; } @@ -2065,9 +2063,19 @@ bool Cylinder::checkDtype() cache_status = false; } else if (disktype == DiskType::python) { + // Sanity check: if DiskType is python, then the pythonDiskType + // attribute must exist + if (!file.hasAttribute("pythonDiskType")) { + if (myid==0) { + std::cout << "---- Cylinder: pythonDiskType attribute not found in cache file <" << cachename << ">. " << std::endl; + std::cout << "---- Cylindier: this may indicate a logic error. Forcing cache recomputation." << std::endl; + } + // Force cache recomputation + cache_status = false; + } + auto read_attr = file.getAttribute("pythonDiskType"); // Get the pyname attribute std::vector pyinfo; - auto read_attr = file.getAttribute("pythonDiskType"); read_attr.read(pyinfo); std::string current_md5; @@ -2101,7 +2109,7 @@ bool Cylinder::checkDtype() void Cylinder::saveDtype() { - // Only one process needs to write the dtype metadata + // Only one process must write the dtype metadata if (myid) return; std::string dtype = dtstring.at(DTYPE); @@ -2111,11 +2119,15 @@ void Cylinder::saveDtype() // HighFive::File file(cachename, HighFive::File::ReadWrite); + // Write the DiskType attribute (as a string for human readability) file.createAttribute ("DiskType", HighFive::DataSpace::From(dtype)).write(dtype); - // Write the md5sum for the Python module + // Write the md5sum for the Python module, if Python disk type is + // used. This will allow us to check for consistency between the + // Python module used to create the cache and the current Python + // module, and force cache recomputation if they do not match. if (DTYPE == DiskType::python) { try { std::vector pyinfo = From 20eb5af46dd820a18a366ce6338f78351c7271f1 Mon Sep 17 00:00:00 2001 From: "Martin D. Weinberg" Date: Tue, 24 Mar 2026 14:26:24 -0400 Subject: [PATCH 062/131] Missing '.py' suffix in md5 file call --- expui/BiorthBasis.cc | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/expui/BiorthBasis.cc b/expui/BiorthBasis.cc index 811607469..a270941ae 100644 --- a/expui/BiorthBasis.cc +++ b/expui/BiorthBasis.cc @@ -12,6 +12,8 @@ #include #endif +// Suppress HDF5 diagonostic messages from base layer when using +// HighFive #define HDF5_QUIET namespace BasisClasses @@ -1705,7 +1707,7 @@ namespace BasisClasses // Get the md5sum for requested Python module try { - current_md5 = QuickDigest5::fileToHash(pyname); + current_md5 = QuickDigest5::fileToHash(pyname + ".py"); } catch (const std::runtime_error& e) { if (myid==0) std::cerr << "Error: " << e.what() << std::endl; @@ -1801,7 +1803,7 @@ namespace BasisClasses // Get the md5sum for requested Python projection module try { - current_md5 = QuickDigest5::fileToHash(pyproj); + current_md5 = QuickDigest5::fileToHash(pyproj + ".py"); } catch (const std::runtime_error& e) { if (myid==0) std::cerr << "Error: " << e.what() << std::endl; @@ -2013,7 +2015,7 @@ namespace BasisClasses if (DTYPE == DiskType::python) { try { std::vector pyinfo = - {pyname, QuickDigest5::fileToHash(pyname)}; + {pyname, QuickDigest5::fileToHash(pyname + ".py")}; file.createAttribute> ("pythonDiskType", HighFive::DataSpace::From(pyinfo)).write(pyinfo); @@ -2038,7 +2040,7 @@ namespace BasisClasses if (PTYPE == DeprojType::python) { try { std::vector pyinfo = - {pyproj, QuickDigest5::fileToHash(pyproj)}; + {pyproj, QuickDigest5::fileToHash(pyproj + ".py")}; file.createAttribute> ("pythonProjType", HighFive::DataSpace::From(pyinfo)).write(pyinfo); From d60f5e34cb597f32def0aa38b9112e68ad5085d1 Mon Sep 17 00:00:00 2001 From: "Martin D. Weinberg" Date: Tue, 24 Mar 2026 14:37:41 -0400 Subject: [PATCH 063/131] Identify member function errors in Cylinder [no CI] --- src/Cylinder.cc | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/src/Cylinder.cc b/src/Cylinder.cc index 4f34c64a2..c395d751d 100644 --- a/src/Cylinder.cc +++ b/src/Cylinder.cc @@ -2035,7 +2035,7 @@ bool Cylinder::checkDtype() // if (!file.hasAttribute("DiskType")) { if (myid==0) { - std::cout << "---- Cylinder: DiskType attribute not found in cache file <" << cachename << ">. " << std::endl + std::cout << "---- Cylinder:checkDtype: DiskType attribute not found in cache file <" << cachename << ">. " << std::endl << "---- This may indicate an old cache file created before DiskType metadata was added. " << std::endl << "---- We will continue...but consider remaking the cache to avoid confusion." << std::endl; } @@ -2051,7 +2051,7 @@ bool Cylinder::checkDtype() if (disktype != DTYPE) { if (myid==0) { - std::cout << "---- Cylindrical: DiskType for cache file <" + std::cout << "---- Cylinder::checkDtype: DiskType for cache file <" << cachename << "> is <" << loaded_dtype << ">," << std::endl << "which does not match the requested DiskType <" @@ -2067,8 +2067,8 @@ bool Cylinder::checkDtype() // attribute must exist if (!file.hasAttribute("pythonDiskType")) { if (myid==0) { - std::cout << "---- Cylinder: pythonDiskType attribute not found in cache file <" << cachename << ">. " << std::endl; - std::cout << "---- Cylindier: this may indicate a logic error. Forcing cache recomputation." << std::endl; + std::cout << "---- Cylinder::checkDtype: pythonDiskType attribute not found in cache file <" << cachename << ">. " << std::endl; + std::cout << "---- Cylindier:checkDtype: this may indicate a logic error. Forcing cache recomputation." << std::endl; } // Force cache recomputation cache_status = false; @@ -2094,7 +2094,7 @@ bool Cylinder::checkDtype() // to ensure consistency with the current Python module. if (current_md5 != pyinfo[1]) { if (myid==0) { - std::cout << "---- Cylindrical: Python module for disk density has changed since cache creation." << std::endl + std::cout << "---- Cylinder::checkDtype: Python module for disk density has changed since cache creation." << std::endl << "---- Current module: <" << pyname << ">, md5sum: " << current_md5 << std::endl << "---- Loaded module: <" << pyinfo[0] << ">, md5sum: " << pyinfo[1] << std::endl << "---- Cylindrical: forcing cache recomputation to ensure consistency" << std::endl; @@ -2115,11 +2115,12 @@ void Cylinder::saveDtype() std::string dtype = dtstring.at(DTYPE); try { - // Open the cache file for writing the Python metadata + // Reopen the cache file for writing the Python metadata // HighFive::File file(cachename, HighFive::File::ReadWrite); // Write the DiskType attribute (as a string for human readability) + // file.createAttribute ("DiskType", HighFive::DataSpace::From(dtype)).write(dtype); @@ -2128,6 +2129,7 @@ void Cylinder::saveDtype() // used. This will allow us to check for consistency between the // Python module used to create the cache and the current Python // module, and force cache recomputation if they do not match. + // if (DTYPE == DiskType::python) { try { std::vector pyinfo = @@ -2136,13 +2138,13 @@ void Cylinder::saveDtype() ("pythonDiskType", HighFive::DataSpace::From(pyinfo)).write(pyinfo); } catch (const std::runtime_error& e) { - std::cerr << "Error: " << e.what() << std::endl; + std::cerr << "Cylinder::saveDtype error: " << e.what() << std::endl; std::cerr << "Can not write the md5 hash to HDF5" << std::endl; } } } catch (const HighFive::Exception& err) { std::cerr << err.what() << std::endl; - std::cerr << "Error writing metadata to cache file <" << cachename - << std::endl; + std::cerr << "Cylinder::saveDtype: error writing metadata to cache file <" + << cachename << std::endl; } } From 26a896c3962d6c2f38688d29f7be12dd12dd3e18 Mon Sep 17 00:00:00 2001 From: "Martin D. Weinberg" Date: Tue, 24 Mar 2026 15:07:10 -0400 Subject: [PATCH 064/131] Added more diagnostics --- expui/BiorthBasis.cc | 23 ++++++++++++++++------- src/Cylinder.cc | 6 +++--- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/expui/BiorthBasis.cc b/expui/BiorthBasis.cc index a270941ae..20e4bc076 100644 --- a/expui/BiorthBasis.cc +++ b/expui/BiorthBasis.cc @@ -2011,14 +2011,21 @@ namespace BasisClasses file.createAttribute("DiskType", HighFive::DataSpace::From(dtype)).write(dtype); + std::cout << "---- Cylindrical: writing DiskType <" << dtype + << "> to cache file <" << cachename << ">" << std::endl; + // Write the md5sum for the Python module if (DTYPE == DiskType::python) { try { std::vector pyinfo = {pyname, QuickDigest5::fileToHash(pyname + ".py")}; - file.createAttribute> - ("pythonDiskType", - HighFive::DataSpace::From(pyinfo)).write(pyinfo); + + file.createAttribute("pythonDiskType", pyinfo); + + std::cout << "---- Cylindrical: writing pythonDiskType <" << pyname + ".py" + << "> to cache file <" << cachename << ">" << std::endl; + + } catch (const std::runtime_error& e) { if (myid==0) { std::cerr << "Error: " << e.what() << std::endl; @@ -2041,13 +2048,15 @@ namespace BasisClasses try { std::vector pyinfo = {pyproj, QuickDigest5::fileToHash(pyproj + ".py")}; - file.createAttribute> - ("pythonProjType", - HighFive::DataSpace::From(pyinfo)).write(pyinfo); + + file.createAttribute("pythonProjType", pyinfo); + + std::cout << "---- Cylindrical: writing pythonProjType <" << pyproj + ".py" + << "> to cache file <" << cachename << ">" << std::endl; } catch (const std::runtime_error& e) { if (myid==0) { std::cerr << "Error: " << e.what() << std::endl; - std::cerr << "Can not writine the md5 hash to HDF5" << std::endl; + std::cerr << "Can not write the md5 hash to HDF5" << std::endl; } } } diff --git a/src/Cylinder.cc b/src/Cylinder.cc index c395d751d..162a75b95 100644 --- a/src/Cylinder.cc +++ b/src/Cylinder.cc @@ -2134,9 +2134,9 @@ void Cylinder::saveDtype() try { std::vector pyinfo = {pyname, QuickDigest5::fileToHash(pyname)}; - file.createAttribute - ("pythonDiskType", - HighFive::DataSpace::From(pyinfo)).write(pyinfo); + + file.createAttribute("pythonDiskType", pyinfo); + } catch (const std::runtime_error& e) { std::cerr << "Cylinder::saveDtype error: " << e.what() << std::endl; std::cerr << "Can not write the md5 hash to HDF5" << std::endl; From 82062e97367bc8ebce9589c497369b6f706aac41 Mon Sep 17 00:00:00 2001 From: "Martin D. Weinberg" Date: Tue, 24 Mar 2026 15:28:30 -0400 Subject: [PATCH 065/131] More comments and output update with debugging info --- expui/BiorthBasis.cc | 43 ++++++++++++++++++++++++++----------------- src/Cylinder.cc | 19 ++++++++++--------- 2 files changed, 36 insertions(+), 26 deletions(-) diff --git a/expui/BiorthBasis.cc b/expui/BiorthBasis.cc index 20e4bc076..c7849a913 100644 --- a/expui/BiorthBasis.cc +++ b/expui/BiorthBasis.cc @@ -1,7 +1,7 @@ #include -#include "quickdigest5.hpp" -#include "YamlCheck.H" +#include "quickdigest5.hpp" // for md5 hashing of Python modules +#include "YamlCheck.H" // for YAML configuration checking #include "EXPException.H" #include "BiorthBasis.H" #include "DiskModels.H" @@ -13,8 +13,8 @@ #endif // Suppress HDF5 diagonostic messages from base layer when using -// HighFive -#define HDF5_QUIET +// HighFive. This should be enabled unless one is debugging. +// #define HDF5_QUIET namespace BasisClasses { @@ -1608,7 +1608,7 @@ namespace BasisClasses // Mute HDF5 error messages H5Eset_auto2(H5E_DEFAULT, NULL, NULL); - // Unmute (Restore) + // For unmute, use: // H5Eset_auto2(H5E_DEFAULT, old_func, old_client_data); #endif @@ -1710,18 +1710,21 @@ namespace BasisClasses current_md5 = QuickDigest5::fileToHash(pyname + ".py"); } catch (const std::runtime_error& e) { if (myid==0) - std::cerr << "Error: " << e.what() << std::endl; + std::cerr << "BiorthBasis::Cylindrical error: " + << e.what() << ", error compuing pyname md5sum" + << std::endl; } // Check that the md5sums match for the current Python - // module and the loaded Python module used to create the - // cache. If they do not match, force cache recomputation - // to ensure consistency with the current Python module. + // module and the Python module used to create the + // cache. If they do not match, force cache + // recomputation to ensure consistency with the current + // Python module. if (current_md5 != pyinfo[1]) { if (myid==0) { std::cout << "---- Cylindrical: Python module for disk density has changed since cache creation." << std::endl << "---- Current module: <" << pyname << ">, md5sum: " << current_md5 << std::endl - << "---- Loaded module: <" << pyinfo[0] << ">, md5sum: " << pyinfo[1] << std::endl + << "---- Cached module: <" << pyinfo[0] << ">, md5sum: " << pyinfo[1] << std::endl << "---- Cylindrical: forcing cache recomputation to ensure consistency" << std::endl; } cache_status = 0; @@ -1806,7 +1809,9 @@ namespace BasisClasses current_md5 = QuickDigest5::fileToHash(pyproj + ".py"); } catch (const std::runtime_error& e) { if (myid==0) - std::cerr << "Error: " << e.what() << std::endl; + std::cerr << "BiorthBasis::Cylindrical error: " + << e.what() << ", error computing pyproj md5sum" + << std::endl; } // Check that the md5sums match for the current Python projection // @@ -1814,7 +1819,7 @@ namespace BasisClasses if (myid==0) { std::cout << "---- Cylindrical: Python module for deprojection has changed since cache creation." << std::endl << "---- Current module: <" << pyproj << ">, md5sum: " << current_md5 << std::endl - << "---- Loaded module: <" << pyinfo[0] << ">, md5sum: " << pyinfo[1] << std::endl + << "---- Cached module: <" << pyinfo[0] << ">, md5sum: " << pyinfo[1] << std::endl << "---- Cylindrical: forcing cache recomputation to ensure consistency" << std::endl; } cache_status = 0; @@ -2028,8 +2033,10 @@ namespace BasisClasses } catch (const std::runtime_error& e) { if (myid==0) { - std::cerr << "Error: " << e.what() << std::endl; - std::cerr << "Can not write the md5 hash to HDF5" << std::endl; + std::cerr << "BiorthBasis::Cylindrical error: " + << e.what() + << ", can not write the pyname and md5 hash to HDF5" + << std::endl; } } } @@ -2055,8 +2062,10 @@ namespace BasisClasses << "> to cache file <" << cachename << ">" << std::endl; } catch (const std::runtime_error& e) { if (myid==0) { - std::cerr << "Error: " << e.what() << std::endl; - std::cerr << "Can not write the md5 hash to HDF5" << std::endl; + std::cerr << "BiorthBasis::Cylindrical error: " + << e.what() + << ", can not write the pyinfo and md5 hash to HDF5" + << std::endl; } } } @@ -2074,7 +2083,7 @@ namespace BasisClasses } #ifdef HDF5_QUIET - // Unmute HDF5 error messages (Restore) + // Unmute HDF5 error messages H5Eset_auto2(H5E_DEFAULT, old_func, old_client_data); #endif // Orthogonality sanity check diff --git a/src/Cylinder.cc b/src/Cylinder.cc index 162a75b95..9bcc81fa2 100644 --- a/src/Cylinder.cc +++ b/src/Cylinder.cc @@ -2080,7 +2080,7 @@ bool Cylinder::checkDtype() std::string current_md5; - // Get the md5sum for requested Python module + // Get the md5sum for requested Python module source file try { current_md5 = QuickDigest5::fileToHash(pyname); } catch (const std::runtime_error& e) { @@ -2088,10 +2088,10 @@ bool Cylinder::checkDtype() std::cerr << "Error: " << e.what() << std::endl; } - // Check that the md5sums match for the current Python - // module and the loaded Python module used to create the - // cache. If they do not match, force cache recomputation - // to ensure consistency with the current Python module. + // Check that the md5sums match for the current Python module + // source files and the loaded Python module used to create the + // cache. If they do not match, force cache recomputation to + // ensure consistency with the current Python module. if (current_md5 != pyinfo[1]) { if (myid==0) { std::cout << "---- Cylinder::checkDtype: Python module for disk density has changed since cache creation." << std::endl @@ -2125,10 +2125,11 @@ void Cylinder::saveDtype() ("DiskType", HighFive::DataSpace::From(dtype)).write(dtype); - // Write the md5sum for the Python module, if Python disk type is - // used. This will allow us to check for consistency between the - // Python module used to create the cache and the current Python - // module, and force cache recomputation if they do not match. + // Write the md5sum for the Python module source file, if Python + // disk type is used. This will allow us to check for consistency + // between the Python module used to create the cache and the + // current Python module, and force cache recomputation if they do + // not match. // if (DTYPE == DiskType::python) { try { From e641cc5ebf2afe863dc97f7277f708ea267c58e7 Mon Sep 17 00:00:00 2001 From: "Martin D. Weinberg" Date: Tue, 24 Mar 2026 17:13:41 -0400 Subject: [PATCH 066/131] Wrong tag type on read --- expui/BiorthBasis.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/expui/BiorthBasis.cc b/expui/BiorthBasis.cc index 5f1a1aef4..fd40b0fd3 100644 --- a/expui/BiorthBasis.cc +++ b/expui/BiorthBasis.cc @@ -1816,7 +1816,7 @@ namespace BasisClasses // Get the dmodel attribute // - read_attr = file.getAttribute("dmodel"); + read_attr = file.getAttribute("ProjType"); std::string loaded_dmodel; read_attr.read(loaded_dmodel); From b10c2effffbf547e38b6494a3ef76c204e28cd5f Mon Sep 17 00:00:00 2001 From: "Martin D. Weinberg" Date: Tue, 24 Mar 2026 17:26:54 -0400 Subject: [PATCH 067/131] Try to autodeduce the HighFive types for simplicity --- expui/BiorthBasis.cc | 10 +++------- src/Cylinder.cc | 5 ++--- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/expui/BiorthBasis.cc b/expui/BiorthBasis.cc index fd40b0fd3..81bac7fae 100644 --- a/expui/BiorthBasis.cc +++ b/expui/BiorthBasis.cc @@ -2061,8 +2061,7 @@ namespace BasisClasses // HighFive::File file(cachename, HighFive::File::ReadWrite); - file.createAttribute("DiskType", - HighFive::DataSpace::From(dtype)).write(dtype); + file.createAttribute("DiskType", dtype); std::cout << "---- Cylindrical: writing DiskType <" << dtype << "> to cache file <" << cachename << ">" << std::endl; @@ -2090,14 +2089,11 @@ namespace BasisClasses } // Save the deprojection flag - file.createAttribute - ("deproject", - HighFive::DataSpace::From(deproject)).write(deproject); + file.createAttribute("deproject", deproject); // Reopen the DataSpace for DMODEL since we need to write it as a string if (deproject) { - file.createAttribute - ("ProjType", HighFive::DataSpace::From(dmodel)).write(dmodel); + file.createAttribute("ProjType", dmodel); if (PTYPE == DeprojType::python) { try { diff --git a/src/Cylinder.cc b/src/Cylinder.cc index 42cfb6095..75a1b8339 100644 --- a/src/Cylinder.cc +++ b/src/Cylinder.cc @@ -2118,6 +2118,7 @@ bool Cylinder::checkDtype() cache_status = false; } auto read_attr = file.getAttribute("pythonDiskType"); + // Get the pyname attribute std::vector pyinfo; read_attr.read(pyinfo); @@ -2165,9 +2166,7 @@ void Cylinder::saveDtype() // Write the DiskType attribute (as a string for human readability) // - file.createAttribute - ("DiskType", - HighFive::DataSpace::From(dtype)).write(dtype); + file.createAttribute("DiskType", dtype); // Write the md5sum for the Python module source file, if Python // disk type is used. This will allow us to check for consistency From 8e6ed66ea33ecc09d732560276b6fd06b79f2e7d Mon Sep 17 00:00:00 2001 From: "Martin D. Weinberg" Date: Tue, 24 Mar 2026 17:44:03 -0400 Subject: [PATCH 068/131] More nested checking for Cylinder --- src/Cylinder.cc | 135 +++++++++++++++++++++++++++++------------------- 1 file changed, 81 insertions(+), 54 deletions(-) diff --git a/src/Cylinder.cc b/src/Cylinder.cc index 75a1b8339..039c59594 100644 --- a/src/Cylinder.cc +++ b/src/Cylinder.cc @@ -2069,6 +2069,8 @@ void Cylinder::writeCovarH5Params(HighFive::File& file) bool Cylinder::checkDtype() { + // All processes must check the dtype metadata to ensure consistency + // bool cache_status = true; // Open the cache file for reading the Python metadata @@ -2079,75 +2081,96 @@ bool Cylinder::checkDtype() // if (!file.hasAttribute("DiskType")) { if (myid==0) { - std::cout << "---- Cylinder:checkDtype: DiskType attribute not found in cache file <" << cachename << ">. " << std::endl - << "---- This may indicate an old cache file created before DiskType metadata was added. " << std::endl - << "---- We will continue...but consider remaking the cache to avoid confusion." << std::endl; + std::cout << "---- Cylinder:checkDtype: DiskType attribute not found in cache file <" << cachename << ">" << std::endl + << "---- This may indicate an old cache file created before DiskType metadata was added" << std::endl + << "---- We will continue...but consider remaking the cache to avoid confusion" << std::endl; } } else { - // Open existing DiskType attribute + // Check for existence of DiskType attribute // - auto read_attr = file.getAttribute("DiskType"); + if (!file.hasAttribute("DiskType")) { + if (myid==0) { + std::cout << "---- Cylinder::checkDtype: DiskType attribute not found in cache file <" << cachename << ">" << std::endl + << "---- This may indicate an old cache file created before DiskType metadata was added" << std::endl + << "---- We will continue...but consider remaking the cache to avoid confusion" << std::endl; + } + } else { + // Open existing DiskType attribute + // + auto read_attr = file.getAttribute("DiskType"); - std::string loaded_dtype; - read_attr.read(loaded_dtype); + std::string loaded_dtype; + read_attr.read(loaded_dtype); - DiskType disktype = dtlookup.at(loaded_dtype); + // Map the loaded dtype string to a DiskType enum value + // + DiskType disktype = dtlookup.at(loaded_dtype); - if (disktype != DTYPE) { - if (myid==0) { - std::cout << "---- Cylinder::checkDtype: DiskType for cache file <" - << cachename << "> is <" - << loaded_dtype << ">," << std::endl - << "which does not match the requested DiskType <" - << dtype << ">" << std::endl - << "---- Cylindrical: forcing cache recomputation" - << std::endl; - } - // Force cache recomputation - cache_status = false; - } - else if (disktype == DiskType::python) { - // Sanity check: if DiskType is python, then the pythonDiskType - // attribute must exist - if (!file.hasAttribute("pythonDiskType")) { + if (disktype != DTYPE) { if (myid==0) { - std::cout << "---- Cylinder::checkDtype: pythonDiskType attribute not found in cache file <" << cachename << ">. " << std::endl; - std::cout << "---- Cylindier:checkDtype: this may indicate a logic error. Forcing cache recomputation." << std::endl; + std::cout << "---- Cylinder::checkDtype: DiskType for cache file <" + << cachename << "> is <" + << loaded_dtype << ">," << std::endl + << "which does not match the requested DiskType <" + << dtype << ">" << std::endl + << "---- Cylindrical: forcing cache recomputation" + << std::endl; } // Force cache recomputation - cache_status = false; + cache_status = false; } - auto read_attr = file.getAttribute("pythonDiskType"); - - // Get the pyname attribute - std::vector pyinfo; - read_attr.read(pyinfo); + else if (disktype == DiskType::python) { + // Sanity check: if DiskType is python, then the + // pythonDiskType attribute must exist + // + if (!file.hasAttribute("pythonDiskType")) { + if (myid==0) { + std::cout << "---- Cylinder::checkDtype: pythonDiskType attribute not found in cache file <" << cachename << ">. " << std::endl; + std::cout << "---- Cylindier:checkDtype: this may indicate a logic error. Forcing cache recomputation." << std::endl; + } + // Force cache recomputation + cache_status = false; + } else { + auto read_attr = file.getAttribute("pythonDiskType"); + + // Get the pyname attribute + std::vector pyinfo; + read_attr.read(pyinfo); - std::string current_md5; - - // Get the md5sum for requested Python module source file - try { - current_md5 = QuickDigest5::fileToHash(pyname); - } catch (const std::runtime_error& e) { - if (myid==0) - std::cerr << "Error: " << e.what() << std::endl; - } + std::string current_md5; - // Check that the md5sums match for the current Python module - // source files and the loaded Python module used to create the - // cache. If they do not match, force cache recomputation to - // ensure consistency with the current Python module. - if (current_md5 != pyinfo[1]) { - if (myid==0) { - std::cout << "---- Cylinder::checkDtype: Python module for disk density has changed since cache creation." << std::endl - << "---- Current module: <" << pyname << ">, md5sum: " << current_md5 << std::endl - << "---- Loaded module: <" << pyinfo[0] << ">, md5sum: " << pyinfo[1] << std::endl - << "---- Cylindrical: forcing cache recomputation to ensure consistency" << std::endl; + // Get the md5sum for requested Python module source file + try { + current_md5 = QuickDigest5::fileToHash(pyname); + } catch (const std::runtime_error& e) { + if (myid==0) + std::cerr << "Cylinder::CheckDtype error: " + << e.what() << std::endl; + } + + // Check that the md5sums match for the current Python + // module source files and the loaded Python module used to + // create the cache. If they do not match, force cache + // recomputation to ensure consistency with the current + // Python module. + // + if (current_md5 != pyinfo[1]) { + if (myid==0) { + std::cout << "---- Cylinder::checkDtype: Python module for disk density has changed since cache creation." << std::endl + << "---- Current module: <" << pyname << ">, md5sum: " << current_md5 << std::endl + << "---- Loaded module: <" << pyinfo[0] << ">, md5sum: " << pyinfo[1] << std::endl + << "---- Cylindrical: forcing cache recomputation to ensure consistency" << std::endl; + } + cache_status = false; + } } - cache_status = false; + // End: have Python disk type, check md5 hashes } + // End: Python disk type check } + // End: DiskType attribute exists, check value } + // End: DiskType attribute check return cache_status; } @@ -2155,6 +2178,7 @@ bool Cylinder::checkDtype() void Cylinder::saveDtype() { // Only one process must write the dtype metadata + // if (myid) return; std::string dtype = dtstring.at(DTYPE); @@ -2168,7 +2192,7 @@ void Cylinder::saveDtype() // file.createAttribute("DiskType", dtype); - // Write the md5sum for the Python module source file, if Python + // Write the md5sum for the Python module source file if Python // disk type is used. This will allow us to check for consistency // between the Python module used to create the cache and the // current Python module, and force cache recomputation if they do @@ -2186,6 +2210,9 @@ void Cylinder::saveDtype() std::cerr << "Can not write the md5 hash to HDF5" << std::endl; } } + + // Deprojection metadata could be added here + } catch (const HighFive::Exception& err) { std::cerr << err.what() << std::endl; std::cerr << "Cylinder::saveDtype: error writing metadata to cache file <" From e40d6ad73b175c963cb5d34cc075826ea37e77f8 Mon Sep 17 00:00:00 2001 From: "Martin D. Weinberg" Date: Tue, 24 Mar 2026 17:48:08 -0400 Subject: [PATCH 069/131] Remove duplicateed DiskType check --- src/Cylinder.cc | 129 ++++++++++++++++++++++-------------------------- 1 file changed, 60 insertions(+), 69 deletions(-) diff --git a/src/Cylinder.cc b/src/Cylinder.cc index 039c59594..baf1efe4d 100644 --- a/src/Cylinder.cc +++ b/src/Cylinder.cc @@ -2086,89 +2086,80 @@ bool Cylinder::checkDtype() << "---- We will continue...but consider remaking the cache to avoid confusion" << std::endl; } } else { - // Check for existence of DiskType attribute + // Open existing DiskType attribute // - if (!file.hasAttribute("DiskType")) { - if (myid==0) { - std::cout << "---- Cylinder::checkDtype: DiskType attribute not found in cache file <" << cachename << ">" << std::endl - << "---- This may indicate an old cache file created before DiskType metadata was added" << std::endl - << "---- We will continue...but consider remaking the cache to avoid confusion" << std::endl; - } - } else { - // Open existing DiskType attribute - // - auto read_attr = file.getAttribute("DiskType"); + auto read_attr = file.getAttribute("DiskType"); - std::string loaded_dtype; - read_attr.read(loaded_dtype); + std::string loaded_dtype; + read_attr.read(loaded_dtype); - // Map the loaded dtype string to a DiskType enum value - // - DiskType disktype = dtlookup.at(loaded_dtype); + // Map the loaded dtype string to a DiskType enum value + // + DiskType disktype = dtlookup.at(loaded_dtype); - if (disktype != DTYPE) { + if (disktype != DTYPE) { + if (myid==0) { + std::cout << "---- Cylinder::checkDtype: DiskType for cache file <" + << cachename << "> is <" + << loaded_dtype << ">," << std::endl + << "which does not match the requested DiskType <" + << dtype << ">" << std::endl + << "---- Cylindrical: forcing cache recomputation" + << std::endl; + } + // Force cache recomputation + cache_status = false; + } + else if (disktype == DiskType::python) { + // Sanity check: if DiskType is python, then the + // pythonDiskType attribute must exist + // + if (!file.hasAttribute("pythonDiskType")) { if (myid==0) { - std::cout << "---- Cylinder::checkDtype: DiskType for cache file <" - << cachename << "> is <" - << loaded_dtype << ">," << std::endl - << "which does not match the requested DiskType <" - << dtype << ">" << std::endl - << "---- Cylindrical: forcing cache recomputation" - << std::endl; + std::cout << "---- Cylinder::checkDtype: pythonDiskType attribute not found in cache file <" << cachename << ">. " << std::endl; + std::cout << "---- Cylindier:checkDtype: this may indicate a logic error. Forcing cache recomputation." << std::endl; } // Force cache recomputation - cache_status = false; - } - else if (disktype == DiskType::python) { - // Sanity check: if DiskType is python, then the - // pythonDiskType attribute must exist + cache_status = false; + } else { + auto read_attr = file.getAttribute("pythonDiskType"); + + // Get the pyname attribute + std::vector pyinfo; + read_attr.read(pyinfo); + + std::string current_md5; + + // Get the md5sum for requested Python module source file + try { + current_md5 = QuickDigest5::fileToHash(pyname); + } catch (const std::runtime_error& e) { + if (myid==0) + std::cerr << "Cylinder::CheckDtype error: " + << e.what() << std::endl; + } + + // Check that the md5sums match for the current Python + // module source files and the loaded Python module used to + // create the cache. If they do not match, force cache + // recomputation to ensure consistency with the current + // Python module. // - if (!file.hasAttribute("pythonDiskType")) { + if (current_md5 != pyinfo[1]) { if (myid==0) { - std::cout << "---- Cylinder::checkDtype: pythonDiskType attribute not found in cache file <" << cachename << ">. " << std::endl; - std::cout << "---- Cylindier:checkDtype: this may indicate a logic error. Forcing cache recomputation." << std::endl; + std::cout << "---- Cylinder::checkDtype: Python module for disk density has changed since cache creation." << std::endl + << "---- Current module: <" << pyname << ">, md5sum: " << current_md5 << std::endl + << "---- Loaded module: <" << pyinfo[0] << ">, md5sum: " << pyinfo[1] << std::endl + << "---- Cylindrical: forcing cache recomputation to ensure consistency" << std::endl; } - // Force cache recomputation cache_status = false; - } else { - auto read_attr = file.getAttribute("pythonDiskType"); - - // Get the pyname attribute - std::vector pyinfo; - read_attr.read(pyinfo); - - std::string current_md5; - - // Get the md5sum for requested Python module source file - try { - current_md5 = QuickDigest5::fileToHash(pyname); - } catch (const std::runtime_error& e) { - if (myid==0) - std::cerr << "Cylinder::CheckDtype error: " - << e.what() << std::endl; - } - - // Check that the md5sums match for the current Python - // module source files and the loaded Python module used to - // create the cache. If they do not match, force cache - // recomputation to ensure consistency with the current - // Python module. - // - if (current_md5 != pyinfo[1]) { - if (myid==0) { - std::cout << "---- Cylinder::checkDtype: Python module for disk density has changed since cache creation." << std::endl - << "---- Current module: <" << pyname << ">, md5sum: " << current_md5 << std::endl - << "---- Loaded module: <" << pyinfo[0] << ">, md5sum: " << pyinfo[1] << std::endl - << "---- Cylindrical: forcing cache recomputation to ensure consistency" << std::endl; - } - cache_status = false; - } } - // End: have Python disk type, check md5 hashes } - // End: Python disk type check + // End: have Python disk type, check md5 hashes } - // End: DiskType attribute exists, check value + // End: Python disk type check + + // Could add deprojection checks here in the future } // End: DiskType attribute check From 2f874d764690bf853dfd015c3c1b1904b4b42776 Mon Sep 17 00:00:00 2001 From: "Martin D. Weinberg" Date: Tue, 24 Mar 2026 17:51:58 -0400 Subject: [PATCH 070/131] Additional comments only [No CI] --- src/Cylinder.H | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/Cylinder.H b/src/Cylinder.H index 5247196de..b40b2425c 100644 --- a/src/Cylinder.H +++ b/src/Cylinder.H @@ -361,11 +361,11 @@ protected: //! Write basis-specific parameters to HDF5 covariance file void writeCovarH5Params(HighFive::File& file); + //! Disk density function types for basis conditioning enum class DiskType { constant, gaussian, mn, exponential, doubleexpon, diskbulge, python }; - //@{ - //! Disk target types + //! Map human strings to disk target typenums const std::map dtlookup = { {"constant", DiskType::constant}, {"gaussian", DiskType::gaussian}, @@ -376,6 +376,7 @@ protected: {"python", DiskType::python} }; + //! Disk target type strings for reporting const std::map dtstring = { {DiskType::constant, "constant"}, {DiskType::gaussian, "gaussian"}, @@ -386,18 +387,25 @@ protected: {DiskType::python, "python"} }; + //! The default disk density function type for basis conditioning DiskType DTYPE = DiskType::exponential; + //! The string name of the disk density function type for basis conditioning std::string dtype; //! Dtype cache check for consistency between cache and current parameters bool checkDtype(); + + //! Reopen and write the current Dtype into the cache metadata void saveDtype(); + //! Disk density functions for basis conditioning double DiskDens(double R, double z, double phi); - std::shared_ptr pyDens; - //@} + //! If using a Python disk density function, this is the instance of + //! the wrapper class that allows us to call the Python function + //! from C++ + std::shared_ptr pyDens; public: From 82de0308d0c61c32b1f3d3fc0488e0b54fd9f359 Mon Sep 17 00:00:00 2001 From: "Martin D. Weinberg" Date: Tue, 24 Mar 2026 20:14:19 -0400 Subject: [PATCH 071/131] Attempted to fix garbled deprojection logic in BiorthBasis and EmpCylSL --- expui/BiorthBasis.cc | 247 ++++++++++++++++---------------------- exputil/EmpCylSL.cc | 54 +++++---- include/EmpCylSL.H | 8 +- src/Cylinder.H | 4 +- src/Cylinder.cc | 199 ++++++++++++++++-------------- utils/ICs/check_coefs.cc | 45 +++---- utils/ICs/check_coefs2.cc | 36 +++--- utils/ICs/initial.cc | 44 +++---- 8 files changed, 313 insertions(+), 324 deletions(-) diff --git a/expui/BiorthBasis.cc b/expui/BiorthBasis.cc index 81bac7fae..ff35f86a4 100644 --- a/expui/BiorthBasis.cc +++ b/expui/BiorthBasis.cc @@ -1228,7 +1228,6 @@ namespace BasisClasses "ashift", "expcond", "ignore", - "deproject", "logr", "dmodel", "ppow", @@ -1407,7 +1406,6 @@ namespace BasisClasses cachename = ".eof_cache_file"; oldcache = false; Ignore = false; - deproject = false; rnum = 200; pnum = 1; @@ -1497,7 +1495,6 @@ namespace BasisClasses if (conf["cmapr" ]) cmapR = conf["cmapr" ].as(); if (conf["cmapz" ]) cmapZ = conf["cmapz" ].as(); if (conf["ignore" ]) Ignore = conf["ignore" ].as(); - if (conf["deproject" ]) deproject = conf["deproject" ].as(); if (conf["dmodel" ]) dmodel = conf["dmodel" ].as(); if (conf["aratio" ]) aratio = conf["aratio" ].as(); @@ -1581,39 +1578,33 @@ namespace BasisClasses EmpCylSL::logarithmic = logarithmic; EmpCylSL::VFLAG = vflag; - // Set deprojected model type - // + // Set EmpCylSL mtype. This is the spherical function used to + // generate the EOF basis. If "deproject" is set, this will be + // auto-set to the same as the deprojection model. Otherwise, + // this can be set independently to allow for different spherical + // functions for the EOF basis + // Convert mtype string to lower case + // std::transform(mtype.begin(), mtype.end(), mtype.begin(), [](unsigned char c){ return std::tolower(c); }); // Set EmpCylSL mtype. This is the spherical function used to - // generate the EOF basis. If "deproject" is set, this will be - // overriden in EmpCylSL. + // generate the EOF basis. // - EmpCylSL::mtype = EmpCylSL::Exponential; // Default - if (mtype.compare("exponential")==0) { - EmpCylSL::mtype = EmpCylSL::Exponential; + auto itm = EmpCylSL::EmpModelMap.find(mtype); + + if (itm == EmpCylSL::EmpModelMap.end()) { if (myid==0) { - std::cout << "---- Cylindrical: using original exponential deprojected disk for EOF conditioning" << std::endl; - std::cout << "---- Cylindrical: consider using the exact, spherically deprojected exponential with 'mtype: ExpSphere'" << std::endl; + std::cout << "No EmpCylSL EmpModel named <" + << mtype << ">, valid types are: " + << "Exponential, ExpSphere, Gaussian, Plummer, Power, Deproject " + << "(not case sensitive)" << std::endl; } - } else if (mtype.compare("expsphere")==0) - EmpCylSL::mtype = EmpCylSL::ExpSphere; - else if (mtype.compare("gaussian")==0) - EmpCylSL::mtype = EmpCylSL::Gaussian; - else if (mtype.compare("plummer")==0) - EmpCylSL::mtype = EmpCylSL::Plummer; - else if (mtype.compare("power")==0) { - EmpCylSL::mtype = EmpCylSL::Power; - EmpCylSL::PPOW = ppow; - } else { - if (myid==0) std::cout << "No EmpCylSL EmpModel named <" - << mtype << ">, valid types are: " - << "Exponential, ExpSphere, Gaussian, Plummer, Power " - << "(not case sensitive)" << std::endl; throw std::runtime_error("Cylindrical:initialize: EmpCylSL bad parameter"); } + + EmpCylSL::mtype = itm->second; // Check for non-null cache file name. This must be specified // to prevent recomputation and unexpected behavior. @@ -1693,18 +1684,41 @@ namespace BasisClasses // HighFive::File file(cachename, HighFive::File::ReadOnly); + if (!file.hasAttribute("EmpModel")) { + // If the EmpModel attribute is missing, we have an old cache type + if (myid==0) { + std::cout << "---- Cylindrical: EmpModel attribute not found in cache file <" << cachename << ">. " << std::endl; + std::cout << "---- Cylindrical: this may indicate an old cache file created before EmpModel metadata was added. " << std::endl; + std::cout << "---- Cylindrical: we will continue...but consider remaking the cache to avoid confusion." << std::endl; + } + } else { + auto read_attr = file.getAttribute("EmpModel"); + + std::string empmodel; + read_attr.read(empmodel); + + if (empmodel != mtype) { + if (myid==0) { + std::cout << "---- Cylindrical: EmpModel for cache file <" + << cachename << "> is <" + << empmodel << ">," << std::endl + << "which does not match the requested EmpModel <" + << mtype << ">" << std::endl + << "---- Cylindrical: forcing cache recomputation" + << std::endl; + } + // Force cache recomputation + cache_status = 0; + } + } + // Sanity: check that the DiskType attribute exists // if (!file.hasAttribute("DiskType")) { - // If the DiskType attribute is missing, this may indicate - // an old cache file created before the DiskType metadata - // was added. We will continue with a warning, but trigger - // cache recomputation to ensure consistency with the - // current DiskType. if (myid==0) { std::cout << "---- Cylindrical: DiskType attribute not found in cache file <" << cachename << ">. " << std::endl - << "---- This may indicate an old cache file created before DiskType metadata was added. " << std::endl - << "---- We will continue...but consider remaking the cache to avoid confusion." << std::endl; + << "---- This is a logic error since the DiskType attribute is required for cache creation" << std::endl + << "---- We will trigger cache recomputation to be safe." << std::endl; } } else { // Open existing DiskType attribute @@ -1782,96 +1796,66 @@ namespace BasisClasses // Get the deproject attribute // - if (!file.hasAttribute("deproject")) { - // We should not be able to get here since the deproject - // attribute is required for cache creation, but if it is - // missing we will trigger cache recomputation to ensure - // consistency. - if (myid==0) { - std::cout << "---- Cylindrical: deproject attribute not found in cache file <" << cachename << ">. " << std::endl; - std::cout << "---- Cylindrical: this may be a logic error, trigger recomputation." << std::endl; - } - cache_status = 0; - } else { - read_attr = file.getAttribute("deproject"); - bool loaded_deproject; - read_attr.read(loaded_deproject); + if (cache_status == 1 and + EmpCylSL::mtype == EmpCylSL::EmpModel::Deproject) { + + // Get the dmodel attribute + // + read_attr = file.getAttribute("ProjType"); + std::string loaded_dmodel; + read_attr.read(loaded_dmodel); - if (deproject != loaded_deproject) { + if (loaded_dmodel != dmodel) { if (myid==0) { - std::cout << "---- Cylindrical: deproject flag for cache file <" << cachename << "> is <" - << std::boolalpha << loaded_deproject << std::noboolalpha - << ">, which does not match the requested deproject flag <" - << std::boolalpha << deproject << std::noboolalpha - << ">" << std::endl + std::cout << "---- Cylindrical: dmodel for cache file <" << cachename << "> is <" + << loaded_dmodel << ">, which does not match the requested dmodel <" + << dmodel << ">" << std::endl << "---- Cylindrical: forcing cache recomputation" << std::endl; } // Force cache recomputation - cache_status = 0; - } - - // Now check for deproject flag + cache_status = 0; + } + } + + if (cache_status == 1 and dmodel == "python") { + // Get the Python info // - if (cache_status == 1 and deproject) { - - // Get the dmodel attribute - // - read_attr = file.getAttribute("ProjType"); - std::string loaded_dmodel; - read_attr.read(loaded_dmodel); - - if (loaded_dmodel != dmodel) { - if (myid==0) { - std::cout << "---- Cylindrical: dmodel for cache file <" << cachename << "> is <" - << loaded_dmodel << ">, which does not match the requested dmodel <" - << dmodel << ">" << std::endl - << "---- Cylindrical: forcing cache recomputation" << std::endl; - } - // Force cache recomputation - cache_status = 0; + if (!file.hasAttribute("pythonProjType")) { + // We should not be able to get here since the pythonProjType + // attribute is required for cache creation with the Python + if (myid==0) { + std::cout << "---- Cylindrical: pythonProjType attribute not found in cache file <" << cachename << ">. " << std::endl; + std::cout << "---- Cylindrical: this may be a logic error, trigger recomputation." << std::endl; } - } + + cache_status = 0; + + } else { + read_attr = file.getAttribute("pythonProjType"); + std::vector pyinfo; + read_attr.read(pyinfo); + + std::string current_md5; - if (cache_status == 1 and dmodel == "python") { - // Get the Python info + // Get the md5sum for requested Python projection module + try { + current_md5 = QuickDigest5::fileToHash(pyproj + ".py"); + } catch (const std::runtime_error& e) { + if (myid==0) + std::cerr << "BiorthBasis::Cylindrical error: " + << e.what() << ", error computing pyproj md5sum" + << std::endl; + } + // Check that the md5sums match for the current Python projection // - if (!file.hasAttribute("pythonProjType")) { - // We should not be able to get here since the pythonProjType - // attribute is required for cache creation with the Python + if (current_md5 != pyinfo[1]) { if (myid==0) { - std::cout << "---- Cylindrical: pythonProjType attribute not found in cache file <" << cachename << ">. " << std::endl; - std::cout << "---- Cylindrical: this may be a logic error, trigger recomputation." << std::endl; + std::cout << "---- Cylindrical: Python module for deprojection has changed since cache creation." << std::endl + << "---- Current module: <" << pyproj << ">, md5sum: " << current_md5 << std::endl + << "---- Cached module: <" << pyinfo[0] << ">, md5sum: " << pyinfo[1] << std::endl + << "---- Cylindrical: forcing cache recomputation to ensure consistency" << std::endl; } - cache_status = 0; - - } else { - read_attr = file.getAttribute("pythonProjType"); - std::vector pyinfo; - read_attr.read(pyinfo); - - std::string current_md5; - - // Get the md5sum for requested Python projection module - try { - current_md5 = QuickDigest5::fileToHash(pyproj + ".py"); - } catch (const std::runtime_error& e) { - if (myid==0) - std::cerr << "BiorthBasis::Cylindrical error: " - << e.what() << ", error computing pyproj md5sum" - << std::endl; - } - // Check that the md5sums match for the current Python projection - // - if (current_md5 != pyinfo[1]) { - if (myid==0) { - std::cout << "---- Cylindrical: Python module for deprojection has changed since cache creation." << std::endl - << "---- Current module: <" << pyproj << ">, md5sum: " << current_md5 << std::endl - << "---- Cached module: <" << pyinfo[0] << ">, md5sum: " << pyinfo[1] << std::endl - << "---- Cylindrical: forcing cache recomputation to ensure consistency" << std::endl; - } - cache_status = 0; - } } } } @@ -1900,32 +1884,6 @@ namespace BasisClasses << "---- remove 'ignore' from your YAML configuration." << std::endl; } - // Convert mtype string to lower case - // - std::transform(mtype.begin(), mtype.end(), mtype.begin(), - [](unsigned char c){ return std::tolower(c); }); - - // Set EmpCylSL mtype. This is the spherical function used to - // generate the EOF basis. If "deproject" is set, this will be - // overriden in EmpCylSL. - // - EmpCylSL::mtype = EmpCylSL::Exponential; - if (mtype.compare("exponential")==0) - EmpCylSL::mtype = EmpCylSL::Exponential; - else if (mtype.compare("gaussian")==0) - EmpCylSL::mtype = EmpCylSL::Gaussian; - else if (mtype.compare("plummer")==0) - EmpCylSL::mtype = EmpCylSL::Plummer; - else if (mtype.compare("power")==0) { - EmpCylSL::mtype = EmpCylSL::Power; - EmpCylSL::PPOW = ppow; - } else { - if (myid==0) std::cout << "No EmpCylSL EmpModel named <" - << mtype << ">, valid types are: " - << "Exponential, Gaussian, Plummer, Power " - << "(not case sensitive)" << std::endl; - throw std::runtime_error("Cylindrical:initialize: EmpCylSL bad parameter"); - } // Set DiskType. This is the functional form for the disk used to // condition the basis. @@ -1967,7 +1925,7 @@ namespace BasisClasses // Use these user models to deproject for the EOF spherical basis // - if (deproject) { + if (EmpCylSL::mtype == EmpCylSL::EmpModel::Deproject) { // The scale in EmpCylSL is assumed to be 1 so we compute the // height relative to the length // @@ -2061,6 +2019,12 @@ namespace BasisClasses // HighFive::File file(cachename, HighFive::File::ReadWrite); + file.createAttribute("EmpModel", mtype); + + std::cout << "---- Cylindrical: writing EmpModel <" + << EmpCylSL::EmpModelLabs.at(EmpCylSL::mtype) + << "> to cache file <" << cachename << ">" << std::endl; + file.createAttribute("DiskType", dtype); std::cout << "---- Cylindrical: writing DiskType <" << dtype @@ -2088,11 +2052,8 @@ namespace BasisClasses } } - // Save the deprojection flag - file.createAttribute("deproject", deproject); - - // Reopen the DataSpace for DMODEL since we need to write it as a string - if (deproject) { + if (EmpCylSL::mtype == EmpCylSL::EmpModel::Deproject) { + file.createAttribute("ProjType", dmodel); if (PTYPE == DeprojType::python) { diff --git a/exputil/EmpCylSL.cc b/exputil/EmpCylSL.cc index 721d2c5a5..7b69bdc08 100644 --- a/exputil/EmpCylSL.cc +++ b/exputil/EmpCylSL.cc @@ -70,17 +70,25 @@ double EmpCylSL::PPOW = 4.0; bool EmpCylSL::NewCoefs = true; -EmpCylSL::EmpModel EmpCylSL::mtype = Exponential; - -std::map EmpCylSL::EmpModelLabs = - { {Exponential, "Exponential"}, - {ExpSphere, "ExpSphere" }, - {Gaussian, "Gaussian" }, - {Plummer, "Plummer" }, - {Power, "Power" }, - {Deproject, "Deproject" } - }; +EmpCylSL::EmpModel EmpCylSL::mtype = EmpCylSL::EmpModel::Exponential; + +std::map EmpCylSL::EmpModelMap = { + {"exponential", EmpModel::Exponential}, + {"expsphere", EmpModel::ExpSphere}, + {"gaussian", EmpModel::Gaussian}, + {"plummer", EmpModel::Plummer}, + {"power", EmpModel::Power}, + {"deproject", EmpModel::Deproject} +}; +std::map EmpCylSL::EmpModelLabs = { + {EmpModel::Exponential, "Exponential"}, + {EmpModel::ExpSphere, "ExpSphere"}, + {EmpModel::Gaussian, "Gaussian"}, + {EmpModel::Plummer, "Plummer"}, + {EmpModel::Power, "Power"}, + {EmpModel::Deproject, "Deproject"} +}; EmpCylSL::EmpCylSL() { @@ -555,7 +563,7 @@ void EmpCylSL::create_deprojection(double H, double Rf, int NUMR, int NINT, // densRg = Linear1d(rl, rho); massRg = Linear1d(rl, mass); - mtype = Deproject; + mtype = EmpModel::Deproject; } @@ -568,21 +576,21 @@ double EmpCylSL::massR(double R) double ans=0.0, fac, arg; switch (mtype) { - case Exponential: + case EmpModel::Exponential: ans = 1.0 - (1.0 + R)*exp(-R); break; - case ExpSphere: + case EmpModel::ExpSphere: ans = expdeproj.mass(R); break; - case Gaussian: + case EmpModel::Gaussian: arg = 0.5*R*R; ans = 1.0 - exp(-arg); break; - case Plummer: + case EmpModel::Plummer: fac = R/(1.0+R); ans = pow(fac, 3.0); break; - case Power: + case EmpModel::Power: { double z = R + 1.0; double a1 = PPOW - 1.0; @@ -593,7 +601,7 @@ double EmpCylSL::massR(double R) (1.0 - pow(z, -a1))/a1 ); } break; - case Deproject: + case EmpModel::Deproject: if (R < RMIN) ans = 0.0; else if (R>=RMAX) ans = massRg.eval(RMAX); else ans = massRg.eval(log(R)); @@ -608,21 +616,21 @@ double EmpCylSL::densR(double R) double ans=0.0, fac, arg; switch (mtype) { - case Exponential: + case EmpModel::Exponential: ans = exp(-R)/(4.0*M_PI*R); break; - case ExpSphere: + case EmpModel::ExpSphere: ans = expdeproj.density(R); break; - case Gaussian: + case EmpModel::Gaussian: arg = 0.5*R*R; ans = exp(-arg)/(4.0*M_PI*R); break; - case Plummer: + case EmpModel::Plummer: fac = 1.0/(1.0+R); ans = 3.0*pow(fac, 4.0)/(4.0*M_PI); break; - case Power: + case EmpModel::Power: { double z = R + 1.0; double a1 = PPOW - 1.0; @@ -631,7 +639,7 @@ double EmpCylSL::densR(double R) ans = 0.125*a1*a2*a3/M_PI * pow(z, -PPOW); } break; - case Deproject: + case EmpModel::Deproject: if (R < RMIN) ans = densRg.eval(RMIN); else if (R>=RMAX) ans = 0.0; else ans = densRg.eval(log(R)); diff --git a/include/EmpCylSL.H b/include/EmpCylSL.H index 445fcf713..cbbe7f308 100644 --- a/include/EmpCylSL.H +++ b/include/EmpCylSL.H @@ -374,7 +374,7 @@ public: }; //! Type of density model to use - enum EmpModel { + enum class EmpModel { Exponential, ExpSphere, Gaussian, @@ -383,6 +383,9 @@ public: Deproject, }; + static std::map EmpModelMap; + static std::map EmpModelLabs; + //! Axisymmetric disk density function for deprojection class AxiDisk { @@ -488,9 +491,6 @@ public: //! Use YAML header in coefficient file static bool NewCoefs; - //! Convert EmpModel to ascii label - static std::map EmpModelLabs; - //! Fraction of table range for basis images (for debug) static double HFAC; diff --git a/src/Cylinder.H b/src/Cylinder.H index b40b2425c..653b673e1 100644 --- a/src/Cylinder.H +++ b/src/Cylinder.H @@ -394,10 +394,10 @@ protected: std::string dtype; //! Dtype cache check for consistency between cache and current parameters - bool checkDtype(); + bool checkMetaData(); //! Reopen and write the current Dtype into the cache metadata - void saveDtype(); + void saveMetaData(); //! Disk density functions for basis conditioning double DiskDens(double R, double z, double phi); diff --git a/src/Cylinder.cc b/src/Cylinder.cc index baf1efe4d..30f00604b 100644 --- a/src/Cylinder.cc +++ b/src/Cylinder.cc @@ -198,39 +198,28 @@ Cylinder::Cylinder(Component* c0, const YAML::Node& conf, MixtureBasis *m) : if (cachename.size()==0) throw std::runtime_error("EmpCylSL: you must specify a cachename"); - - // Set deprojected model type - // // Convert mtype string to lower case + // std::transform(mtype.begin(), mtype.end(), mtype.begin(), [](unsigned char c){ return std::tolower(c); }); // Set EmpCylSL mtype. This is the spherical function used to - // generate the EOF basis. + // generate the EOF basis. If "deproject" is set, this will be + // overriden in EmpCylSL. // - EmpCylSL::mtype = EmpCylSL::Exponential; // Default - if (mtype.compare("exponential")==0) { - EmpCylSL::mtype = EmpCylSL::Exponential; + auto itm = EmpCylSL::EmpModelMap.find(mtype); + + if (itm == EmpCylSL::EmpModelMap.end()) { if (myid==0) { - std::cout << "---- Cylindrical: using original exponential deprojected disk for EOF conditioning" << std::endl; - std::cout << "---- Cylindrical: consider using the exact, spherically deprojected exponential with 'mtype: ExpSphere'" << std::endl; + std::cout << "No EmpCylSL EmpModel named <" + << mtype << ">, valid types are: " + << "Exponential, ExpSphere, Gaussian, Plummer, Power, Deproject " + << "(not case sensitive)" << std::endl; } - } else if (mtype.compare("expsphere")==0) - EmpCylSL::mtype = EmpCylSL::ExpSphere; - else if (mtype.compare("gaussian")==0) - EmpCylSL::mtype = EmpCylSL::Gaussian; - else if (mtype.compare("plummer")==0) - EmpCylSL::mtype = EmpCylSL::Plummer; - else if (mtype.compare("power")==0) { - EmpCylSL::mtype = EmpCylSL::Power; - EmpCylSL::PPOW = ppow; - } else { - if (myid==0) std::cout << "No EmpCylSL EmpModel named <" - << mtype << ">, valid types are: " - << "Exponential, ExpSphere, Gaussian, Plummer, Power " - << "(not case sensitive)" << std::endl; - throw std::runtime_error("Cylinder:initialize: EmpCylSL bad parameter"); + throw std::runtime_error("Cylindrical:initialize: EmpCylSL bad parameter"); } + + EmpCylSL::mtype = itm->second; // Make the empirical orthogonal basis instance // @@ -285,7 +274,7 @@ Cylinder::Cylinder(Component* c0, const YAML::Node& conf, MixtureBasis *m) : cache_ok = ortho->read_cache(); if (cache_ok) { - cache_ok = checkDtype(); + cache_ok = checkMetaData(); } // If new cache is requested, backup existing basis file @@ -402,7 +391,7 @@ Cylinder::Cylinder(Component* c0, const YAML::Node& conf, MixtureBasis *m) : }; ortho->generate_eof(rnum, pnum, tnum, dcond); - saveDtype(); + saveMetaData(); } firstime = false; @@ -1105,7 +1094,7 @@ void Cylinder::determine_coefficients_particles(void) cache_ok = ortho->read_cache(); if (cache_ok) { - cache_ok = checkDtype(); + cache_ok = checkMetaData(); } // For a restart, cache must be read // otherwise, abort @@ -2067,7 +2056,7 @@ void Cylinder::writeCovarH5Params(HighFive::File& file) } -bool Cylinder::checkDtype() +bool Cylinder::checkMetaData() { // All processes must check the dtype metadata to ensure consistency // @@ -2077,96 +2066,130 @@ bool Cylinder::checkDtype() // HighFive::File file(cachename, HighFive::File::ReadOnly); - // Sanity: check that the DiskType attribute exists + // Sanity: check that the EmpModel attribute exists // - if (!file.hasAttribute("DiskType")) { + if (!file.hasAttribute("EmpModel")) { if (myid==0) { - std::cout << "---- Cylinder:checkDtype: DiskType attribute not found in cache file <" << cachename << ">" << std::endl - << "---- This may indicate an old cache file created before DiskType metadata was added" << std::endl + std::cout << "---- Cylinder:checkDtype: EmpModel attribute not found in cache file <" << cachename << ">" << std::endl + << "---- This may indicate an old cache file created before EmpModel metadata was added" << std::endl << "---- We will continue...but consider remaking the cache to avoid confusion" << std::endl; - } + } } else { - // Open existing DiskType attribute + // Check that the EmpModel attribute matches the current empirical model // - auto read_attr = file.getAttribute("DiskType"); - - std::string loaded_dtype; - read_attr.read(loaded_dtype); + auto read_attr = file.getAttribute("EmpModel"); + + std::string loaded_mtype; + read_attr.read(loaded_mtype); - // Map the loaded dtype string to a DiskType enum value - // - DiskType disktype = dtlookup.at(loaded_dtype); - - if (disktype != DTYPE) { + if (loaded_mtype != mtype) { if (myid==0) { - std::cout << "---- Cylinder::checkDtype: DiskType for cache file <" - << cachename << "> is <" - << loaded_dtype << ">," << std::endl - << "which does not match the requested DiskType <" - << dtype << ">" << std::endl + std::cout << "---- Cylinder::checkDtype: EmpModel for cache file <" + << cachename << "> is <" << loaded_mtype << ">," + << " which does not match the requested empirical model <" + << mtype << ">" << std::endl << "---- Cylindrical: forcing cache recomputation" << std::endl; } // Force cache recomputation cache_status = false; } - else if (disktype == DiskType::python) { - // Sanity check: if DiskType is python, then the - // pythonDiskType attribute must exist - // - if (!file.hasAttribute("pythonDiskType")) { + else { + + if (!file.hasAttribute("DiskType")) { if (myid==0) { - std::cout << "---- Cylinder::checkDtype: pythonDiskType attribute not found in cache file <" << cachename << ">. " << std::endl; - std::cout << "---- Cylindier:checkDtype: this may indicate a logic error. Forcing cache recomputation." << std::endl; + std::cout << "---- Cylinder:checkDtype: DiskType attribute not found in cache file <" << cachename << ">" << std::endl + << "---- Cylinder:checkDtype: this may indicate a logic error. Forcing cache recomputation." << std::endl; } // Force cache recomputation cache_status = false; - } else { - auto read_attr = file.getAttribute("pythonDiskType"); - - // Get the pyname attribute - std::vector pyinfo; - read_attr.read(pyinfo); + } + else { + // Open existing DiskType attribute + // + auto read_attr = file.getAttribute("DiskType"); + + std::string loaded_dtype; + read_attr.read(loaded_dtype); - std::string current_md5; + // Map the loaded dtype string to a DiskType enum value + // + DiskType disktype = dtlookup.at(loaded_dtype); - // Get the md5sum for requested Python module source file - try { - current_md5 = QuickDigest5::fileToHash(pyname); - } catch (const std::runtime_error& e) { - if (myid==0) - std::cerr << "Cylinder::CheckDtype error: " - << e.what() << std::endl; + if (disktype != DTYPE) { + if (myid==0) { + std::cout << "---- Cylinder::checkDtype: DiskType for cache file <" + << cachename << "> is <" + << loaded_dtype << ">," << std::endl + << "which does not match the requested DiskType <" + << dtype << ">" << std::endl + << "---- Cylindrical: forcing cache recomputation" + << std::endl; + } + // Force cache recomputation + cache_status = false; } + else if (disktype == DiskType::python) { + // Sanity check: if DiskType is python, then the + // pythonDiskType attribute must exist + // + if (!file.hasAttribute("pythonDiskType")) { + if (myid==0) { + std::cout << "---- Cylinder::checkDtype: pythonDiskType attribute not found in cache file <" << cachename << ">. " << std::endl; + std::cout << "---- Cylindier:checkDtype: this may indicate a logic error. Forcing cache recomputation." << std::endl; + } + // Force cache recomputation + cache_status = false; + } else { + auto read_attr = file.getAttribute("pythonDiskType"); - // Check that the md5sums match for the current Python - // module source files and the loaded Python module used to - // create the cache. If they do not match, force cache - // recomputation to ensure consistency with the current - // Python module. - // - if (current_md5 != pyinfo[1]) { - if (myid==0) { - std::cout << "---- Cylinder::checkDtype: Python module for disk density has changed since cache creation." << std::endl - << "---- Current module: <" << pyname << ">, md5sum: " << current_md5 << std::endl - << "---- Loaded module: <" << pyinfo[0] << ">, md5sum: " << pyinfo[1] << std::endl - << "---- Cylindrical: forcing cache recomputation to ensure consistency" << std::endl; + // Get the pyname attribute + std::vector pyinfo; + read_attr.read(pyinfo); + + std::string current_md5; + + // Get the md5sum for requested Python module source file + try { + current_md5 = QuickDigest5::fileToHash(pyname); + } catch (const std::runtime_error& e) { + if (myid==0) + std::cerr << "Cylinder::CheckDtype error: " + << e.what() << std::endl; + } + + // Check that the md5sums match for the current Python + // module source files and the loaded Python module used to + // create the cache. If they do not match, force cache + // recomputation to ensure consistency with the current + // Python module. + // + if (current_md5 != pyinfo[1]) { + if (myid==0) { + std::cout << "---- Cylinder::checkDtype: Python module for disk density has changed since cache creation." << std::endl + << "---- Current module: <" << pyname << ">, md5sum: " << current_md5 << std::endl + << "---- Loaded module: <" << pyinfo[0] << ">, md5sum: " << pyinfo[1] << std::endl + << "---- Cylindrical: forcing cache recomputation to ensure consistency" << std::endl; + } + cache_status = false; + } } - cache_status = false; + // End: have Python disk type, check md5 hashes } + // End: Python disk type check } - // End: have Python disk type, check md5 hashes + // End: DiskType attribute check + + // Could add deprojection checks here in the future } - // End: Python disk type check - - // Could add deprojection checks here in the future + // End: DiskType attribute check } - // End: DiskType attribute check + // End: EmpModel attribute check return cache_status; } -void Cylinder::saveDtype() +void Cylinder::saveMetaData() { // Only one process must write the dtype metadata // diff --git a/utils/ICs/check_coefs.cc b/utils/ICs/check_coefs.cc index b8556090b..9d1a9f5f2 100644 --- a/utils/ICs/check_coefs.cc +++ b/utils/ICs/check_coefs.cc @@ -471,35 +471,36 @@ main(int ac, char **av) } } + // Set EmpCylSL mtype. This is the spherical function used to + // generate the EOF basis. If "deproject" is set, this will be + // overriden in EmpCylSL. + // + // Convert mtype string to lower case // std::transform(mtype.begin(), mtype.end(), mtype.begin(), [](unsigned char c){ return std::tolower(c); }); - - // Set EmpCylSL mtype - // - EmpCylSL::mtype = EmpCylSL::Exponential; - if (vm.count("mtype")) { - if (mtype.compare("exponential")==0) - EmpCylSL::mtype = EmpCylSL::Exponential; - else if (mtype.compare("expsphere")==0) - EmpCylSL::mtype = EmpCylSL::ExpSphere; - else if (mtype.compare("gaussian")==0) - EmpCylSL::mtype = EmpCylSL::Gaussian; - else if (mtype.compare("plummer")==0) - EmpCylSL::mtype = EmpCylSL::Plummer; - else if (mtype.compare("power")==0) { - EmpCylSL::mtype = EmpCylSL::Power; - EmpCylSL::PPOW = ppower; - } else { - if (myid==0) std::cout << "No EmpCylSL EmpModel named <" - << mtype << ">, valid types are: " - << "Exponential, ExpSphere, Gaussian, Plummer, Power" << std::endl; - MPI_Finalize(); - return -1; + + // Set EmpCylSL mtype. This is the spherical function used to + // generate the EOF basis. If "deproject" is set, this will be + // overriden in EmpCylSL. + // + auto itm = EmpCylSL::EmpModelMap.find(mtype); + + if (itm == EmpCylSL::EmpModelMap.end()) { + if (myid==0) { + std::cout << "No EmpCylSL EmpModel named <" + << mtype << ">, valid types are: " + << "Exponential, ExpSphere, Gaussian, Plummer, Power, Deproject " + << "(not case sensitive)" << std::endl; } + + MPI_Finalize(); + return 0; } + EmpCylSL::mtype = itm->second; + // Set DiskType // std::transform(disktype.begin(), disktype.end(), disktype.begin(), diff --git a/utils/ICs/check_coefs2.cc b/utils/ICs/check_coefs2.cc index 923a0edb4..225eabe6c 100644 --- a/utils/ICs/check_coefs2.cc +++ b/utils/ICs/check_coefs2.cc @@ -479,30 +479,26 @@ main(int ac, char **av) std::transform(mtype.begin(), mtype.end(), mtype.begin(), [](unsigned char c){ return std::tolower(c); }); - // Set EmpCylSL mtype + // Set EmpCylSL mtype. This is the spherical function used to + // generate the EOF basis. If "deproject" is set, this will be + // overriden in EmpCylSL. // - EmpCylSL::mtype = EmpCylSL::Exponential; - if (vm.count("mtype")) { - if (mtype.compare("exponential")==0) - EmpCylSL::mtype = EmpCylSL::Exponential; - else if (mtype.compare("expsphere")==0) - EmpCylSL::mtype = EmpCylSL::ExpSphere; - else if (mtype.compare("gaussian")==0) - EmpCylSL::mtype = EmpCylSL::Gaussian; - else if (mtype.compare("plummer")==0) { - EmpCylSL::mtype = EmpCylSL::Plummer; - } else if (mtype.compare("power")==0) { - EmpCylSL::mtype = EmpCylSL::Power; - EmpCylSL::PPOW = ppower; - } else { - if (myid==0) std::cout << "No EmpCylSL EmpModel named <" - << mtype << ">, valid types are: " - << "Exponential, ExpSphere, Gaussian, Plummer, Power" << std::endl; - MPI_Finalize(); - return -1; + auto itm = EmpCylSL::EmpModelMap.find(mtype); + + if (itm == EmpCylSL::EmpModelMap.end()) { + if (myid==0) { + std::cout << "No EmpCylSL EmpModel named <" + << mtype << ">, valid types are: " + << "Exponential, ExpSphere, Gaussian, Plummer, Power, Deproject " + << "(not case sensitive)" << std::endl; } + + MPI_Finalize(); + return 0; } + EmpCylSL::mtype = itm->second; + // Set DiskType // std::transform(disktype.begin(), disktype.end(), disktype.begin(), diff --git a/utils/ICs/initial.cc b/utils/ICs/initial.cc index 5f2201aa6..c94929b46 100644 --- a/utils/ICs/initial.cc +++ b/utils/ICs/initial.cc @@ -677,41 +677,41 @@ main(int ac, char **av) SphericalModelTable::linear = 1; } - // Convert mtype string to lower case + // Convert mtype string to lower case + // std::transform(mtype.begin(), mtype.end(), mtype.begin(), [](unsigned char c){ return std::tolower(c); }); - // Convert gentype string to lower case + // Convert gentype string to lower case + // std::transform(gentype.begin(), gentype.end(), gentype.begin(), [](unsigned char c){ return std::tolower(c); }); + // Convert mtype string to lower case + // + std::transform(mtype.begin(), mtype.end(), mtype.begin(), + [](unsigned char c){ return std::tolower(c); }); + // Set EmpCylSL mtype. This is the spherical function used to // generate the EOF basis. If "deproject" is set, this will be // overriden in EmpCylSL. // - EmpCylSL::mtype = EmpCylSL::Exponential; - if (vm.count("mtype")) { - if (mtype.compare("exponential")==0) - EmpCylSL::mtype = EmpCylSL::Exponential; - else if (mtype.compare("expsphere")==0) - EmpCylSL::mtype = EmpCylSL::ExpSphere; - else if (mtype.compare("gaussian")==0) - EmpCylSL::mtype = EmpCylSL::Gaussian; - else if (mtype.compare("plummer")==0) - EmpCylSL::mtype = EmpCylSL::Plummer; - else if (mtype.compare("power")==0) { - EmpCylSL::mtype = EmpCylSL::Power; - EmpCylSL::PPOW = PPower; - } else { - if (myid==0) std::cout << "No EmpCylSL EmpModel named <" - << mtype << ">, valid types are: " - << "Exponential, Gaussian, Plummer, Power " - << "(not case sensitive)" << std::endl; - MPI_Finalize(); - return 0; + auto itm = EmpCylSL::EmpModelMap.find(mtype); + + if (itm == EmpCylSL::EmpModelMap.end()) { + if (myid==0) { + std::cout << "No EmpCylSL EmpModel named <" + << mtype << ">, valid types are: " + << "Exponential, ExpSphere, Gaussian, Plummer, Power, Deproject " + << "(not case sensitive)" << std::endl; } + + MPI_Finalize(); + return 0; } + EmpCylSL::mtype = itm->second; + // Set DiskType. This is the functional form for the disk used to // condition the basis. // From b23224b3dbcb31eea314a4469c1a96c757df242a Mon Sep 17 00:00:00 2001 From: "Martin D. Weinberg" Date: Tue, 24 Mar 2026 22:20:05 -0400 Subject: [PATCH 072/131] Missing case transformation for dmodel --- expui/BiorthBasis.cc | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/expui/BiorthBasis.cc b/expui/BiorthBasis.cc index ff35f86a4..7cc70a1e0 100644 --- a/expui/BiorthBasis.cc +++ b/expui/BiorthBasis.cc @@ -1578,17 +1578,27 @@ namespace BasisClasses EmpCylSL::logarithmic = logarithmic; EmpCylSL::VFLAG = vflag; + // Convert dmodel string to lower case + // + std::transform(dmodel.begin(), dmodel.end(), dmodel.begin(), + [](unsigned char c){ return std::tolower(c); }); + + // Convert mtype string to lower case + // + std::transform(mtype.begin(), mtype.end(), mtype.begin(), + [](unsigned char c){ return std::tolower(c); }); + + // Convert dtype string to lower case + // + std::transform(dtype.begin(), dtype.end(), dtype.begin(), + [](unsigned char c){ return std::tolower(c); }); + // Set EmpCylSL mtype. This is the spherical function used to // generate the EOF basis. If "deproject" is set, this will be // auto-set to the same as the deprojection model. Otherwise, // this can be set independently to allow for different spherical // functions for the EOF basis - // Convert mtype string to lower case - // - std::transform(mtype.begin(), mtype.end(), mtype.begin(), - [](unsigned char c){ return std::tolower(c); }); - // Set EmpCylSL mtype. This is the spherical function used to // generate the EOF basis. // @@ -1665,12 +1675,6 @@ namespace BasisClasses {DiskType::python, "python"} }; - // Convert dtype string to lower case - // - std::transform(dtype.begin(), dtype.end(), dtype.begin(), - [](unsigned char c){ return std::tolower(c); }); - - // Check for map entry, will throw if the key is not in the map. DTYPE = dtlookup.at(dtype); @@ -1936,11 +1940,6 @@ namespace BasisClasses // EmpCylSL::AxiDiskPtr model; - // Convert dmodel string to lower case - // - std::transform(dmodel.begin(), dmodel.end(), dmodel.begin(), - [](unsigned char c){ return std::tolower(c); }); - // Map legacy/short model names to canonical keys expected by dplookup // if (dmodel == "exp") { From fe2e667d9bf9f6e11f9163cb261b19758796c70d Mon Sep 17 00:00:00 2001 From: "Martin D. Weinberg" Date: Tue, 24 Mar 2026 22:28:36 -0400 Subject: [PATCH 073/131] Additional comments only [no ci] --- expui/BiorthBasis.cc | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/expui/BiorthBasis.cc b/expui/BiorthBasis.cc index 7cc70a1e0..def3d1e1d 100644 --- a/expui/BiorthBasis.cc +++ b/expui/BiorthBasis.cc @@ -1578,17 +1578,20 @@ namespace BasisClasses EmpCylSL::logarithmic = logarithmic; EmpCylSL::VFLAG = vflag; - // Convert dmodel string to lower case + // Convert dmodel string to lower case (deprojection model for EOF + // basis construction) // std::transform(dmodel.begin(), dmodel.end(), dmodel.begin(), [](unsigned char c){ return std::tolower(c); }); - // Convert mtype string to lower case + // Convert mtype string to lower case (EmpCylSL spherical function + // for EOF basis construction) // std::transform(mtype.begin(), mtype.end(), mtype.begin(), [](unsigned char c){ return std::tolower(c); }); - // Convert dtype string to lower case + // Convert dtype string to lower case (disk density function for + // EOF conditioning) // std::transform(dtype.begin(), dtype.end(), dtype.begin(), [](unsigned char c){ return std::tolower(c); }); From 567f0050c5aea77b238f74fe0a83995c96f64590 Mon Sep 17 00:00:00 2001 From: "Martin D. Weinberg" Date: Tue, 24 Mar 2026 22:50:45 -0400 Subject: [PATCH 074/131] Minor sanity-check logic tweak --- expui/BiorthBasis.cc | 158 +++++++++++++++++++++++-------------------- 1 file changed, 85 insertions(+), 73 deletions(-) diff --git a/expui/BiorthBasis.cc b/expui/BiorthBasis.cc index def3d1e1d..cc71539c1 100644 --- a/expui/BiorthBasis.cc +++ b/expui/BiorthBasis.cc @@ -1692,18 +1692,26 @@ namespace BasisClasses HighFive::File file(cachename, HighFive::File::ReadOnly); if (!file.hasAttribute("EmpModel")) { - // If the EmpModel attribute is missing, we have an old cache type + // If the EmpModel attribute is missing, we have an old + // cache type. We will allow this for now to avoid breaking + // old caches, but we will trigger a cache build in the future + // if (myid==0) { std::cout << "---- Cylindrical: EmpModel attribute not found in cache file <" << cachename << ">. " << std::endl; std::cout << "---- Cylindrical: this may indicate an old cache file created before EmpModel metadata was added. " << std::endl; std::cout << "---- Cylindrical: we will continue...but consider remaking the cache to avoid confusion." << std::endl; } } else { + // Open existing EmpModel attribute and the the mtype string + // auto read_attr = file.getAttribute("EmpModel"); std::string empmodel; read_attr.read(empmodel); + // Check against the current mtype string. If they do not + // match, force cache recomputation to ensure consistency + // with the current mtype. if (empmodel != mtype) { if (myid==0) { std::cout << "---- Cylindrical: EmpModel for cache file <" @@ -1719,84 +1727,89 @@ namespace BasisClasses } } - // Sanity: check that the DiskType attribute exists - // - if (!file.hasAttribute("DiskType")) { - if (myid==0) { - std::cout << "---- Cylindrical: DiskType attribute not found in cache file <" << cachename << ">. " << std::endl - << "---- This is a logic error since the DiskType attribute is required for cache creation" << std::endl - << "---- We will trigger cache recomputation to be safe." << std::endl; - } - } else { - // Open existing DiskType attribute - // - auto read_attr = file.getAttribute("DiskType"); - - std::string loaded_dtype; - read_attr.read(loaded_dtype); - - DiskType disktype = dtlookup.at(loaded_dtype); + if (cache_status == 1) { - if (disktype != DTYPE) { + // Sanity: check that the DiskType attribute exists + // + if (!file.hasAttribute("DiskType")) { if (myid==0) { - std::cout << "---- Cylindrical: DiskType for cache file <" - << cachename << "> is <" - << loaded_dtype << ">," << std::endl - << "which does not match the requested DiskType <" - << dtype << ">" << std::endl - << "---- Cylindrical: forcing cache recomputation" - << std::endl; + std::cout << "---- Cylindrical: DiskType attribute not found in cache file <" << cachename << ">. " << std::endl + << "---- This is a logic error since the DiskType attribute is required for cache creation" << std::endl + << "---- We will trigger cache recomputation to be safe." << std::endl; } // Force cache recomputation - cache_status = 0; - } - else if (disktype == DiskType::python) { - - // If the DiskType is python, we also need to check that - // the Python module used to create the cache matches the - // current Python module to ensure consistency. This tag - // should be present in the cache if it was created with a - // recent version of the code, but if it is missing we - // will trigger cache recomputation to ensure consistency - // with the current Python module. - if (file.hasAttribute("pythonDiskType") == false) { - if (myid==0) { - std::cout << "---- Cylindrical: pythonDiskType attribute not found in cache file <" << cachename << ">. " << std::endl; - std::cout << "---- Cylindrical: this may be a logic error, trigger recomputation." << std::endl; - } - cache_status = 0; - } else { - // Get the pyname attribute - auto read_attr = file.getAttribute("pythonDiskType"); + cache_status = 0; + } else { + // Open existing DiskType attribute + // + auto read_attr = file.getAttribute("DiskType"); - std::vector pyinfo; - read_attr.read(pyinfo); - - std::string current_md5; + std::string loaded_dtype; + read_attr.read(loaded_dtype); - // Get the md5sum for requested Python module - try { - current_md5 = QuickDigest5::fileToHash(pyname + ".py"); - } catch (const std::runtime_error& e) { - if (myid==0) - std::cerr << "BiorthBasis::Cylindrical error: " - << e.what() << ", error compuing pyname md5sum" - << std::endl; + DiskType disktype = dtlookup.at(loaded_dtype); + + if (disktype != DTYPE) { + if (myid==0) { + std::cout << "---- Cylindrical: DiskType for cache file <" + << cachename << "> is <" + << loaded_dtype << ">," << std::endl + << "which does not match the requested DiskType <" + << dtype << ">" << std::endl + << "---- Cylindrical: forcing cache recomputation" + << std::endl; } - - // Check that the md5sums match for the current Python - // module and the Python module used to create the - // cache. If they do not match, force cache - // recomputation to ensure consistency with the current - // Python module. - if (current_md5 != pyinfo[1]) { + // Force cache recomputation + cache_status = 0; + } + else if (disktype == DiskType::python) { + + // If the DiskType is python, we also need to check that + // the Python module used to create the cache matches the + // current Python module to ensure consistency. This tag + // should be present in the cache if it was created with a + // recent version of the code, but if it is missing we + // will trigger cache recomputation to ensure consistency + // with the current Python module. + if (file.hasAttribute("pythonDiskType") == false) { if (myid==0) { - std::cout << "---- Cylindrical: Python module for disk density has changed since cache creation." << std::endl - << "---- Current module: <" << pyname << ">, md5sum: " << current_md5 << std::endl - << "---- Cached module: <" << pyinfo[0] << ">, md5sum: " << pyinfo[1] << std::endl - << "---- Cylindrical: forcing cache recomputation to ensure consistency" << std::endl; + std::cout << "---- Cylindrical: pythonDiskType attribute not found in cache file <" << cachename << ">. " << std::endl; + std::cout << "---- Cylindrical: this may be a logic error, trigger recomputation." << std::endl; } cache_status = 0; + } else { + // Get the pyname attribute + auto read_attr = file.getAttribute("pythonDiskType"); + + std::vector pyinfo; + read_attr.read(pyinfo); + + std::string current_md5; + + // Get the md5sum for requested Python module + try { + current_md5 = QuickDigest5::fileToHash(pyname + ".py"); + } catch (const std::runtime_error& e) { + if (myid==0) + std::cerr << "BiorthBasis::Cylindrical error: " + << e.what() << ", error compuing pyname md5sum" + << std::endl; + } + + // Check that the md5sums match for the current Python + // module and the Python module used to create the + // cache. If they do not match, force cache + // recomputation to ensure consistency with the current + // Python module. + if (current_md5 != pyinfo[1]) { + if (myid==0) { + std::cout << "---- Cylindrical: Python module for disk density has changed since cache creation." << std::endl + << "---- Current module: <" << pyname << ">, md5sum: " << current_md5 << std::endl + << "---- Cached module: <" << pyinfo[0] << ">, md5sum: " << pyinfo[1] << std::endl + << "---- Cylindrical: forcing cache recomputation to ensure consistency" << std::endl; + } + cache_status = 0; + } } } } @@ -1808,7 +1821,7 @@ namespace BasisClasses // Get the dmodel attribute // - read_attr = file.getAttribute("ProjType"); + auto read_attr = file.getAttribute("ProjType"); std::string loaded_dmodel; read_attr.read(loaded_dmodel); @@ -1838,7 +1851,8 @@ namespace BasisClasses cache_status = 0; } else { - read_attr = file.getAttribute("pythonProjType"); + // Get the pyproj attribute and md5 hash from the cache + auto read_attr = file.getAttribute("pythonProjType"); std::vector pyinfo; read_attr.read(pyinfo); @@ -1881,7 +1895,6 @@ namespace BasisClasses // Remake cylindrical basis // - if (Ignore and myid==0) { std::cout << "---- BasisFactory: We have deprecated the 'ignore' parameter for the" << std::endl << "---- Cylindrical class. If the cache file exists but does" << std::endl @@ -1891,7 +1904,6 @@ namespace BasisClasses << "---- remove 'ignore' from your YAML configuration." << std::endl; } - // Set DiskType. This is the functional form for the disk used to // condition the basis. // From 5fc11984a0147e2b7d7a348eb39d407b2d6721ba Mon Sep 17 00:00:00 2001 From: "Martin D. Weinberg" Date: Wed, 25 Mar 2026 09:28:00 -0400 Subject: [PATCH 075/131] Add defaults for mtype and dtype to Cylinder --- expui/BiorthBasis.cc | 2 +- src/Cylinder.cc | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/expui/BiorthBasis.cc b/expui/BiorthBasis.cc index cc71539c1..82c4d6eaa 100644 --- a/expui/BiorthBasis.cc +++ b/expui/BiorthBasis.cc @@ -1416,7 +1416,7 @@ namespace BasisClasses EVEN_M = false; cmapR = 1; cmapZ = 1; - mtype = "Exponential"; + mtype = "exponential"; dtype = "exponential"; vflag = 0; diff --git a/src/Cylinder.cc b/src/Cylinder.cc index 30f00604b..f80618cfe 100644 --- a/src/Cylinder.cc +++ b/src/Cylinder.cc @@ -127,6 +127,9 @@ Cylinder::Cylinder(Component* c0, const YAML::Node& conf, MixtureBasis *m) : ncylodd = 9; ncylrecomp = -1; + mtype = "exponential"; + dtype = "exponential"; + // For disk basis construction with doubleexpon // aratio = 1.0; // Radial scale length ratio From 0c49ed056c788e027c00903186c11da109c1b894 Mon Sep 17 00:00:00 2001 From: "Martin D. Weinberg" Date: Wed, 25 Mar 2026 10:43:25 -0400 Subject: [PATCH 076/131] Deduplicate cache tags, oops --- expui/BiorthBasis.cc | 78 +++++++------------- src/Cylinder.cc | 165 ++++++++++++++++++------------------------- 2 files changed, 94 insertions(+), 149 deletions(-) diff --git a/expui/BiorthBasis.cc b/expui/BiorthBasis.cc index 82c4d6eaa..7191ef5df 100644 --- a/expui/BiorthBasis.cc +++ b/expui/BiorthBasis.cc @@ -1691,54 +1691,27 @@ namespace BasisClasses // HighFive::File file(cachename, HighFive::File::ReadOnly); - if (!file.hasAttribute("EmpModel")) { - // If the EmpModel attribute is missing, we have an old - // cache type. We will allow this for now to avoid breaking - // old caches, but we will trigger a cache build in the future - // - if (myid==0) { - std::cout << "---- Cylindrical: EmpModel attribute not found in cache file <" << cachename << ">. " << std::endl; - std::cout << "---- Cylindrical: this may indicate an old cache file created before EmpModel metadata was added. " << std::endl; - std::cout << "---- Cylindrical: we will continue...but consider remaking the cache to avoid confusion." << std::endl; - } - } else { - // Open existing EmpModel attribute and the the mtype string - // - auto read_attr = file.getAttribute("EmpModel"); - - std::string empmodel; - read_attr.read(empmodel); - - // Check against the current mtype string. If they do not - // match, force cache recomputation to ensure consistency - // with the current mtype. - if (empmodel != mtype) { - if (myid==0) { - std::cout << "---- Cylindrical: EmpModel for cache file <" - << cachename << "> is <" - << empmodel << ">," << std::endl - << "which does not match the requested EmpModel <" - << mtype << ">" << std::endl - << "---- Cylindrical: forcing cache recomputation" - << std::endl; - } - // Force cache recomputation - cache_status = 0; - } - } - - if (cache_status == 1) { + // mtype is already cached as "model" attribute in the HDF5 + // cache file, so we do not need to write it here. We just + // need to write the DiskType and Python metadata (if + // applicable). + // - // Sanity: check that the DiskType attribute exists - // - if (!file.hasAttribute("DiskType")) { - if (myid==0) { + // Check that the DiskType for the cache matches the requested + // DiskType If the DiskType attribute is missing from the + // cache, this indicates thet the cache was created with an + // older versions of the code that did not include the + // DiskType attribute in the cache. We should trigger a cache + // recomputation in this case to be safe, but will let this + // pass for backward compatibility with older caches. + // + if (!file.hasAttribute("DiskType")) { + if (myid==0) { std::cout << "---- Cylindrical: DiskType attribute not found in cache file <" << cachename << ">. " << std::endl - << "---- This is a logic error since the DiskType attribute is required for cache creation" << std::endl - << "---- We will trigger cache recomputation to be safe." << std::endl; - } - // Force cache recomputation - cache_status = 0; + << "---- This indicates that the cache was created with an older version of the" << std::endl + << "---- code that did not include the DiskType attribute in the cache. We" << std::endl + << "---- suggest deleting the old cache file to prevent this warning and rebuild" << std::endl + << "---- the cache, but we will continue..." << std::endl; } else { // Open existing DiskType attribute // @@ -1880,7 +1853,9 @@ namespace BasisClasses } } } + // End: DeprojType and Python module consistency checks with cache } + // End: DiskType and Python module consistency checks with cache } catch (const HighFive::Exception& err) { if (myid==0) { @@ -2033,12 +2008,11 @@ namespace BasisClasses // HighFive::File file(cachename, HighFive::File::ReadWrite); - file.createAttribute("EmpModel", mtype); - - std::cout << "---- Cylindrical: writing EmpModel <" - << EmpCylSL::EmpModelLabs.at(EmpCylSL::mtype) - << "> to cache file <" << cachename << ">" << std::endl; - + // mtype is already cached as "model" attribute in the HDF5 + // cache file, so we do not need to write it here. We just + // need to write the DiskType and Python metadata (if + // applicable). + // file.createAttribute("DiskType", dtype); std::cout << "---- Cylindrical: writing DiskType <" << dtype diff --git a/src/Cylinder.cc b/src/Cylinder.cc index f80618cfe..b50ebdf12 100644 --- a/src/Cylinder.cc +++ b/src/Cylinder.cc @@ -2069,125 +2069,92 @@ bool Cylinder::checkMetaData() // HighFive::File file(cachename, HighFive::File::ReadOnly); - // Sanity: check that the EmpModel attribute exists + // Sanity: check that the DiskType attribute exists // - if (!file.hasAttribute("EmpModel")) { + if (!file.hasAttribute("DiskType")) { if (myid==0) { - std::cout << "---- Cylinder:checkDtype: EmpModel attribute not found in cache file <" << cachename << ">" << std::endl + std::cout << "---- Cylinder:checkMetaData: DiskType attribute not found in cache file <" << cachename << ">" << std::endl << "---- This may indicate an old cache file created before EmpModel metadata was added" << std::endl << "---- We will continue...but consider remaking the cache to avoid confusion" << std::endl; } - } else { - // Check that the EmpModel attribute matches the current empirical model + } + else { + // Open existing DiskType attribute // - auto read_attr = file.getAttribute("EmpModel"); - - std::string loaded_mtype; - read_attr.read(loaded_mtype); - - if (loaded_mtype != mtype) { + auto read_attr = file.getAttribute("DiskType"); + + std::string loaded_dtype; + read_attr.read(loaded_dtype); + + // Map the loaded dtype string to a DiskType enum value + // + DiskType disktype = dtlookup.at(loaded_dtype); + + if (disktype != DTYPE) { if (myid==0) { - std::cout << "---- Cylinder::checkDtype: EmpModel for cache file <" - << cachename << "> is <" << loaded_mtype << ">," - << " which does not match the requested empirical model <" - << mtype << ">" << std::endl - << "---- Cylindrical: forcing cache recomputation" + std::cout << "---- Cylinder::checkMetaData: DiskType for cache file <" + << cachename << "> is <" + << loaded_dtype << ">," << std::endl + << "which does not match the requested DiskType <" + << dtype << ">" << std::endl + << "---- Cylinder::checkMetaData: forcing cache recomputation" << std::endl; } // Force cache recomputation cache_status = false; } - else { - - if (!file.hasAttribute("DiskType")) { + else if (disktype == DiskType::python) { + // Sanity check: if DiskType is python, then the + // pythonDiskType attribute must exist + // + if (!file.hasAttribute("pythonDiskType")) { if (myid==0) { - std::cout << "---- Cylinder:checkDtype: DiskType attribute not found in cache file <" << cachename << ">" << std::endl - << "---- Cylinder:checkDtype: this may indicate a logic error. Forcing cache recomputation." << std::endl; + std::cout << "---- Cylinder::checkMetaData: pythonDiskType attribute not found in cache file <" << cachename << ">. " << std::endl; + std::cout << "---- Cylinder::checkMetaData: this may indicate a logic error. Forcing cache recomputation." << std::endl; } // Force cache recomputation cache_status = false; - } - else { - // Open existing DiskType attribute - // - auto read_attr = file.getAttribute("DiskType"); - - std::string loaded_dtype; - read_attr.read(loaded_dtype); - - // Map the loaded dtype string to a DiskType enum value - // - DiskType disktype = dtlookup.at(loaded_dtype); - - if (disktype != DTYPE) { - if (myid==0) { - std::cout << "---- Cylinder::checkDtype: DiskType for cache file <" - << cachename << "> is <" - << loaded_dtype << ">," << std::endl - << "which does not match the requested DiskType <" - << dtype << ">" << std::endl - << "---- Cylindrical: forcing cache recomputation" - << std::endl; - } - // Force cache recomputation - cache_status = false; - } - else if (disktype == DiskType::python) { - // Sanity check: if DiskType is python, then the - // pythonDiskType attribute must exist - // - if (!file.hasAttribute("pythonDiskType")) { - if (myid==0) { - std::cout << "---- Cylinder::checkDtype: pythonDiskType attribute not found in cache file <" << cachename << ">. " << std::endl; - std::cout << "---- Cylindier:checkDtype: this may indicate a logic error. Forcing cache recomputation." << std::endl; - } - // Force cache recomputation - cache_status = false; - } else { - auto read_attr = file.getAttribute("pythonDiskType"); + } else { + auto read_attr = file.getAttribute("pythonDiskType"); - // Get the pyname attribute - std::vector pyinfo; - read_attr.read(pyinfo); + // Get the pyname attribute + std::vector pyinfo; + read_attr.read(pyinfo); - std::string current_md5; + std::string current_md5; - // Get the md5sum for requested Python module source file - try { - current_md5 = QuickDigest5::fileToHash(pyname); - } catch (const std::runtime_error& e) { - if (myid==0) - std::cerr << "Cylinder::CheckDtype error: " - << e.what() << std::endl; - } + // Get the md5sum for requested Python module source file + try { + current_md5 = QuickDigest5::fileToHash(pyname); + } catch (const std::runtime_error& e) { + if (myid==0) + std::cerr << "Cylinder::checkMetaData error: " + << e.what() << std::endl; + } - // Check that the md5sums match for the current Python - // module source files and the loaded Python module used to - // create the cache. If they do not match, force cache - // recomputation to ensure consistency with the current - // Python module. - // - if (current_md5 != pyinfo[1]) { - if (myid==0) { - std::cout << "---- Cylinder::checkDtype: Python module for disk density has changed since cache creation." << std::endl - << "---- Current module: <" << pyname << ">, md5sum: " << current_md5 << std::endl - << "---- Loaded module: <" << pyinfo[0] << ">, md5sum: " << pyinfo[1] << std::endl - << "---- Cylindrical: forcing cache recomputation to ensure consistency" << std::endl; - } - cache_status = false; - } + // Check that the md5sums match for the current Python + // module source files and the loaded Python module used to + // create the cache. If they do not match, force cache + // recomputation to ensure consistency with the current + // Python module. + // + if (current_md5 != pyinfo[1]) { + if (myid==0) { + std::cout << "---- Cylinder::checkMetaData: Python module for disk density has changed since cache creation." << std::endl + << "---- Current module: <" << pyname << ">, md5sum: " << current_md5 << std::endl + << "---- Loaded module: <" << pyinfo[0] << ">, md5sum: " << pyinfo[1] << std::endl + << "---- Cylinder:checkMetaData: forcing cache recomputation to ensure consistency" << std::endl; } - // End: have Python disk type, check md5 hashes + cache_status = false; } - // End: Python disk type check } - // End: DiskType attribute check - - // Could add deprojection checks here in the future + // End: have Python disk type, check md5 hashes } - // End: DiskType attribute check + // End: Python disk type check + + // Could add deprojection checks here in the future } - // End: EmpModel attribute check + // End: DiskType attribute check return cache_status; } @@ -2199,7 +2166,11 @@ void Cylinder::saveMetaData() if (myid) return; std::string dtype = dtstring.at(DTYPE); - + + // mtype is already cached as "model" attribute in the HDF5 cache + // file, so we do not need to write it here. We just need to write + // the DiskType and Python metadata (if applicable). + // try { // Reopen the cache file for writing the Python metadata // @@ -2223,7 +2194,7 @@ void Cylinder::saveMetaData() file.createAttribute("pythonDiskType", pyinfo); } catch (const std::runtime_error& e) { - std::cerr << "Cylinder::saveDtype error: " << e.what() << std::endl; + std::cerr << "Cylinder::saveMetaData error: " << e.what() << std::endl; std::cerr << "Can not write the md5 hash to HDF5" << std::endl; } } @@ -2232,7 +2203,7 @@ void Cylinder::saveMetaData() } catch (const HighFive::Exception& err) { std::cerr << err.what() << std::endl; - std::cerr << "Cylinder::saveDtype: error writing metadata to cache file <" + std::cerr << "Cylinder::saveMetaData: error writing metadata to cache file <" << cachename << std::endl; } } From 2ef3aba295e4e4d8cbae16a713133b6f1cbe2eca Mon Sep 17 00:00:00 2001 From: "Martin D. Weinberg" Date: Thu, 26 Mar 2026 11:11:34 -0400 Subject: [PATCH 077/131] Added automatic output of valid EmpModel types --- expui/BiorthBasis.cc | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/expui/BiorthBasis.cc b/expui/BiorthBasis.cc index 7191ef5df..3592a6c67 100644 --- a/expui/BiorthBasis.cc +++ b/expui/BiorthBasis.cc @@ -1605,19 +1605,19 @@ namespace BasisClasses // Set EmpCylSL mtype. This is the spherical function used to // generate the EOF basis. // - auto itm = EmpCylSL::EmpModelMap.find(mtype); - - if (itm == EmpCylSL::EmpModelMap.end()) { + try { + auto itm = EmpCylSL::EmpModelMap.find(mtype); + EmpCylSL::mtype = itm->second; + } + catch (const std::out_of_range& err) { if (myid==0) { - std::cout << "No EmpCylSL EmpModel named <" - << mtype << ">, valid types are: " - << "Exponential, ExpSphere, Gaussian, Plummer, Power, Deproject " - << "(not case sensitive)" << std::endl; + std::cout << "Cylindrical::initialize error parsing 'mtype' parameter in YAML config" << std::endl; + std::cout << "Valid options are: "; + for (auto p : EmpCylSL::EmpModelLabs) std::cout << p.second << " "; + std::cout << "(not case sensitive)" << std::endl; } - throw std::runtime_error("Cylindrical:initialize: EmpCylSL bad parameter"); + throw std::runtime_error("Cylindrical::initialize: invalid 'mtype' parameter in YAML config"); } - - EmpCylSL::mtype = itm->second; // Check for non-null cache file name. This must be specified // to prevent recomputation and unexpected behavior. From 73a47f657640f3835578298b8a864c5ff62b29a1 Mon Sep 17 00:00:00 2001 From: "Martin D. Weinberg" Date: Thu, 26 Mar 2026 11:11:52 -0400 Subject: [PATCH 078/131] Added deprojection support to Cylinder --- src/Cylinder.H | 43 +++++++- src/Cylinder.cc | 253 +++++++++++++++++++++++++++++++++++++++++------- 2 files changed, 258 insertions(+), 38 deletions(-) diff --git a/src/Cylinder.H b/src/Cylinder.H index 653b673e1..6103321a5 100644 --- a/src/Cylinder.H +++ b/src/Cylinder.H @@ -46,6 +46,18 @@ class MixtureBasis; @param dweight is the relative weight of the second component in the double-exponential disk basis construction (default: 1.0) + @param dmodel is the disk model type for deprojection and EOF conditioning. See Cylinder::DiskType for options. + + @param mtype is the spherical model type for conditioning the basis. See EmpCylSL::EmpModel for options. + + @param dtype is the density model type for conditioning the basis. See Cylinder::DiskType for options. + + @param rwidth is the radial width of the error function truncation for disk basis construction (default: 0.0, which implies no truncation) + + @param rtrunc is the radial truncation radius for disk basis construction (default: 0.1) + + @param rfactor is the radial scale factor for disk basis construction (default: 1.0, which implies no scaling) + @param lmaxfid is the maximum spherical harmonic index for EOF construction @param nmaxfid is the maximum radial index for EOF construction @@ -121,7 +133,7 @@ class MixtureBasis; @param cmapz is the vertical coordinate mapping type - @param mtype is the deprojected model type for conditioning the + @param mtype is the spherical model type for conditioning the basis. See ExpCylSL::mtype for options. @param ppower is the power-law index for the Power spherical model @@ -170,6 +182,7 @@ private: // double rcylmin, rcylmax, zmax, acyl, bias; double aratio, hratio, dweight; // Disk basis construction parameters for double-exponential disk + double rwidth, rtrunc, rfactor; // Disk basis construction parameters for numerical deprojection double Mfac, HERNA; // Disk bulge parameters: mass fraction and Hernquist scale length int nmaxfid, lmaxfid, mmax, mlim, nint; @@ -355,7 +368,7 @@ protected: //! Power-law index for deprojected spherical model for basis conditioning double ppow = 2.0; - //! Deprojection model for basis conditioning + //! Spherical model for basis conditioning std::string mtype = "Exponential"; //! Write basis-specific parameters to HDF5 covariance file @@ -365,6 +378,9 @@ protected: enum class DiskType { constant, gaussian, mn, exponential, doubleexpon, diskbulge, python }; + //! The string name of the deprojection model + std::string dmodel; + //! Map human strings to disk target typenums const std::map dtlookup = { {"constant", DiskType::constant}, @@ -393,6 +409,29 @@ protected: //! The string name of the disk density function type for basis conditioning std::string dtype; + //@{ + //! DeprojType support + + //! Disk models used for deprojection + enum class DeprojType + { mn, toomre, python, exponential}; + + //! Current model + DeprojType PTYPE; + + //! Python module name for disk density function if using Python deprojection + std::string pyproj; + + //! Look up by string + const std::map dplookup = + { {"mn", DeprojType::mn}, + {"toomre", DeprojType::toomre}, + {"python", DeprojType::python}, + {"exponential", DeprojType::exponential} + }; + //@} + + //! Dtype cache check for consistency between cache and current parameters bool checkMetaData(); diff --git a/src/Cylinder.cc b/src/Cylinder.cc index b50ebdf12..50aa2dd8f 100644 --- a/src/Cylinder.cc +++ b/src/Cylinder.cc @@ -15,6 +15,7 @@ #include "exputils.H" // utility functions #include "NVTX.H" // for NVTX profiling of CUDA code #include "quickdigest5.hpp" // for md5 hashing of Python modules +#include "DiskModels.H" // //@{ //! These are for testing exclusively (should be set false for production) @@ -61,6 +62,9 @@ Cylinder::valid_keys = { "pnum", "tnum", "ashift", + "rwidth", + "rtrunc", + "rfactor", "expcond", "precond", "logr", @@ -129,6 +133,7 @@ Cylinder::Cylinder(Component* c0, const YAML::Node& conf, MixtureBasis *m) : mtype = "exponential"; dtype = "exponential"; + dmodel = "EXP"; // For disk basis construction with doubleexpon // @@ -144,7 +149,9 @@ Cylinder::Cylinder(Component* c0, const YAML::Node& conf, MixtureBasis *m) : pnum = 1; tnum = 80; ashift = 0.0; - + rwidth = 0.0; // Width of error function truncation (ignored if zero) + rfactor = 1.0; // Radial scale factor for numerical basis construction + rtrunc = 0.1; // Radial truncation for numerical basis construction vflag = 0; eof = 1; npca = std::numeric_limits::max(); @@ -214,10 +221,10 @@ Cylinder::Cylinder(Component* c0, const YAML::Node& conf, MixtureBasis *m) : if (itm == EmpCylSL::EmpModelMap.end()) { if (myid==0) { - std::cout << "No EmpCylSL EmpModel named <" - << mtype << ">, valid types are: " - << "Exponential, ExpSphere, Gaussian, Plummer, Power, Deproject " - << "(not case sensitive)" << std::endl; + std::cout << "No EmpCylSL EmpModel named <" + << mtype << ">, valid types are: "; + for (auto p : EmpCylSL::EmpModelLabs) std::cout << p.second << " "; + std::cout << "(not case sensitive)" << std::endl; } throw std::runtime_error("Cylindrical:initialize: EmpCylSL bad parameter"); } @@ -234,8 +241,24 @@ Cylinder::Cylinder(Component* c0, const YAML::Node& conf, MixtureBasis *m) : std::transform(dtype.begin(), dtype.end(), dtype.begin(), [](unsigned char c){ return std::tolower(c); }); + // Convert dmodel to lower case + // + std::transform(dmodel.begin(), dmodel.end(), dmodel.begin(), + [](unsigned char c){ return std::tolower(c); }); + // Check for map entry, will throw if the key is not in the map. - DTYPE = dtlookup.at(dtype); + try { + DTYPE = dtlookup.at(dtype); + } + catch (const std::out_of_range& err) { + if (myid==0) { + std::cout << "DiskType error in configuraton file" << std::endl; + std::cout << "Valid options are: "; + for (auto v : dtlookup) std::cout << v.first << " "; + std::cout << std::endl; + } + throw std::runtime_error("Cylinder: invalid DiskType"); + } // Set azimuthal harmonic order restriction? // @@ -329,37 +352,26 @@ Cylinder::Cylinder(Component* c0, const YAML::Node& conf, MixtureBasis *m) : << std::endl; - // Set DiskType. This is the functional form for the disk used to - // condition the basis. + // Warning about DiskType and pyEXP assumptions for backward compatibility with + // previous versions of pyEXP. // - try { - if (myid==0) { // Report DiskType - std::cout << "---- DiskType is <" << dtype << ">" << std::endl; - - if (not sech2) { - switch (DTYPE) { - case DiskType::doubleexpon: - case DiskType::exponential: - case DiskType::diskbulge: - std::cout << "---- pyEXP assumes sech^2(z/(2h)) by default in v7.9.0 and later" << std::endl - << "---- Use the 'sech2: true' in your YAML config to use sech^2(z/(2h))" << std::endl - << "---- This warning will be removed in v7.10.0." << std::endl; - break; - default: - break; - } + if (myid==0) { + std::cout << "---- DiskType is <" << dtype << ">" << std::endl; + + if (not sech2) { + switch (DTYPE) { + case DiskType::doubleexpon: + case DiskType::exponential: + case DiskType::diskbulge: + std::cout << "---- pyEXP assumes sech^2(z/(2h)) by default in v7.9.0 and later" << std::endl + << "---- Use the 'sech2: true' in your YAML config to use sech^2(z/(2h))" << std::endl + << "---- This warning will be removed in v7.10.0." << std::endl; + break; + default: + break; } } } - catch (const std::out_of_range& err) { - if (myid==0) { - std::cout << "DiskType error in configuraton file" << std::endl; - std::cout << "Valid options are: "; - for (auto v : dtlookup) std::cout << v.first << " "; - std::cout << std::endl; - } - throw std::runtime_error("Cylindrical::initialize: invalid DiskType"); - } // Check for and initialize the Python density type // @@ -367,6 +379,82 @@ Cylinder::Cylinder(Component* c0, const YAML::Node& conf, MixtureBasis *m) : pyDens = std::make_shared(pyname); } + // Use these user models to deproject for the EOF spherical basis + // + if (EmpCylSL::mtype == EmpCylSL::EmpModel::Deproject) { + // The scale in EmpCylSL is assumed to be 1 so we compute the + // height relative to the length + // + double H = sech2 ? 0.5*hcyl/acyl : hcyl/acyl; + + // The model instance (you can add others in DiskModels.H). + // It's MN or Exponential if not MN. + // + EmpCylSL::AxiDiskPtr model; + + // Map legacy/short model names to canonical keys expected by dplookup + // + if (dmodel == "exp") { + dmodel = "exponential"; + } + + // Check for map entry + // + try { + PTYPE = dplookup.at(dmodel); + + // Report DeprojType + if (myid==0) { + std::cout << "---- Deprojection type is <" << dmodel + << ">" << std::endl; + } + } + catch (const std::out_of_range& err) { + if (myid==0) { + std::cout << "DeprojType error in configuration file" << std::endl; + std::cout << "Valid options are: "; + for (auto v : dplookup) std::cout << v.first << " "; + std::cout << std::endl; + } + throw std::runtime_error("Cylinder: invalid DiskModel"); + } + + if (PTYPE == DeprojType::mn) // Miyamoto-Nagai + model = std::make_shared(1.0, H); + else if (PTYPE == DeprojType::toomre) { + model = std::make_shared(1.0, H, 5.0); + } else if (PTYPE == DeprojType::python) { + if (pyproj.empty()) { + if (myid==0) { + std::cout << "DeprojType is set to 'python' but no Python " + << "projection module name (pyname/pyproj) was provided." + << std::endl; + } + throw std::runtime_error( + "Cylindrical::initialize: DeprojType 'python' requires a " + "non-empty Python module name (pyname/pyproj)."); + } + model = std::make_shared(pyproj, 1.0); + if (myid==0) + std::cout << "---- Using AxiSymPyModel for deprojection from " + << "Python module <" << pyproj << ">" << std::endl; + } else { // Default to exponential + model = std::make_shared(1.0, H); + } + + if (rwidth>0.0) { + model = std::make_shared(rtrunc/acyl, + rwidth/acyl, + model); + if (myid==0) + std::cout << "Made truncated model with R=" << rtrunc/acyl + << " and W=" << rwidth/acyl << std::endl; + } + + ortho->create_deprojection(H, rfactor, rnum, ncylr, model); + } + + // The conditioning function for the EOF with an optional shift // for M>0 auto dcond = [&](double R, double z, double phi, int M) @@ -542,6 +630,9 @@ void Cylinder::initialize() if (conf["pnum" ]) pnum = conf["pnum" ].as(); if (conf["tnum" ]) tnum = conf["tnum" ].as(); if (conf["ashift" ]) ashift = conf["ashift" ].as(); + if (conf["rwidth" ]) rwidth = conf["rwidth" ].as(); + if (conf["rfactor" ]) rfactor = conf["rfactor" ].as(); + if (conf["rtrunc" ]) rtrunc = conf["rtrunc" ].as(); if (conf["expcond" ]) precond = conf["expcond" ].as(); if (conf["precond" ]) precond = conf["precond" ].as(); if (conf["logr" ]) logarithmic = conf["logr" ].as(); @@ -557,8 +648,11 @@ void Cylinder::initialize() if (conf["cmapr" ]) cmapR = conf["cmapr" ].as(); if (conf["cmapz" ]) cmapZ = conf["cmapz" ].as(); if (conf["vflag" ]) vflag = conf["vflag" ].as(); + if (conf["dtype" ]) dtype = conf["dtype" ].as(); + if (conf["dmodel" ]) dmodel = conf["dmodel" ].as(); if (conf["pyname" ]) pyname = conf["pyname" ].as(); + if (conf["pyproj" ]) pyproj = conf["pyproj" ].as(); if (conf["mtype" ]) mtype = conf["mtype" ].as(); if (conf["ppower" ]) ppow = conf["ppower" ].as(); @@ -2143,7 +2237,7 @@ bool Cylinder::checkMetaData() std::cout << "---- Cylinder::checkMetaData: Python module for disk density has changed since cache creation." << std::endl << "---- Current module: <" << pyname << ">, md5sum: " << current_md5 << std::endl << "---- Loaded module: <" << pyinfo[0] << ">, md5sum: " << pyinfo[1] << std::endl - << "---- Cylinder:checkMetaData: forcing cache recomputation to ensure consistency" << std::endl; + << "---- Cylinder::checkMetaData: forcing cache recomputation to ensure consistency" << std::endl; } cache_status = false; } @@ -2152,7 +2246,72 @@ bool Cylinder::checkMetaData() } // End: Python disk type check - // Could add deprojection checks here in the future + // Deprojection consistency checks with cache + if (EmpCylSL::mtype == EmpCylSL::EmpModel::Deproject) { + + // Get the dmodel attribute + // + auto read_attr = file.getAttribute("ProjType"); + std::string loaded_dmodel; + read_attr.read(loaded_dmodel); + + if (loaded_dmodel != dmodel) { + if (myid==0) { + std::cout << "---- Cylinder::checkMetaData: dmodel for cache file <" << cachename << "> is <" + << loaded_dmodel << ">, which does not match the requested dmodel <" + << dmodel << ">" << std::endl + << "---- Cylinder::checkMetaData: forcing cache recomputation" << std::endl; + } + // Force cache recomputation + cache_status = 0; + } + } + + if (cache_status == 1 and dmodel == "python") { + // Get the Python info + // + if (!file.hasAttribute("pythonProjType")) { + // We should not be able to get here since the pythonProjType + // attribute is required for cache creation with the Python + if (myid==0) { + std::cout << "---- Cylinder::checkMetaData: pythonProjType attribute not found in cache file <" << cachename << ">. " << std::endl; + std::cout << "---- Cylinder::checkMetaData: this may be a logic error, trigger recomputation." << std::endl; + } + + cache_status = 0; + + } else { + // Get the pyproj attribute and md5 hash from the cache + auto read_attr = file.getAttribute("pythonProjType"); + std::vector pyinfo; + read_attr.read(pyinfo); + + std::string current_md5; + + // Get the md5sum for requested Python projection module + try { + current_md5 = QuickDigest5::fileToHash(pyproj + ".py"); + } catch (const std::runtime_error& e) { + if (myid==0) + std::cerr << "BiorthBasis::Cylindrical error: " + << e.what() << ", error computing pyproj md5sum" + << std::endl; + } + // Check that the md5sums match for the current Python projection + // + if (current_md5 != pyinfo[1]) { + if (myid==0) { + std::cout << "---- Cylinder::checkMetaData: Python module for deprojection has changed since cache creation." << std::endl + << "---- Current module: <" << pyproj << ">, md5sum: " << current_md5 << std::endl + << "---- Cached module: <" << pyinfo[0] << ">, md5sum: " << pyinfo[1] << std::endl + << "---- Cylinder::checkMetaData: forcing cache recomputation to ensure consistency" << std::endl; + } + cache_status = 0; + } + } + // End: DeprojType and Python module consistency checks with cache + } + // End: DiskType and Python module consistency checks with cache } // End: DiskType attribute check @@ -2199,8 +2358,30 @@ void Cylinder::saveMetaData() } } - // Deprojection metadata could be added here + // Deprojection metadata + if (EmpCylSL::mtype == EmpCylSL::EmpModel::Deproject) { + file.createAttribute("ProjType", dmodel); + + if (PTYPE == DeprojType::python) { + try { + std::vector pyinfo = + {pyproj, QuickDigest5::fileToHash(pyproj + ".py")}; + + file.createAttribute("pythonProjType", pyinfo); + + std::cout << "---- Cylinder::saveMetaData: writing pythonProjType <" << pyproj + ".py" + << "> to cache file <" << cachename << ">" << std::endl; + } catch (const std::runtime_error& e) { + if (myid==0) { + std::cerr << "Cylinder::saveMetaData error: " + << e.what() + << ", can not write the pyinfo and md5 hash to HDF5" + << std::endl; + } + } + } + } } catch (const HighFive::Exception& err) { std::cerr << err.what() << std::endl; std::cerr << "Cylinder::saveMetaData: error writing metadata to cache file <" From 22e1779c6c7a7488ad6a8183c997e1ca9cc3f934 Mon Sep 17 00:00:00 2001 From: "Martin D. Weinberg" Date: Fri, 27 Mar 2026 09:37:24 -0400 Subject: [PATCH 079/131] Missing suffixes for Python modules --- src/Cylinder.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Cylinder.cc b/src/Cylinder.cc index 50aa2dd8f..b8bd5033a 100644 --- a/src/Cylinder.cc +++ b/src/Cylinder.cc @@ -2219,7 +2219,7 @@ bool Cylinder::checkMetaData() // Get the md5sum for requested Python module source file try { - current_md5 = QuickDigest5::fileToHash(pyname); + current_md5 = QuickDigest5::fileToHash(pyname + ".py"); } catch (const std::runtime_error& e) { if (myid==0) std::cerr << "Cylinder::checkMetaData error: " @@ -2348,7 +2348,7 @@ void Cylinder::saveMetaData() if (DTYPE == DiskType::python) { try { std::vector pyinfo = - {pyname, QuickDigest5::fileToHash(pyname)}; + {pyname, QuickDigest5::fileToHash(pyname + ".py")}; file.createAttribute("pythonDiskType", pyinfo); From 1fffa68f5b5025e444530111c0f3163a21354327 Mon Sep 17 00:00:00 2001 From: "Martin D. Weinberg" Date: Wed, 22 Apr 2026 12:41:02 -0400 Subject: [PATCH 080/131] Update version number for bug merge from main --- CMakeLists.txt | 2 +- doc/exp.cfg | 2 +- doc/exp.cfg.breathe | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ee224bde3..f1231517e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.25) # Needed for CUDA, MPI, and CTest features project( EXP - VERSION "7.9.3" + VERSION "7.10.3" HOMEPAGE_URL https://github.com/EXP-code/EXP LANGUAGES C CXX Fortran) diff --git a/doc/exp.cfg b/doc/exp.cfg index f76157769..64a2a0d70 100644 --- a/doc/exp.cfg +++ b/doc/exp.cfg @@ -48,7 +48,7 @@ PROJECT_NAME = EXP # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = 7.9.3 +PROJECT_NUMBER = 7.10.3 # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a diff --git a/doc/exp.cfg.breathe b/doc/exp.cfg.breathe index 740430c50..3af775e38 100644 --- a/doc/exp.cfg.breathe +++ b/doc/exp.cfg.breathe @@ -48,7 +48,7 @@ PROJECT_NAME = EXP # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = 7.9.3 +PROJECT_NUMBER = 7.10.3 # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a From 6672129deaa01f9be3fa707747999b06736ff0e5 Mon Sep 17 00:00:00 2001 From: "Martin D. Weinberg" Date: Thu, 14 May 2026 16:13:10 -0400 Subject: [PATCH 081/131] Update list of publically installed headers necessary for a Cuda compilation --- expui/CMakeLists.txt | 4 ++++ include/BiorthCube.H | 10 +++------- include/BiorthCyl.H | 10 +++------- include/EmpCylSL.H | 4 ++-- include/SLGridMP2.H | 4 ++-- include/cudaMappingConstants.cuH | 6 +++--- include/cudaParticle.cuH | 12 +++++------- 7 files changed, 22 insertions(+), 28 deletions(-) diff --git a/expui/CMakeLists.txt b/expui/CMakeLists.txt index f25d0d7b7..7428bf796 100644 --- a/expui/CMakeLists.txt +++ b/expui/CMakeLists.txt @@ -97,11 +97,15 @@ target_sources(expui PUBLIC FILE_SET HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/../include/DiskWithHalo.H ${CMAKE_CURRENT_SOURCE_DIR}/../include/EmpCyl2d.H ${CMAKE_CURRENT_SOURCE_DIR}/../include/EXPmath.H + ${CMAKE_CURRENT_SOURCE_DIR}/../include/EXPversion.H ${CMAKE_CURRENT_SOURCE_DIR}/../include/libvars.H ${CMAKE_CURRENT_SOURCE_DIR}/../include/Timer.H ${CMAKE_CURRENT_SOURCE_DIR}/../include/coef.H ${CMAKE_CURRENT_SOURCE_DIR}/../include/Covariance.H ${CMAKE_CURRENT_SOURCE_DIR}/../include/ExpDeproj.H + ${CMAKE_CURRENT_SOURCE_DIR}/../include/cudaUtil.cuH + ${CMAKE_CURRENT_SOURCE_DIR}/../include/cudaParticle.cuH + ${CMAKE_CURRENT_SOURCE_DIR}/../include/cudaMappingConstants.cuH ) install(TARGETS expui FILE_SET HEADERS DESTINATION include/EXP) diff --git a/include/BiorthCube.H b/include/BiorthCube.H index a89ebb87d..808ed7f49 100644 --- a/include/BiorthCube.H +++ b/include/BiorthCube.H @@ -17,8 +17,9 @@ #include #if HAVE_LIBCUDA==1 -#include -#include +#include "cudaUtil.cuH" +#include "cudaParticle.cuH" +#include "cudaMappingConstants.cuH" #endif // For reading and writing cache file @@ -28,11 +29,6 @@ #include #include -#if HAVE_LIBCUDA==1 -#include -#include -#endif - #include "EmpCyl2d.H" //!! BiorthCube grid class diff --git a/include/BiorthCyl.H b/include/BiorthCyl.H index 687433586..226120441 100644 --- a/include/BiorthCyl.H +++ b/include/BiorthCyl.H @@ -17,8 +17,9 @@ #include #if HAVE_LIBCUDA==1 -#include -#include +#include "cudaUtil.cuH" +#include "cudaParticle.cuH" +#include "cudaMappingConstants.cuH" #endif // For reading and writing cache file @@ -28,11 +29,6 @@ #include #include -#if HAVE_LIBCUDA==1 -#include -#include -#endif - #include "EmpCyl2d.H" //!! BiorthCyl grid class diff --git a/include/EmpCylSL.H b/include/EmpCylSL.H index 9811a0059..1bd993e10 100644 --- a/include/EmpCylSL.H +++ b/include/EmpCylSL.H @@ -24,8 +24,8 @@ #include "coef.H" #if HAVE_LIBCUDA==1 -#include -#include +#include "cudaParticle.cuH" +#include "cudaMappingConstants.cuH" #endif #include "libvars.H" diff --git a/include/SLGridMP2.H b/include/SLGridMP2.H index da209403c..dd46e28cf 100644 --- a/include/SLGridMP2.H +++ b/include/SLGridMP2.H @@ -19,8 +19,8 @@ using namespace __EXP__; #if HAVE_LIBCUDA==1 -#include -#include +#include "cudaUtil.cuH" +#include "cudaMappingConstants.cuH" #endif diff --git a/include/cudaMappingConstants.cuH b/include/cudaMappingConstants.cuH index 067d299b6..3e845436d 100644 --- a/include/cudaMappingConstants.cuH +++ b/include/cudaMappingConstants.cuH @@ -1,9 +1,7 @@ -// -*- C++ -*- - #ifndef CUDA_MAPPING_CONSTANTS_H #define CUDA_MAPPING_CONSTANTS_H -#include +#include "cudaUtil.cuH" struct cudaMappingConstants { @@ -23,3 +21,5 @@ struct cudaMappingConstants }; #endif + +// -*- C++ -*- diff --git a/include/cudaParticle.cuH b/include/cudaParticle.cuH index 5147b01dd..ccc2102b1 100644 --- a/include/cudaParticle.cuH +++ b/include/cudaParticle.cuH @@ -1,5 +1,3 @@ -// -*- C++ -*- - #ifndef PARTICLE_CUH #define PARTICLE_CUH @@ -16,11 +14,9 @@ #include #include -#include - -#include - -#include +#include "config_exp.h" +#include "cudaUtil.cuH" +#include "Particle.H" //! Simplified particle structure for use in CUDA kernel code struct cudaParticle @@ -125,3 +121,5 @@ struct cuPartToChange }; #endif + +// -*- C++ -*- From 8760ca1e783b8344e09c3be500479624ca2fe166 Mon Sep 17 00:00:00 2001 From: "Martin D. Weinberg" Date: Thu, 14 May 2026 16:38:41 -0400 Subject: [PATCH 082/131] Implement coefficient defined origin by default for getAccel and getFields. Origin for getFields can be (0, 0, 0) with an optional toggle. --- expui/BasisFactory.H | 8 ++++--- expui/BasisFactory.cc | 21 ++++++++++++++-- expui/BiorthBasis.cc | 32 ++++++++++++++++++++++++- pyEXP/BasisWrappers.cc | 54 +++++++++++++++++++++++------------------- 4 files changed, 85 insertions(+), 30 deletions(-) diff --git a/expui/BasisFactory.H b/expui/BasisFactory.H index e270fae1e..f0520d524 100644 --- a/expui/BasisFactory.H +++ b/expui/BasisFactory.H @@ -197,17 +197,19 @@ namespace BasisClasses const Coord ctype=Coord::Spherical); //! Evaluate fields at a point - virtual std::vector getFields(double x, double y, double z); + virtual std::vector getFields(double x, double y, double z, + bool origin=false); //! Evaluate fields at a point for all coefficients sets virtual std::tuple, Eigen::VectorXd> getFieldsCoefs - (double x, double y, double z, std::shared_ptr coefs); + (double x, double y, double z, std::shared_ptr coefs, + bool origin=false); //! Evaluate fields at a point, and provide field lables virtual std::tuple, std::vector> evaluate(double x, double y, double z) - { return {getFields(x, y, z), getFieldLabels(coordinates)}; } + { return {getFields(x, y, z, true), getFieldLabels(coordinates)}; } //! Retrieve the coefficients virtual CoefClasses::CoefStrPtr getCoefficients() diff --git a/expui/BasisFactory.cc b/expui/BasisFactory.cc index aba544cc3..9ae2d2fa5 100644 --- a/expui/BasisFactory.cc +++ b/expui/BasisFactory.cc @@ -228,14 +228,21 @@ namespace BasisClasses }; } - std::vector Basis::getFields(double x, double y, double z) + std::vector Basis::getFields(double x, double y, double z, + bool origin) { + if (not origin) { + x -= coefctr(0); + y -= coefctr(1); + z -= coefctr(2); + } return crt_eval(x, y, z); } std::tuple, Eigen::VectorXd> Basis::getFieldsCoefs - (double x, double y, double z, std::shared_ptr coefs) + (double x, double y, double z, std::shared_ptr coefs, + bool origin) { // Python dictonary for return std::map ret; @@ -249,9 +256,19 @@ namespace BasisClasses // Make the return dictionary of arrays for (int i=0; igetCoefStruct(times[i])); + + // Apply centering if requested + if (not origin) { + x -= coefctr(0); + y -= coefctr(1); + z -= coefctr(2); + } + // The field evaluation auto v = crt_eval(x, y, z); + // Pack the fields into the dictionary for (int j=0; j acc) { + // Shift to center + x -= coefctr(0); + y -= coefctr(1); + z -= coefctr(2); + // Get polar coordinates double R2 = x*x + y*y; double r2 = R2 + z*z; @@ -1804,6 +1809,11 @@ namespace BasisClasses void Cylindrical::computeAccel(double x, double y, double z, Eigen::Ref acc) { + // Shift to center + x -= coefctr(0); + y -= coefctr(1); + z -= coefctr(2); + double R = sqrt(x*x + y*y); double phi = atan2(y, x); @@ -2481,6 +2491,11 @@ namespace BasisClasses void FlatDisk::computeAccel(double x, double y, double z, Eigen::Ref acc) { + // Shift to center + x -= coefctr(0); + y -= coefctr(1); + z -= coefctr(2); + // Get thread id int tid = omp_get_thread_num(); @@ -3270,6 +3285,11 @@ namespace BasisClasses void CBDisk::computeAccel(double x, double y, double z, Eigen::Ref acc) { + // Shift to center + x -= coefctr(0); + y -= coefctr(1); + z -= coefctr(2); + // Get thread id int tid = omp_get_thread_num(); @@ -3756,6 +3776,11 @@ namespace BasisClasses void Slab::computeAccel(double x, double y, double z, Eigen::Ref acc) { + // Shift to center + x -= coefctr(0); + y -= coefctr(1); + z -= coefctr(2); + // Loop indices // int ix, iy, iz; @@ -4328,6 +4353,11 @@ namespace BasisClasses void Cube::computeAccel(double x, double y, double z, Eigen::Ref acc) { + // Shift to center + x -= coefctr(0); + y -= coefctr(1); + z -= coefctr(2); + // Get thread id int tid = omp_get_thread_num(); @@ -4781,7 +4811,7 @@ namespace BasisClasses for (int k=0; k<3; k++) pp(k) = ps(n, k) - ctr(k); pp = rot * pp; - auto v = basis->getFields(pp(0), pp(1), pp(2)); + auto v = basis->getFields(pp(0), pp(1), pp(2), true); // First 6 fields are density and potential, followed by acceleration for (int k=0; k<3; k++) accel(n, k) += v[6+k] - basis->pseudo(k); diff --git a/pyEXP/BasisWrappers.cc b/pyEXP/BasisWrappers.cc index 1429c6249..0ed0247d4 100644 --- a/pyEXP/BasisWrappers.cc +++ b/pyEXP/BasisWrappers.cc @@ -330,18 +330,18 @@ void BasisFactoryClasses(py::module &m) // Inherit the constructors using BasisClasses::Basis::Basis; - std::vector getFields(double x, double y, double z) override + std::vector getFields(double x, double y, double z, bool origin) override { - PYBIND11_OVERRIDE(std::vector, Basis, getFields, x, y, z); + PYBIND11_OVERRIDE(std::vector, Basis, getFields, x, y, z, origin); } using FCReturn = std::tuple, Eigen::VectorXd>; FCReturn getFieldsCoefs - (double x, double y, double z, CoefClasses::CoefsPtr coefs) override + (double x, double y, double z, CoefClasses::CoefsPtr coefs, bool origin) override { - PYBIND11_OVERRIDE(FCReturn, Basis, getFieldsCoefs, x, y, z, coefs); + PYBIND11_OVERRIDE(FCReturn, Basis, getFieldsCoefs, x, y, z, coefs, origin); } void accumulate(double x, double y, double z, double mass, unsigned long int indx) override { @@ -434,9 +434,9 @@ void BasisFactoryClasses(py::module &m) // Inherit the constructors using FieldBasis::FieldBasis; - std::vector getFields(double x, double y, double z) override + std::vector getFields(double x, double y, double z, bool origin) override { - PYBIND11_OVERRIDE(std::vector, FieldBasis, getFields, x, y, z); + PYBIND11_OVERRIDE(std::vector, FieldBasis, getFields, x, y, z, origin); } void accumulate(double m, double x, double y, double z, @@ -561,8 +561,8 @@ void BasisFactoryClasses(py::module &m) // Inherit the constructors using Spherical::Spherical; - std::vector getFields(double x, double y, double z) override { - PYBIND11_OVERRIDE(std::vector, Spherical, getFields, x, y, z); + std::vector getFields(double x, double y, double z, bool origin) override { + PYBIND11_OVERRIDE(std::vector, Spherical, getFields, x, y, z, origin); } void accumulate(double x, double y, double z, double mass, unsigned long int indx) override { @@ -627,8 +627,8 @@ void BasisFactoryClasses(py::module &m) // Inherit the constructors using Cylindrical::Cylindrical; - std::vector getFields(double x, double y, double z) override { - PYBIND11_OVERRIDE(std::vector, Cylindrical, getFields, x, y, z); + std::vector getFields(double x, double y, double z, bool origin) override { + PYBIND11_OVERRIDE(std::vector, Cylindrical, getFields, x, y, z, origin); } void accumulate(double x, double y, double z, double mass, unsigned long int indx) override { @@ -705,9 +705,9 @@ void BasisFactoryClasses(py::module &m) // Inherit the constructors using FlatDisk::FlatDisk; - std::vector getFields(double x, double y, double z) override + std::vector getFields(double x, double y, double z, bool origin) override { - PYBIND11_OVERRIDE(std::vector, FlatDisk, getFields, x, y, z); + PYBIND11_OVERRIDE(std::vector, FlatDisk, getFields, x, y, z, origin); } void accumulate(double x, double y, double z, double mass, unsigned long int indx) override @@ -787,9 +787,9 @@ void BasisFactoryClasses(py::module &m) // Inherit the constructors using CBDisk::CBDisk; - std::vector getFields(double x, double y, double z) override + std::vector getFields(double x, double y, double z, bool origin) override { - PYBIND11_OVERRIDE(std::vector, CBDisk, getFields, x, y, z); + PYBIND11_OVERRIDE(std::vector, CBDisk, getFields, x, y, z, origin); } void accumulate(double x, double y, double z, double mass, unsigned long int indx) override @@ -861,9 +861,9 @@ void BasisFactoryClasses(py::module &m) // Inherit the constructors using Slab::Slab; - std::vector getFields(double x, double y, double z) override + std::vector getFields(double x, double y, double z, bool origin) override { - PYBIND11_OVERRIDE(std::vector, Slab, getFields, x, y, z); + PYBIND11_OVERRIDE(std::vector, Slab, getFields, x, y, z, origin); } void accumulate(double x, double y, double z, double mass, unsigned long int indx) override @@ -935,9 +935,9 @@ void BasisFactoryClasses(py::module &m) // Inherit the constructors using Cube::Cube; - std::vector getFields(double x, double y, double z) override + std::vector getFields(double x, double y, double z, bool origin) override { - PYBIND11_OVERRIDE(std::vector, Cube, getFields, x, y, z); + PYBIND11_OVERRIDE(std::vector, Cube, getFields, x, y, z, origin); } void accumulate(double x, double y, double z, double mass, unsigned long int indx) override @@ -1534,6 +1534,9 @@ void BasisFactoryClasses(py::module &m) y-axis position z : float z-axis position + origin : bool + If true, the origin for field evaluations are is (0, 0, 0). + If false, the default, we use the frame defined by the coefficients. Returns ------- @@ -1544,10 +1547,10 @@ void BasisFactoryClasses(py::module &m) getFieldsCoefs : get fields for each coefficient set __call__ : same as getFields() but provides field labels in a tuple )", - py::arg("x"), py::arg("y"), py::arg("z")) + py::arg("x"), py::arg("y"), py::arg("z"), py::arg("origin") = false) .def("getAccel", py::overload_cast(&BasisClasses::BiorthBasis::getAccel), R"( - Return the acceleration for a given Cartesian position + Return the acceleration for a given Cartesian position in the frame defined by the coeffients. Parameters ---------- @@ -1571,7 +1574,7 @@ void BasisFactoryClasses(py::module &m) py::arg("x"), py::arg("y"), py::arg("z")) .def("getAccel", py::overload_cast, Eigen::Ref, Eigen::Ref>(&BasisClasses::BiorthBasis::getAccel), R"( - Return the acceleration for a given Cartesian position + Return the acceleration for a given Cartesian position in the frame defined by the coeffients. Parameters ---------- @@ -1595,7 +1598,7 @@ void BasisFactoryClasses(py::module &m) py::arg("x"), py::arg("y"), py::arg("z")) .def("getAccel", py::overload_cast>(&BasisClasses::BiorthBasis::getAccel), R"( - Return the acceleration for an array of Cartesian positions + Return the acceleration for an array of Cartesian positions in the frame defined by the coeffients. Parameters ---------- @@ -1615,7 +1618,7 @@ void BasisFactoryClasses(py::module &m) py::arg("pos")) .def("getAccelArray", py::overload_cast, Eigen::Ref, Eigen::Ref>(&BasisClasses::BiorthBasis::getAccel), R"( - Return the acceleration for a given Cartesian position + Return the acceleration for a given Cartesian position in the frame defined by the coeffients. Parameters ---------- @@ -1657,6 +1660,9 @@ void BasisFactoryClasses(py::module &m) z-axis position coefs: CoefClasses::Coefs the coefficient set + origin : bool + If true, the origin for field evaluations are is (0, 0, 0). + If false, the default, we use the frame defined by the coefficients. Returns ------- @@ -1668,7 +1674,7 @@ void BasisFactoryClasses(py::module &m) getFields : get fields for the currently assigned coefficients __call__ : same getFields() but provides field labels in a tuple )", - py::arg("x"), py::arg("y"), py::arg("z"), py::arg("coefs")) + py::arg("x"), py::arg("y"), py::arg("z"), py::arg("coefs"), py::arg("origin") = false) .def("setFieldType", &BasisClasses::BiorthBasis::setFieldType, R"( Set the coordinate system for force evaluations. The natural From 36bccc864d9e94d6db22cd5f4d614d14b700a575 Mon Sep 17 00:00:00 2001 From: "Martin D. Weinberg" Date: Thu, 14 May 2026 16:57:02 -0400 Subject: [PATCH 083/131] Comment out downstream change for now --- expui/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/expui/CMakeLists.txt b/expui/CMakeLists.txt index 7428bf796..15d7e4509 100644 --- a/expui/CMakeLists.txt +++ b/expui/CMakeLists.txt @@ -97,7 +97,7 @@ target_sources(expui PUBLIC FILE_SET HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/../include/DiskWithHalo.H ${CMAKE_CURRENT_SOURCE_DIR}/../include/EmpCyl2d.H ${CMAKE_CURRENT_SOURCE_DIR}/../include/EXPmath.H - ${CMAKE_CURRENT_SOURCE_DIR}/../include/EXPversion.H + # ${CMAKE_CURRENT_SOURCE_DIR}/../include/EXPversion.H ${CMAKE_CURRENT_SOURCE_DIR}/../include/libvars.H ${CMAKE_CURRENT_SOURCE_DIR}/../include/Timer.H ${CMAKE_CURRENT_SOURCE_DIR}/../include/coef.H From c4124826f9bd5eae5283b19ba1052672b883002a Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Thu, 14 May 2026 17:22:13 -0400 Subject: [PATCH 084/131] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- expui/BasisFactory.cc | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/expui/BasisFactory.cc b/expui/BasisFactory.cc index 9ae2d2fa5..c90213378 100644 --- a/expui/BasisFactory.cc +++ b/expui/BasisFactory.cc @@ -259,15 +259,19 @@ namespace BasisClasses // Load the coefficients for the current time set_coefs(coefs->getCoefStruct(times[i])); - // Apply centering if requested + // Apply centering if requested without modifying the input + // coordinates so each time step is evaluated from the same point. + auto xc = x; + auto yc = y; + auto zc = z; if (not origin) { - x -= coefctr(0); - y -= coefctr(1); - z -= coefctr(2); + xc -= coefctr(0); + yc -= coefctr(1); + zc -= coefctr(2); } // The field evaluation - auto v = crt_eval(x, y, z); + auto v = crt_eval(xc, yc, zc); // Pack the fields into the dictionary for (int j=0; j Date: Thu, 14 May 2026 17:22:28 -0400 Subject: [PATCH 085/131] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- expui/BasisFactory.H | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/expui/BasisFactory.H b/expui/BasisFactory.H index f0520d524..4868831f7 100644 --- a/expui/BasisFactory.H +++ b/expui/BasisFactory.H @@ -209,7 +209,7 @@ namespace BasisClasses //! Evaluate fields at a point, and provide field lables virtual std::tuple, std::vector> evaluate(double x, double y, double z) - { return {getFields(x, y, z, true), getFieldLabels(coordinates)}; } + { return {getFields(x, y, z), getFieldLabels(coordinates)}; } //! Retrieve the coefficients virtual CoefClasses::CoefStrPtr getCoefficients() From 84318e7f2bfe65c206c6775b84372b1ed7855733 Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Thu, 14 May 2026 17:22:47 -0400 Subject: [PATCH 086/131] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- pyEXP/BasisWrappers.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyEXP/BasisWrappers.cc b/pyEXP/BasisWrappers.cc index 0ed0247d4..d9477de1e 100644 --- a/pyEXP/BasisWrappers.cc +++ b/pyEXP/BasisWrappers.cc @@ -1535,7 +1535,7 @@ void BasisFactoryClasses(py::module &m) z : float z-axis position origin : bool - If true, the origin for field evaluations are is (0, 0, 0). + If true, the origin for field evaluations is (0, 0, 0). If false, the default, we use the frame defined by the coefficients. Returns From 41f1baa2fb1479f5db018cdb1e8c0c13ab56721a Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Thu, 14 May 2026 17:23:01 -0400 Subject: [PATCH 087/131] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- pyEXP/BasisWrappers.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyEXP/BasisWrappers.cc b/pyEXP/BasisWrappers.cc index d9477de1e..c38ec96af 100644 --- a/pyEXP/BasisWrappers.cc +++ b/pyEXP/BasisWrappers.cc @@ -1661,7 +1661,7 @@ void BasisFactoryClasses(py::module &m) coefs: CoefClasses::Coefs the coefficient set origin : bool - If true, the origin for field evaluations are is (0, 0, 0). + If true, the origin for field evaluations is (0, 0, 0). If false, the default, we use the frame defined by the coefficients. Returns From f41e050c108974ab9428f2c08fe587818418ee0d Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 14 May 2026 21:41:35 +0000 Subject: [PATCH 088/131] fix pyexp getAccel docstring typo Agent-Logs-Url: https://github.com/EXP-code/EXP/sessions/5f75bca1-eb95-4f51-8ab6-9272eb114eca Co-authored-by: The9Cat <25960766+The9Cat@users.noreply.github.com> --- pyEXP/BasisWrappers.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyEXP/BasisWrappers.cc b/pyEXP/BasisWrappers.cc index c38ec96af..94c5fe3da 100644 --- a/pyEXP/BasisWrappers.cc +++ b/pyEXP/BasisWrappers.cc @@ -1550,7 +1550,7 @@ void BasisFactoryClasses(py::module &m) py::arg("x"), py::arg("y"), py::arg("z"), py::arg("origin") = false) .def("getAccel", py::overload_cast(&BasisClasses::BiorthBasis::getAccel), R"( - Return the acceleration for a given Cartesian position in the frame defined by the coeffients. + Return the acceleration for a given Cartesian position in the frame defined by the coefficients. Parameters ---------- From fc5a60af2f1b466bfa9fa3a973c599f2cfe6bb6f Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 14 May 2026 21:44:45 +0000 Subject: [PATCH 089/131] fix remaining getAccel docstring typos Agent-Logs-Url: https://github.com/EXP-code/EXP/sessions/56a9b4d8-bfcc-4bf8-9b5d-ccaa48888105 Co-authored-by: The9Cat <25960766+The9Cat@users.noreply.github.com> --- extern/yaml-cpp | 2 +- pyEXP/BasisWrappers.cc | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/extern/yaml-cpp b/extern/yaml-cpp index da82fd982..4861d0495 160000 --- a/extern/yaml-cpp +++ b/extern/yaml-cpp @@ -1 +1 @@ -Subproject commit da82fd982c260e7f335ce5acbceff24b270544d1 +Subproject commit 4861d049534ed6f2c51c45b01d7c2926022e5f3f diff --git a/pyEXP/BasisWrappers.cc b/pyEXP/BasisWrappers.cc index 94c5fe3da..ef8b56ed4 100644 --- a/pyEXP/BasisWrappers.cc +++ b/pyEXP/BasisWrappers.cc @@ -1574,7 +1574,7 @@ void BasisFactoryClasses(py::module &m) py::arg("x"), py::arg("y"), py::arg("z")) .def("getAccel", py::overload_cast, Eigen::Ref, Eigen::Ref>(&BasisClasses::BiorthBasis::getAccel), R"( - Return the acceleration for a given Cartesian position in the frame defined by the coeffients. + Return the acceleration for a given Cartesian position in the frame defined by the coefficients. Parameters ---------- @@ -1598,7 +1598,7 @@ void BasisFactoryClasses(py::module &m) py::arg("x"), py::arg("y"), py::arg("z")) .def("getAccel", py::overload_cast>(&BasisClasses::BiorthBasis::getAccel), R"( - Return the acceleration for an array of Cartesian positions in the frame defined by the coeffients. + Return the acceleration for an array of Cartesian positions in the frame defined by the coefficients. Parameters ---------- @@ -1618,7 +1618,7 @@ void BasisFactoryClasses(py::module &m) py::arg("pos")) .def("getAccelArray", py::overload_cast, Eigen::Ref, Eigen::Ref>(&BasisClasses::BiorthBasis::getAccel), R"( - Return the acceleration for a given Cartesian position in the frame defined by the coeffients. + Return the acceleration for a given Cartesian position in the frame defined by the coefficients. Parameters ---------- From 5592209cb7169085a39396c33ca6205ac01c214b Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 14 May 2026 21:45:31 +0000 Subject: [PATCH 090/131] doc: add ABI-breaking change notes to getFields methods Agent-Logs-Url: https://github.com/EXP-code/EXP/sessions/56a9b4d8-bfcc-4bf8-9b5d-ccaa48888105 Co-authored-by: The9Cat <25960766+The9Cat@users.noreply.github.com> --- expui/BasisFactory.H | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/expui/BasisFactory.H b/expui/BasisFactory.H index 4868831f7..74dc72cfc 100644 --- a/expui/BasisFactory.H +++ b/expui/BasisFactory.H @@ -197,10 +197,16 @@ namespace BasisClasses const Coord ctype=Coord::Spherical); //! Evaluate fields at a point + //! @note API change in v7.10.3: Added 'origin' parameter (default=false). + //! This is an ABI-breaking change for external C++ code that + //! subclasses Basis or calls these methods via vtable. virtual std::vector getFields(double x, double y, double z, bool origin=false); //! Evaluate fields at a point for all coefficients sets + //! @note API change in v7.10.3: Added 'origin' parameter (default=false). + //! This is an ABI-breaking change for external C++ code that + //! subclasses Basis or calls these methods via vtable. virtual std::tuple, Eigen::VectorXd> getFieldsCoefs (double x, double y, double z, std::shared_ptr coefs, From 86337c3c6271a43755f827fb999a11c8f03255ed Mon Sep 17 00:00:00 2001 From: "Martin D. Weinberg" Date: Thu, 14 May 2026 18:57:40 -0400 Subject: [PATCH 091/131] Minor simplyfing updates and improved doctstrings --- expui/BasisFactory.cc | 20 ++++++++------------ extern/yaml-cpp | 2 +- pyEXP/BasisWrappers.cc | 12 ++++++++++-- 3 files changed, 19 insertions(+), 15 deletions(-) diff --git a/expui/BasisFactory.cc b/expui/BasisFactory.cc index c90213378..dd536f94d 100644 --- a/expui/BasisFactory.cc +++ b/expui/BasisFactory.cc @@ -254,24 +254,20 @@ namespace BasisClasses auto fields = getFieldLabels(coordinates); for (auto s : fields) ret[s].resize(times.size()); + // Apply centering + if (not origin) { + x -= coefctr(0); + y -= coefctr(1); + z -= coefctr(2); + } + // Make the return dictionary of arrays for (int i=0; igetCoefStruct(times[i])); - // Apply centering if requested without modifying the input - // coordinates so each time step is evaluated from the same point. - auto xc = x; - auto yc = y; - auto zc = z; - if (not origin) { - xc -= coefctr(0); - yc -= coefctr(1); - zc -= coefctr(2); - } - // The field evaluation - auto v = crt_eval(xc, yc, zc); + auto v = crt_eval(x, y, z); // Pack the fields into the dictionary for (int j=0; j Date: Thu, 14 May 2026 22:51:54 -0400 Subject: [PATCH 092/131] Fix time varying centering; evaluate() should use (0, 0, 0) as origin --- expui/BasisFactory.H | 2 +- expui/BasisFactory.cc | 17 +++++++++-------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/expui/BasisFactory.H b/expui/BasisFactory.H index 74dc72cfc..20d10b1e5 100644 --- a/expui/BasisFactory.H +++ b/expui/BasisFactory.H @@ -215,7 +215,7 @@ namespace BasisClasses //! Evaluate fields at a point, and provide field lables virtual std::tuple, std::vector> evaluate(double x, double y, double z) - { return {getFields(x, y, z), getFieldLabels(coordinates)}; } + { return {getFields(x, y, z, true), getFieldLabels(coordinates)}; } //! Retrieve the coefficients virtual CoefClasses::CoefStrPtr getCoefficients() diff --git a/expui/BasisFactory.cc b/expui/BasisFactory.cc index dd536f94d..04d483285 100644 --- a/expui/BasisFactory.cc +++ b/expui/BasisFactory.cc @@ -254,20 +254,21 @@ namespace BasisClasses auto fields = getFieldLabels(coordinates); for (auto s : fields) ret[s].resize(times.size()); - // Apply centering - if (not origin) { - x -= coefctr(0); - y -= coefctr(1); - z -= coefctr(2); - } - // Make the return dictionary of arrays for (int i=0; igetCoefStruct(times[i])); + double xc = x, yc = y, zc = z; + // Apply centering + if (not origin) { + xc -= coefctr(0); + yc -= coefctr(1); + zc -= coefctr(2); + } + // The field evaluation - auto v = crt_eval(x, y, z); + auto v = crt_eval(xc, yc, zc); // Pack the fields into the dictionary for (int j=0; j Date: Fri, 15 May 2026 03:02:11 +0000 Subject: [PATCH 093/131] Add backward-compatible dispatch in PyBasis trampoline for getFields/getFieldsCoefs Agent-Logs-Url: https://github.com/EXP-code/EXP/sessions/48c9ee4b-35ac-4a63-b3cb-8ecac31ecc71 Co-authored-by: The9Cat <25960766+The9Cat@users.noreply.github.com> --- pyEXP/BasisWrappers.cc | 38 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 36 insertions(+), 2 deletions(-) diff --git a/pyEXP/BasisWrappers.cc b/pyEXP/BasisWrappers.cc index 7d42b322f..bef77aaab 100644 --- a/pyEXP/BasisWrappers.cc +++ b/pyEXP/BasisWrappers.cc @@ -332,7 +332,24 @@ void BasisFactoryClasses(py::module &m) std::vector getFields(double x, double y, double z, bool origin) override { - PYBIND11_OVERRIDE(std::vector, Basis, getFields, x, y, z, origin); + pybind11::gil_scoped_acquire gil; + pybind11::function override_func = + pybind11::get_override(static_cast(this), "getFields"); + if (override_func) { + try { + auto result = override_func(x, y, z, origin); + return result.cast>(); + } catch (pybind11::error_already_set& e) { + if (e.matches(PyExc_TypeError)) { + // Backward-compatible fallback for subclasses with 3-arg signature + PyErr_Clear(); + auto result = override_func(x, y, z); + return result.cast>(); + } + throw; + } + } + return Basis::getFields(x, y, z, origin); } using FCReturn = std::tuple, @@ -341,7 +358,24 @@ void BasisFactoryClasses(py::module &m) FCReturn getFieldsCoefs (double x, double y, double z, CoefClasses::CoefsPtr coefs, bool origin) override { - PYBIND11_OVERRIDE(FCReturn, Basis, getFieldsCoefs, x, y, z, coefs, origin); + pybind11::gil_scoped_acquire gil; + pybind11::function override_func = + pybind11::get_override(static_cast(this), "getFieldsCoefs"); + if (override_func) { + try { + auto result = override_func(x, y, z, coefs, origin); + return result.cast(); + } catch (pybind11::error_already_set& e) { + if (e.matches(PyExc_TypeError)) { + // Backward-compatible fallback for subclasses with 4-arg signature + PyErr_Clear(); + auto result = override_func(x, y, z, coefs); + return result.cast(); + } + throw; + } + } + return Basis::getFieldsCoefs(x, y, z, coefs, origin); } void accumulate(double x, double y, double z, double mass, unsigned long int indx) override { From 080818a1ec645cce069983fd16bdf479e7906bde Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Fri, 15 May 2026 08:25:26 -0400 Subject: [PATCH 094/131] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- expui/BasisFactory.H | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/expui/BasisFactory.H b/expui/BasisFactory.H index 20d10b1e5..38623af6a 100644 --- a/expui/BasisFactory.H +++ b/expui/BasisFactory.H @@ -212,7 +212,7 @@ namespace BasisClasses (double x, double y, double z, std::shared_ptr coefs, bool origin=false); - //! Evaluate fields at a point, and provide field lables + //! Evaluate fields at a point, and provide field labels virtual std::tuple, std::vector> evaluate(double x, double y, double z) { return {getFields(x, y, z, true), getFieldLabels(coordinates)}; } From b0f76704fcccaadc5a98ab4b5c4f61bb0bda128a Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Fri, 15 May 2026 08:26:15 -0400 Subject: [PATCH 095/131] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- pyEXP/BasisWrappers.cc | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/pyEXP/BasisWrappers.cc b/pyEXP/BasisWrappers.cc index bef77aaab..f6dcfcf19 100644 --- a/pyEXP/BasisWrappers.cc +++ b/pyEXP/BasisWrappers.cc @@ -470,7 +470,20 @@ void BasisFactoryClasses(py::module &m) std::vector getFields(double x, double y, double z, bool origin) override { - PYBIND11_OVERRIDE(std::vector, FieldBasis, getFields, x, y, z, origin); + py::gil_scoped_acquire gil; + py::function override = py::get_override(static_cast(this), "getFields"); + + if (override) { + try { + return override(x, y, z, origin).cast>(); + } catch (py::error_already_set &e) { + if (!e.matches(PyExc_TypeError)) throw; + e.clear(); + return override(x, y, z).cast>(); + } + } + + return FieldBasis::getFields(x, y, z, origin); } void accumulate(double m, double x, double y, double z, From f91be483733724d14b2827a8fa8ddc389dc576bd Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Fri, 15 May 2026 08:26:54 -0400 Subject: [PATCH 096/131] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- pyEXP/BasisWrappers.cc | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/pyEXP/BasisWrappers.cc b/pyEXP/BasisWrappers.cc index f6dcfcf19..ffdbbcf44 100644 --- a/pyEXP/BasisWrappers.cc +++ b/pyEXP/BasisWrappers.cc @@ -609,7 +609,16 @@ void BasisFactoryClasses(py::module &m) using Spherical::Spherical; std::vector getFields(double x, double y, double z, bool origin) override { - PYBIND11_OVERRIDE(std::vector, Spherical, getFields, x, y, z, origin); + py::function override = py::get_override(static_cast(this), "getFields"); + if (override) { + try { + return py::cast>(override(x, y, z, origin)); + } catch (py::error_already_set &e) { + if (!e.matches(PyExc_TypeError)) throw; + } + return py::cast>(override(x, y, z)); + } + return Spherical::getFields(x, y, z, origin); } void accumulate(double x, double y, double z, double mass, unsigned long int indx) override { From be7160ba6b406ffd4316c034fa6a76bb9e98fe1a Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Fri, 15 May 2026 08:27:16 -0400 Subject: [PATCH 097/131] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- pyEXP/BasisWrappers.cc | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/pyEXP/BasisWrappers.cc b/pyEXP/BasisWrappers.cc index ffdbbcf44..d3e798a4e 100644 --- a/pyEXP/BasisWrappers.cc +++ b/pyEXP/BasisWrappers.cc @@ -845,7 +845,18 @@ void BasisFactoryClasses(py::module &m) std::vector getFields(double x, double y, double z, bool origin) override { - PYBIND11_OVERRIDE(std::vector, CBDisk, getFields, x, y, z, origin); + py::gil_scoped_acquire gil; + py::function override = py::get_override(this, "getFields"); + if (override) { + try { + return override(x, y, z, origin).cast>(); + } catch (py::error_already_set &e) { + if (!e.matches(PyExc_TypeError)) throw; + PyErr_Clear(); + return override(x, y, z).cast>(); + } + } + return CBDisk::getFields(x, y, z, origin); } void accumulate(double x, double y, double z, double mass, unsigned long int indx) override From a368b1192b4a610eb82935ce6e576411543e7374 Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Fri, 15 May 2026 08:28:18 -0400 Subject: [PATCH 098/131] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- pyEXP/BasisWrappers.cc | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/pyEXP/BasisWrappers.cc b/pyEXP/BasisWrappers.cc index d3e798a4e..0e0f144ce 100644 --- a/pyEXP/BasisWrappers.cc +++ b/pyEXP/BasisWrappers.cc @@ -930,7 +930,19 @@ void BasisFactoryClasses(py::module &m) std::vector getFields(double x, double y, double z, bool origin) override { - PYBIND11_OVERRIDE(std::vector, Slab, getFields, x, y, z, origin); + py::gil_scoped_acquire gil; + py::function overload = py::get_overload(static_cast(this), "getFields"); + if (overload) { + try { + return overload(x, y, z, origin).cast>(); + } catch (py::error_already_set &e) { + if (!e.matches(PyExc_TypeError)) throw; + } + + return overload(x, y, z).cast>(); + } + + return Slab::getFields(x, y, z, origin); } void accumulate(double x, double y, double z, double mass, unsigned long int indx) override From 50ebb05c9a2fe3ca01e3c758536accb366a91c70 Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Fri, 15 May 2026 08:28:36 -0400 Subject: [PATCH 099/131] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- pyEXP/BasisWrappers.cc | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/pyEXP/BasisWrappers.cc b/pyEXP/BasisWrappers.cc index 0e0f144ce..7d519c203 100644 --- a/pyEXP/BasisWrappers.cc +++ b/pyEXP/BasisWrappers.cc @@ -1016,7 +1016,19 @@ void BasisFactoryClasses(py::module &m) std::vector getFields(double x, double y, double z, bool origin) override { - PYBIND11_OVERRIDE(std::vector, Cube, getFields, x, y, z, origin); + py::function override = py::get_override(this, "getFields"); + if (override) { + try { + return override(x, y, z, origin).cast>(); + } catch (py::error_already_set &e) { + if (e.matches(PyExc_TypeError)) { + e.clear(); + return override(x, y, z).cast>(); + } + throw; + } + } + return Cube::getFields(x, y, z, origin); } void accumulate(double x, double y, double z, double mass, unsigned long int indx) override From d650ae1d78d088d814f227170d95ad88310e3f58 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 15 May 2026 12:28:48 +0000 Subject: [PATCH 100/131] Guard Cylindrical::computeAccel against R=0 at coefficient center Agent-Logs-Url: https://github.com/EXP-code/EXP/sessions/588ca0c8-f717-4041-8cf3-86e2c5314792 Co-authored-by: The9Cat <25960766+The9Cat@users.noreply.github.com> --- expui/BiorthBasis.cc | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/expui/BiorthBasis.cc b/expui/BiorthBasis.cc index fee2ccc54..caa7db062 100644 --- a/expui/BiorthBasis.cc +++ b/expui/BiorthBasis.cc @@ -1823,8 +1823,12 @@ namespace BasisClasses tdens = sl->accumulated_dens_eval(R, z, phi, tdens0); - double tpotx = tpotR*x/R - tpotp*y/R ; - double tpoty = tpotR*y/R + tpotp*x/R ; + double tpotx = 0.0; + double tpoty = 0.0; + if (R > 0.0) { + tpotx = tpotR*x/R - tpotp*y/R; + tpoty = tpotR*y/R + tpotp*x/R; + } // Apply G to forces on return acc << tpotx*G, tpoty*G, tpotz*G; From 83ee34e5f1c4037f2abb83bc18743148d77964ab Mon Sep 17 00:00:00 2001 From: "Martin D. Weinberg" Date: Fri, 15 May 2026 08:32:34 -0400 Subject: [PATCH 101/131] Flip defaults to retain previous behavior in 'getFields' calls --- expui/BasisFactory.H | 8 ++++---- pyEXP/BasisWrappers.cc | 24 ++++++++++++------------ 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/expui/BasisFactory.H b/expui/BasisFactory.H index 20d10b1e5..a16dfaf64 100644 --- a/expui/BasisFactory.H +++ b/expui/BasisFactory.H @@ -197,20 +197,20 @@ namespace BasisClasses const Coord ctype=Coord::Spherical); //! Evaluate fields at a point - //! @note API change in v7.10.3: Added 'origin' parameter (default=false). + //! @note API change in v7.10.3: Added 'origin' parameter (default=true). //! This is an ABI-breaking change for external C++ code that //! subclasses Basis or calls these methods via vtable. virtual std::vector getFields(double x, double y, double z, - bool origin=false); + bool origin=true); //! Evaluate fields at a point for all coefficients sets - //! @note API change in v7.10.3: Added 'origin' parameter (default=false). + //! @note API change in v7.10.3: Added 'origin' parameter (default=true). //! This is an ABI-breaking change for external C++ code that //! subclasses Basis or calls these methods via vtable. virtual std::tuple, Eigen::VectorXd> getFieldsCoefs (double x, double y, double z, std::shared_ptr coefs, - bool origin=false); + bool origin=true); //! Evaluate fields at a point, and provide field lables virtual std::tuple, std::vector> diff --git a/pyEXP/BasisWrappers.cc b/pyEXP/BasisWrappers.cc index bef77aaab..e16da744f 100644 --- a/pyEXP/BasisWrappers.cc +++ b/pyEXP/BasisWrappers.cc @@ -1556,9 +1556,9 @@ void BasisFactoryClasses(py::module &m) potential evaluations are separated into full, axisymmetric and non-axisymmetric contributions. - The origin for field evaluations is the frame defined by the - coefficients by default. Setting 'origin=True' will use the - origin (0, 0, 0) for field evaluations instead. + The origin for field evaluations is the expansion origin by + default ('origin=True') Setting 'origin=False' will use the + origin defined by the coefficients for field evaluations instead. You can get the field labels by using the __call__ method of the basis object. This is equivalent to a tuple of the getFields() @@ -1573,8 +1573,8 @@ void BasisFactoryClasses(py::module &m) z : float z-axis position origin : bool - If true, the origin for field evaluations is (0, 0, 0). - If false, the default, we use the frame defined by the coefficients. + If true, the default, origin for field evaluations is (0, 0, 0). + If false, we use the frame defined by the coefficients. Returns ------- @@ -1585,7 +1585,7 @@ void BasisFactoryClasses(py::module &m) getFieldsCoefs : get fields for each coefficient set __call__ : same as getFields() but provides field labels in a tuple )", - py::arg("x"), py::arg("y"), py::arg("z"), py::arg("origin") = false) + py::arg("x"), py::arg("y"), py::arg("z"), py::arg("origin") = true) .def("getAccel", py::overload_cast(&BasisClasses::BiorthBasis::getAccel), R"( Return the acceleration for a given Cartesian position in the frame defined by the coefficients. @@ -1684,9 +1684,9 @@ void BasisFactoryClasses(py::module &m) for every frame in a coefficient set. The field evaluations are produced by a call to getFields(). - The origin for field evaluations is the frame defined by the - coefficients by default. Setting 'origin=True' will use the - origin (0, 0, 0) for field evaluations instead. + The origin for field evaluations is the expansion origin by + default ('origin=True') Setting 'origin=False' will use the + origin defined by the coefficients for field evaluations instead. You get a dictionary of fields keyed by field name and an array of evaluation times for convenience. These times will be the same @@ -1703,8 +1703,8 @@ void BasisFactoryClasses(py::module &m) coefs: CoefClasses::Coefs the coefficient set origin : bool - If true, the origin for field evaluations is (0, 0, 0). - If false, the default, we use the frame defined by the coefficients. + If true, the default, origin for field evaluations is (0, 0, 0). + If false, we use the frame defined by the coefficients. Returns ------- @@ -1716,7 +1716,7 @@ void BasisFactoryClasses(py::module &m) getFields : get fields for the currently assigned coefficients __call__ : same getFields() but provides field labels in a tuple )", - py::arg("x"), py::arg("y"), py::arg("z"), py::arg("coefs"), py::arg("origin") = false) + py::arg("x"), py::arg("y"), py::arg("z"), py::arg("coefs"), py::arg("origin") = true) .def("setFieldType", &BasisClasses::BiorthBasis::setFieldType, R"( Set the coordinate system for force evaluations. The natural From 161b06029950b6269acb52de97a943a65e36f281 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 15 May 2026 12:40:34 +0000 Subject: [PATCH 102/131] Guard FlatDisk and CBDisk computeAccel against R=0 at coefficient center Agent-Logs-Url: https://github.com/EXP-code/EXP/sessions/5de301ef-07d4-4d2c-8595-cf3fe1b35194 Co-authored-by: The9Cat <25960766+The9Cat@users.noreply.github.com> --- expui/BiorthBasis.cc | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/expui/BiorthBasis.cc b/expui/BiorthBasis.cc index caa7db062..b5fbe4870 100644 --- a/expui/BiorthBasis.cc +++ b/expui/BiorthBasis.cc @@ -2584,8 +2584,12 @@ namespace BasisClasses zpot *= -G; ppot *= -G; - double potx = rpot*x/R - ppot*y/R; - double poty = rpot*y/R + ppot*x/R; + double potx = 0.0; + double poty = 0.0; + if (R > 0.0) { + potx = rpot*x/R - ppot*y/R; + poty = rpot*y/R + ppot*x/R; + } acc << potx, poty, zpot; } @@ -3354,8 +3358,12 @@ namespace BasisClasses rpot *= -G; ppot *= -G; - double potx = rpot*x/R - ppot*y/R; - double poty = rpot*y/R + ppot*x/R; + double potx = 0.0; + double poty = 0.0; + if (R > 0.0) { + potx = rpot*x/R - ppot*y/R; + poty = rpot*y/R + ppot*x/R; + } acc << potx, poty, zpot; } From d85e94f1547e25cbab75890362c34688b79c39db Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 15 May 2026 14:40:27 +0000 Subject: [PATCH 103/131] Refactor getFields API and add getFieldsOrigin methods Agent-Logs-Url: https://github.com/EXP-code/EXP/sessions/fe07195b-408a-42d0-b748-e96ed78bf175 Co-authored-by: The9Cat <25960766+The9Cat@users.noreply.github.com> --- expui/BasisFactory.H | 28 +++--- expui/BasisFactory.cc | 61 ++++++++---- expui/BiorthBasis.cc | 10 +- pyEXP/BasisWrappers.cc | 204 ++++++++++++++++------------------------- 4 files changed, 143 insertions(+), 160 deletions(-) diff --git a/expui/BasisFactory.H b/expui/BasisFactory.H index 052bfe536..6f3351497 100644 --- a/expui/BasisFactory.H +++ b/expui/BasisFactory.H @@ -196,26 +196,28 @@ namespace BasisClasses operator()(double x1, double x2, double x3, const Coord ctype=Coord::Spherical); - //! Evaluate fields at a point - //! @note API change in v7.10.3: Added 'origin' parameter (default=true). - //! This is an ABI-breaking change for external C++ code that - //! subclasses Basis or calls these methods via vtable. - virtual std::vector getFields(double x, double y, double z, - bool origin=true); + //! Evaluate fields at a point in the expansion-origin frame + virtual std::vector getFields(double x, double y, double z); + + //! Evaluate fields at a point in the coefficient-origin frame + virtual std::vector getFieldsOrigin(double x, double y, double z); - //! Evaluate fields at a point for all coefficients sets - //! @note API change in v7.10.3: Added 'origin' parameter (default=true). - //! This is an ABI-breaking change for external C++ code that - //! subclasses Basis or calls these methods via vtable. + //! Evaluate fields at a point for all coefficients sets in the + //! expansion-origin frame virtual std::tuple, Eigen::VectorXd> getFieldsCoefs - (double x, double y, double z, std::shared_ptr coefs, - bool origin=true); + (double x, double y, double z, std::shared_ptr coefs); + + //! Evaluate fields at a point for all coefficients sets in the + //! coefficient-origin frame + virtual std::tuple, + Eigen::VectorXd> getFieldsCoefsOrigin + (double x, double y, double z, std::shared_ptr coefs); //! Evaluate fields at a point, and provide field labels virtual std::tuple, std::vector> evaluate(double x, double y, double z) - { return {getFields(x, y, z, true), getFieldLabels(coordinates)}; } + { return {getFields(x, y, z), getFieldLabels(coordinates)}; } //! Retrieve the coefficients virtual CoefClasses::CoefStrPtr getCoefficients() diff --git a/expui/BasisFactory.cc b/expui/BasisFactory.cc index 04d483285..77a0cd875 100644 --- a/expui/BasisFactory.cc +++ b/expui/BasisFactory.cc @@ -228,21 +228,54 @@ namespace BasisClasses }; } - std::vector Basis::getFields(double x, double y, double z, - bool origin) + std::vector Basis::getFields(double x, double y, double z) + { return crt_eval(x, y, z); } + + std::vector Basis::getFieldsOrigin(double x, double y, double z) { - if (not origin) { - x -= coefctr(0); - y -= coefctr(1); - z -= coefctr(2); - } + x -= coefctr(0); + y -= coefctr(1); + z -= coefctr(2); return crt_eval(x, y, z); } std::tuple, Eigen::VectorXd> Basis::getFieldsCoefs - (double x, double y, double z, std::shared_ptr coefs, - bool origin) + (double x, double y, double z, std::shared_ptr coefs) + { + // Python dictonary for return + std::map ret; + + // Times for the coefficients + auto times = coefs->Times(); + + // Initialize the dictionary/map + auto fields = getFieldLabels(coordinates); + for (auto s : fields) ret[s].resize(times.size()); + + // Make the return dictionary of arrays + for (int i=0; igetCoefStruct(times[i])); + + // The field evaluation + auto v = crt_eval(x, y, z); + + // Pack the fields into the dictionary + for (int j=0; j(times.data(), times.size()); + + // Return the dictionary and the time array + return {ret, T}; + } + + std::tuple, Eigen::VectorXd> + Basis::getFieldsCoefsOrigin + (double x, double y, double z, std::shared_ptr coefs) { // Python dictonary for return std::map ret; @@ -259,16 +292,8 @@ namespace BasisClasses // Load the coefficients for the current time set_coefs(coefs->getCoefStruct(times[i])); - double xc = x, yc = y, zc = z; - // Apply centering - if (not origin) { - xc -= coefctr(0); - yc -= coefctr(1); - zc -= coefctr(2); - } - // The field evaluation - auto v = crt_eval(xc, yc, zc); + auto v = getFieldsOrigin(x, y, z); // Pack the fields into the dictionary for (int j=0; jaccumulated_dens_eval(R, z, phi, tdens0); - double tpotx = tpotR*x/R - tpotp*y/R ; - double tpoty = tpotR*y/R + tpotp*x/R ; + double tpotx = 0.0; + double tpoty = 0.0; + if (R > 0.0) { + tpotx = tpotR*x/R - tpotp*y/R; + tpoty = tpotR*y/R + tpotp*x/R; + } return {tdens0, tdens - tdens0, tdens, @@ -4823,7 +4827,7 @@ namespace BasisClasses for (int k=0; k<3; k++) pp(k) = ps(n, k) - ctr(k); pp = rot * pp; - auto v = basis->getFields(pp(0), pp(1), pp(2), true); + auto v = basis->getFields(pp(0), pp(1), pp(2)); // First 6 fields are density and potential, followed by acceleration for (int k=0; k<3; k++) accel(n, k) += v[6+k] - basis->pseudo(k); diff --git a/pyEXP/BasisWrappers.cc b/pyEXP/BasisWrappers.cc index 43f8bc185..6da222c1a 100644 --- a/pyEXP/BasisWrappers.cc +++ b/pyEXP/BasisWrappers.cc @@ -330,52 +330,18 @@ void BasisFactoryClasses(py::module &m) // Inherit the constructors using BasisClasses::Basis::Basis; - std::vector getFields(double x, double y, double z, bool origin) override - { - pybind11::gil_scoped_acquire gil; - pybind11::function override_func = - pybind11::get_override(static_cast(this), "getFields"); - if (override_func) { - try { - auto result = override_func(x, y, z, origin); - return result.cast>(); - } catch (pybind11::error_already_set& e) { - if (e.matches(PyExc_TypeError)) { - // Backward-compatible fallback for subclasses with 3-arg signature - PyErr_Clear(); - auto result = override_func(x, y, z); - return result.cast>(); - } - throw; - } - } - return Basis::getFields(x, y, z, origin); + std::vector getFields(double x, double y, double z) override + { + PYBIND11_OVERRIDE(std::vector, Basis, getFields, x, y, z); } using FCReturn = std::tuple, Eigen::VectorXd>; FCReturn getFieldsCoefs - (double x, double y, double z, CoefClasses::CoefsPtr coefs, bool origin) override - { - pybind11::gil_scoped_acquire gil; - pybind11::function override_func = - pybind11::get_override(static_cast(this), "getFieldsCoefs"); - if (override_func) { - try { - auto result = override_func(x, y, z, coefs, origin); - return result.cast(); - } catch (pybind11::error_already_set& e) { - if (e.matches(PyExc_TypeError)) { - // Backward-compatible fallback for subclasses with 4-arg signature - PyErr_Clear(); - auto result = override_func(x, y, z, coefs); - return result.cast(); - } - throw; - } - } - return Basis::getFieldsCoefs(x, y, z, coefs, origin); + (double x, double y, double z, CoefClasses::CoefsPtr coefs) override + { + PYBIND11_OVERRIDE(FCReturn, Basis, getFieldsCoefs, x, y, z, coefs); } void accumulate(double x, double y, double z, double mass, unsigned long int indx) override { @@ -468,22 +434,9 @@ void BasisFactoryClasses(py::module &m) // Inherit the constructors using FieldBasis::FieldBasis; - std::vector getFields(double x, double y, double z, bool origin) override + std::vector getFields(double x, double y, double z) override { - py::gil_scoped_acquire gil; - py::function override = py::get_override(static_cast(this), "getFields"); - - if (override) { - try { - return override(x, y, z, origin).cast>(); - } catch (py::error_already_set &e) { - if (!e.matches(PyExc_TypeError)) throw; - e.clear(); - return override(x, y, z).cast>(); - } - } - - return FieldBasis::getFields(x, y, z, origin); + PYBIND11_OVERRIDE(std::vector, FieldBasis, getFields, x, y, z); } void accumulate(double m, double x, double y, double z, @@ -608,17 +561,12 @@ void BasisFactoryClasses(py::module &m) // Inherit the constructors using Spherical::Spherical; - std::vector getFields(double x, double y, double z, bool origin) override { + std::vector getFields(double x, double y, double z) override { py::function override = py::get_override(static_cast(this), "getFields"); if (override) { - try { - return py::cast>(override(x, y, z, origin)); - } catch (py::error_already_set &e) { - if (!e.matches(PyExc_TypeError)) throw; - } return py::cast>(override(x, y, z)); } - return Spherical::getFields(x, y, z, origin); + return Spherical::getFields(x, y, z); } void accumulate(double x, double y, double z, double mass, unsigned long int indx) override { @@ -683,8 +631,8 @@ void BasisFactoryClasses(py::module &m) // Inherit the constructors using Cylindrical::Cylindrical; - std::vector getFields(double x, double y, double z, bool origin) override { - PYBIND11_OVERRIDE(std::vector, Cylindrical, getFields, x, y, z, origin); + std::vector getFields(double x, double y, double z) override { + PYBIND11_OVERRIDE(std::vector, Cylindrical, getFields, x, y, z); } void accumulate(double x, double y, double z, double mass, unsigned long int indx) override { @@ -761,9 +709,9 @@ void BasisFactoryClasses(py::module &m) // Inherit the constructors using FlatDisk::FlatDisk; - std::vector getFields(double x, double y, double z, bool origin) override + std::vector getFields(double x, double y, double z) override { - PYBIND11_OVERRIDE(std::vector, FlatDisk, getFields, x, y, z, origin); + PYBIND11_OVERRIDE(std::vector, FlatDisk, getFields, x, y, z); } void accumulate(double x, double y, double z, double mass, unsigned long int indx) override @@ -843,20 +791,9 @@ void BasisFactoryClasses(py::module &m) // Inherit the constructors using CBDisk::CBDisk; - std::vector getFields(double x, double y, double z, bool origin) override + std::vector getFields(double x, double y, double z) override { - py::gil_scoped_acquire gil; - py::function override = py::get_override(this, "getFields"); - if (override) { - try { - return override(x, y, z, origin).cast>(); - } catch (py::error_already_set &e) { - if (!e.matches(PyExc_TypeError)) throw; - PyErr_Clear(); - return override(x, y, z).cast>(); - } - } - return CBDisk::getFields(x, y, z, origin); + PYBIND11_OVERRIDE(std::vector, CBDisk, getFields, x, y, z); } void accumulate(double x, double y, double z, double mass, unsigned long int indx) override @@ -928,21 +865,9 @@ void BasisFactoryClasses(py::module &m) // Inherit the constructors using Slab::Slab; - std::vector getFields(double x, double y, double z, bool origin) override + std::vector getFields(double x, double y, double z) override { - py::gil_scoped_acquire gil; - py::function overload = py::get_overload(static_cast(this), "getFields"); - if (overload) { - try { - return overload(x, y, z, origin).cast>(); - } catch (py::error_already_set &e) { - if (!e.matches(PyExc_TypeError)) throw; - } - - return overload(x, y, z).cast>(); - } - - return Slab::getFields(x, y, z, origin); + PYBIND11_OVERRIDE(std::vector, Slab, getFields, x, y, z); } void accumulate(double x, double y, double z, double mass, unsigned long int indx) override @@ -1014,21 +939,9 @@ void BasisFactoryClasses(py::module &m) // Inherit the constructors using Cube::Cube; - std::vector getFields(double x, double y, double z, bool origin) override + std::vector getFields(double x, double y, double z) override { - py::function override = py::get_override(this, "getFields"); - if (override) { - try { - return override(x, y, z, origin).cast>(); - } catch (py::error_already_set &e) { - if (e.matches(PyExc_TypeError)) { - e.clear(); - return override(x, y, z).cast>(); - } - throw; - } - } - return Cube::getFields(x, y, z, origin); + PYBIND11_OVERRIDE(std::vector, Cube, getFields, x, y, z); } void accumulate(double x, double y, double z, double mass, unsigned long int indx) override @@ -1613,13 +1526,9 @@ void BasisFactoryClasses(py::module &m) potential evaluations are separated into full, axisymmetric and non-axisymmetric contributions. - The origin for field evaluations is the expansion origin by - default ('origin=True') Setting 'origin=False' will use the - origin defined by the coefficients for field evaluations instead. - You can get the field labels by using the __call__ method of the basis object. This is equivalent to a tuple of the getFields() - output with a list of field labels with 'origin=True'. + output with a list of field labels. Parameters ---------- @@ -1629,9 +1538,6 @@ void BasisFactoryClasses(py::module &m) y-axis position z : float z-axis position - origin : bool - If true, the default, origin for field evaluations is (0, 0, 0). - If false, we use the frame defined by the coefficients. Returns ------- @@ -1639,10 +1545,35 @@ void BasisFactoryClasses(py::module &m) See also -------- + getFieldsOrigin: get fields in coefficient-origin frame getFieldsCoefs : get fields for each coefficient set __call__ : same as getFields() but provides field labels in a tuple )", - py::arg("x"), py::arg("y"), py::arg("z"), py::arg("origin") = true) + py::arg("x"), py::arg("y"), py::arg("z")) + .def("getFieldsOrigin", &BasisClasses::BiorthBasis::getFieldsOrigin, + R"( + Return the field evaluations for a given Cartesian position in + the frame defined by the current coefficients. + + Parameters + ---------- + x : float + x-axis position + y : float + y-axis position + z : float + z-axis position + + Returns + ------- + fields: numpy.ndarray + + See also + -------- + getFields : get fields in expansion-origin frame + getFieldsCoefs : get fields for each coefficient set + )", + py::arg("x"), py::arg("y"), py::arg("z")) .def("getAccel", py::overload_cast(&BasisClasses::BiorthBasis::getAccel), R"( Return the acceleration for a given Cartesian position in the frame defined by the coefficients. @@ -1741,10 +1672,6 @@ void BasisFactoryClasses(py::module &m) for every frame in a coefficient set. The field evaluations are produced by a call to getFields(). - The origin for field evaluations is the expansion origin by - default ('origin=True') Setting 'origin=False' will use the - origin defined by the coefficients for field evaluations instead. - You get a dictionary of fields keyed by field name and an array of evaluation times for convenience. These times will be the same as Times() for the coefficient object. @@ -1759,9 +1686,6 @@ void BasisFactoryClasses(py::module &m) z-axis position coefs: CoefClasses::Coefs the coefficient set - origin : bool - If true, the default, origin for field evaluations is (0, 0, 0). - If false, we use the frame defined by the coefficients. Returns ------- @@ -1770,10 +1694,38 @@ void BasisFactoryClasses(py::module &m) See also -------- - getFields : get fields for the currently assigned coefficients - __call__ : same getFields() but provides field labels in a tuple + getFields : get fields for the currently assigned coefficients + getFieldsOrigin : get fields in coefficient-origin frame + __call__ : same getFields() but provides field labels in a tuple + )", + py::arg("x"), py::arg("y"), py::arg("z"), py::arg("coefs")) + .def("getFieldsCoefsOrigin", &BasisClasses::BiorthBasis::getFieldsCoefsOrigin, + R"( + Return the field evaluations for a given Cartesian position + for every frame in a coefficient set in the frame defined by + each coefficient structure. + + Parameters + ---------- + x : float + x-axis position + y : float + y-axis position + z : float + z-axis position + coefs: CoefClasses::Coefs + the coefficient set + + Returns + ------- + tuple of a dictionary of fields of array values, and an + array of evaluation times + + See also + -------- + getFieldsCoefs : get fields in expansion-origin frame )", - py::arg("x"), py::arg("y"), py::arg("z"), py::arg("coefs"), py::arg("origin") = true) + py::arg("x"), py::arg("y"), py::arg("z"), py::arg("coefs")) .def("setFieldType", &BasisClasses::BiorthBasis::setFieldType, R"( Set the coordinate system for force evaluations. The natural From cb7f33368188e5509135cec5f8fefe304b395784 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 15 May 2026 14:44:06 +0000 Subject: [PATCH 104/131] Fix comment typo in BasisFactory dictionary notes Agent-Logs-Url: https://github.com/EXP-code/EXP/sessions/fe07195b-408a-42d0-b748-e96ed78bf175 Co-authored-by: The9Cat <25960766+The9Cat@users.noreply.github.com> --- expui/BasisFactory.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/expui/BasisFactory.cc b/expui/BasisFactory.cc index 77a0cd875..0830656b6 100644 --- a/expui/BasisFactory.cc +++ b/expui/BasisFactory.cc @@ -243,7 +243,7 @@ namespace BasisClasses Basis::getFieldsCoefs (double x, double y, double z, std::shared_ptr coefs) { - // Python dictonary for return + // Python dictionary for return std::map ret; // Times for the coefficients @@ -277,7 +277,7 @@ namespace BasisClasses Basis::getFieldsCoefsOrigin (double x, double y, double z, std::shared_ptr coefs) { - // Python dictonary for return + // Python dictionary for return std::map ret; // Times for the coefficients From 92564410e0a1c63790612430e796e0d8f79cd85b Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 27 May 2026 15:44:11 +0000 Subject: [PATCH 105/131] Initial plan From b4470e1ca88f9334ca979fa5e93c78b90a342b5b Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 27 May 2026 15:47:41 +0000 Subject: [PATCH 106/131] Apply coefrot in computeAccel implementations --- expui/BiorthBasis.cc | 84 ++++++++++++++++++++++++++------------------ 1 file changed, 49 insertions(+), 35 deletions(-) diff --git a/expui/BiorthBasis.cc b/expui/BiorthBasis.cc index e9c4e4536..acc7aa79b 100644 --- a/expui/BiorthBasis.cc +++ b/expui/BiorthBasis.cc @@ -818,10 +818,12 @@ namespace BasisClasses void Spherical::computeAccel(double x, double y, double z, Eigen::Ref acc) { - // Shift to center - x -= coefctr(0); - y -= coefctr(1); - z -= coefctr(2); + // Shift and rotate to expansion frame + Eigen::Vector3d pos {x, y, z}; + pos = coefrot * (pos - coefctr); + x = pos(0); + y = pos(1); + z = pos(2); // Get polar coordinates double R2 = x*x + y*y; @@ -925,9 +927,9 @@ namespace BasisClasses double tpoty = (potr - pott*costh/r)*y/r + potp*x/R2; double tpotz = potr*costh + pott*sinth*sinth/r; - // Return force not potential gradient + // Return force not potential gradient and rotate to caller frame // - acc << tpotx, tpoty, tpotz; + acc = coefrot.transpose() * Eigen::Vector3d(tpotx, tpoty, tpotz); } @@ -1813,10 +1815,12 @@ namespace BasisClasses void Cylindrical::computeAccel(double x, double y, double z, Eigen::Ref acc) { - // Shift to center - x -= coefctr(0); - y -= coefctr(1); - z -= coefctr(2); + // Shift and rotate to expansion frame + Eigen::Vector3d pos {x, y, z}; + pos = coefrot * (pos - coefctr); + x = pos(0); + y = pos(1); + z = pos(2); double R = sqrt(x*x + y*y); double phi = atan2(y, x); @@ -1834,8 +1838,8 @@ namespace BasisClasses tpoty = tpotR*y/R + tpotp*x/R; } - // Apply G to forces on return - acc << tpotx*G, tpoty*G, tpotz*G; + // Apply G and rotate forces on return + acc = coefrot.transpose() * Eigen::Vector3d(tpotx*G, tpoty*G, tpotz*G); } // Evaluate in cylindrical coordinates @@ -2499,10 +2503,12 @@ namespace BasisClasses void FlatDisk::computeAccel(double x, double y, double z, Eigen::Ref acc) { - // Shift to center - x -= coefctr(0); - y -= coefctr(1); - z -= coefctr(2); + // Shift and rotate to expansion frame + Eigen::Vector3d pos {x, y, z}; + pos = coefrot * (pos - coefctr); + x = pos(0); + y = pos(1); + z = pos(2); // Get thread id int tid = omp_get_thread_num(); @@ -2527,7 +2533,7 @@ namespace BasisClasses rpot = -G*totalMass*R/(r*r2 + 10.0*std::numeric_limits::min()); zpot = -G*totalMass*z/(r*r2 + 10.0*std::numeric_limits::min()); - acc << rpot, zpot, ppot; + acc = coefrot.transpose() * Eigen::Vector3d(rpot, zpot, ppot); } // Get the basis fields @@ -2595,7 +2601,7 @@ namespace BasisClasses poty = rpot*y/R + ppot*x/R; } - acc << potx, poty, zpot; + acc = coefrot.transpose() * Eigen::Vector3d(potx, poty, zpot); } @@ -3297,10 +3303,12 @@ namespace BasisClasses void CBDisk::computeAccel(double x, double y, double z, Eigen::Ref acc) { - // Shift to center - x -= coefctr(0); - y -= coefctr(1); - z -= coefctr(2); + // Shift and rotate to expansion frame + Eigen::Vector3d pos {x, y, z}; + pos = coefrot * (pos - coefctr); + x = pos(0); + y = pos(1); + z = pos(2); // Get thread id int tid = omp_get_thread_num(); @@ -3369,7 +3377,7 @@ namespace BasisClasses poty = rpot*y/R + ppot*x/R; } - acc << potx, poty, zpot; + acc = coefrot.transpose() * Eigen::Vector3d(potx, poty, zpot); } @@ -3792,10 +3800,12 @@ namespace BasisClasses void Slab::computeAccel(double x, double y, double z, Eigen::Ref acc) { - // Shift to center - x -= coefctr(0); - y -= coefctr(1); - z -= coefctr(2); + // Shift and rotate to expansion frame + Eigen::Vector3d pos {x, y, z}; + pos = coefrot * (pos - coefctr); + x = pos(0); + y = pos(1); + z = pos(2); // Loop indices // @@ -3868,8 +3878,9 @@ namespace BasisClasses } } - // Apply G to forces on return - acc << G*accx.real(), G*accy.real(), G*accz.real(); + // Apply G to forces on return and rotate to caller frame + acc = coefrot.transpose() * + Eigen::Vector3d(G*accx.real(), G*accy.real(), G*accz.real()); } @@ -4369,10 +4380,12 @@ namespace BasisClasses void Cube::computeAccel(double x, double y, double z, Eigen::Ref acc) { - // Shift to center - x -= coefctr(0); - y -= coefctr(1); - z -= coefctr(2); + // Shift and rotate to expansion frame + Eigen::Vector3d pos {x, y, z}; + pos = coefrot * (pos - coefctr); + x = pos(0); + y = pos(1); + z = pos(2); // Get thread id int tid = omp_get_thread_num(); @@ -4383,8 +4396,9 @@ namespace BasisClasses // Get the basis fields auto frc = ortho->get_force(expcoef, pos); - // Apply G to forces on return - acc << -G*frc(0).real(), -G*frc(1).real(), -G*frc(2).real(); + // Apply G to forces on return and rotate to caller frame + acc = coefrot.transpose() * + Eigen::Vector3d(-G*frc(0).real(), -G*frc(1).real(), -G*frc(2).real()); } std::vector Cube::cyl_eval(double R, double z, double phi) From 19f61d3cba9826fbeebd3c0104b8f777ca03d6b7 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 27 May 2026 15:51:29 +0000 Subject: [PATCH 107/131] Fix FlatDisk off-grid component order in rotated accel --- expui/BiorthBasis.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/expui/BiorthBasis.cc b/expui/BiorthBasis.cc index acc7aa79b..6131319eb 100644 --- a/expui/BiorthBasis.cc +++ b/expui/BiorthBasis.cc @@ -2533,7 +2533,7 @@ namespace BasisClasses rpot = -G*totalMass*R/(r*r2 + 10.0*std::numeric_limits::min()); zpot = -G*totalMass*z/(r*r2 + 10.0*std::numeric_limits::min()); - acc = coefrot.transpose() * Eigen::Vector3d(rpot, zpot, ppot); + acc = coefrot.transpose() * Eigen::Vector3d(rpot, ppot, zpot); } // Get the basis fields From 416085033145873b2dfd890447d41e9dac7ca721 Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Wed, 27 May 2026 12:41:27 -0400 Subject: [PATCH 108/131] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- expui/BasisFactory.cc | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/expui/BasisFactory.cc b/expui/BasisFactory.cc index 0830656b6..4afa92617 100644 --- a/expui/BasisFactory.cc +++ b/expui/BasisFactory.cc @@ -233,10 +233,9 @@ namespace BasisClasses std::vector Basis::getFieldsOrigin(double x, double y, double z) { - x -= coefctr(0); - y -= coefctr(1); - z -= coefctr(2); - return crt_eval(x, y, z); + Eigen::Vector3d p(x, y, z); + p = coefrot * (p - coefctr); + return crt_eval(p(0), p(1), p(2)); } std::tuple, Eigen::VectorXd> From 9f7aedbdcf5546dcd9c19996ab8cfdb5497c642c Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Thu, 28 May 2026 09:02:48 -0400 Subject: [PATCH 109/131] Potential fix for pull request finding Good catch. Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- pyEXP/BasisWrappers.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pyEXP/BasisWrappers.cc b/pyEXP/BasisWrappers.cc index 6da222c1a..2493e1215 100644 --- a/pyEXP/BasisWrappers.cc +++ b/pyEXP/BasisWrappers.cc @@ -562,9 +562,9 @@ void BasisFactoryClasses(py::module &m) using Spherical::Spherical; std::vector getFields(double x, double y, double z) override { - py::function override = py::get_override(static_cast(this), "getFields"); - if (override) { - return py::cast>(override(x, y, z)); + py::function py_override = py::get_override(static_cast(this), "getFields"); + if (py_override) { + return py::cast>(py_override(x, y, z)); } return Spherical::getFields(x, y, z); } From 92408652e67fd426da4d54a0611249966e44c434 Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Thu, 28 May 2026 09:03:29 -0400 Subject: [PATCH 110/131] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- expui/BiorthBasis.cc | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/expui/BiorthBasis.cc b/expui/BiorthBasis.cc index e9c4e4536..ca84b28ce 100644 --- a/expui/BiorthBasis.cc +++ b/expui/BiorthBasis.cc @@ -818,10 +818,22 @@ namespace BasisClasses void Spherical::computeAccel(double x, double y, double z, Eigen::Ref acc) { - // Shift to center - x -= coefctr(0); - y -= coefctr(1); - z -= coefctr(2); + struct AccelFrameGuard { + Eigen::Ref acc; + const decltype(coefrot)& rot; + + ~AccelFrameGuard() + { + acc = rot.transpose() * acc; + } + } rotate_acc_to_caller{acc, coefrot}; + + // Shift to center and rotate into the coefficient frame + Eigen::Vector3d pos(x - coefctr(0), y - coefctr(1), z - coefctr(2)); + pos = coefrot * pos; + x = pos(0); + y = pos(1); + z = pos(2); // Get polar coordinates double R2 = x*x + y*y; From a935940f994a266dd79ece3720906acd3af91401 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 28 May 2026 20:46:32 +0000 Subject: [PATCH 111/131] Fix Cube::computeAccel redeclaration from coefficient rotation change --- expui/BiorthBasis.cc | 3 --- 1 file changed, 3 deletions(-) diff --git a/expui/BiorthBasis.cc b/expui/BiorthBasis.cc index 7930087a8..2efbb628b 100644 --- a/expui/BiorthBasis.cc +++ b/expui/BiorthBasis.cc @@ -4391,9 +4391,6 @@ namespace BasisClasses // Get thread id int tid = omp_get_thread_num(); - // Position vector - Eigen::Vector3d pos {x, y, z}; - // Get the basis fields auto frc = ortho->get_force(expcoef, pos); From c967fca75d35dc0044eb4ca3ae46fbff07f9f829 Mon Sep 17 00:00:00 2001 From: "Martin D. Weinberg" Date: Thu, 28 May 2026 17:37:23 -0400 Subject: [PATCH 112/131] Use 'subsamp' as a proxy for 'samplesz' and deprecate 'subsamp' with a warning --- expui/BiorthBasis.cc | 68 +++++++++++++++++++++++++++++++++--------- pyEXP/BasisWrappers.cc | 8 ++--- 2 files changed, 58 insertions(+), 18 deletions(-) diff --git a/expui/BiorthBasis.cc b/expui/BiorthBasis.cc index ca84b28ce..a5f5e2ee5 100644 --- a/expui/BiorthBasis.cc +++ b/expui/BiorthBasis.cc @@ -270,9 +270,19 @@ namespace BasisClasses if (conf["M0_ONLY"]) M0_only = conf["M0_ONLY"].as(); if (conf["pcavar"]) pcavar = conf["pcavar"].as(); if (conf["subsamp"]) sampT = conf["subsamp"].as(); + if (conf["samplesz"]) sampT = conf["samplesz"].as(); sampT = std::max(1, sampT); // Sanity - } + + // Deprecation warning + if (conf["subsamp"]) { + if (myid==0) + std::cout << "---- Spherical: parameter 'subsamp' is deprecated. " + << "It works, but will be removed in a fture release. " + << "Please use 'samplesz' instead." + << std::endl; + } + } catch (YAML::Exception & error) { if (myid==0) std::cout << "Error parsing parameter stanza for <" << name << ">: " @@ -1515,8 +1525,9 @@ namespace BasisClasses if (conf["dtype" ]) dtype = conf["dtype" ].as(); if (conf["vflag" ]) vflag = conf["vflag" ].as(); if (conf["pyname" ]) pyname = conf["pyname" ].as(); - if (conf["pcavar"] ) pcavar = conf["pcavar" ].as(); - if (conf["subsamp"] ) sampT = conf["subsamp" ].as(); + if (conf["pcavar" ]) pcavar = conf["pcavar" ].as(); + if (conf["subsamp" ]) sampT = conf["subsamp" ].as(); + if (conf["samplesz" ]) sampT = conf["samplesz" ].as(); // Sanity sampT = std::max(1, sampT); @@ -1532,7 +1543,7 @@ namespace BasisClasses // Deprecation warning if (conf["eof_file"]) { if (myid==0) - std::cout << "Cylinder: parameter 'eof_file' is deprecated. " + std::cout << "Cylindrical: parameter 'eof_file' is deprecated. " << "and will be removed in a future release. Please " << "use 'cachename' instead." << std::endl; @@ -1540,6 +1551,15 @@ namespace BasisClasses conf["cachename"] = conf["eof_file"]; } + // Deprecation warning + if (conf["subsamp"]) { + if (myid==0) + std::cout << "---- Cylindrical: parameter 'subsamp' is deprecated. " + << "It works, but will be removed in a fture release. " + << "Please use 'samplesz' instead." + << std::endl; + } + } catch (YAML::Exception & error) { if (myid==0) std::cout << "Error parsing 'force' for Component <" @@ -2147,8 +2167,18 @@ namespace BasisClasses if (conf["M0_ONLY"]) M0_only = conf["M0_ONLY"].as(); if (conf["pcavar"]) pcavar = conf["pcavar"].as(); if (conf["subsamp"]) sampT = conf["subsamp"].as(); + if (conf["samplesz"]) sampT = conf["samplesz"].as(); sampT = std::max(1, sampT); // Sanity + + if (conf["subsamp"]) { + if (myid==0) + std::cout << "---- FlatDisk: parameter 'subsamp' is deprecated. " + << "It works, but will be removed in a fture release. " + << "Please use 'samplesz' instead." + << std::endl; + } + } catch (YAML::Exception & error) { if (myid==0) std::cout << "Error parsing parameter stanza for <" @@ -4080,20 +4110,30 @@ namespace BasisClasses // Assign values from YAML // try { - if (conf["nminx"]) nminx = conf["nminx" ].as(); - if (conf["nminy"]) nminy = conf["nminy" ].as(); - if (conf["nminz"]) nminz = conf["nminz" ].as(); + if (conf["nminx"]) nminx = conf["nminx" ].as(); + if (conf["nminy"]) nminy = conf["nminy" ].as(); + if (conf["nminz"]) nminz = conf["nminz" ].as(); - if (conf["nmaxx"]) nmaxx = conf["nmaxx" ].as(); - if (conf["nmaxy"]) nmaxy = conf["nmaxy" ].as(); - if (conf["nmaxz"]) nmaxz = conf["nmaxz" ].as(); + if (conf["nmaxx"]) nmaxx = conf["nmaxx" ].as(); + if (conf["nmaxy"]) nmaxy = conf["nmaxy" ].as(); + if (conf["nmaxz"]) nmaxz = conf["nmaxz" ].as(); - if (conf["knots"]) knots = conf["knots" ].as(); + if (conf["knots"]) knots = conf["knots" ].as(); - if (conf["check"]) check = conf["check" ].as(); + if (conf["check"]) check = conf["check" ].as(); + + if (conf["pcavar"]) pcavar = conf["pcavar" ].as(); + if (conf["subsamp"]) sampT = conf["subsamp" ].as(); + if (conf["samplesz"]) sampT = conf["samplesz"].as(); + + if (conf["subsamp"]) { + if (myid==0) + std::cout << "---- Cube: parameter 'subsamp' is deprecated. " + << "It works, but will be removed in a fture release. " + << "Please use 'samplesz' instead." + << std::endl; + } - if (conf["pcavar"]) pcavar = conf["pcavar" ].as(); - if (conf["subsamp"]) sampT = conf["subsamp"].as(); } catch (YAML::Exception & error) { if (myid==0) std::cout << "Error parsing parameter stanza for <" diff --git a/pyEXP/BasisWrappers.cc b/pyEXP/BasisWrappers.cc index 2493e1215..4b74696e0 100644 --- a/pyEXP/BasisWrappers.cc +++ b/pyEXP/BasisWrappers.cc @@ -137,9 +137,9 @@ void BasisFactoryClasses(py::module &m) support for computing the coefficieint covariance from subsamples of particles. This is implemented by the enableCoefCovariance() method for each of these supported bases. The force configuration must - contain the parameters 'pcavar' (boolean) and 'subsamp' (integer) keys. + contain the parameters 'pcavar' (boolean) and 'samplesz' (integer) keys. The 'pcavar' parameter turns on the covariance computation. The - 'subsamp' parameter sets the number of partions or subsamples for each + 'samplesz' parameter sets the number of partions or subsamples for each coefficient creation. There are two additional control parameters that may be optionally specified with the enableCoefCovariance() call. The 'total' parameters enables computing the total covariance matrices only @@ -176,11 +176,11 @@ void BasisFactoryClasses(py::module &m) counts, the sample masses, the coefficient means and the coefficient covariance matrices. The first two elements are vectors of length equal to the number of subsamples. The third element is a 4D array - with dimensions (subsamp, Nlm, nmax) where subsamp is the number of + with dimensions (samplesz, Nlm, nmax) where samplesz is the number of subsamples, Nlm, is the number of harmonics (e.g. l, m values or m values for the spherical and cylindrical bases), and nmax is the number of coefficients. The fourth element is a 4D array with dimensions - (subsamp, Nlm, nmax, namx) containing the covariance matrices for each + (samplesz, Nlm, nmax, namx) containing the covariance matrices for each subsample in the last two dimensions. Typical usage might be: From a347a3b42b120624aa526f08963e9464ecf2b4e0 Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Thu, 28 May 2026 17:48:44 -0400 Subject: [PATCH 113/131] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- expui/BiorthBasis.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/expui/BiorthBasis.cc b/expui/BiorthBasis.cc index a5f5e2ee5..0939572f6 100644 --- a/expui/BiorthBasis.cc +++ b/expui/BiorthBasis.cc @@ -278,7 +278,7 @@ namespace BasisClasses if (conf["subsamp"]) { if (myid==0) std::cout << "---- Spherical: parameter 'subsamp' is deprecated. " - << "It works, but will be removed in a fture release. " + << "It works, but will be removed in a future release. " << "Please use 'samplesz' instead." << std::endl; } From bb96362797e6b5a9d074e535273c2c41ba9f29cb Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Thu, 28 May 2026 17:49:12 -0400 Subject: [PATCH 114/131] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- expui/BiorthBasis.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/expui/BiorthBasis.cc b/expui/BiorthBasis.cc index 0939572f6..4f31c261e 100644 --- a/expui/BiorthBasis.cc +++ b/expui/BiorthBasis.cc @@ -1555,7 +1555,7 @@ namespace BasisClasses if (conf["subsamp"]) { if (myid==0) std::cout << "---- Cylindrical: parameter 'subsamp' is deprecated. " - << "It works, but will be removed in a fture release. " + << "It works, but will be removed in a future release. " << "Please use 'samplesz' instead." << std::endl; } From 219ac1a33a6c46091dab50da4c8f86636cddd02e Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Thu, 28 May 2026 17:49:34 -0400 Subject: [PATCH 115/131] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- expui/BiorthBasis.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/expui/BiorthBasis.cc b/expui/BiorthBasis.cc index 4f31c261e..08b8b294d 100644 --- a/expui/BiorthBasis.cc +++ b/expui/BiorthBasis.cc @@ -2174,7 +2174,7 @@ namespace BasisClasses if (conf["subsamp"]) { if (myid==0) std::cout << "---- FlatDisk: parameter 'subsamp' is deprecated. " - << "It works, but will be removed in a fture release. " + << "It works, but will be removed in a future release. " << "Please use 'samplesz' instead." << std::endl; } From 43c919f47cb81f12ff4e37d0b34f1748b53f6da4 Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Thu, 28 May 2026 17:49:53 -0400 Subject: [PATCH 116/131] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- expui/BiorthBasis.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/expui/BiorthBasis.cc b/expui/BiorthBasis.cc index 08b8b294d..b11f3a360 100644 --- a/expui/BiorthBasis.cc +++ b/expui/BiorthBasis.cc @@ -4129,7 +4129,7 @@ namespace BasisClasses if (conf["subsamp"]) { if (myid==0) std::cout << "---- Cube: parameter 'subsamp' is deprecated. " - << "It works, but will be removed in a fture release. " + << "It works, but will be removed in a future release. " << "Please use 'samplesz' instead." << std::endl; } From 3f1bd24f8b68a20752902d22d00d6129dc7f3806 Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Thu, 28 May 2026 17:51:25 -0400 Subject: [PATCH 117/131] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- pyEXP/BasisWrappers.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyEXP/BasisWrappers.cc b/pyEXP/BasisWrappers.cc index 4b74696e0..cd4f650cb 100644 --- a/pyEXP/BasisWrappers.cc +++ b/pyEXP/BasisWrappers.cc @@ -139,7 +139,7 @@ void BasisFactoryClasses(py::module &m) for each of these supported bases. The force configuration must contain the parameters 'pcavar' (boolean) and 'samplesz' (integer) keys. The 'pcavar' parameter turns on the covariance computation. The - 'samplesz' parameter sets the number of partions or subsamples for each + 'samplesz' parameter sets the number of partitions or subsamples for each coefficient creation. There are two additional control parameters that may be optionally specified with the enableCoefCovariance() call. The 'total' parameters enables computing the total covariance matrices only From 20e3ec2742b4fbf26eec6f9588f6b7a7e6691049 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 28 May 2026 21:56:55 +0000 Subject: [PATCH 118/131] Fix Cube valid_keys entries for samplesz suggestion --- expui/BiorthBasis.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/expui/BiorthBasis.cc b/expui/BiorthBasis.cc index b11f3a360..01e42667a 100644 --- a/expui/BiorthBasis.cc +++ b/expui/BiorthBasis.cc @@ -4050,8 +4050,9 @@ namespace BasisClasses "verbose", "check", "method", - "pcavar," + "pcavar", "subsamp", + "samplesz", "nint", "totalCovar", "fullCovar" From 5cffe133bba7199396deff66205df945ad5283e5 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 28 May 2026 21:59:08 +0000 Subject: [PATCH 119/131] chore: finalize targeted review-comment handling --- build-baseline/CMakeCache.txt | 673 ++++++++++ .../CMakeFiles/3.31.6/CMakeCCompiler.cmake | 81 ++ .../CMakeFiles/3.31.6/CMakeCXXCompiler.cmake | 101 ++ .../3.31.6/CMakeDetermineCompilerABI_C.bin | Bin 0 -> 15968 bytes .../3.31.6/CMakeDetermineCompilerABI_CXX.bin | Bin 0 -> 15992 bytes .../CMakeDetermineCompilerABI_Fortran.bin | Bin 0 -> 16312 bytes .../3.31.6/CMakeFortranCompiler.cmake | 68 + .../CMakeFiles/3.31.6/CMakeSystem.cmake | 15 + .../3.31.6/CompilerIdC/CMakeCCompilerId.c | 904 +++++++++++++ .../CMakeFiles/3.31.6/CompilerIdC/a.out | Bin 0 -> 16088 bytes .../CompilerIdCXX/CMakeCXXCompilerId.cpp | 919 ++++++++++++++ .../CMakeFiles/3.31.6/CompilerIdCXX/a.out | Bin 0 -> 16096 bytes .../CMakeFortranCompilerId.F | 1119 +++++++++++++++++ .../CMakeFiles/3.31.6/CompilerIdFortran/a.out | Bin 0 -> 16224 bytes .../CMakeFiles/CMakeConfigureLog.yaml | 964 ++++++++++++++ build-baseline/CMakeFiles/cmake.check_cache | 1 + 16 files changed, 4845 insertions(+) create mode 100644 build-baseline/CMakeCache.txt create mode 100644 build-baseline/CMakeFiles/3.31.6/CMakeCCompiler.cmake create mode 100644 build-baseline/CMakeFiles/3.31.6/CMakeCXXCompiler.cmake create mode 100755 build-baseline/CMakeFiles/3.31.6/CMakeDetermineCompilerABI_C.bin create mode 100755 build-baseline/CMakeFiles/3.31.6/CMakeDetermineCompilerABI_CXX.bin create mode 100755 build-baseline/CMakeFiles/3.31.6/CMakeDetermineCompilerABI_Fortran.bin create mode 100644 build-baseline/CMakeFiles/3.31.6/CMakeFortranCompiler.cmake create mode 100644 build-baseline/CMakeFiles/3.31.6/CMakeSystem.cmake create mode 100644 build-baseline/CMakeFiles/3.31.6/CompilerIdC/CMakeCCompilerId.c create mode 100755 build-baseline/CMakeFiles/3.31.6/CompilerIdC/a.out create mode 100644 build-baseline/CMakeFiles/3.31.6/CompilerIdCXX/CMakeCXXCompilerId.cpp create mode 100755 build-baseline/CMakeFiles/3.31.6/CompilerIdCXX/a.out create mode 100644 build-baseline/CMakeFiles/3.31.6/CompilerIdFortran/CMakeFortranCompilerId.F create mode 100755 build-baseline/CMakeFiles/3.31.6/CompilerIdFortran/a.out create mode 100644 build-baseline/CMakeFiles/CMakeConfigureLog.yaml create mode 100644 build-baseline/CMakeFiles/cmake.check_cache diff --git a/build-baseline/CMakeCache.txt b/build-baseline/CMakeCache.txt new file mode 100644 index 000000000..feaba33cb --- /dev/null +++ b/build-baseline/CMakeCache.txt @@ -0,0 +1,673 @@ +# This is the CMakeCache file. +# For build in directory: /tmp/workspace/EXP-code/EXP/build-baseline +# It was generated by CMake: /usr/local/bin/cmake +# You can edit this file to change values found and used by cmake. +# If you do not want to change any of the values, simply exit the editor. +# If you do want to change a value, simply edit, save, and exit the editor. +# The syntax for the file is as follows: +# KEY:TYPE=VALUE +# KEY is the name of a variable in the cache. +# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!. +# VALUE is the current value for the KEY. + +######################## +# EXTERNAL cache entries +######################## + +//Build documentation +BUILD_DOCS:BOOL=OFF + +//Build using shared libraries +BUILD_SHARED_LIBS:BOOL=ON + +//Path to a program. +CMAKE_ADDR2LINE:FILEPATH=/usr/bin/addr2line + +//Path to a program. +CMAKE_AR:FILEPATH=/usr/bin/ar + +//Choose the type of build, options are: None Debug Release RelWithDebInfo +// MinSizeRel ... +CMAKE_BUILD_TYPE:STRING= + +//Enable/Disable color output during build. +CMAKE_COLOR_MAKEFILE:BOOL=ON + +//CXX compiler +CMAKE_CXX_COMPILER:FILEPATH=/usr/bin/c++ + +//A wrapper around 'ar' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_CXX_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-13 + +//A wrapper around 'ranlib' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-13 + +//Flags used by the CXX compiler during all build types. +CMAKE_CXX_FLAGS:STRING= + +//Flags used by the CXX compiler during DEBUG builds. +CMAKE_CXX_FLAGS_DEBUG:STRING=-g + +//Flags used by the CXX compiler during MINSIZEREL builds. +CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the CXX compiler during RELEASE builds. +CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG + +//Flags used by the CXX compiler during RELWITHDEBINFO builds. +CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//C compiler +CMAKE_C_COMPILER:FILEPATH=/usr/bin/cc + +//A wrapper around 'ar' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_C_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-13 + +//A wrapper around 'ranlib' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_C_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-13 + +//Flags used by the C compiler during all build types. +CMAKE_C_FLAGS:STRING= + +//Flags used by the C compiler during DEBUG builds. +CMAKE_C_FLAGS_DEBUG:STRING=-g + +//Flags used by the C compiler during MINSIZEREL builds. +CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the C compiler during RELEASE builds. +CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG + +//Flags used by the C compiler during RELWITHDEBINFO builds. +CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//Path to a program. +CMAKE_DLLTOOL:FILEPATH=CMAKE_DLLTOOL-NOTFOUND + +//Flags used by the linker during all build types. +CMAKE_EXE_LINKER_FLAGS:STRING= + +//Flags used by the linker during DEBUG builds. +CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during MINSIZEREL builds. +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during RELEASE builds. +CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during RELWITHDEBINFO builds. +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Enable/Disable output of compile commands during generation. +CMAKE_EXPORT_COMPILE_COMMANDS:BOOL= + +//Value Computed by CMake. +CMAKE_FIND_PACKAGE_REDIRECTS_DIR:STATIC=/tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/pkgRedirects + +//Fortran compiler +CMAKE_Fortran_COMPILER:FILEPATH=/usr/bin/gfortran + +//A wrapper around 'ar' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_Fortran_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-13 + +//A wrapper around 'ranlib' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_Fortran_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-13 + +//Flags used by the Fortran compiler during all build types. +CMAKE_Fortran_FLAGS:STRING= + +//Flags used by the Fortran compiler during DEBUG builds. +CMAKE_Fortran_FLAGS_DEBUG:STRING=-g + +//Flags used by the Fortran compiler during MINSIZEREL builds. +CMAKE_Fortran_FLAGS_MINSIZEREL:STRING=-Os + +//Flags used by the Fortran compiler during RELEASE builds. +CMAKE_Fortran_FLAGS_RELEASE:STRING=-O3 + +//Flags used by the Fortran compiler during RELWITHDEBINFO builds. +CMAKE_Fortran_FLAGS_RELWITHDEBINFO:STRING=-O2 -g + +//Install path prefix, prepended onto install directories. +CMAKE_INSTALL_PREFIX:PATH=/usr/local + +//Path to a program. +CMAKE_LINKER:FILEPATH=/usr/bin/ld + +//Path to a program. +CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/gmake + +//Flags used by the linker during the creation of modules during +// all build types. +CMAKE_MODULE_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of modules during +// DEBUG builds. +CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of modules during +// MINSIZEREL builds. +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of modules during +// RELEASE builds. +CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of modules during +// RELWITHDEBINFO builds. +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_NM:FILEPATH=/usr/bin/nm + +//Path to a program. +CMAKE_OBJCOPY:FILEPATH=/usr/bin/objcopy + +//Path to a program. +CMAKE_OBJDUMP:FILEPATH=/usr/bin/objdump + +//Value Computed by CMake +CMAKE_PROJECT_DESCRIPTION:STATIC= + +//Value Computed by CMake +CMAKE_PROJECT_HOMEPAGE_URL:STATIC=https://github.com/EXP-code/EXP + +//Value Computed by CMake +CMAKE_PROJECT_NAME:STATIC=EXP + +//Value Computed by CMake +CMAKE_PROJECT_VERSION:STATIC=7.10.3 + +//Value Computed by CMake +CMAKE_PROJECT_VERSION_MAJOR:STATIC=7 + +//Value Computed by CMake +CMAKE_PROJECT_VERSION_MINOR:STATIC=10 + +//Value Computed by CMake +CMAKE_PROJECT_VERSION_PATCH:STATIC=3 + +//Value Computed by CMake +CMAKE_PROJECT_VERSION_TWEAK:STATIC= + +//Path to a program. +CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib + +//Path to a program. +CMAKE_READELF:FILEPATH=/usr/bin/readelf + +//Flags used by the linker during the creation of shared libraries +// during all build types. +CMAKE_SHARED_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of shared libraries +// during DEBUG builds. +CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of shared libraries +// during MINSIZEREL builds. +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of shared libraries +// during RELEASE builds. +CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of shared libraries +// during RELWITHDEBINFO builds. +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//If set, runtime paths are not added when installing shared libraries, +// but are added when building. +CMAKE_SKIP_INSTALL_RPATH:BOOL=NO + +//If set, runtime paths are not added when using shared libraries. +CMAKE_SKIP_RPATH:BOOL=NO + +//Flags used by the linker during the creation of static libraries +// during all build types. +CMAKE_STATIC_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of static libraries +// during DEBUG builds. +CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of static libraries +// during MINSIZEREL builds. +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of static libraries +// during RELEASE builds. +CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of static libraries +// during RELWITHDEBINFO builds. +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_STRIP:FILEPATH=/usr/bin/strip + +//Path to a program. +CMAKE_TAPI:FILEPATH=CMAKE_TAPI-NOTFOUND + +//If this value is on, makefiles will be generated without the +// .SILENT directive, and all commands will be echoed to the console +// during the make. This is useful for debugging only. With Visual +// Studio IDE projects all commands are done without /nologo. +CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE + +//Enable CUDA +ENABLE_CUDA:BOOL=OFF + +//Use real*4 instead of real*8 for CUDA +ENABLE_CUDA_SINGLE:BOOL=OFF + +//Compile EXP support libraries only +ENABLE_MINIMAL:BOOL=OFF + +//Enable EXP n-body +ENABLE_NBODY:BOOL=ON + +//Enable PNG graphics support +ENABLE_PNG:BOOL=OFF + +//Enable the Python bindings +ENABLE_PYEXP:BOOL=ON + +//Python bindings and support libraries only +ENABLE_PYEXP_ONLY:BOOL=OFF + +//Enable *careful* Sturm-Liouville solutions +ENABLE_SLCHECK:BOOL=ON + +//Enable SLURM checkpointing support +ENABLE_SLURM:BOOL=OFF + +//Enable build tests for EXP, pyEXP and helpers +ENABLE_TESTS:BOOL=ON + +//Enable compilation of user modules +ENABLE_USER:BOOL=ON + +//Enable build of the EXP standalone utilities +ENABLE_UTILS:BOOL=ON + +//Configure VTK if available +ENABLE_VTK:BOOL=OFF + +//Enable RPC/XDR support for Tipsy standard +ENABLE_XDR:BOOL=OFF + +//Value Computed by CMake +EXP_BINARY_DIR:STATIC=/tmp/workspace/EXP-code/EXP/build-baseline + +//Value Computed by CMake +EXP_IS_TOP_LEVEL:STATIC=ON + +//Command to run an MPI application (for unit tests only) +EXP_MPI_LAUNCH:STRING=mpirun + +//Value Computed by CMake +EXP_SOURCE_DIR:STATIC=/tmp/workspace/EXP-code/EXP + +//Executable for running MPI programs. +MPIEXEC_EXECUTABLE:FILEPATH=MPIEXEC_EXECUTABLE-NOTFOUND + +//Maximum number of processors available to run MPI applications. +MPIEXEC_MAX_NUMPROCS:STRING=2 + +//Flag used by MPI to specify the number of processes for mpiexec; +// the next option will be the number of processes. +MPIEXEC_NUMPROC_FLAG:STRING=-n + +//These flags will be placed after all flags passed to mpiexec. +MPIEXEC_POSTFLAGS:STRING= + +//These flags will be directly before the executable that is being +// run by mpiexec. +MPIEXEC_PREFLAGS:STRING= + +//MPI CXX additional include directories +MPI_CXX_ADDITIONAL_INCLUDE_DIRS:STRING= + +//MPI compiler for CXX +MPI_CXX_COMPILER:FILEPATH=MPI_CXX_COMPILER-NOTFOUND + +//MPI CXX compiler wrapper include directories +MPI_CXX_COMPILER_INCLUDE_DIRS:STRING= + +//MPI CXX compilation definitions +MPI_CXX_COMPILE_DEFINITIONS:STRING= + +//MPI CXX compilation flags +MPI_CXX_COMPILE_OPTIONS:STRING= + +//Path to a file. +MPI_CXX_HEADER_DIR:PATH=MPI_CXX_HEADER_DIR-NOTFOUND + +//MPI CXX libraries to link against +MPI_CXX_LIB_NAMES:STRING= + +//MPI CXX linker flags +MPI_CXX_LINK_FLAGS:STRING= + +//If true, the MPI-2 C++ bindings are disabled using definitions. +MPI_CXX_SKIP_MPICXX:BOOL=OFF + +//MPI C additional include directories +MPI_C_ADDITIONAL_INCLUDE_DIRS:STRING= + +//MPI compiler for C +MPI_C_COMPILER:FILEPATH=MPI_C_COMPILER-NOTFOUND + +//MPI C compiler wrapper include directories +MPI_C_COMPILER_INCLUDE_DIRS:STRING= + +//MPI C compilation definitions +MPI_C_COMPILE_DEFINITIONS:STRING= + +//MPI C compilation flags +MPI_C_COMPILE_OPTIONS:STRING= + +//Path to a file. +MPI_C_HEADER_DIR:PATH=MPI_C_HEADER_DIR-NOTFOUND + +//MPI C libraries to link against +MPI_C_LIB_NAMES:STRING= + +//MPI C linker flags +MPI_C_LINK_FLAGS:STRING= + +//Arguments to supply to pkg-config +PKG_CONFIG_ARGN:STRING= + +//pkg-config executable +PKG_CONFIG_EXECUTABLE:FILEPATH=/usr/bin/pkg-config + + +######################## +# INTERNAL cache entries +######################## + +//ADVANCED property for variable: CMAKE_ADDR2LINE +CMAKE_ADDR2LINE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_AR +CMAKE_AR-ADVANCED:INTERNAL=1 +//This is the directory where this CMakeCache.txt was created +CMAKE_CACHEFILE_DIR:INTERNAL=/tmp/workspace/EXP-code/EXP/build-baseline +//Major version of cmake used to create the current loaded cache +CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3 +//Minor version of cmake used to create the current loaded cache +CMAKE_CACHE_MINOR_VERSION:INTERNAL=31 +//Patch version of cmake used to create the current loaded cache +CMAKE_CACHE_PATCH_VERSION:INTERNAL=6 +//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE +CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1 +//Path to CMake executable. +CMAKE_COMMAND:INTERNAL=/usr/local/bin/cmake +//Path to cpack program executable. +CMAKE_CPACK_COMMAND:INTERNAL=/usr/local/bin/cpack +//Path to ctest program executable. +CMAKE_CTEST_COMMAND:INTERNAL=/usr/local/bin/ctest +//ADVANCED property for variable: CMAKE_CXX_COMPILER +CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR +CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB +CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS +CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG +CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL +CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE +CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO +CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER +CMAKE_C_COMPILER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER_AR +CMAKE_C_COMPILER_AR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER_RANLIB +CMAKE_C_COMPILER_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS +CMAKE_C_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG +CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL +CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE +CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO +CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_DLLTOOL +CMAKE_DLLTOOL-ADVANCED:INTERNAL=1 +//Path to cache edit program executable. +CMAKE_EDIT_COMMAND:INTERNAL=/usr/local/bin/ccmake +//Executable file format +CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS +CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG +CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE +CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS +CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1 +//Name of external makefile project generator. +CMAKE_EXTRA_GENERATOR:INTERNAL= +//ADVANCED property for variable: CMAKE_Fortran_COMPILER +CMAKE_Fortran_COMPILER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_Fortran_COMPILER_AR +CMAKE_Fortran_COMPILER_AR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_Fortran_COMPILER_RANLIB +CMAKE_Fortran_COMPILER_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_Fortran_FLAGS +CMAKE_Fortran_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_Fortran_FLAGS_DEBUG +CMAKE_Fortran_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_Fortran_FLAGS_MINSIZEREL +CMAKE_Fortran_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_Fortran_FLAGS_RELEASE +CMAKE_Fortran_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_Fortran_FLAGS_RELWITHDEBINFO +CMAKE_Fortran_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//Name of generator. +CMAKE_GENERATOR:INTERNAL=Unix Makefiles +//Generator instance identifier. +CMAKE_GENERATOR_INSTANCE:INTERNAL= +//Name of generator platform. +CMAKE_GENERATOR_PLATFORM:INTERNAL= +//Name of generator toolset. +CMAKE_GENERATOR_TOOLSET:INTERNAL= +//Source directory with the top level CMakeLists.txt file for this +// project +CMAKE_HOME_DIRECTORY:INTERNAL=/tmp/workspace/EXP-code/EXP +//Install .so files without execute permission. +CMAKE_INSTALL_SO_NO_EXE:INTERNAL=1 +//ADVANCED property for variable: CMAKE_LINKER +CMAKE_LINKER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MAKE_PROGRAM +CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS +CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG +CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE +CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_NM +CMAKE_NM-ADVANCED:INTERNAL=1 +//number of local generators +CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJCOPY +CMAKE_OBJCOPY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJDUMP +CMAKE_OBJDUMP-ADVANCED:INTERNAL=1 +//Platform information initialized +CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_RANLIB +CMAKE_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_READELF +CMAKE_READELF-ADVANCED:INTERNAL=1 +//Path to CMake installation. +CMAKE_ROOT:INTERNAL=/usr/local/share/cmake-3.31 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS +CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG +CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE +CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH +CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_RPATH +CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS +CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG +CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE +CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STRIP +CMAKE_STRIP-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_TAPI +CMAKE_TAPI-ADVANCED:INTERNAL=1 +//uname command +CMAKE_UNAME:INTERNAL=/usr/bin/uname +//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE +CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: MPIEXEC_EXECUTABLE +MPIEXEC_EXECUTABLE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: MPIEXEC_MAX_NUMPROCS +MPIEXEC_MAX_NUMPROCS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: MPIEXEC_NUMPROC_FLAG +MPIEXEC_NUMPROC_FLAG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: MPIEXEC_POSTFLAGS +MPIEXEC_POSTFLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: MPIEXEC_PREFLAGS +MPIEXEC_PREFLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: MPI_CXX_ADDITIONAL_INCLUDE_DIRS +MPI_CXX_ADDITIONAL_INCLUDE_DIRS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: MPI_CXX_COMPILER +MPI_CXX_COMPILER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: MPI_CXX_COMPILER_INCLUDE_DIRS +MPI_CXX_COMPILER_INCLUDE_DIRS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: MPI_CXX_COMPILE_DEFINITIONS +MPI_CXX_COMPILE_DEFINITIONS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: MPI_CXX_COMPILE_OPTIONS +MPI_CXX_COMPILE_OPTIONS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: MPI_CXX_HEADER_DIR +MPI_CXX_HEADER_DIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: MPI_CXX_LIB_NAMES +MPI_CXX_LIB_NAMES-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: MPI_CXX_LINK_FLAGS +MPI_CXX_LINK_FLAGS-ADVANCED:INTERNAL=1 +MPI_CXX_PKG_CFLAGS:INTERNAL= +MPI_CXX_PKG_CFLAGS_I:INTERNAL= +MPI_CXX_PKG_CFLAGS_OTHER:INTERNAL= +MPI_CXX_PKG_FOUND:INTERNAL= +MPI_CXX_PKG_INCLUDEDIR:INTERNAL= +MPI_CXX_PKG_LIBDIR:INTERNAL= +MPI_CXX_PKG_LIBS:INTERNAL= +MPI_CXX_PKG_LIBS_L:INTERNAL= +MPI_CXX_PKG_LIBS_OTHER:INTERNAL= +MPI_CXX_PKG_LIBS_PATHS:INTERNAL= +MPI_CXX_PKG_MODULE_NAME:INTERNAL= +MPI_CXX_PKG_PREFIX:INTERNAL= +MPI_CXX_PKG_STATIC_CFLAGS:INTERNAL= +MPI_CXX_PKG_STATIC_CFLAGS_I:INTERNAL= +MPI_CXX_PKG_STATIC_CFLAGS_OTHER:INTERNAL= +MPI_CXX_PKG_STATIC_LIBDIR:INTERNAL= +MPI_CXX_PKG_STATIC_LIBS:INTERNAL= +MPI_CXX_PKG_STATIC_LIBS_L:INTERNAL= +MPI_CXX_PKG_STATIC_LIBS_OTHER:INTERNAL= +MPI_CXX_PKG_STATIC_LIBS_PATHS:INTERNAL= +MPI_CXX_PKG_VERSION:INTERNAL= +MPI_CXX_PKG_mpi-cxx_INCLUDEDIR:INTERNAL= +MPI_CXX_PKG_mpi-cxx_LIBDIR:INTERNAL= +MPI_CXX_PKG_mpi-cxx_PREFIX:INTERNAL= +MPI_CXX_PKG_mpi-cxx_VERSION:INTERNAL= +//ADVANCED property for variable: MPI_CXX_SKIP_MPICXX +MPI_CXX_SKIP_MPICXX-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: MPI_C_ADDITIONAL_INCLUDE_DIRS +MPI_C_ADDITIONAL_INCLUDE_DIRS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: MPI_C_COMPILER +MPI_C_COMPILER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: MPI_C_COMPILER_INCLUDE_DIRS +MPI_C_COMPILER_INCLUDE_DIRS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: MPI_C_COMPILE_DEFINITIONS +MPI_C_COMPILE_DEFINITIONS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: MPI_C_COMPILE_OPTIONS +MPI_C_COMPILE_OPTIONS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: MPI_C_HEADER_DIR +MPI_C_HEADER_DIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: MPI_C_LIB_NAMES +MPI_C_LIB_NAMES-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: MPI_C_LINK_FLAGS +MPI_C_LINK_FLAGS-ADVANCED:INTERNAL=1 +MPI_C_PKG_CFLAGS:INTERNAL= +MPI_C_PKG_CFLAGS_I:INTERNAL= +MPI_C_PKG_CFLAGS_OTHER:INTERNAL= +MPI_C_PKG_FOUND:INTERNAL= +MPI_C_PKG_INCLUDEDIR:INTERNAL= +MPI_C_PKG_LIBDIR:INTERNAL= +MPI_C_PKG_LIBS:INTERNAL= +MPI_C_PKG_LIBS_L:INTERNAL= +MPI_C_PKG_LIBS_OTHER:INTERNAL= +MPI_C_PKG_LIBS_PATHS:INTERNAL= +MPI_C_PKG_MODULE_NAME:INTERNAL= +MPI_C_PKG_PREFIX:INTERNAL= +MPI_C_PKG_STATIC_CFLAGS:INTERNAL= +MPI_C_PKG_STATIC_CFLAGS_I:INTERNAL= +MPI_C_PKG_STATIC_CFLAGS_OTHER:INTERNAL= +MPI_C_PKG_STATIC_LIBDIR:INTERNAL= +MPI_C_PKG_STATIC_LIBS:INTERNAL= +MPI_C_PKG_STATIC_LIBS_L:INTERNAL= +MPI_C_PKG_STATIC_LIBS_OTHER:INTERNAL= +MPI_C_PKG_STATIC_LIBS_PATHS:INTERNAL= +MPI_C_PKG_VERSION:INTERNAL= +MPI_C_PKG_mpi-c_INCLUDEDIR:INTERNAL= +MPI_C_PKG_mpi-c_LIBDIR:INTERNAL= +MPI_C_PKG_mpi-c_PREFIX:INTERNAL= +MPI_C_PKG_mpi-c_VERSION:INTERNAL= +//Result of TRY_COMPILE +MPI_RESULT_CXX_test_mpi_normal:INTERNAL=FALSE +//Result of TRY_COMPILE +MPI_RESULT_C_test_mpi_normal:INTERNAL=FALSE +//ADVANCED property for variable: PKG_CONFIG_ARGN +PKG_CONFIG_ARGN-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: PKG_CONFIG_EXECUTABLE +PKG_CONFIG_EXECUTABLE-ADVANCED:INTERNAL=1 +//linker supports push/pop state +_CMAKE_CXX_LINKER_PUSHPOP_STATE_SUPPORTED:INTERNAL=TRUE +//linker supports push/pop state +_CMAKE_C_LINKER_PUSHPOP_STATE_SUPPORTED:INTERNAL=TRUE +//linker supports push/pop state +_CMAKE_Fortran_LINKER_PUSHPOP_STATE_SUPPORTED:INTERNAL=TRUE +//linker supports push/pop state +_CMAKE_LINKER_PUSHPOP_STATE_SUPPORTED:INTERNAL=TRUE +__pkg_config_checked_MPI_CXX_PKG:INTERNAL=1 +__pkg_config_checked_MPI_C_PKG:INTERNAL=1 + diff --git a/build-baseline/CMakeFiles/3.31.6/CMakeCCompiler.cmake b/build-baseline/CMakeFiles/3.31.6/CMakeCCompiler.cmake new file mode 100644 index 000000000..6f50f9184 --- /dev/null +++ b/build-baseline/CMakeFiles/3.31.6/CMakeCCompiler.cmake @@ -0,0 +1,81 @@ +set(CMAKE_C_COMPILER "/usr/bin/cc") +set(CMAKE_C_COMPILER_ARG1 "") +set(CMAKE_C_COMPILER_ID "GNU") +set(CMAKE_C_COMPILER_VERSION "13.3.0") +set(CMAKE_C_COMPILER_VERSION_INTERNAL "") +set(CMAKE_C_COMPILER_WRAPPER "") +set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "17") +set(CMAKE_C_EXTENSIONS_COMPUTED_DEFAULT "ON") +set(CMAKE_C_STANDARD_LATEST "23") +set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert;c_std_17;c_std_23") +set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes") +set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros") +set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert") +set(CMAKE_C17_COMPILE_FEATURES "c_std_17") +set(CMAKE_C23_COMPILE_FEATURES "c_std_23") + +set(CMAKE_C_PLATFORM_ID "Linux") +set(CMAKE_C_SIMULATE_ID "") +set(CMAKE_C_COMPILER_FRONTEND_VARIANT "GNU") +set(CMAKE_C_SIMULATE_VERSION "") + + + + +set(CMAKE_AR "/usr/bin/ar") +set(CMAKE_C_COMPILER_AR "/usr/bin/gcc-ar-13") +set(CMAKE_RANLIB "/usr/bin/ranlib") +set(CMAKE_C_COMPILER_RANLIB "/usr/bin/gcc-ranlib-13") +set(CMAKE_LINKER "/usr/bin/ld") +set(CMAKE_LINKER_LINK "") +set(CMAKE_LINKER_LLD "") +set(CMAKE_C_COMPILER_LINKER "/usr/bin/ld") +set(CMAKE_C_COMPILER_LINKER_ID "GNU") +set(CMAKE_C_COMPILER_LINKER_VERSION 2.42) +set(CMAKE_C_COMPILER_LINKER_FRONTEND_VARIANT GNU) +set(CMAKE_MT "") +set(CMAKE_TAPI "CMAKE_TAPI-NOTFOUND") +set(CMAKE_COMPILER_IS_GNUCC 1) +set(CMAKE_C_COMPILER_LOADED 1) +set(CMAKE_C_COMPILER_WORKS TRUE) +set(CMAKE_C_ABI_COMPILED TRUE) + +set(CMAKE_C_COMPILER_ENV_VAR "CC") + +set(CMAKE_C_COMPILER_ID_RUN 1) +set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m) +set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) +set(CMAKE_C_LINKER_PREFERENCE 10) +set(CMAKE_C_LINKER_DEPFILE_SUPPORTED ) + +# Save compiler ABI information. +set(CMAKE_C_SIZEOF_DATA_PTR "8") +set(CMAKE_C_COMPILER_ABI "ELF") +set(CMAKE_C_BYTE_ORDER "LITTLE_ENDIAN") +set(CMAKE_C_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") + +if(CMAKE_C_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_C_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}") +endif() + +if(CMAKE_C_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") +endif() + +set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "") +if(CMAKE_C_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + + +set(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/13/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include") +set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "gcc;gcc_s;c;gcc;gcc_s") +set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/13;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib") +set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/build-baseline/CMakeFiles/3.31.6/CMakeCXXCompiler.cmake b/build-baseline/CMakeFiles/3.31.6/CMakeCXXCompiler.cmake new file mode 100644 index 000000000..14f6ae31d --- /dev/null +++ b/build-baseline/CMakeFiles/3.31.6/CMakeCXXCompiler.cmake @@ -0,0 +1,101 @@ +set(CMAKE_CXX_COMPILER "/usr/bin/c++") +set(CMAKE_CXX_COMPILER_ARG1 "") +set(CMAKE_CXX_COMPILER_ID "GNU") +set(CMAKE_CXX_COMPILER_VERSION "13.3.0") +set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "") +set(CMAKE_CXX_COMPILER_WRAPPER "") +set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "17") +set(CMAKE_CXX_EXTENSIONS_COMPUTED_DEFAULT "ON") +set(CMAKE_CXX_STANDARD_LATEST "23") +set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17;cxx_std_20;cxx_std_23") +set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters") +set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates") +set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates") +set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17") +set(CMAKE_CXX20_COMPILE_FEATURES "cxx_std_20") +set(CMAKE_CXX23_COMPILE_FEATURES "cxx_std_23") +set(CMAKE_CXX26_COMPILE_FEATURES "") + +set(CMAKE_CXX_PLATFORM_ID "Linux") +set(CMAKE_CXX_SIMULATE_ID "") +set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "GNU") +set(CMAKE_CXX_SIMULATE_VERSION "") + + + + +set(CMAKE_AR "/usr/bin/ar") +set(CMAKE_CXX_COMPILER_AR "/usr/bin/gcc-ar-13") +set(CMAKE_RANLIB "/usr/bin/ranlib") +set(CMAKE_CXX_COMPILER_RANLIB "/usr/bin/gcc-ranlib-13") +set(CMAKE_LINKER "/usr/bin/ld") +set(CMAKE_LINKER_LINK "") +set(CMAKE_LINKER_LLD "") +set(CMAKE_CXX_COMPILER_LINKER "/usr/bin/ld") +set(CMAKE_CXX_COMPILER_LINKER_ID "GNU") +set(CMAKE_CXX_COMPILER_LINKER_VERSION 2.42) +set(CMAKE_CXX_COMPILER_LINKER_FRONTEND_VARIANT GNU) +set(CMAKE_MT "") +set(CMAKE_TAPI "CMAKE_TAPI-NOTFOUND") +set(CMAKE_COMPILER_IS_GNUCXX 1) +set(CMAKE_CXX_COMPILER_LOADED 1) +set(CMAKE_CXX_COMPILER_WORKS TRUE) +set(CMAKE_CXX_ABI_COMPILED TRUE) + +set(CMAKE_CXX_COMPILER_ENV_VAR "CXX") + +set(CMAKE_CXX_COMPILER_ID_RUN 1) +set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;mpp;CPP;ixx;cppm;ccm;cxxm;c++m) +set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) + +foreach (lang IN ITEMS C OBJC OBJCXX) + if (CMAKE_${lang}_COMPILER_ID_RUN) + foreach(extension IN LISTS CMAKE_${lang}_SOURCE_FILE_EXTENSIONS) + list(REMOVE_ITEM CMAKE_CXX_SOURCE_FILE_EXTENSIONS ${extension}) + endforeach() + endif() +endforeach() + +set(CMAKE_CXX_LINKER_PREFERENCE 30) +set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1) +set(CMAKE_CXX_LINKER_DEPFILE_SUPPORTED ) + +# Save compiler ABI information. +set(CMAKE_CXX_SIZEOF_DATA_PTR "8") +set(CMAKE_CXX_COMPILER_ABI "ELF") +set(CMAKE_CXX_BYTE_ORDER "LITTLE_ENDIAN") +set(CMAKE_CXX_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") + +if(CMAKE_CXX_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_CXX_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}") +endif() + +if(CMAKE_CXX_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") +endif() + +set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "") +if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + + +set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "/usr/include/c++/13;/usr/include/x86_64-linux-gnu/c++/13;/usr/include/c++/13/backward;/usr/lib/gcc/x86_64-linux-gnu/13/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include") +set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "stdc++;m;gcc_s;gcc;c;gcc_s;gcc") +set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/13;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib") +set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") +set(CMAKE_CXX_COMPILER_CLANG_RESOURCE_DIR "") + +set(CMAKE_CXX_COMPILER_IMPORT_STD "") +### Imported target for C++23 standard library +set(CMAKE_CXX23_COMPILER_IMPORT_STD_NOT_FOUND_MESSAGE "Unsupported generator: Unix Makefiles") + + + diff --git a/build-baseline/CMakeFiles/3.31.6/CMakeDetermineCompilerABI_C.bin b/build-baseline/CMakeFiles/3.31.6/CMakeDetermineCompilerABI_C.bin new file mode 100755 index 0000000000000000000000000000000000000000..abaa3e37354a9bfc765d68765e83b8ed69650879 GIT binary patch literal 15968 zcmeHOYit}>6~4Q9x#ZzZnvjr`W=k7L08i}1F=>#=I_q_2k>iBKp@I-5v!1a%VjpI9 zwzUhCpzx>(sgkN{DNrd?6(I2^l@R$+QML*y0s$gFfFOhvN-G5sT2~ZgAkA{l%=tFs zVcnv_4;* zZ&kOb#UwBExj>%@fV4rml$?ug!Y?3Xzja(`fwu%SMF2B_pX*w0sq z3?BHT1OS3>#!E}Y2o8%MFzm;y5-aAbzLQelseH?+$1MM7$4>pPv`ezaHQ; zAC!3WorjdMir+aJB>L@zp+GNM%&Yq5*Zmn9;w)vsCUupX1F|~K-u%c$_ z%t;zm@^~PlJ=U!jJ=>42pMLDCkDMt#|3&Mr?8!4<>wZdaV;k-_`>+icZVy9*Wv+8f zwh8j_8LG+HCcJ3>tmG5(e6ZiD7P>5P=@z^(4_}^#znS>AwP;5f24!@_sCuUB870#x z6EiYt8lz6xEIRkviq)Lo9<_Hczb9*K)3#|ln)U77%E%AzGc4P+$DFEXyTkjk#Y)*8 zHVZ|Y+8QfW%F?Rqb7e^%K2GuIke-c+2#Yy^Be> zvZc{zT(Rim*+s9?U3cOr`8MOT{~zulC07oU-}I-h>eIE$Kg?a@Zl26t)xWHtTJwt) zl%DS{Otn8^3oFxh@Ss`*_j&6+<(TDo@h0*Cg`QS+>D=(xlgh%*pp zAkILXfj9$k2I36F8Hh6wXCTf%oPmEo1N{E$wMu?yVE?Wvy`QU$8rFp89_ie9G;BYV z-#<{;)So$p_m@@%8x(!0AOgZbg%!JLsB>d*HLk%g}} z3(gT*hrkYr4GZ4O@80-b*6EiTjbnso3GXL7N2n7%I@4&JCFH{IRJkPXJ*X0ssl?Z7eec{>~QFY({V-9goE`rk~vPpn7{tXTK{_NDi<9ap>8-}%n%clfU_ z+5aQ-pMo9Lxp12v{l857Cz!~sNPRw;UA{Q!Qe-CL5@#UJK%9X%191l848$3TGZ1GW z&On@j|BVb_y&~2pV(p=S(?eZchHlFG#pNPDA?qC9A~M!NZV(x_KI=usdPu%s;sX6& zt~V+ypOZz5SerP`H+)orHLXfr68)P3THPmNB$mo|e|K9_w5C0Ea#JbeI z+3c?L=EH?r*{h|ywrkt9&W@g%FK)YUTesHPt#xe?#cPG+akWsr+=$w6z7wSRk|ZQ8 z2E1;#l|7%2q*|dSWIT$wN(+BB!fzKI;~VyQswC7pmC6JR#yzjHPSDc=jMqS`)F-LJ zadEwX=W&=&H!F;P@ZY3LtNuUb+ox0}9av&~{Zja2!V9QZgg-6>tp@PReEE5mvVs?yTbPo_=m(k+Wyyxm!@Ir<2mA2Cf6#A zdnmuhJVl0+T*m4r#HVQdtjoYMz^@R$ipEJs#-abLiBuQG9^(yOzZLr}@_p(*Ln7sK z#B+b5_Ae5jhI0tplC9U--%k9hBz;Rpt_yW&#Pzzg3aylYP&^tr#~RAsPi|j2gBav-~fr zqT_i*dybZlmVyo(?Azx*bu?&mK>vq^`u63sMAI${Bd3d2??0%Fy@UJr^bH#O2L=x1 zhK=FAJ@l}W3?q9NGT5TUz#sEWApf3+OEmuF>AnecpWZ<_W{uxmKt;h+3AKH5|;*WU)5cfB* zkB;B-;*b2Rv{(v0AR<6$i0b=P<1WJgv={*SU01k7dk zh3AmC|G>Nz`yr$Dkb%D^-}aC{=E<`iL{foWAl;C`zeEZidx+nhcWQx0oez!*kAE)k z!+HD$aclyA%tPy2*;=WL|9RsB{=ivMh5efjoq-SHpau9rzD^b95Fhiil=w&O<#6Dx z77)Rlm^XR&OB$Oz{KJT`(=?(=MjHH*7| UmgmB){a5l23zcONhlr^D3BLOi8~^|S literal 0 HcmV?d00001 diff --git a/build-baseline/CMakeFiles/3.31.6/CMakeDetermineCompilerABI_CXX.bin b/build-baseline/CMakeFiles/3.31.6/CMakeDetermineCompilerABI_CXX.bin new file mode 100755 index 0000000000000000000000000000000000000000..631c9ac47e35575c396fa010d9b7b9df90165656 GIT binary patch literal 15992 zcmeHOYit}>6~4Q9xipD4Y23I;X_nHU1nP-jF-{<49ebT!9Q9#VzWN{IAV*ea+MNFXXv5yYQBi4;U2u4s`%LzZ*qo^L%K zty^9{keIvL`R@77IrrW<_s;H}nR`E*92$&9A_{4l`ha375z|aU6us}23_(Kmsx@?c zySiJgBzd{VX?;QiX?403U5rh_FC%2XR?alQyERQU=!6zBvfol^ZiUtWm7E9rc`A{? z1D}-&fZ*%(#ihmoj*1`9@5iy3Ytw#ndlq9{;<8N;ek`(|GPFH)hfac3sSk*Fa!mN! zEAb3syA%Tq`b~;o5C_B$$aQc!e8tWFJM|qDzq4_#7!}0(HLZZC??dG0#YOaQ1?c8O zQr}Yj5R>==CA?}!&dKz2@5p7_a!#Q#-8S9Z)7H~%l#52ES2edQPG25V`-hJxDyGVu zgi%FLY8mCRZiDFA{z~?ZvH1M)=Z;@`;x6^TjSFk8x7^P*+-~+^8%|svh6u}?=Q`O& z$K!L9ld(^w;(c^aMM&oMV!Tu~Ik$1tdHgZ=gRgv@!W^YvJe_bIn)mVYlL%FaVFbbm zgb@fM5Jn)3Kp25A0{_Pm_)GIWe@mUZ)|5KE;@3NrN`0Z~Mr*%Fo%(UpMK3C~olg>7 z+xiq8o3|ts+t;>UAZfgL%YgFajz6VmUpk(e{axzR@8=GVCOfJfKS`b0^HVCI)>0QfF3tm0{Ps+d@@;nDbQiZMDnITTZg!MM1K6Jo}v)hV8dfvvaBE z|GYQ#{QR<1z*Z@ssdibn3;x{RlY3aLD(^XxI<+Ut+0^V6cXjIYo|PnA z-CnEJu4d`*!ivAsU3cUd`PS=a|35rLO3oZ1zuC`ROU+g;znHwq%{-mFmilJuOv}q_ zDLg-19&5f(jU;ahyMa&hH>^3oJlcFdsQGOpP0JqxCEYxBk*oIlsNO4Fb(q2kgb@fM z5Jn)3Kp25A0$~Kg2!s&`BM?R)jKDu10e=7WW+^>9II_D;@8^o+W_HRg9c}MD=C>bC zj|^sZyECR;D%#njrSv{?|8O!rFx;m+JI_BeH++=znpUMQiT-VxR*wnZF4!vAA_&0R$f~S=TqTNjsR-?;3QvnY zy@c}a5gB%G)O33(P9AkjWWAW2UT`nyJx{td_0Dfj&gX{6XqOcK-vg`<{|`&Vy43ys z{k!Aaj$|qYw-WE@GP;cRww{V7c0SVCZM1hA9ot3mW>xaITCQHL1#LLq5z>4~0umPk zUN_vxp8F%J)~YEPk7BOk!k-K9UBY90!#+)!h-y`_gk~`Ad6jj9o)%!dYOPYArVQ7M z>jgZI!-%>=Vf=&tE@c|E|3{vEOvU5c665t{;S<7R+`TUR3E>4)D>XQxV(O$2v`WBB zOT}%gXTM$@e1{nNpiw)!JbP+gU_8B_c%|0W*Xg5}5zqckh3gEwO?;#E<&P2{hmjAz z@9`UzO87|1K0$m;ZLIefwBIIveY9EO_XzycVjnE$Ij?+JE#Qm9uZwO}828Zpl6k6G z#Wf?Bv3iC07>%FS1S~c3ev$PwP7*Q>y=P6Nx+?YlRC8)2d9Xv0{EIXS;URXm4!6EBYPNDwQmHC|GbyGitnK z(Rt#V46$=`J$uKVW^_?tk#XeyYXE*`>aHX=7|^N|_%W>gaI_<3-c=ERxwy z%`QA)G&9Zw)thxJ+F?NYU7nXupL1L{XZuWgJqwBoHE!@w-vRIGq)D3y20k*}cOczQ zH0{PPlPS@r1`a86|Io<3z9DmDaPV+))Ew>GM-Mg0FtEoVfvpU0wSB?PTCSzM&`~KY z=)DXiEZ*2)X3Ir$(kf(m(?fcMtg=qQtd#An;!`5~Ot~z+vde-tO7QbmJ|o^i(QsSD z;=LI4X7dgVuajs$Qh6rtS{XvOq;V2Cr$E~=rj$`Ay0$S$fBN64S&l8`Z<1hz}%!S?_U&X~z@XI0sgodc}yl|oa&WZt$-+}p4u>PNs zl1~x!SL50m_%$uokLZ68zoHD!A#q=V`7HKH2JImOUm@RSpFif$^KC>@f}NHYWboHX z!DA2g*XNyv_Nem7QR4B>34Z9u?-0i(@W(u~x`VBiN_fYG1N?#Wr1JaM9on@I>Ol$c zgM5oJ%%OhF+hXD$w3pL?yIMvBb7EfS;V)sV^YHg0`o3;NnS>PhJ!u$U$9K{f?ZNLK l--n^?l&z<$d;>)(5hxt>YAw%^8~bnLKNd=>0}cUE{R8m(8!Z3; literal 0 HcmV?d00001 diff --git a/build-baseline/CMakeFiles/3.31.6/CMakeDetermineCompilerABI_Fortran.bin b/build-baseline/CMakeFiles/3.31.6/CMakeDetermineCompilerABI_Fortran.bin new file mode 100755 index 0000000000000000000000000000000000000000..5b0a4ed39ccffe11495184de525e2f73ddb891b4 GIT binary patch literal 16312 zcmeHOeQX?85r5~{iQ6Xer6klOkZem^C4krQM~ssy0x3}*-*uA}{DiRS)3&fWMN>fpV#7NQJP6c2w(Jq$2 zdA0bASO{{p#FRd!7-$u}URBC#310vl{pzt$hJRYYf;qPkIr>$ixkXCDTu?vIuLe~l z2YENOgE{NHcp5qbY4YrG7Y%@z`~5ICyBnlh?A~0;k5FEY5@$aY(Jx1SIr3w!kv((H zC*}l?cIrovYoJ5Y|5kcOnV8NW@-2#4? zm;aRbYwo9bmA;25$|rOBIz?kDIn>tLm`XIHl9|F-!&rM;LtCq!&+5&x3D_=-fn#dh zjzLkiUrZy${#afP2c{MES1x_?gO=Ere}43pJ&mut_}kd9Ir{|Hfj(%1g!VinP{#6A zaG;Iq|3gqx81mEht7+tw2>rA&${xV3E`wvAv@-Y?D&Pgc%hhvt1^kH$_zM;ApH;wr zR{{Sk;Mc)%37O_dI-4=`uI0F~S=Vly~y>)F{q(BHAc#Gio(jLL{SS3wCs)pFco&QTYIL5JgLJsi(``!N`{ z)nYASg_X%GaFn-zjD+>P4IJ%}M&JDo+`+5F7Si*5lkZpimysRa7a5NcUK>+-##w%S zi^B05qN*iu#)s1_P~tN_9IsQRIUkPKCDR2TekFsze?mC^EcvhNBR*XIE|JesAC7Hh zn)c!J6DL(K`*7|vDo*)uNO(wL2Eq)483;2FW+2Q!m;o;X|Eyd6o-ux|);L&mvQY@* zz_eRcJY|d@uRSJhiW?k&i#ND%u3Hm>63U~fn>|wmy5Z|6`}twLZq38e9`KET7>8?`k!`%-u7Iw+qpPl6Q9M((Wg-#vCY#QSiA`fmd z4(}=&hZlbr0O-?-A@D!AeA$853M&H|12iY9mnqNb$Q#qoq04+tYXkQ6s;2SxBJQH+ z(Cdwb#yI%BcHkYiPWnEN=*;4aMQA|H*(KPi0~bCl7Ec@yfGq{(i34*W@0X?XP{R4D zaae-J#EF?}rK=R5{e)C4`ID^XRn#5>2cPkADc0N{j00cFN5%Q&d`-`SJ2YX*#C)7P z=d~F2E)XYA9+TM~KNp?2{{v&9FlQVboIBVJ#ovR;?W!sLvW}OY$JzGG2Eb-+hYlSD zNt`?;yz9ohQcw|6n1L_@VFtnsgc%4k5N06EK$w9r17QaKcQb(RYy8w$$UBXxY}`sU z=HXS9-55_>_t*_BdP`GdUp7%l+4;uKK7e}Ei?GgYI+sk@PRG_>y=UWk(YvE(=cYWo ze98`+iJa@)*?u>uv@YAVr_O1z{CS-4IGhG3vR-9M)+sIqkk_J6TqwI zip4{~mjmAp{6pYB0)EdwipArI!+{jJuU|yQqLEdL7u8NerHJF&foZ7cMl|SJBwsOI z55-nE)&ibGd}*|2Y5mQ0SM90YFSe|_>2odDUxzUI-vvhw?ELRluud0_Tc8~oY<$Pk z=p$8~OBOCjMj*6|`6$5Of2&xG0r&LZL~Tf62Eq)483;2FW+2Q!n1L_@VFtns{6A-a z*Q@dRG=AQ}HE&2PFQfv?xQ5QJUrF*}1$ztT@P!vrJHBB9`jlecdgE0j^RvfFl1FL% z9Ivlt{o5CdSu~lV#c;efZKhf|@|v`lNzZHDZl?C}nz(w3vw}D?aubuZK8>F~`Gqe& zcOmf_w`-Irb`!w(6g7m~JxzAJ){Wz@CY zGwI(YnfpQ2|JN9=^A1+nCZAq~=pp_U;={!6CH@HUp#Mk7yiRgkXXhqu?ch)$;}*0g zcQfZ(2u+%hid)p<29E4BFuL69LUWN}xstIDE_5cpu) zzt9hHLF+z2l+*%e#QAz7SoA_60#`>grVtvgVo>5M1YZwIE5tr1U_E^OGX5=TzuddN z7=IcH<=TG?aI9y7+A04t0PHt#V0)Iwpa4Xdmv|M*5$IG-Lsb2TfxJ?F{s6iNXmi)1 zRVkHg&x|y=+FN(e9`8dTBCheSOU7|UK}38~1jpqQfNKJ-vKU(`{v_a6Lw~2}`?`_T zc>mH$O{KIB?W>~R{fkW+Wj!p-^IIy^lLmYle1xWKIiLF~*gpn%v`qVd2za^m?56>j ze+AHupcD*`WRa(en$oSF=>Bk zJ0GlI|5OG1S&7$)e^Dnm{PT!c!LL)`Iu*CZ9k)r(!qRkWC~3OZhyWn(7KVrQxR_sn zZ@OtSj!W=yS$iUDj-;|fR?1AcStoB=g)tF_KN?f;FJeMpU)}z2HA+7{*JzGvwKGu?k6x| z2Zz~hm7V?F{s8zEapZfg2)9O|XZ4BZ^#N6x=}J zbqBUTs0|f3QiRa+d(*Bp1l)BLALUXq1DiQ=LeFGfTOY|3^qiB;*^ax{2MraHu#qU4 zAPD{tZ@>#dnvYufQK2XHW*~&(uA?;f+D;z+F)tBJ&^dO>LI*14Qm)WtGj%BHBUun# zdkoHUMCndeW;FOvANRddvA(63$EE z774$Nit1@Tz?|o$q?Wc^M*dkia4yLH?c~o~1D&6E{>NAw6#V|Tkw0^MPv9s1Jz)&z z6Mlc5&oI~6ka*DltAM`)b4hML&$pR#e42K8`}Me53ko>bW`CZKGuJS=K-fksa{qZ= zoCFNJ%>F#TXU_9^Fp)&nu_(R)C7dg>KhKYua~y6z+cAFt{BiEhGS9y~PLVjr+Wm`{@-$7g?T*W={BmF#w7ARy+GN)+gi&mckn9{`3q;rhMbJ^KCQ=Podj z6#V|51k~@ZkstFM`7tB47v|}J|0EeO=k~Hc%gm1i{HMsD`Qw~es(|BjeZL6!^YbTj zelBJEVE=zb{$3c3EQuc?ky$YQaZq6X*#D5GESa||(K`p@zXlq=|Fot|nLp!sssiVY z;XgtF*TB+k!+Rd!eWpQsmYL6hFFd_?{`~wg+5jLB+bL;YX8b%TaO`n>o}cr+VT}?) z!`iEl^Y~Nn#s0HDKaWo~0tl2-%sX>j<{yH_?=NCxx?XXPL#P*@HWTbmY4mWkMe=hVJ4&O@F{)6bfcQIv|6y=@`2K;>24 & 0x00FF) +# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 +# define COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__WATCOMC__) +# define COMPILER_ID "OpenWatcom" + /* __WATCOMC__ = VVRP + 1100 */ +# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__SUNPRO_C) +# define COMPILER_ID "SunPro" +# if __SUNPRO_C >= 0x5100 + /* __SUNPRO_C = 0xVRRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) +# else + /* __SUNPRO_CC = 0xVRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) +# endif + +#elif defined(__HP_cc) +# define COMPILER_ID "HP" + /* __HP_cc = VVRRPP */ +# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000) +# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__HP_cc % 100) + +#elif defined(__DECC) +# define COMPILER_ID "Compaq" + /* __DECC_VER = VVRRTPPPP */ +# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000) +# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100) +# define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000) + +#elif defined(__IBMC__) && defined(__COMPILER_VER__) +# define COMPILER_ID "zOS" + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) + +#elif defined(__open_xl__) && defined(__clang__) +# define COMPILER_ID "IBMClang" +# define COMPILER_VERSION_MAJOR DEC(__open_xl_version__) +# define COMPILER_VERSION_MINOR DEC(__open_xl_release__) +# define COMPILER_VERSION_PATCH DEC(__open_xl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__open_xl_ptf_fix_level__) + + +#elif defined(__ibmxl__) && defined(__clang__) +# define COMPILER_ID "XLClang" +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) + + +#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800 +# define COMPILER_ID "XL" + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) + +#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800 +# define COMPILER_ID "VisualAge" + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) + +#elif defined(__NVCOMPILER) +# define COMPILER_ID "NVHPC" +# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__) +# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__) +# if defined(__NVCOMPILER_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__) +# endif + +#elif defined(__PGI) +# define COMPILER_ID "PGI" +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(__clang__) && defined(__cray__) +# define COMPILER_ID "CrayClang" +# define COMPILER_VERSION_MAJOR DEC(__cray_major__) +# define COMPILER_VERSION_MINOR DEC(__cray_minor__) +# define COMPILER_VERSION_PATCH DEC(__cray_patchlevel__) +# define COMPILER_VERSION_INTERNAL_STR __clang_version__ + + +#elif defined(_CRAYC) +# define COMPILER_ID "Cray" +# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__CLANG_FUJITSU) +# define COMPILER_ID "FujitsuClang" +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# define COMPILER_VERSION_INTERNAL_STR __clang_version__ + + +#elif defined(__FUJITSU) +# define COMPILER_ID "Fujitsu" +# if defined(__FCC_version__) +# define COMPILER_VERSION __FCC_version__ +# elif defined(__FCC_major__) +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# endif +# if defined(__fcc_version) +# define COMPILER_VERSION_INTERNAL DEC(__fcc_version) +# elif defined(__FCC_VERSION) +# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION) +# endif + + +#elif defined(__ghs__) +# define COMPILER_ID "GHS" +/* __GHS_VERSION_NUMBER = VVVVRP */ +# ifdef __GHS_VERSION_NUMBER +# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) +# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) +# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) +# endif + +#elif defined(__TASKING__) +# define COMPILER_ID "Tasking" + # define COMPILER_VERSION_MAJOR DEC(__VERSION__/1000) + # define COMPILER_VERSION_MINOR DEC(__VERSION__ % 100) +# define COMPILER_VERSION_INTERNAL DEC(__VERSION__) + +#elif defined(__ORANGEC__) +# define COMPILER_ID "OrangeC" +# define COMPILER_VERSION_MAJOR DEC(__ORANGEC_MAJOR__) +# define COMPILER_VERSION_MINOR DEC(__ORANGEC_MINOR__) +# define COMPILER_VERSION_PATCH DEC(__ORANGEC_PATCHLEVEL__) + +#elif defined(__TINYC__) +# define COMPILER_ID "TinyCC" + +#elif defined(__BCC__) +# define COMPILER_ID "Bruce" + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#elif defined(__ARMCC_VERSION) && !defined(__clang__) +# define COMPILER_ID "ARMCC" +#if __ARMCC_VERSION >= 1000000 + /* __ARMCC_VERSION = VRRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#else + /* __ARMCC_VERSION = VRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#endif + + +#elif defined(__clang__) && defined(__apple_build_version__) +# define COMPILER_ID "AppleClang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) + +#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) +# define COMPILER_ID "ARMClang" + # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION/100 % 100) +# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) + +#elif defined(__clang__) && defined(__ti__) +# define COMPILER_ID "TIClang" + # define COMPILER_VERSION_MAJOR DEC(__ti_major__) + # define COMPILER_VERSION_MINOR DEC(__ti_minor__) + # define COMPILER_VERSION_PATCH DEC(__ti_patchlevel__) +# define COMPILER_VERSION_INTERNAL DEC(__ti_version__) + +#elif defined(__clang__) +# define COMPILER_ID "Clang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__LCC__) && (defined(__GNUC__) || defined(__GNUG__) || defined(__MCST__)) +# define COMPILER_ID "LCC" +# define COMPILER_VERSION_MAJOR DEC(__LCC__ / 100) +# define COMPILER_VERSION_MINOR DEC(__LCC__ % 100) +# if defined(__LCC_MINOR__) +# define COMPILER_VERSION_PATCH DEC(__LCC_MINOR__) +# endif +# if defined(__GNUC__) && defined(__GNUC_MINOR__) +# define SIMULATE_ID "GNU" +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +# if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif +# endif + +#elif defined(__GNUC__) +# define COMPILER_ID "GNU" +# define COMPILER_VERSION_MAJOR DEC(__GNUC__) +# if defined(__GNUC_MINOR__) +# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +#elif defined(_ADI_COMPILER) +# define COMPILER_ID "ADSP" +#if defined(__VERSIONNUM__) + /* __VERSIONNUM__ = 0xVVRRPPTT */ +# define COMPILER_VERSION_MAJOR DEC(__VERSIONNUM__ >> 24 & 0xFF) +# define COMPILER_VERSION_MINOR DEC(__VERSIONNUM__ >> 16 & 0xFF) +# define COMPILER_VERSION_PATCH DEC(__VERSIONNUM__ >> 8 & 0xFF) +# define COMPILER_VERSION_TWEAK DEC(__VERSIONNUM__ & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" +# if defined(__VER__) && defined(__ICCARM__) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) +# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) +# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__)) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) +# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) +# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# endif + +#elif defined(__SDCC_VERSION_MAJOR) || defined(SDCC) +# define COMPILER_ID "SDCC" +# if defined(__SDCC_VERSION_MAJOR) +# define COMPILER_VERSION_MAJOR DEC(__SDCC_VERSION_MAJOR) +# define COMPILER_VERSION_MINOR DEC(__SDCC_VERSION_MINOR) +# define COMPILER_VERSION_PATCH DEC(__SDCC_VERSION_PATCH) +# else + /* SDCC = VRP */ +# define COMPILER_VERSION_MAJOR DEC(SDCC/100) +# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10) +# define COMPILER_VERSION_PATCH DEC(SDCC % 10) +# endif + + +/* These compilers are either not known or too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#ifdef __QNXNTO__ +char const* qnxnto = "INFO" ":" "qnxnto[]"; +#endif + +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) +char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; +#endif + +#define STRINGIFY_HELPER(X) #X +#define STRINGIFY(X) STRINGIFY_HELPER(X) + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__MSYS__) +# define PLATFORM_ID "MSYS" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#elif defined(__WATCOMC__) +# if defined(__LINUX__) +# define PLATFORM_ID "Linux" + +# elif defined(__DOS__) +# define PLATFORM_ID "DOS" + +# elif defined(__OS2__) +# define PLATFORM_ID "OS2" + +# elif defined(__WINDOWS__) +# define PLATFORM_ID "Windows3x" + +# elif defined(__VXWORKS__) +# define PLATFORM_ID "VxWorks" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#elif defined(__INTEGRITY) +# if defined(INT_178B) +# define PLATFORM_ID "Integrity178" + +# else /* regular Integrity */ +# define PLATFORM_ID "Integrity" +# endif + +# elif defined(_ADI_COMPILER) +# define PLATFORM_ID "ADSP" + +#else /* unknown platform */ +# define PLATFORM_ID + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_ARM64EC) +# define ARCHITECTURE_ID "ARM64EC" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM64) +# define ARCHITECTURE_ID "ARM64" + +# elif defined(_M_ARM) +# if _M_ARM == 4 +# define ARCHITECTURE_ID "ARMV4I" +# elif _M_ARM == 5 +# define ARCHITECTURE_ID "ARMV5I" +# else +# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) +# endif + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__WATCOMC__) +# if defined(_M_I86) +# define ARCHITECTURE_ID "I86" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# if defined(__ICCARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__ICCRX__) +# define ARCHITECTURE_ID "RX" + +# elif defined(__ICCRH850__) +# define ARCHITECTURE_ID "RH850" + +# elif defined(__ICCRL78__) +# define ARCHITECTURE_ID "RL78" + +# elif defined(__ICCRISCV__) +# define ARCHITECTURE_ID "RISCV" + +# elif defined(__ICCAVR__) +# define ARCHITECTURE_ID "AVR" + +# elif defined(__ICC430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__ICCV850__) +# define ARCHITECTURE_ID "V850" + +# elif defined(__ICC8051__) +# define ARCHITECTURE_ID "8051" + +# elif defined(__ICCSTM8__) +# define ARCHITECTURE_ID "STM8" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__ghs__) +# if defined(__PPC64__) +# define ARCHITECTURE_ID "PPC64" + +# elif defined(__ppc__) +# define ARCHITECTURE_ID "PPC" + +# elif defined(__ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__x86_64__) +# define ARCHITECTURE_ID "x64" + +# elif defined(__i386__) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__clang__) && defined(__ti__) +# if defined(__ARM_ARCH) +# define ARCHITECTURE_ID "ARM" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__TI_COMPILER_VERSION__) +# if defined(__TI_ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__MSP430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__TMS320C28XX__) +# define ARCHITECTURE_ID "TMS320C28x" + +# elif defined(__TMS320C6X__) || defined(_TMS320C6X) +# define ARCHITECTURE_ID "TMS320C6x" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +# elif defined(__ADSPSHARC__) +# define ARCHITECTURE_ID "SHARC" + +# elif defined(__ADSPBLACKFIN__) +# define ARCHITECTURE_ID "Blackfin" + +#elif defined(__TASKING__) + +# if defined(__CTC__) || defined(__CPTC__) +# define ARCHITECTURE_ID "TriCore" + +# elif defined(__CMCS__) +# define ARCHITECTURE_ID "MCS" + +# elif defined(__CARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__CARC__) +# define ARCHITECTURE_ID "ARC" + +# elif defined(__C51__) +# define ARCHITECTURE_ID "8051" + +# elif defined(__CPCP__) +# define ARCHITECTURE_ID "PCP" + +# else +# define ARCHITECTURE_ID "" +# endif + +#else +# define ARCHITECTURE_ID +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number. */ +#ifdef COMPILER_VERSION +char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]"; + +/* Construct a string literal encoding the version number components. */ +#elif defined(COMPILER_VERSION_MAJOR) +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the internal version number. */ +#ifdef COMPILER_VERSION_INTERNAL +char const info_version_internal[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', + 'i','n','t','e','r','n','a','l','[', + COMPILER_VERSION_INTERNAL,']','\0'}; +#elif defined(COMPILER_VERSION_INTERNAL_STR) +char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]"; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + +#define C_STD_99 199901L +#define C_STD_11 201112L +#define C_STD_17 201710L +#define C_STD_23 202311L + +#ifdef __STDC_VERSION__ +# define C_STD __STDC_VERSION__ +#endif + +#if !defined(__STDC__) && !defined(__clang__) +# if defined(_MSC_VER) || defined(__ibmxl__) || defined(__IBMC__) +# define C_VERSION "90" +# else +# define C_VERSION +# endif +#elif C_STD > C_STD_17 +# define C_VERSION "23" +#elif C_STD > C_STD_11 +# define C_VERSION "17" +#elif C_STD > C_STD_99 +# define C_VERSION "11" +#elif C_STD >= C_STD_99 +# define C_VERSION "99" +#else +# define C_VERSION "90" +#endif +const char* info_language_standard_default = + "INFO" ":" "standard_default[" C_VERSION "]"; + +const char* info_language_extensions_default = "INFO" ":" "extensions_default[" +#if (defined(__clang__) || defined(__GNUC__) || defined(__xlC__) || \ + defined(__TI_COMPILER_VERSION__)) && \ + !defined(__STRICT_ANSI__) + "ON" +#else + "OFF" +#endif +"]"; + +/*--------------------------------------------------------------------------*/ + +#ifdef ID_VOID_MAIN +void main() {} +#else +# if defined(__CLASSIC_C__) +int main(argc, argv) int argc; char *argv[]; +# else +int main(int argc, char* argv[]) +# endif +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; + require += info_arch[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef COMPILER_VERSION_INTERNAL + require += info_version_internal[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) + require += info_cray[argc]; +#endif + require += info_language_standard_default[argc]; + require += info_language_extensions_default[argc]; + (void)argv; + return require; +} +#endif diff --git a/build-baseline/CMakeFiles/3.31.6/CompilerIdC/a.out b/build-baseline/CMakeFiles/3.31.6/CompilerIdC/a.out new file mode 100755 index 0000000000000000000000000000000000000000..f1ada888b26eb7e10c09f9d3c051a0bbc662377d GIT binary patch literal 16088 zcmeHOZ)_Y#6`#8#jYE^zaU1L=r8!E15?XI;$8p`DB$wFdtdX6B!~vl+tk%A@@5KEv zcYDOHpai9qm^4xg2>Jn}szOx!i3AcVA|HyQR)Lm+8VRYPpHfIskV5MUs7#4+yf^cH z>+^CB672^h_F3LH@Av-9?3>xW+1;5hrUv`tv6uoaQM(jN$tHs&Me)RaQXrO8J!%yl zKcMbZw~)M4V@97ejI@R>#TW7h!Iuzczg8~P;ddICYA}QrGH1WVD8mgR0#|Y#?6-^+ zB8T~FQUN&hL465!CQ9gIz#kPq@LE4^%50mlpWV5T+me@q!r{lFJ_XCzQ+F5=J|p#k zBcGfT{_l}|hIzY$0T26S#4pVI#1EY7U^@J|pZ;&^J1BlHC3F}S=Jy&{fup{Ulb>|0 zSlpbUn-58Si}gd3+Z73MXOU+% z`;RCJGsBpqQN>Rf8Sz+myXe_|>#nos?s#qb)mKY@I)3u4mP;$IKYxX7xZUi-HcT83 zLxg26bDeBs^6@1q$=D`-(fe&)1B)Ekuepw{m#{<~+*t%KEP~%g_}z8lD953Ujyh%E zE%{E~%@zn5ophbCY{AWCAM_NfIltX%-{8RBUZ>OQw6+K3ZC%P47#?!cUdbEJmVK`@ zJk*;j7QA71BEqv|G{@a*^B4nNt-&$2SvOmQ^SA}g)!_Pm3q{1E3`7}-G7x1T%0QHXC<9Rj{wFf< z*T%cvu}@xWuum`h{Z^&yFVFb#>dW@Y=Nq2W?W=Bois0&|@6xexLsGGQbQ8W)s$NmO+_>Qc8$KtT>>t+6FWw}LH+Fi z=i{X0!V&VD{=zkTx^nrKsq5TK`}Eou=}G-`>YDw89ecU)8P)jgOe}Ss@NoT}^3zW@%Fp<>7kP6y2|fpH5vrM%~6u)qNWDA~!XnC<9Rjq6|bCh%yjmAj&|L zfhYq}2BHi^8TfzB0Du3w84c|3Kd@u8n4iezywXwnDtT<7^#Z-~Ij>aC77It)HFa#W zOrbp}v>#L2VW{ygkz7rPGZYfP4{Kni$&Oh35pJ=>E-z#t} z&F^zJ>GCa?Ou2PN49O` z&xqQe>%9a!28lSPPyausxZh_WwYuq%c<-uP;!je|3`7)VAj&|LfhYq}2BHi^8Hh3v zWgyBxl!5m)16Z$!^@&&ms2^Uas+Fit)-SFS`FFC;@eYx(4syN7c!XIeGS)-#a}N{r zf4@;JvixINOo%mt8GdLZ;&q8kmqhuXYLdLC_tAyZBhVX5I<2r!-02N}YRrMqd!tGVt?d&+EncmA0p= zA~Y^8YPU7PdV55PR6pU()bB|dSNdHMDSsq!n#3OQ&q*ANE5x}Vakj|)Rlge|<*zvoombfY z6^Xw&6#s3)69`(vd0)fbH8P6#5Z)Z8yJ_gU=pdZ)mP{DSPI1_!@fMXx8UW{|4v&`n z4y#Bj@ZFKD7p~9D~`B1C+!zYWyh^dDt^b9 z^L#IDwb!@codQ|MEtT9U$1C`yDK%Dd^PZEg$*CE=$F-AA`13NIG=*AYk}q>`nGpEZo!) zq=dI}=w2~RmG{I(;McxNS>>s`?~V}nONM7q$`)w5$Aq#9Mc=c=3l(dkRGjci{!|S# zQpwU@oorg5J$nb*cr0r3j9bnqD?L@9Dh&5aMuT=}GZ7rpmAstG4$9(@q^yaYIauRG zD)^LOW$|z%%cAZ~%ge|B%%sU5lJPeq(RiRt!QFgzl$yh1!J@8E7IjUYMz&mW?~d`j zjBW|R+x_r9JIu>a3)|Mxhe+VL6J7S27TZrI>R^5cxtj{L{^5OP8(}CM_h-QTJ6!9J zc>s631zO7*?1#iW82d28_K?B=?f=|3L-Oz=ZLevdFVfj^!nXSTAnQb~QBKfoV+j#Rb&fkV6T z>6v%cCHMipK?TN8Kjwiw;vcq`(}BBMLI7i89^mkoGzK{QYdOYFU_^zC1jK!iuVa2r vKznfiTR|AwPQ`$d{1KH1`=5>24 & 0x00FF) +# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 +# define COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__WATCOMC__) +# define COMPILER_ID "OpenWatcom" + /* __WATCOMC__ = VVRP + 1100 */ +# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__SUNPRO_CC) +# define COMPILER_ID "SunPro" +# if __SUNPRO_CC >= 0x5100 + /* __SUNPRO_CC = 0xVRRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# else + /* __SUNPRO_CC = 0xVRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# endif + +#elif defined(__HP_aCC) +# define COMPILER_ID "HP" + /* __HP_aCC = VVRRPP */ +# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000) +# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100) + +#elif defined(__DECCXX) +# define COMPILER_ID "Compaq" + /* __DECCXX_VER = VVRRTPPPP */ +# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000) +# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100) +# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000) + +#elif defined(__IBMCPP__) && defined(__COMPILER_VER__) +# define COMPILER_ID "zOS" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__open_xl__) && defined(__clang__) +# define COMPILER_ID "IBMClang" +# define COMPILER_VERSION_MAJOR DEC(__open_xl_version__) +# define COMPILER_VERSION_MINOR DEC(__open_xl_release__) +# define COMPILER_VERSION_PATCH DEC(__open_xl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__open_xl_ptf_fix_level__) + + +#elif defined(__ibmxl__) && defined(__clang__) +# define COMPILER_ID "XLClang" +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) + + +#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800 +# define COMPILER_ID "XL" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800 +# define COMPILER_ID "VisualAge" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__NVCOMPILER) +# define COMPILER_ID "NVHPC" +# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__) +# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__) +# if defined(__NVCOMPILER_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__) +# endif + +#elif defined(__PGI) +# define COMPILER_ID "PGI" +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(__clang__) && defined(__cray__) +# define COMPILER_ID "CrayClang" +# define COMPILER_VERSION_MAJOR DEC(__cray_major__) +# define COMPILER_VERSION_MINOR DEC(__cray_minor__) +# define COMPILER_VERSION_PATCH DEC(__cray_patchlevel__) +# define COMPILER_VERSION_INTERNAL_STR __clang_version__ + + +#elif defined(_CRAYC) +# define COMPILER_ID "Cray" +# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__CLANG_FUJITSU) +# define COMPILER_ID "FujitsuClang" +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# define COMPILER_VERSION_INTERNAL_STR __clang_version__ + + +#elif defined(__FUJITSU) +# define COMPILER_ID "Fujitsu" +# if defined(__FCC_version__) +# define COMPILER_VERSION __FCC_version__ +# elif defined(__FCC_major__) +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# endif +# if defined(__fcc_version) +# define COMPILER_VERSION_INTERNAL DEC(__fcc_version) +# elif defined(__FCC_VERSION) +# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION) +# endif + + +#elif defined(__ghs__) +# define COMPILER_ID "GHS" +/* __GHS_VERSION_NUMBER = VVVVRP */ +# ifdef __GHS_VERSION_NUMBER +# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) +# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) +# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) +# endif + +#elif defined(__TASKING__) +# define COMPILER_ID "Tasking" + # define COMPILER_VERSION_MAJOR DEC(__VERSION__/1000) + # define COMPILER_VERSION_MINOR DEC(__VERSION__ % 100) +# define COMPILER_VERSION_INTERNAL DEC(__VERSION__) + +#elif defined(__ORANGEC__) +# define COMPILER_ID "OrangeC" +# define COMPILER_VERSION_MAJOR DEC(__ORANGEC_MAJOR__) +# define COMPILER_VERSION_MINOR DEC(__ORANGEC_MINOR__) +# define COMPILER_VERSION_PATCH DEC(__ORANGEC_PATCHLEVEL__) + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#elif defined(__ARMCC_VERSION) && !defined(__clang__) +# define COMPILER_ID "ARMCC" +#if __ARMCC_VERSION >= 1000000 + /* __ARMCC_VERSION = VRRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#else + /* __ARMCC_VERSION = VRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#endif + + +#elif defined(__clang__) && defined(__apple_build_version__) +# define COMPILER_ID "AppleClang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) + +#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) +# define COMPILER_ID "ARMClang" + # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION/100 % 100) +# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) + +#elif defined(__clang__) && defined(__ti__) +# define COMPILER_ID "TIClang" + # define COMPILER_VERSION_MAJOR DEC(__ti_major__) + # define COMPILER_VERSION_MINOR DEC(__ti_minor__) + # define COMPILER_VERSION_PATCH DEC(__ti_patchlevel__) +# define COMPILER_VERSION_INTERNAL DEC(__ti_version__) + +#elif defined(__clang__) +# define COMPILER_ID "Clang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__LCC__) && (defined(__GNUC__) || defined(__GNUG__) || defined(__MCST__)) +# define COMPILER_ID "LCC" +# define COMPILER_VERSION_MAJOR DEC(__LCC__ / 100) +# define COMPILER_VERSION_MINOR DEC(__LCC__ % 100) +# if defined(__LCC_MINOR__) +# define COMPILER_VERSION_PATCH DEC(__LCC_MINOR__) +# endif +# if defined(__GNUC__) && defined(__GNUC_MINOR__) +# define SIMULATE_ID "GNU" +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +# if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif +# endif + +#elif defined(__GNUC__) || defined(__GNUG__) +# define COMPILER_ID "GNU" +# if defined(__GNUC__) +# define COMPILER_VERSION_MAJOR DEC(__GNUC__) +# else +# define COMPILER_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +#elif defined(_ADI_COMPILER) +# define COMPILER_ID "ADSP" +#if defined(__VERSIONNUM__) + /* __VERSIONNUM__ = 0xVVRRPPTT */ +# define COMPILER_VERSION_MAJOR DEC(__VERSIONNUM__ >> 24 & 0xFF) +# define COMPILER_VERSION_MINOR DEC(__VERSIONNUM__ >> 16 & 0xFF) +# define COMPILER_VERSION_PATCH DEC(__VERSIONNUM__ >> 8 & 0xFF) +# define COMPILER_VERSION_TWEAK DEC(__VERSIONNUM__ & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" +# if defined(__VER__) && defined(__ICCARM__) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) +# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) +# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__)) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) +# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) +# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# endif + + +/* These compilers are either not known or too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#ifdef __QNXNTO__ +char const* qnxnto = "INFO" ":" "qnxnto[]"; +#endif + +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) +char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; +#endif + +#define STRINGIFY_HELPER(X) #X +#define STRINGIFY(X) STRINGIFY_HELPER(X) + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__MSYS__) +# define PLATFORM_ID "MSYS" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#elif defined(__WATCOMC__) +# if defined(__LINUX__) +# define PLATFORM_ID "Linux" + +# elif defined(__DOS__) +# define PLATFORM_ID "DOS" + +# elif defined(__OS2__) +# define PLATFORM_ID "OS2" + +# elif defined(__WINDOWS__) +# define PLATFORM_ID "Windows3x" + +# elif defined(__VXWORKS__) +# define PLATFORM_ID "VxWorks" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#elif defined(__INTEGRITY) +# if defined(INT_178B) +# define PLATFORM_ID "Integrity178" + +# else /* regular Integrity */ +# define PLATFORM_ID "Integrity" +# endif + +# elif defined(_ADI_COMPILER) +# define PLATFORM_ID "ADSP" + +#else /* unknown platform */ +# define PLATFORM_ID + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_ARM64EC) +# define ARCHITECTURE_ID "ARM64EC" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM64) +# define ARCHITECTURE_ID "ARM64" + +# elif defined(_M_ARM) +# if _M_ARM == 4 +# define ARCHITECTURE_ID "ARMV4I" +# elif _M_ARM == 5 +# define ARCHITECTURE_ID "ARMV5I" +# else +# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) +# endif + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__WATCOMC__) +# if defined(_M_I86) +# define ARCHITECTURE_ID "I86" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# if defined(__ICCARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__ICCRX__) +# define ARCHITECTURE_ID "RX" + +# elif defined(__ICCRH850__) +# define ARCHITECTURE_ID "RH850" + +# elif defined(__ICCRL78__) +# define ARCHITECTURE_ID "RL78" + +# elif defined(__ICCRISCV__) +# define ARCHITECTURE_ID "RISCV" + +# elif defined(__ICCAVR__) +# define ARCHITECTURE_ID "AVR" + +# elif defined(__ICC430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__ICCV850__) +# define ARCHITECTURE_ID "V850" + +# elif defined(__ICC8051__) +# define ARCHITECTURE_ID "8051" + +# elif defined(__ICCSTM8__) +# define ARCHITECTURE_ID "STM8" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__ghs__) +# if defined(__PPC64__) +# define ARCHITECTURE_ID "PPC64" + +# elif defined(__ppc__) +# define ARCHITECTURE_ID "PPC" + +# elif defined(__ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__x86_64__) +# define ARCHITECTURE_ID "x64" + +# elif defined(__i386__) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__clang__) && defined(__ti__) +# if defined(__ARM_ARCH) +# define ARCHITECTURE_ID "ARM" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__TI_COMPILER_VERSION__) +# if defined(__TI_ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__MSP430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__TMS320C28XX__) +# define ARCHITECTURE_ID "TMS320C28x" + +# elif defined(__TMS320C6X__) || defined(_TMS320C6X) +# define ARCHITECTURE_ID "TMS320C6x" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +# elif defined(__ADSPSHARC__) +# define ARCHITECTURE_ID "SHARC" + +# elif defined(__ADSPBLACKFIN__) +# define ARCHITECTURE_ID "Blackfin" + +#elif defined(__TASKING__) + +# if defined(__CTC__) || defined(__CPTC__) +# define ARCHITECTURE_ID "TriCore" + +# elif defined(__CMCS__) +# define ARCHITECTURE_ID "MCS" + +# elif defined(__CARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__CARC__) +# define ARCHITECTURE_ID "ARC" + +# elif defined(__C51__) +# define ARCHITECTURE_ID "8051" + +# elif defined(__CPCP__) +# define ARCHITECTURE_ID "PCP" + +# else +# define ARCHITECTURE_ID "" +# endif + +#else +# define ARCHITECTURE_ID +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number. */ +#ifdef COMPILER_VERSION +char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]"; + +/* Construct a string literal encoding the version number components. */ +#elif defined(COMPILER_VERSION_MAJOR) +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the internal version number. */ +#ifdef COMPILER_VERSION_INTERNAL +char const info_version_internal[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', + 'i','n','t','e','r','n','a','l','[', + COMPILER_VERSION_INTERNAL,']','\0'}; +#elif defined(COMPILER_VERSION_INTERNAL_STR) +char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]"; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + +#define CXX_STD_98 199711L +#define CXX_STD_11 201103L +#define CXX_STD_14 201402L +#define CXX_STD_17 201703L +#define CXX_STD_20 202002L +#define CXX_STD_23 202302L + +#if defined(__INTEL_COMPILER) && defined(_MSVC_LANG) +# if _MSVC_LANG > CXX_STD_17 +# define CXX_STD _MSVC_LANG +# elif _MSVC_LANG == CXX_STD_17 && defined(__cpp_aggregate_paren_init) +# define CXX_STD CXX_STD_20 +# elif _MSVC_LANG > CXX_STD_14 && __cplusplus > CXX_STD_17 +# define CXX_STD CXX_STD_20 +# elif _MSVC_LANG > CXX_STD_14 +# define CXX_STD CXX_STD_17 +# elif defined(__INTEL_CXX11_MODE__) && defined(__cpp_aggregate_nsdmi) +# define CXX_STD CXX_STD_14 +# elif defined(__INTEL_CXX11_MODE__) +# define CXX_STD CXX_STD_11 +# else +# define CXX_STD CXX_STD_98 +# endif +#elif defined(_MSC_VER) && defined(_MSVC_LANG) +# if _MSVC_LANG > __cplusplus +# define CXX_STD _MSVC_LANG +# else +# define CXX_STD __cplusplus +# endif +#elif defined(__NVCOMPILER) +# if __cplusplus == CXX_STD_17 && defined(__cpp_aggregate_paren_init) +# define CXX_STD CXX_STD_20 +# else +# define CXX_STD __cplusplus +# endif +#elif defined(__INTEL_COMPILER) || defined(__PGI) +# if __cplusplus == CXX_STD_11 && defined(__cpp_namespace_attributes) +# define CXX_STD CXX_STD_17 +# elif __cplusplus == CXX_STD_11 && defined(__cpp_aggregate_nsdmi) +# define CXX_STD CXX_STD_14 +# else +# define CXX_STD __cplusplus +# endif +#elif (defined(__IBMCPP__) || defined(__ibmxl__)) && defined(__linux__) +# if __cplusplus == CXX_STD_11 && defined(__cpp_aggregate_nsdmi) +# define CXX_STD CXX_STD_14 +# else +# define CXX_STD __cplusplus +# endif +#elif __cplusplus == 1 && defined(__GXX_EXPERIMENTAL_CXX0X__) +# define CXX_STD CXX_STD_11 +#else +# define CXX_STD __cplusplus +#endif + +const char* info_language_standard_default = "INFO" ":" "standard_default[" +#if CXX_STD > CXX_STD_23 + "26" +#elif CXX_STD > CXX_STD_20 + "23" +#elif CXX_STD > CXX_STD_17 + "20" +#elif CXX_STD > CXX_STD_14 + "17" +#elif CXX_STD > CXX_STD_11 + "14" +#elif CXX_STD >= CXX_STD_11 + "11" +#else + "98" +#endif +"]"; + +const char* info_language_extensions_default = "INFO" ":" "extensions_default[" +#if (defined(__clang__) || defined(__GNUC__) || defined(__xlC__) || \ + defined(__TI_COMPILER_VERSION__)) && \ + !defined(__STRICT_ANSI__) + "ON" +#else + "OFF" +#endif +"]"; + +/*--------------------------------------------------------------------------*/ + +int main(int argc, char* argv[]) +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; + require += info_arch[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef COMPILER_VERSION_INTERNAL + require += info_version_internal[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) + require += info_cray[argc]; +#endif + require += info_language_standard_default[argc]; + require += info_language_extensions_default[argc]; + (void)argv; + return require; +} diff --git a/build-baseline/CMakeFiles/3.31.6/CompilerIdCXX/a.out b/build-baseline/CMakeFiles/3.31.6/CompilerIdCXX/a.out new file mode 100755 index 0000000000000000000000000000000000000000..e926ed95aca95fa7a394ccb140ffe97fb42360fe GIT binary patch literal 16096 zcmeHOeQX>@6`#9&IW&ncX+zwkG)HNwq|_VRaa_05GlU#5+6yf^cH z>+^CB0{RCM`z-I9_j?~R`(}1;c6a8{cQ<>ivqPM9d%wQJlG33d9nsQ>~=q zyVNaeDang9X7mZeNNea~bUtqod=YW>YvMv3ev5&r2195ebM{+^GTa~{a3$x#eoI&( za*+R8DgcMxuP@HdL~(ue`AP8uul3`m%rqPOnXdUfC3)E^9DXe7Q?QIZb%!D0(^4Ne z^2s^j|4zwgkhe$}@StBt{DQn!{J^;mrv0ya>Hnm@z2f&uT!&FXewTq2IO@Bf{G@Be z;`$8Tyie*|s2^gIe{e~!+M3G_ceHQKrJHlvLS>?PqO+s9qunYOtu|dTw<}KnJf?Q- zKAtkW**0Z##4dYI z$+PoLwm`_pgkz6p3r;S3#8s^3{C22a1N}RD>^7^-+U}RPwJW=SXwXi(C3h@a_T19Y zU{9`CaEF}XoJ+CB^2LHgw~c9CL(X7C|CyeOkj(AHc&V(SSn7z16d!7;X3H&cW2xCPDD;QD?GMaaVpgc%4k5N06EK$w9r17QaKCo=G- z##`S^9lO$yI+4sNn_OzUua;39fGX3LP6aCKTIOH=QMEv~gpv z(sJu-{Zkh{oSOPg>e%mQ_6{Xmr(0i2o$7j-0#w(Q$@I^oR^!IUbUeb(5t2H!Ib+?RWGkzYTS5~4POvW_NTS|_RligaxFDAlREeMj?}r?MXAV(sSDS_Jbw#2IRpIt>w46`yKm3EBgOo9Hs_WO(O1dC^R4IU?T@*oa<*7F)S{_% zn`H_uexc>C(jMbE#~Uq{@`nca>#BfGX(V$<%JiMEkakLG`rtR}RC3;-*1JXHPIzvC zYbpD>J-c{KloWI2~MUL!Kk%?Gj z!-{1MkJAS+#(B-bX0pG74SJX9FL}39v7P>BUawX)uqxKKs_6rbH$2>MRP9)Q&z;+D z=g)}RpXQX)7wZ0VMKLY_zl9Fgs&A2CT?n4)*&tvMT=B~c67># z(_&9eh9xwIz&B*!uU1Y?Q@NXZ(`tbiUBG#qG z<0cT+onoCS)|Fx%>8_rhd*hoA3|9(XB~B0e^n~BsQPE=CBW>+gOS{#&MHJU-8h68D z^~Y+^hWjN#nv>F@aWUZa#r5pD-=b=j8kcb^<|;1unE<{`a9jtl@25gUHL1>oLAZTP zyc#<~Pxlzt8l=O=>7VPxbp`x56(Z_Jh3f?P*Qijh{b#j(OeNyRvdu7xP~ZMM;SpNN zef-^GSi|bY|CP3j1dIbI@sb#$G=xQ6CY#;Il%H;7!O>T?=j zr-JLRpAtN{p8ETQ$7q}+5{PX0LxiuP@sN=5rr#lv>W301Cib`=oR>HlZ;19wiL*uS zyZW6GDS3YipI6ZSHHp7D5PwC~KUIX*{0_ozn}-;ooA5PJy2}QxmtBOfrv8d2j2+sq z_K%djR;x%W@SWkT?KxwLfU;K^9koW(+-iN>%iANoUcXG1>7qTBD-Jt3JM9%qW!tGt zD1OJ7b3He0wbZxZodQ|gDV3Z_+bwvdNi|w>@~)k(CH3k8FW74_8dIe zBX2VM)7HrNxUxSq(At(Qj27|clH&C3>mE$n$=$s+?IY;@;O_3h{vLwq)u)|Ii8j@{ zPuaT$_U!B)u=n)!?N1KbL)|+ElH?KG=8(W{hJUq#!A(1!qx4x)6c)^O1`_7)ZLrhj zqMf1FqrC5-e-Bxuvjw|ScGF6q3f`?6Dd!Z%D$bZ||MPoOMR^n-yy2zFhRbECSaxa9 zMhi)Y4(|sHzM{R(u8a9wJ^YmL1`pj=rm6h?S1GGJnfIJw;$F${3`*Go?fV#4R-x#* z)>xrpjhBk!ZpoXhfrcwt+O(5R3)H={znKT6HqSWajIz>`1**buuVggx;(DH7ldk0E z9ClC^4=H7h=gh$xD^kIuoGOdQC0Q1A|59?@%)T#4gOpH;C?&I&k&exYw0~C@EnRRe@zSRD-*Rp&x71SgJOg(7s;2;33~r`MSfrK{6Hp}g8lbpLTmlw;s-9Gc+dT8 z0e?E+-y#Zd*dYL9@NWkE6QThBe4xYNhj`x!_+wrJj^``b2haa|;*b2RxL68*NklM# zA*vrxiJJ)jSHuAPF5l7=g7yD|;9CD#@dtl0;E(UKqA-~X-)?I1}S*#$z#Oa{Fm0xGEGbW@%U$gANujDgs}ue= 1900 + PRINT *, 'INFO:simulate_version[019.00]' +# elif _MSC_VER >= 1800 + PRINT *, 'INFO:simulate_version[018.00]' +# elif _MSC_VER >= 1700 + PRINT *, 'INFO:simulate_version[017.00]' +# elif _MSC_VER >= 1600 + PRINT *, 'INFO:simulate_version[016.00]' +# elif _MSC_VER >= 1500 + PRINT *, 'INFO:simulate_version[015.00]' +# elif _MSC_VER >= 1400 + PRINT *, 'INFO:simulate_version[014.00]' +# elif _MSC_VER >= 1310 + PRINT *, 'INFO:simulate_version[013.01]' +# else + PRINT *, 'INFO:simulate_version[013.00]' +# endif +#endif +#if defined(__INTEL_LLVM_COMPILER) + PRINT *, 'INFO:compiler[IntelLLVM]' +! __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and +! later. Look for 6 digit vs. 8 digit version number to decide encoding. +! VVVV is no smaller than the current year when a version is released. +# if __INTEL_LLVM_COMPILER < 1000000 +# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10) +# else +# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000) +# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100) +# endif +#elif defined(__INTEL_COMPILER) && __INTEL_COMPILER == 201900 + PRINT *, 'INFO:compiler[IntelLLVM]' +! ifx 2021.1 forgot to define __INTEL_LLVM_COMPILER. +! Instead it defines __INTEL_COMPILER == 201900. +# define COMPILER_VERSION_MAJOR DEC(2021) +# define COMPILER_VERSION_MINOR DEC(1) +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) +# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) +#elif defined(__INTEL_COMPILER) || defined(__ICC) + PRINT *, 'INFO:compiler[Intel]' +! __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later. +# if __INTEL_COMPILER < 2021 +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) +# if defined(__INTEL_COMPILER_UPDATE) +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) +# else +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) +# endif +# else +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE) +! The third version component from --version is an update index, +! but no macro is provided for it. +# define COMPILER_VERSION_PATCH DEC(0) +# endif +# if defined(__INTEL_COMPILER_BUILD_DATE) +# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) +# endif +#elif defined(__SUNPRO_F95) + PRINT *, 'INFO:compiler[SunPro]' +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_F95>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_F95>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_F95 & 0xF) +#elif defined(__SUNPRO_F90) + PRINT *, 'INFO:compiler[SunPro]' +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_F90>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_F90>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_F90 & 0xF) +#elif defined(_CRAYFTN) + PRINT *, 'INFO:compiler[Cray]' +# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) +# if defined(_RELEASE_PATCHLEVEL) +# define COMPILER_VERSION_PATCH DEC(_RELEASE_PATCHLEVEL) +# endif +#elif defined(__G95__) + PRINT *, 'INFO:compiler[G95]' +# define COMPILER_VERSION_MAJOR DEC(__G95__) +# define COMPILER_VERSION_MINOR DEC(__G95_MINOR__) +#elif defined(__PATHSCALE__) + PRINT *, 'INFO:compiler[PathScale]' +# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) +# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) +# if defined(__PATHCC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) +# endif +#elif defined(__ABSOFT__) + PRINT *, 'INFO:compiler[Absoft]' +#elif defined(__LCC__) && (defined(__GNUC__) || defined(__GNUG__) || defined(__MCST__)) + PRINT *, 'INFO:compiler[LCC]' +# define COMPILER_VERSION_MAJOR DEC(1) +# define COMPILER_VERSION_MINOR DEC(__LCC__ - 100) +# if defined(__LCC_MINOR__) +# define COMPILER_VERSION_PATCH DEC(__LCC_MINOR__) +# endif +#elif defined(__GNUC__) + PRINT *, 'INFO:compiler[GNU]' +# define COMPILER_VERSION_MAJOR DEC(__GNUC__) +# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# if defined(__GNUC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif +#elif defined(__IBMC__) +# if defined(__COMPILER_VER__) + PRINT *, 'INFO:compiler[zOS]' +# elif __IBMC__ >= 800 + PRINT *, 'INFO:compiler[XL]' +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) +# else + PRINT *, 'INFO:compiler[VisualAge]' +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) +# endif +#elif defined(__NVCOMPILER) || defined(__NVCOMPILER_LLVM__) + PRINT *, 'INFO:compiler[NVHPC]' +# if defined(__NVCOMPILER_MAJOR__) +# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__) +# else +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# endif +# if defined(__NVCOMPILER_MINOR__) +# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__) +# else +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# endif +# if defined(__NVCOMPILER_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__) +# elif defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif +#elif defined(__PGI) + PRINT *, 'INFO:compiler[PGI]' +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif +#elif defined(__FLANG) + PRINT *, 'INFO:compiler[Flang]' +# define COMPILER_VERSION_MAJOR DEC(__FLANG_MAJOR__) +# define COMPILER_VERSION_MINOR DEC(__FLANG_MINOR__) +# if defined(__FLANG_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__FLANG_PATCHLEVEL__) +# endif +#elif defined(__flang__) + PRINT *, 'INFO:compiler[LLVMFlang]' +# define COMPILER_VERSION_MAJOR DEC(__flang_major__) +# define COMPILER_VERSION_MINOR DEC(__flang_minor__) +# if defined(__flang_patchlevel__) +# define COMPILER_VERSION_PATCH DEC(__flang_patchlevel__) +# endif +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) + PRINT *, 'INFO:compiler[VisualAge]' +#elif defined(__hpux) || defined(__hpux__) + PRINT *, 'INFO:compiler[HP]' +#elif defined(NAGFOR) + PRINT *, 'INFO:compiler[NAG]' +#define COMPILER_VERSION_MAJOR DEC(__NAG_COMPILER_RELEASE/10) +#define COMPILER_VERSION_MINOR DEC(__NAG_COMPILER_RELEASE % 10) +#define COMPILER_VERSION_PATCH DEC(__NAG_COMPILER_BUILD) +#elif defined(__FUJITSU) + PRINT *, 'INFO:compiler[Fujitsu]' +# if defined(__FRT_major__) +# define COMPILER_VERSION_MAJOR DEC(__FRT_major__) +# define COMPILER_VERSION_MINOR DEC(__FRT_minor__) +# define COMPILER_VERSION_PATCH DEC(__FRT_patchlevel__) +# elif defined(__FRT_version__) + PRINT *, 'INFO:compiler_version['//__FRT_version__//']' +# endif +#elif defined(__LFORTRAN__) + PRINT *, 'INFO:compiler[LFortran]' +#define COMPILER_VERSION_MAJOR DEC(__LFORTRAN_MAJOR__) +#define COMPILER_VERSION_MINOR DEC(__LFORTRAN_MINOR__) +#define COMPILER_VERSION_PATCH DEC(__LFORTRAN_PATCHLEVEL__) +#else + PRINT *, 'INFO:compiler[]' +#endif +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) + PRINT *, 'INFO:compiler_wrapper[CrayPrgEnv]' +#endif + +#if 0 +! Identify the platform +#endif +#if defined(__linux) || defined(__linux__) || defined(linux) + PRINT *, 'INFO:platform[Linux]' +#elif defined(__CYGWIN__) + PRINT *, 'INFO:platform[Cygwin]' +#elif defined(__MINGW32__) + PRINT *, 'INFO:platform[MinGW]' +#elif defined(__APPLE__) + PRINT *, 'INFO:platform[Darwin]' +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) + PRINT *, 'INFO:platform[Windows]' +#elif defined(__FreeBSD__) || defined(__FreeBSD) + PRINT *, 'INFO:platform[FreeBSD]' +#elif defined(__NetBSD__) || defined(__NetBSD) + PRINT *, 'INFO:platform[NetBSD]' +#elif defined(__OpenBSD__) || defined(__OPENBSD) + PRINT *, 'INFO:platform[OpenBSD]' +#elif defined(__sun) || defined(sun) + PRINT *, 'INFO:platform[SunOS]' +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) + PRINT *, 'INFO:platform[AIX]' +#elif defined(__hpux) || defined(__hpux__) + PRINT *, 'INFO:platform[HP-UX]' +#elif defined(__HAIKU__) + PRINT *, 'INFO:platform[Haiku]' +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) + PRINT *, 'INFO:platform[BeOS]' +#elif defined(__QNX__) || defined(__QNXNTO__) + PRINT *, 'INFO:platform[QNX]' +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) + PRINT *, 'INFO:platform[Tru64]' +#elif defined(__riscos) || defined(__riscos__) + PRINT *, 'INFO:platform[RISCos]' +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) + PRINT *, 'INFO:platform[SINIX]' +#elif defined(__UNIX_SV__) + PRINT *, 'INFO:platform[UNIX_SV]' +#elif defined(__bsdos__) + PRINT *, 'INFO:platform[BSDOS]' +#elif defined(_MPRAS) || defined(MPRAS) + PRINT *, 'INFO:platform[MP-RAS]' +#elif defined(__osf) || defined(__osf__) + PRINT *, 'INFO:platform[OSF1]' +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) + PRINT *, 'INFO:platform[SCO_SV]' +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) + PRINT *, 'INFO:platform[ULTRIX]' +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) + PRINT *, 'INFO:platform[Xenix]' +#else + PRINT *, 'INFO:platform[]' +#endif +#if defined(_MSC_VER) +# if defined(_M_IA64) + PRINT *, 'INFO:arch[IA64]' +# elif defined(_M_X64) || defined(_M_AMD64) + PRINT *, 'INFO:arch[x64]' +# elif defined(_M_IX86) + PRINT *, 'INFO:arch[X86]' +# endif +#endif + +#if 0 +! Encode compiler version digits +#endif +#define DEC_8(n) (((n) / 10000000) % 10) +#define DEC_7(n) (((n) / 1000000) % 10) +#define DEC_6(n) (((n) / 100000) % 10) +#define DEC_5(n) (((n) / 10000) % 10) +#define DEC_4(n) (((n) / 1000) % 10) +#define DEC_3(n) (((n) / 100) % 10) +#define DEC_2(n) (((n) / 10) % 10) +#define DEC_1(n) (((n) ) % 10) +#define HEX_8(n) ((n)>>28 & 0xF) +#define HEX_7(n) ((n)>>24 & 0xF) +#define HEX_6(n) ((n)>>20 & 0xF) +#define HEX_5(n) ((n)>>16 & 0xF) +#define HEX_4(n) ((n)>>12 & 0xF) +#define HEX_3(n) ((n)>>8 & 0xF) +#define HEX_2(n) ((n)>>4 & 0xF) +#define HEX_1(n) ((n) & 0xF) + +#if defined(COMPILER_VERSION_MAJOR) +# undef DEC +# undef HEX +# define DEC(n) DEC_1(n) +# define HEX(n) HEX_1(n) +# if COMPILER_VERSION_MAJOR == 0 + PRINT *, 'INFO:compiler_version_MAJOR_digit_1[0]' +# elif COMPILER_VERSION_MAJOR == 1 + PRINT *, 'INFO:compiler_version_MAJOR_digit_1[1]' +# elif COMPILER_VERSION_MAJOR == 2 + PRINT *, 'INFO:compiler_version_MAJOR_digit_1[2]' +# elif COMPILER_VERSION_MAJOR == 3 + PRINT *, 'INFO:compiler_version_MAJOR_digit_1[3]' +# elif COMPILER_VERSION_MAJOR == 4 + PRINT *, 'INFO:compiler_version_MAJOR_digit_1[4]' +# elif COMPILER_VERSION_MAJOR == 5 + PRINT *, 'INFO:compiler_version_MAJOR_digit_1[5]' +# elif COMPILER_VERSION_MAJOR == 6 + PRINT *, 'INFO:compiler_version_MAJOR_digit_1[6]' +# elif COMPILER_VERSION_MAJOR == 7 + PRINT *, 'INFO:compiler_version_MAJOR_digit_1[7]' +# elif COMPILER_VERSION_MAJOR == 8 + PRINT *, 'INFO:compiler_version_MAJOR_digit_1[8]' +# elif COMPILER_VERSION_MAJOR == 9 + PRINT *, 'INFO:compiler_version_MAJOR_digit_1[9]' +# endif + +# undef DEC +# undef HEX +# define DEC(n) DEC_2(n) +# define HEX(n) HEX_2(n) +# if COMPILER_VERSION_MAJOR == 0 + PRINT *, 'INFO:compiler_version_MAJOR_digit_2[0]' +# elif COMPILER_VERSION_MAJOR == 1 + PRINT *, 'INFO:compiler_version_MAJOR_digit_2[1]' +# elif COMPILER_VERSION_MAJOR == 2 + PRINT *, 'INFO:compiler_version_MAJOR_digit_2[2]' +# elif COMPILER_VERSION_MAJOR == 3 + PRINT *, 'INFO:compiler_version_MAJOR_digit_2[3]' +# elif COMPILER_VERSION_MAJOR == 4 + PRINT *, 'INFO:compiler_version_MAJOR_digit_2[4]' +# elif COMPILER_VERSION_MAJOR == 5 + PRINT *, 'INFO:compiler_version_MAJOR_digit_2[5]' +# elif COMPILER_VERSION_MAJOR == 6 + PRINT *, 'INFO:compiler_version_MAJOR_digit_2[6]' +# elif COMPILER_VERSION_MAJOR == 7 + PRINT *, 'INFO:compiler_version_MAJOR_digit_2[7]' +# elif COMPILER_VERSION_MAJOR == 8 + PRINT *, 'INFO:compiler_version_MAJOR_digit_2[8]' +# elif COMPILER_VERSION_MAJOR == 9 + PRINT *, 'INFO:compiler_version_MAJOR_digit_2[9]' +# endif + +# undef DEC +# undef HEX +# define DEC(n) DEC_3(n) +# define HEX(n) HEX_3(n) +# if COMPILER_VERSION_MAJOR == 0 + PRINT *, 'INFO:compiler_version_MAJOR_digit_3[0]' +# elif COMPILER_VERSION_MAJOR == 1 + PRINT *, 'INFO:compiler_version_MAJOR_digit_3[1]' +# elif COMPILER_VERSION_MAJOR == 2 + PRINT *, 'INFO:compiler_version_MAJOR_digit_3[2]' +# elif COMPILER_VERSION_MAJOR == 3 + PRINT *, 'INFO:compiler_version_MAJOR_digit_3[3]' +# elif COMPILER_VERSION_MAJOR == 4 + PRINT *, 'INFO:compiler_version_MAJOR_digit_3[4]' +# elif COMPILER_VERSION_MAJOR == 5 + PRINT *, 'INFO:compiler_version_MAJOR_digit_3[5]' +# elif COMPILER_VERSION_MAJOR == 6 + PRINT *, 'INFO:compiler_version_MAJOR_digit_3[6]' +# elif COMPILER_VERSION_MAJOR == 7 + PRINT *, 'INFO:compiler_version_MAJOR_digit_3[7]' +# elif COMPILER_VERSION_MAJOR == 8 + PRINT *, 'INFO:compiler_version_MAJOR_digit_3[8]' +# elif COMPILER_VERSION_MAJOR == 9 + PRINT *, 'INFO:compiler_version_MAJOR_digit_3[9]' +# endif + +# undef DEC +# undef HEX +# define DEC(n) DEC_4(n) +# define HEX(n) HEX_4(n) +# if COMPILER_VERSION_MAJOR == 0 + PRINT *, 'INFO:compiler_version_MAJOR_digit_4[0]' +# elif COMPILER_VERSION_MAJOR == 1 + PRINT *, 'INFO:compiler_version_MAJOR_digit_4[1]' +# elif COMPILER_VERSION_MAJOR == 2 + PRINT *, 'INFO:compiler_version_MAJOR_digit_4[2]' +# elif COMPILER_VERSION_MAJOR == 3 + PRINT *, 'INFO:compiler_version_MAJOR_digit_4[3]' +# elif COMPILER_VERSION_MAJOR == 4 + PRINT *, 'INFO:compiler_version_MAJOR_digit_4[4]' +# elif COMPILER_VERSION_MAJOR == 5 + PRINT *, 'INFO:compiler_version_MAJOR_digit_4[5]' +# elif COMPILER_VERSION_MAJOR == 6 + PRINT *, 'INFO:compiler_version_MAJOR_digit_4[6]' +# elif COMPILER_VERSION_MAJOR == 7 + PRINT *, 'INFO:compiler_version_MAJOR_digit_4[7]' +# elif COMPILER_VERSION_MAJOR == 8 + PRINT *, 'INFO:compiler_version_MAJOR_digit_4[8]' +# elif COMPILER_VERSION_MAJOR == 9 + PRINT *, 'INFO:compiler_version_MAJOR_digit_4[9]' +# endif + +# undef DEC +# undef HEX +# define DEC(n) DEC_5(n) +# define HEX(n) HEX_5(n) +# if COMPILER_VERSION_MAJOR == 0 + PRINT *, 'INFO:compiler_version_MAJOR_digit_5[0]' +# elif COMPILER_VERSION_MAJOR == 1 + PRINT *, 'INFO:compiler_version_MAJOR_digit_5[1]' +# elif COMPILER_VERSION_MAJOR == 2 + PRINT *, 'INFO:compiler_version_MAJOR_digit_5[2]' +# elif COMPILER_VERSION_MAJOR == 3 + PRINT *, 'INFO:compiler_version_MAJOR_digit_5[3]' +# elif COMPILER_VERSION_MAJOR == 4 + PRINT *, 'INFO:compiler_version_MAJOR_digit_5[4]' +# elif COMPILER_VERSION_MAJOR == 5 + PRINT *, 'INFO:compiler_version_MAJOR_digit_5[5]' +# elif COMPILER_VERSION_MAJOR == 6 + PRINT *, 'INFO:compiler_version_MAJOR_digit_5[6]' +# elif COMPILER_VERSION_MAJOR == 7 + PRINT *, 'INFO:compiler_version_MAJOR_digit_5[7]' +# elif COMPILER_VERSION_MAJOR == 8 + PRINT *, 'INFO:compiler_version_MAJOR_digit_5[8]' +# elif COMPILER_VERSION_MAJOR == 9 + PRINT *, 'INFO:compiler_version_MAJOR_digit_5[9]' +# endif + +# undef DEC +# undef HEX +# define DEC(n) DEC_6(n) +# define HEX(n) HEX_6(n) +# if COMPILER_VERSION_MAJOR == 0 + PRINT *, 'INFO:compiler_version_MAJOR_digit_6[0]' +# elif COMPILER_VERSION_MAJOR == 1 + PRINT *, 'INFO:compiler_version_MAJOR_digit_6[1]' +# elif COMPILER_VERSION_MAJOR == 2 + PRINT *, 'INFO:compiler_version_MAJOR_digit_6[2]' +# elif COMPILER_VERSION_MAJOR == 3 + PRINT *, 'INFO:compiler_version_MAJOR_digit_6[3]' +# elif COMPILER_VERSION_MAJOR == 4 + PRINT *, 'INFO:compiler_version_MAJOR_digit_6[4]' +# elif COMPILER_VERSION_MAJOR == 5 + PRINT *, 'INFO:compiler_version_MAJOR_digit_6[5]' +# elif COMPILER_VERSION_MAJOR == 6 + PRINT *, 'INFO:compiler_version_MAJOR_digit_6[6]' +# elif COMPILER_VERSION_MAJOR == 7 + PRINT *, 'INFO:compiler_version_MAJOR_digit_6[7]' +# elif COMPILER_VERSION_MAJOR == 8 + PRINT *, 'INFO:compiler_version_MAJOR_digit_6[8]' +# elif COMPILER_VERSION_MAJOR == 9 + PRINT *, 'INFO:compiler_version_MAJOR_digit_6[9]' +# endif + +# undef DEC +# undef HEX +# define DEC(n) DEC_7(n) +# define HEX(n) HEX_7(n) +# if COMPILER_VERSION_MAJOR == 0 + PRINT *, 'INFO:compiler_version_MAJOR_digit_7[0]' +# elif COMPILER_VERSION_MAJOR == 1 + PRINT *, 'INFO:compiler_version_MAJOR_digit_7[1]' +# elif COMPILER_VERSION_MAJOR == 2 + PRINT *, 'INFO:compiler_version_MAJOR_digit_7[2]' +# elif COMPILER_VERSION_MAJOR == 3 + PRINT *, 'INFO:compiler_version_MAJOR_digit_7[3]' +# elif COMPILER_VERSION_MAJOR == 4 + PRINT *, 'INFO:compiler_version_MAJOR_digit_7[4]' +# elif COMPILER_VERSION_MAJOR == 5 + PRINT *, 'INFO:compiler_version_MAJOR_digit_7[5]' +# elif COMPILER_VERSION_MAJOR == 6 + PRINT *, 'INFO:compiler_version_MAJOR_digit_7[6]' +# elif COMPILER_VERSION_MAJOR == 7 + PRINT *, 'INFO:compiler_version_MAJOR_digit_7[7]' +# elif COMPILER_VERSION_MAJOR == 8 + PRINT *, 'INFO:compiler_version_MAJOR_digit_7[8]' +# elif COMPILER_VERSION_MAJOR == 9 + PRINT *, 'INFO:compiler_version_MAJOR_digit_7[9]' +# endif + +# undef DEC +# undef HEX +# define DEC(n) DEC_8(n) +# define HEX(n) HEX_8(n) +# if COMPILER_VERSION_MAJOR == 0 + PRINT *, 'INFO:compiler_version_MAJOR_digit_8[0]' +# elif COMPILER_VERSION_MAJOR == 1 + PRINT *, 'INFO:compiler_version_MAJOR_digit_8[1]' +# elif COMPILER_VERSION_MAJOR == 2 + PRINT *, 'INFO:compiler_version_MAJOR_digit_8[2]' +# elif COMPILER_VERSION_MAJOR == 3 + PRINT *, 'INFO:compiler_version_MAJOR_digit_8[3]' +# elif COMPILER_VERSION_MAJOR == 4 + PRINT *, 'INFO:compiler_version_MAJOR_digit_8[4]' +# elif COMPILER_VERSION_MAJOR == 5 + PRINT *, 'INFO:compiler_version_MAJOR_digit_8[5]' +# elif COMPILER_VERSION_MAJOR == 6 + PRINT *, 'INFO:compiler_version_MAJOR_digit_8[6]' +# elif COMPILER_VERSION_MAJOR == 7 + PRINT *, 'INFO:compiler_version_MAJOR_digit_8[7]' +# elif COMPILER_VERSION_MAJOR == 8 + PRINT *, 'INFO:compiler_version_MAJOR_digit_8[8]' +# elif COMPILER_VERSION_MAJOR == 9 + PRINT *, 'INFO:compiler_version_MAJOR_digit_8[9]' +# endif + +#endif +#if defined(COMPILER_VERSION_MINOR) +# undef DEC +# undef HEX +# define DEC(n) DEC_1(n) +# define HEX(n) HEX_1(n) +# if COMPILER_VERSION_MINOR == 0 + PRINT *, 'INFO:compiler_version_MINOR_digit_1[0]' +# elif COMPILER_VERSION_MINOR == 1 + PRINT *, 'INFO:compiler_version_MINOR_digit_1[1]' +# elif COMPILER_VERSION_MINOR == 2 + PRINT *, 'INFO:compiler_version_MINOR_digit_1[2]' +# elif COMPILER_VERSION_MINOR == 3 + PRINT *, 'INFO:compiler_version_MINOR_digit_1[3]' +# elif COMPILER_VERSION_MINOR == 4 + PRINT *, 'INFO:compiler_version_MINOR_digit_1[4]' +# elif COMPILER_VERSION_MINOR == 5 + PRINT *, 'INFO:compiler_version_MINOR_digit_1[5]' +# elif COMPILER_VERSION_MINOR == 6 + PRINT *, 'INFO:compiler_version_MINOR_digit_1[6]' +# elif COMPILER_VERSION_MINOR == 7 + PRINT *, 'INFO:compiler_version_MINOR_digit_1[7]' +# elif COMPILER_VERSION_MINOR == 8 + PRINT *, 'INFO:compiler_version_MINOR_digit_1[8]' +# elif COMPILER_VERSION_MINOR == 9 + PRINT *, 'INFO:compiler_version_MINOR_digit_1[9]' +# endif + +# undef DEC +# undef HEX +# define DEC(n) DEC_2(n) +# define HEX(n) HEX_2(n) +# if COMPILER_VERSION_MINOR == 0 + PRINT *, 'INFO:compiler_version_MINOR_digit_2[0]' +# elif COMPILER_VERSION_MINOR == 1 + PRINT *, 'INFO:compiler_version_MINOR_digit_2[1]' +# elif COMPILER_VERSION_MINOR == 2 + PRINT *, 'INFO:compiler_version_MINOR_digit_2[2]' +# elif COMPILER_VERSION_MINOR == 3 + PRINT *, 'INFO:compiler_version_MINOR_digit_2[3]' +# elif COMPILER_VERSION_MINOR == 4 + PRINT *, 'INFO:compiler_version_MINOR_digit_2[4]' +# elif COMPILER_VERSION_MINOR == 5 + PRINT *, 'INFO:compiler_version_MINOR_digit_2[5]' +# elif COMPILER_VERSION_MINOR == 6 + PRINT *, 'INFO:compiler_version_MINOR_digit_2[6]' +# elif COMPILER_VERSION_MINOR == 7 + PRINT *, 'INFO:compiler_version_MINOR_digit_2[7]' +# elif COMPILER_VERSION_MINOR == 8 + PRINT *, 'INFO:compiler_version_MINOR_digit_2[8]' +# elif COMPILER_VERSION_MINOR == 9 + PRINT *, 'INFO:compiler_version_MINOR_digit_2[9]' +# endif + +# undef DEC +# undef HEX +# define DEC(n) DEC_3(n) +# define HEX(n) HEX_3(n) +# if COMPILER_VERSION_MINOR == 0 + PRINT *, 'INFO:compiler_version_MINOR_digit_3[0]' +# elif COMPILER_VERSION_MINOR == 1 + PRINT *, 'INFO:compiler_version_MINOR_digit_3[1]' +# elif COMPILER_VERSION_MINOR == 2 + PRINT *, 'INFO:compiler_version_MINOR_digit_3[2]' +# elif COMPILER_VERSION_MINOR == 3 + PRINT *, 'INFO:compiler_version_MINOR_digit_3[3]' +# elif COMPILER_VERSION_MINOR == 4 + PRINT *, 'INFO:compiler_version_MINOR_digit_3[4]' +# elif COMPILER_VERSION_MINOR == 5 + PRINT *, 'INFO:compiler_version_MINOR_digit_3[5]' +# elif COMPILER_VERSION_MINOR == 6 + PRINT *, 'INFO:compiler_version_MINOR_digit_3[6]' +# elif COMPILER_VERSION_MINOR == 7 + PRINT *, 'INFO:compiler_version_MINOR_digit_3[7]' +# elif COMPILER_VERSION_MINOR == 8 + PRINT *, 'INFO:compiler_version_MINOR_digit_3[8]' +# elif COMPILER_VERSION_MINOR == 9 + PRINT *, 'INFO:compiler_version_MINOR_digit_3[9]' +# endif + +# undef DEC +# undef HEX +# define DEC(n) DEC_4(n) +# define HEX(n) HEX_4(n) +# if COMPILER_VERSION_MINOR == 0 + PRINT *, 'INFO:compiler_version_MINOR_digit_4[0]' +# elif COMPILER_VERSION_MINOR == 1 + PRINT *, 'INFO:compiler_version_MINOR_digit_4[1]' +# elif COMPILER_VERSION_MINOR == 2 + PRINT *, 'INFO:compiler_version_MINOR_digit_4[2]' +# elif COMPILER_VERSION_MINOR == 3 + PRINT *, 'INFO:compiler_version_MINOR_digit_4[3]' +# elif COMPILER_VERSION_MINOR == 4 + PRINT *, 'INFO:compiler_version_MINOR_digit_4[4]' +# elif COMPILER_VERSION_MINOR == 5 + PRINT *, 'INFO:compiler_version_MINOR_digit_4[5]' +# elif COMPILER_VERSION_MINOR == 6 + PRINT *, 'INFO:compiler_version_MINOR_digit_4[6]' +# elif COMPILER_VERSION_MINOR == 7 + PRINT *, 'INFO:compiler_version_MINOR_digit_4[7]' +# elif COMPILER_VERSION_MINOR == 8 + PRINT *, 'INFO:compiler_version_MINOR_digit_4[8]' +# elif COMPILER_VERSION_MINOR == 9 + PRINT *, 'INFO:compiler_version_MINOR_digit_4[9]' +# endif + +# undef DEC +# undef HEX +# define DEC(n) DEC_5(n) +# define HEX(n) HEX_5(n) +# if COMPILER_VERSION_MINOR == 0 + PRINT *, 'INFO:compiler_version_MINOR_digit_5[0]' +# elif COMPILER_VERSION_MINOR == 1 + PRINT *, 'INFO:compiler_version_MINOR_digit_5[1]' +# elif COMPILER_VERSION_MINOR == 2 + PRINT *, 'INFO:compiler_version_MINOR_digit_5[2]' +# elif COMPILER_VERSION_MINOR == 3 + PRINT *, 'INFO:compiler_version_MINOR_digit_5[3]' +# elif COMPILER_VERSION_MINOR == 4 + PRINT *, 'INFO:compiler_version_MINOR_digit_5[4]' +# elif COMPILER_VERSION_MINOR == 5 + PRINT *, 'INFO:compiler_version_MINOR_digit_5[5]' +# elif COMPILER_VERSION_MINOR == 6 + PRINT *, 'INFO:compiler_version_MINOR_digit_5[6]' +# elif COMPILER_VERSION_MINOR == 7 + PRINT *, 'INFO:compiler_version_MINOR_digit_5[7]' +# elif COMPILER_VERSION_MINOR == 8 + PRINT *, 'INFO:compiler_version_MINOR_digit_5[8]' +# elif COMPILER_VERSION_MINOR == 9 + PRINT *, 'INFO:compiler_version_MINOR_digit_5[9]' +# endif + +# undef DEC +# undef HEX +# define DEC(n) DEC_6(n) +# define HEX(n) HEX_6(n) +# if COMPILER_VERSION_MINOR == 0 + PRINT *, 'INFO:compiler_version_MINOR_digit_6[0]' +# elif COMPILER_VERSION_MINOR == 1 + PRINT *, 'INFO:compiler_version_MINOR_digit_6[1]' +# elif COMPILER_VERSION_MINOR == 2 + PRINT *, 'INFO:compiler_version_MINOR_digit_6[2]' +# elif COMPILER_VERSION_MINOR == 3 + PRINT *, 'INFO:compiler_version_MINOR_digit_6[3]' +# elif COMPILER_VERSION_MINOR == 4 + PRINT *, 'INFO:compiler_version_MINOR_digit_6[4]' +# elif COMPILER_VERSION_MINOR == 5 + PRINT *, 'INFO:compiler_version_MINOR_digit_6[5]' +# elif COMPILER_VERSION_MINOR == 6 + PRINT *, 'INFO:compiler_version_MINOR_digit_6[6]' +# elif COMPILER_VERSION_MINOR == 7 + PRINT *, 'INFO:compiler_version_MINOR_digit_6[7]' +# elif COMPILER_VERSION_MINOR == 8 + PRINT *, 'INFO:compiler_version_MINOR_digit_6[8]' +# elif COMPILER_VERSION_MINOR == 9 + PRINT *, 'INFO:compiler_version_MINOR_digit_6[9]' +# endif + +# undef DEC +# undef HEX +# define DEC(n) DEC_7(n) +# define HEX(n) HEX_7(n) +# if COMPILER_VERSION_MINOR == 0 + PRINT *, 'INFO:compiler_version_MINOR_digit_7[0]' +# elif COMPILER_VERSION_MINOR == 1 + PRINT *, 'INFO:compiler_version_MINOR_digit_7[1]' +# elif COMPILER_VERSION_MINOR == 2 + PRINT *, 'INFO:compiler_version_MINOR_digit_7[2]' +# elif COMPILER_VERSION_MINOR == 3 + PRINT *, 'INFO:compiler_version_MINOR_digit_7[3]' +# elif COMPILER_VERSION_MINOR == 4 + PRINT *, 'INFO:compiler_version_MINOR_digit_7[4]' +# elif COMPILER_VERSION_MINOR == 5 + PRINT *, 'INFO:compiler_version_MINOR_digit_7[5]' +# elif COMPILER_VERSION_MINOR == 6 + PRINT *, 'INFO:compiler_version_MINOR_digit_7[6]' +# elif COMPILER_VERSION_MINOR == 7 + PRINT *, 'INFO:compiler_version_MINOR_digit_7[7]' +# elif COMPILER_VERSION_MINOR == 8 + PRINT *, 'INFO:compiler_version_MINOR_digit_7[8]' +# elif COMPILER_VERSION_MINOR == 9 + PRINT *, 'INFO:compiler_version_MINOR_digit_7[9]' +# endif + +# undef DEC +# undef HEX +# define DEC(n) DEC_8(n) +# define HEX(n) HEX_8(n) +# if COMPILER_VERSION_MINOR == 0 + PRINT *, 'INFO:compiler_version_MINOR_digit_8[0]' +# elif COMPILER_VERSION_MINOR == 1 + PRINT *, 'INFO:compiler_version_MINOR_digit_8[1]' +# elif COMPILER_VERSION_MINOR == 2 + PRINT *, 'INFO:compiler_version_MINOR_digit_8[2]' +# elif COMPILER_VERSION_MINOR == 3 + PRINT *, 'INFO:compiler_version_MINOR_digit_8[3]' +# elif COMPILER_VERSION_MINOR == 4 + PRINT *, 'INFO:compiler_version_MINOR_digit_8[4]' +# elif COMPILER_VERSION_MINOR == 5 + PRINT *, 'INFO:compiler_version_MINOR_digit_8[5]' +# elif COMPILER_VERSION_MINOR == 6 + PRINT *, 'INFO:compiler_version_MINOR_digit_8[6]' +# elif COMPILER_VERSION_MINOR == 7 + PRINT *, 'INFO:compiler_version_MINOR_digit_8[7]' +# elif COMPILER_VERSION_MINOR == 8 + PRINT *, 'INFO:compiler_version_MINOR_digit_8[8]' +# elif COMPILER_VERSION_MINOR == 9 + PRINT *, 'INFO:compiler_version_MINOR_digit_8[9]' +# endif + +#endif +#if defined(COMPILER_VERSION_PATCH) +# undef DEC +# undef HEX +# define DEC(n) DEC_1(n) +# define HEX(n) HEX_1(n) +# if COMPILER_VERSION_PATCH == 0 + PRINT *, 'INFO:compiler_version_PATCH_digit_1[0]' +# elif COMPILER_VERSION_PATCH == 1 + PRINT *, 'INFO:compiler_version_PATCH_digit_1[1]' +# elif COMPILER_VERSION_PATCH == 2 + PRINT *, 'INFO:compiler_version_PATCH_digit_1[2]' +# elif COMPILER_VERSION_PATCH == 3 + PRINT *, 'INFO:compiler_version_PATCH_digit_1[3]' +# elif COMPILER_VERSION_PATCH == 4 + PRINT *, 'INFO:compiler_version_PATCH_digit_1[4]' +# elif COMPILER_VERSION_PATCH == 5 + PRINT *, 'INFO:compiler_version_PATCH_digit_1[5]' +# elif COMPILER_VERSION_PATCH == 6 + PRINT *, 'INFO:compiler_version_PATCH_digit_1[6]' +# elif COMPILER_VERSION_PATCH == 7 + PRINT *, 'INFO:compiler_version_PATCH_digit_1[7]' +# elif COMPILER_VERSION_PATCH == 8 + PRINT *, 'INFO:compiler_version_PATCH_digit_1[8]' +# elif COMPILER_VERSION_PATCH == 9 + PRINT *, 'INFO:compiler_version_PATCH_digit_1[9]' +# endif + +# undef DEC +# undef HEX +# define DEC(n) DEC_2(n) +# define HEX(n) HEX_2(n) +# if COMPILER_VERSION_PATCH == 0 + PRINT *, 'INFO:compiler_version_PATCH_digit_2[0]' +# elif COMPILER_VERSION_PATCH == 1 + PRINT *, 'INFO:compiler_version_PATCH_digit_2[1]' +# elif COMPILER_VERSION_PATCH == 2 + PRINT *, 'INFO:compiler_version_PATCH_digit_2[2]' +# elif COMPILER_VERSION_PATCH == 3 + PRINT *, 'INFO:compiler_version_PATCH_digit_2[3]' +# elif COMPILER_VERSION_PATCH == 4 + PRINT *, 'INFO:compiler_version_PATCH_digit_2[4]' +# elif COMPILER_VERSION_PATCH == 5 + PRINT *, 'INFO:compiler_version_PATCH_digit_2[5]' +# elif COMPILER_VERSION_PATCH == 6 + PRINT *, 'INFO:compiler_version_PATCH_digit_2[6]' +# elif COMPILER_VERSION_PATCH == 7 + PRINT *, 'INFO:compiler_version_PATCH_digit_2[7]' +# elif COMPILER_VERSION_PATCH == 8 + PRINT *, 'INFO:compiler_version_PATCH_digit_2[8]' +# elif COMPILER_VERSION_PATCH == 9 + PRINT *, 'INFO:compiler_version_PATCH_digit_2[9]' +# endif + +# undef DEC +# undef HEX +# define DEC(n) DEC_3(n) +# define HEX(n) HEX_3(n) +# if COMPILER_VERSION_PATCH == 0 + PRINT *, 'INFO:compiler_version_PATCH_digit_3[0]' +# elif COMPILER_VERSION_PATCH == 1 + PRINT *, 'INFO:compiler_version_PATCH_digit_3[1]' +# elif COMPILER_VERSION_PATCH == 2 + PRINT *, 'INFO:compiler_version_PATCH_digit_3[2]' +# elif COMPILER_VERSION_PATCH == 3 + PRINT *, 'INFO:compiler_version_PATCH_digit_3[3]' +# elif COMPILER_VERSION_PATCH == 4 + PRINT *, 'INFO:compiler_version_PATCH_digit_3[4]' +# elif COMPILER_VERSION_PATCH == 5 + PRINT *, 'INFO:compiler_version_PATCH_digit_3[5]' +# elif COMPILER_VERSION_PATCH == 6 + PRINT *, 'INFO:compiler_version_PATCH_digit_3[6]' +# elif COMPILER_VERSION_PATCH == 7 + PRINT *, 'INFO:compiler_version_PATCH_digit_3[7]' +# elif COMPILER_VERSION_PATCH == 8 + PRINT *, 'INFO:compiler_version_PATCH_digit_3[8]' +# elif COMPILER_VERSION_PATCH == 9 + PRINT *, 'INFO:compiler_version_PATCH_digit_3[9]' +# endif + +# undef DEC +# undef HEX +# define DEC(n) DEC_4(n) +# define HEX(n) HEX_4(n) +# if COMPILER_VERSION_PATCH == 0 + PRINT *, 'INFO:compiler_version_PATCH_digit_4[0]' +# elif COMPILER_VERSION_PATCH == 1 + PRINT *, 'INFO:compiler_version_PATCH_digit_4[1]' +# elif COMPILER_VERSION_PATCH == 2 + PRINT *, 'INFO:compiler_version_PATCH_digit_4[2]' +# elif COMPILER_VERSION_PATCH == 3 + PRINT *, 'INFO:compiler_version_PATCH_digit_4[3]' +# elif COMPILER_VERSION_PATCH == 4 + PRINT *, 'INFO:compiler_version_PATCH_digit_4[4]' +# elif COMPILER_VERSION_PATCH == 5 + PRINT *, 'INFO:compiler_version_PATCH_digit_4[5]' +# elif COMPILER_VERSION_PATCH == 6 + PRINT *, 'INFO:compiler_version_PATCH_digit_4[6]' +# elif COMPILER_VERSION_PATCH == 7 + PRINT *, 'INFO:compiler_version_PATCH_digit_4[7]' +# elif COMPILER_VERSION_PATCH == 8 + PRINT *, 'INFO:compiler_version_PATCH_digit_4[8]' +# elif COMPILER_VERSION_PATCH == 9 + PRINT *, 'INFO:compiler_version_PATCH_digit_4[9]' +# endif + +# undef DEC +# undef HEX +# define DEC(n) DEC_5(n) +# define HEX(n) HEX_5(n) +# if COMPILER_VERSION_PATCH == 0 + PRINT *, 'INFO:compiler_version_PATCH_digit_5[0]' +# elif COMPILER_VERSION_PATCH == 1 + PRINT *, 'INFO:compiler_version_PATCH_digit_5[1]' +# elif COMPILER_VERSION_PATCH == 2 + PRINT *, 'INFO:compiler_version_PATCH_digit_5[2]' +# elif COMPILER_VERSION_PATCH == 3 + PRINT *, 'INFO:compiler_version_PATCH_digit_5[3]' +# elif COMPILER_VERSION_PATCH == 4 + PRINT *, 'INFO:compiler_version_PATCH_digit_5[4]' +# elif COMPILER_VERSION_PATCH == 5 + PRINT *, 'INFO:compiler_version_PATCH_digit_5[5]' +# elif COMPILER_VERSION_PATCH == 6 + PRINT *, 'INFO:compiler_version_PATCH_digit_5[6]' +# elif COMPILER_VERSION_PATCH == 7 + PRINT *, 'INFO:compiler_version_PATCH_digit_5[7]' +# elif COMPILER_VERSION_PATCH == 8 + PRINT *, 'INFO:compiler_version_PATCH_digit_5[8]' +# elif COMPILER_VERSION_PATCH == 9 + PRINT *, 'INFO:compiler_version_PATCH_digit_5[9]' +# endif + +# undef DEC +# undef HEX +# define DEC(n) DEC_6(n) +# define HEX(n) HEX_6(n) +# if COMPILER_VERSION_PATCH == 0 + PRINT *, 'INFO:compiler_version_PATCH_digit_6[0]' +# elif COMPILER_VERSION_PATCH == 1 + PRINT *, 'INFO:compiler_version_PATCH_digit_6[1]' +# elif COMPILER_VERSION_PATCH == 2 + PRINT *, 'INFO:compiler_version_PATCH_digit_6[2]' +# elif COMPILER_VERSION_PATCH == 3 + PRINT *, 'INFO:compiler_version_PATCH_digit_6[3]' +# elif COMPILER_VERSION_PATCH == 4 + PRINT *, 'INFO:compiler_version_PATCH_digit_6[4]' +# elif COMPILER_VERSION_PATCH == 5 + PRINT *, 'INFO:compiler_version_PATCH_digit_6[5]' +# elif COMPILER_VERSION_PATCH == 6 + PRINT *, 'INFO:compiler_version_PATCH_digit_6[6]' +# elif COMPILER_VERSION_PATCH == 7 + PRINT *, 'INFO:compiler_version_PATCH_digit_6[7]' +# elif COMPILER_VERSION_PATCH == 8 + PRINT *, 'INFO:compiler_version_PATCH_digit_6[8]' +# elif COMPILER_VERSION_PATCH == 9 + PRINT *, 'INFO:compiler_version_PATCH_digit_6[9]' +# endif + +# undef DEC +# undef HEX +# define DEC(n) DEC_7(n) +# define HEX(n) HEX_7(n) +# if COMPILER_VERSION_PATCH == 0 + PRINT *, 'INFO:compiler_version_PATCH_digit_7[0]' +# elif COMPILER_VERSION_PATCH == 1 + PRINT *, 'INFO:compiler_version_PATCH_digit_7[1]' +# elif COMPILER_VERSION_PATCH == 2 + PRINT *, 'INFO:compiler_version_PATCH_digit_7[2]' +# elif COMPILER_VERSION_PATCH == 3 + PRINT *, 'INFO:compiler_version_PATCH_digit_7[3]' +# elif COMPILER_VERSION_PATCH == 4 + PRINT *, 'INFO:compiler_version_PATCH_digit_7[4]' +# elif COMPILER_VERSION_PATCH == 5 + PRINT *, 'INFO:compiler_version_PATCH_digit_7[5]' +# elif COMPILER_VERSION_PATCH == 6 + PRINT *, 'INFO:compiler_version_PATCH_digit_7[6]' +# elif COMPILER_VERSION_PATCH == 7 + PRINT *, 'INFO:compiler_version_PATCH_digit_7[7]' +# elif COMPILER_VERSION_PATCH == 8 + PRINT *, 'INFO:compiler_version_PATCH_digit_7[8]' +# elif COMPILER_VERSION_PATCH == 9 + PRINT *, 'INFO:compiler_version_PATCH_digit_7[9]' +# endif + +# undef DEC +# undef HEX +# define DEC(n) DEC_8(n) +# define HEX(n) HEX_8(n) +# if COMPILER_VERSION_PATCH == 0 + PRINT *, 'INFO:compiler_version_PATCH_digit_8[0]' +# elif COMPILER_VERSION_PATCH == 1 + PRINT *, 'INFO:compiler_version_PATCH_digit_8[1]' +# elif COMPILER_VERSION_PATCH == 2 + PRINT *, 'INFO:compiler_version_PATCH_digit_8[2]' +# elif COMPILER_VERSION_PATCH == 3 + PRINT *, 'INFO:compiler_version_PATCH_digit_8[3]' +# elif COMPILER_VERSION_PATCH == 4 + PRINT *, 'INFO:compiler_version_PATCH_digit_8[4]' +# elif COMPILER_VERSION_PATCH == 5 + PRINT *, 'INFO:compiler_version_PATCH_digit_8[5]' +# elif COMPILER_VERSION_PATCH == 6 + PRINT *, 'INFO:compiler_version_PATCH_digit_8[6]' +# elif COMPILER_VERSION_PATCH == 7 + PRINT *, 'INFO:compiler_version_PATCH_digit_8[7]' +# elif COMPILER_VERSION_PATCH == 8 + PRINT *, 'INFO:compiler_version_PATCH_digit_8[8]' +# elif COMPILER_VERSION_PATCH == 9 + PRINT *, 'INFO:compiler_version_PATCH_digit_8[9]' +# endif + +#endif +#if defined(COMPILER_VERSION_TWEAK) +# undef DEC +# undef HEX +# define DEC(n) DEC_1(n) +# define HEX(n) HEX_1(n) +# if COMPILER_VERSION_TWEAK == 0 + PRINT *, 'INFO:compiler_version_TWEAK_digit_1[0]' +# elif COMPILER_VERSION_TWEAK == 1 + PRINT *, 'INFO:compiler_version_TWEAK_digit_1[1]' +# elif COMPILER_VERSION_TWEAK == 2 + PRINT *, 'INFO:compiler_version_TWEAK_digit_1[2]' +# elif COMPILER_VERSION_TWEAK == 3 + PRINT *, 'INFO:compiler_version_TWEAK_digit_1[3]' +# elif COMPILER_VERSION_TWEAK == 4 + PRINT *, 'INFO:compiler_version_TWEAK_digit_1[4]' +# elif COMPILER_VERSION_TWEAK == 5 + PRINT *, 'INFO:compiler_version_TWEAK_digit_1[5]' +# elif COMPILER_VERSION_TWEAK == 6 + PRINT *, 'INFO:compiler_version_TWEAK_digit_1[6]' +# elif COMPILER_VERSION_TWEAK == 7 + PRINT *, 'INFO:compiler_version_TWEAK_digit_1[7]' +# elif COMPILER_VERSION_TWEAK == 8 + PRINT *, 'INFO:compiler_version_TWEAK_digit_1[8]' +# elif COMPILER_VERSION_TWEAK == 9 + PRINT *, 'INFO:compiler_version_TWEAK_digit_1[9]' +# endif + +# undef DEC +# undef HEX +# define DEC(n) DEC_2(n) +# define HEX(n) HEX_2(n) +# if COMPILER_VERSION_TWEAK == 0 + PRINT *, 'INFO:compiler_version_TWEAK_digit_2[0]' +# elif COMPILER_VERSION_TWEAK == 1 + PRINT *, 'INFO:compiler_version_TWEAK_digit_2[1]' +# elif COMPILER_VERSION_TWEAK == 2 + PRINT *, 'INFO:compiler_version_TWEAK_digit_2[2]' +# elif COMPILER_VERSION_TWEAK == 3 + PRINT *, 'INFO:compiler_version_TWEAK_digit_2[3]' +# elif COMPILER_VERSION_TWEAK == 4 + PRINT *, 'INFO:compiler_version_TWEAK_digit_2[4]' +# elif COMPILER_VERSION_TWEAK == 5 + PRINT *, 'INFO:compiler_version_TWEAK_digit_2[5]' +# elif COMPILER_VERSION_TWEAK == 6 + PRINT *, 'INFO:compiler_version_TWEAK_digit_2[6]' +# elif COMPILER_VERSION_TWEAK == 7 + PRINT *, 'INFO:compiler_version_TWEAK_digit_2[7]' +# elif COMPILER_VERSION_TWEAK == 8 + PRINT *, 'INFO:compiler_version_TWEAK_digit_2[8]' +# elif COMPILER_VERSION_TWEAK == 9 + PRINT *, 'INFO:compiler_version_TWEAK_digit_2[9]' +# endif + +# undef DEC +# undef HEX +# define DEC(n) DEC_3(n) +# define HEX(n) HEX_3(n) +# if COMPILER_VERSION_TWEAK == 0 + PRINT *, 'INFO:compiler_version_TWEAK_digit_3[0]' +# elif COMPILER_VERSION_TWEAK == 1 + PRINT *, 'INFO:compiler_version_TWEAK_digit_3[1]' +# elif COMPILER_VERSION_TWEAK == 2 + PRINT *, 'INFO:compiler_version_TWEAK_digit_3[2]' +# elif COMPILER_VERSION_TWEAK == 3 + PRINT *, 'INFO:compiler_version_TWEAK_digit_3[3]' +# elif COMPILER_VERSION_TWEAK == 4 + PRINT *, 'INFO:compiler_version_TWEAK_digit_3[4]' +# elif COMPILER_VERSION_TWEAK == 5 + PRINT *, 'INFO:compiler_version_TWEAK_digit_3[5]' +# elif COMPILER_VERSION_TWEAK == 6 + PRINT *, 'INFO:compiler_version_TWEAK_digit_3[6]' +# elif COMPILER_VERSION_TWEAK == 7 + PRINT *, 'INFO:compiler_version_TWEAK_digit_3[7]' +# elif COMPILER_VERSION_TWEAK == 8 + PRINT *, 'INFO:compiler_version_TWEAK_digit_3[8]' +# elif COMPILER_VERSION_TWEAK == 9 + PRINT *, 'INFO:compiler_version_TWEAK_digit_3[9]' +# endif + +# undef DEC +# undef HEX +# define DEC(n) DEC_4(n) +# define HEX(n) HEX_4(n) +# if COMPILER_VERSION_TWEAK == 0 + PRINT *, 'INFO:compiler_version_TWEAK_digit_4[0]' +# elif COMPILER_VERSION_TWEAK == 1 + PRINT *, 'INFO:compiler_version_TWEAK_digit_4[1]' +# elif COMPILER_VERSION_TWEAK == 2 + PRINT *, 'INFO:compiler_version_TWEAK_digit_4[2]' +# elif COMPILER_VERSION_TWEAK == 3 + PRINT *, 'INFO:compiler_version_TWEAK_digit_4[3]' +# elif COMPILER_VERSION_TWEAK == 4 + PRINT *, 'INFO:compiler_version_TWEAK_digit_4[4]' +# elif COMPILER_VERSION_TWEAK == 5 + PRINT *, 'INFO:compiler_version_TWEAK_digit_4[5]' +# elif COMPILER_VERSION_TWEAK == 6 + PRINT *, 'INFO:compiler_version_TWEAK_digit_4[6]' +# elif COMPILER_VERSION_TWEAK == 7 + PRINT *, 'INFO:compiler_version_TWEAK_digit_4[7]' +# elif COMPILER_VERSION_TWEAK == 8 + PRINT *, 'INFO:compiler_version_TWEAK_digit_4[8]' +# elif COMPILER_VERSION_TWEAK == 9 + PRINT *, 'INFO:compiler_version_TWEAK_digit_4[9]' +# endif + +# undef DEC +# undef HEX +# define DEC(n) DEC_5(n) +# define HEX(n) HEX_5(n) +# if COMPILER_VERSION_TWEAK == 0 + PRINT *, 'INFO:compiler_version_TWEAK_digit_5[0]' +# elif COMPILER_VERSION_TWEAK == 1 + PRINT *, 'INFO:compiler_version_TWEAK_digit_5[1]' +# elif COMPILER_VERSION_TWEAK == 2 + PRINT *, 'INFO:compiler_version_TWEAK_digit_5[2]' +# elif COMPILER_VERSION_TWEAK == 3 + PRINT *, 'INFO:compiler_version_TWEAK_digit_5[3]' +# elif COMPILER_VERSION_TWEAK == 4 + PRINT *, 'INFO:compiler_version_TWEAK_digit_5[4]' +# elif COMPILER_VERSION_TWEAK == 5 + PRINT *, 'INFO:compiler_version_TWEAK_digit_5[5]' +# elif COMPILER_VERSION_TWEAK == 6 + PRINT *, 'INFO:compiler_version_TWEAK_digit_5[6]' +# elif COMPILER_VERSION_TWEAK == 7 + PRINT *, 'INFO:compiler_version_TWEAK_digit_5[7]' +# elif COMPILER_VERSION_TWEAK == 8 + PRINT *, 'INFO:compiler_version_TWEAK_digit_5[8]' +# elif COMPILER_VERSION_TWEAK == 9 + PRINT *, 'INFO:compiler_version_TWEAK_digit_5[9]' +# endif + +# undef DEC +# undef HEX +# define DEC(n) DEC_6(n) +# define HEX(n) HEX_6(n) +# if COMPILER_VERSION_TWEAK == 0 + PRINT *, 'INFO:compiler_version_TWEAK_digit_6[0]' +# elif COMPILER_VERSION_TWEAK == 1 + PRINT *, 'INFO:compiler_version_TWEAK_digit_6[1]' +# elif COMPILER_VERSION_TWEAK == 2 + PRINT *, 'INFO:compiler_version_TWEAK_digit_6[2]' +# elif COMPILER_VERSION_TWEAK == 3 + PRINT *, 'INFO:compiler_version_TWEAK_digit_6[3]' +# elif COMPILER_VERSION_TWEAK == 4 + PRINT *, 'INFO:compiler_version_TWEAK_digit_6[4]' +# elif COMPILER_VERSION_TWEAK == 5 + PRINT *, 'INFO:compiler_version_TWEAK_digit_6[5]' +# elif COMPILER_VERSION_TWEAK == 6 + PRINT *, 'INFO:compiler_version_TWEAK_digit_6[6]' +# elif COMPILER_VERSION_TWEAK == 7 + PRINT *, 'INFO:compiler_version_TWEAK_digit_6[7]' +# elif COMPILER_VERSION_TWEAK == 8 + PRINT *, 'INFO:compiler_version_TWEAK_digit_6[8]' +# elif COMPILER_VERSION_TWEAK == 9 + PRINT *, 'INFO:compiler_version_TWEAK_digit_6[9]' +# endif + +# undef DEC +# undef HEX +# define DEC(n) DEC_7(n) +# define HEX(n) HEX_7(n) +# if COMPILER_VERSION_TWEAK == 0 + PRINT *, 'INFO:compiler_version_TWEAK_digit_7[0]' +# elif COMPILER_VERSION_TWEAK == 1 + PRINT *, 'INFO:compiler_version_TWEAK_digit_7[1]' +# elif COMPILER_VERSION_TWEAK == 2 + PRINT *, 'INFO:compiler_version_TWEAK_digit_7[2]' +# elif COMPILER_VERSION_TWEAK == 3 + PRINT *, 'INFO:compiler_version_TWEAK_digit_7[3]' +# elif COMPILER_VERSION_TWEAK == 4 + PRINT *, 'INFO:compiler_version_TWEAK_digit_7[4]' +# elif COMPILER_VERSION_TWEAK == 5 + PRINT *, 'INFO:compiler_version_TWEAK_digit_7[5]' +# elif COMPILER_VERSION_TWEAK == 6 + PRINT *, 'INFO:compiler_version_TWEAK_digit_7[6]' +# elif COMPILER_VERSION_TWEAK == 7 + PRINT *, 'INFO:compiler_version_TWEAK_digit_7[7]' +# elif COMPILER_VERSION_TWEAK == 8 + PRINT *, 'INFO:compiler_version_TWEAK_digit_7[8]' +# elif COMPILER_VERSION_TWEAK == 9 + PRINT *, 'INFO:compiler_version_TWEAK_digit_7[9]' +# endif + +# undef DEC +# undef HEX +# define DEC(n) DEC_8(n) +# define HEX(n) HEX_8(n) +# if COMPILER_VERSION_TWEAK == 0 + PRINT *, 'INFO:compiler_version_TWEAK_digit_8[0]' +# elif COMPILER_VERSION_TWEAK == 1 + PRINT *, 'INFO:compiler_version_TWEAK_digit_8[1]' +# elif COMPILER_VERSION_TWEAK == 2 + PRINT *, 'INFO:compiler_version_TWEAK_digit_8[2]' +# elif COMPILER_VERSION_TWEAK == 3 + PRINT *, 'INFO:compiler_version_TWEAK_digit_8[3]' +# elif COMPILER_VERSION_TWEAK == 4 + PRINT *, 'INFO:compiler_version_TWEAK_digit_8[4]' +# elif COMPILER_VERSION_TWEAK == 5 + PRINT *, 'INFO:compiler_version_TWEAK_digit_8[5]' +# elif COMPILER_VERSION_TWEAK == 6 + PRINT *, 'INFO:compiler_version_TWEAK_digit_8[6]' +# elif COMPILER_VERSION_TWEAK == 7 + PRINT *, 'INFO:compiler_version_TWEAK_digit_8[7]' +# elif COMPILER_VERSION_TWEAK == 8 + PRINT *, 'INFO:compiler_version_TWEAK_digit_8[8]' +# elif COMPILER_VERSION_TWEAK == 9 + PRINT *, 'INFO:compiler_version_TWEAK_digit_8[9]' +# endif + +#endif + + END diff --git a/build-baseline/CMakeFiles/3.31.6/CompilerIdFortran/a.out b/build-baseline/CMakeFiles/3.31.6/CompilerIdFortran/a.out new file mode 100755 index 0000000000000000000000000000000000000000..501630c2607269f726d7a57a5a28c9abc8eb8d04 GIT binary patch literal 16224 zcmeHOdu$xV8K1L#V93Ll;6NZiP9Y#%;*DQ1=87I!atFMx~T}n<2NuBP2elIC!C~0P(RVHV^)v&CX&c z0AI#sLhlmp0vm^GOtsHvw@Xt zVG}4Lf2>!+57UbJ-@N$qkDog)@%Gj?Umd&X!hPG@_jkQZG0+EXu%JB+3FNVUGW^g+ z^#2a12^rD@q1U5Ga~1USW>I3>v&mQFkY5Y(h46Eh4iIFMV=J@CpUNS>FNgg1Iplu^ z`7-z&S9E^TJEnCyo+0v@lY4r_e zwGJHDbgb>|>uv7Qn=pee{#OE{P5hPdaVRt;>?l-lywt$&*}H!V!?27kfPsaw^cmrk zaMYd&JQj@f51^>SGJNzNxFVOZ^QE4ygLM5#ED&}Hd7UG9jg*)Bgr4NYzjK+8<2fNi zbHPE2+PxF$2X66f;oFKrsW~LRkwgRbM9vNU$N8&HROj;cj#aS%DGA8aSC>5Kj*JU9;aT1COF@ZJWja| z?c)6RkjJUhp+`*n!5zT!g6*mOxO4o#wf^z<{bL_Yuj^~Cov7XC-@bZy4m4y@E4a@L zY86ZG<92~4z+NS)meOp$)4QiIYV1s{b^;1~&kAG;)^>17K z959nr(5=ZJ{CnB`4DhZ^fNkQV|Dl^fxdD9qcO3RWrl9d#=VOqqN50Br_HJdzGMVck z>fWu>z;EHT8K~j>(Z8Jw{o{Kle+_1meE}b}{M+YU$-}&k+Vx6{Y#(RcXE|{`)}IeJ>wX5#SzF#7E{yY66^U?S3g=d( z#r|v-IPFfH=L_T9s3H-Lrf^PCTEwXoIPbwTqOCt~6vjD8MIxLj-duisp8njHw_kDA zop$2P6vlZ}MIxM?3a3?Ru|I7BXPy(M9Ii(N&eMxjB*KX)oWCEn_2*sAx_=4J(6+oS zD~xkMMIszc;iQxn`(p^4)lQsC3*&@UB*K~EY2n9bj?yB|T!Hg8Je%A4b46hsmx@F< zI~C3^j@a_{7-!v4Cr+X;&I2kE;lvcqB}$9^xm4h|oj5-%j8m&35ss#C-u$nvKW}l? z{SdtCu;uNs!Z`a>B*K~EhnXLr8b1QH? zs8W##XNnIeetiD)so7h^d6l#7pEz;OFO2h&ibOa&70!UtB2G}?R6B863gcX@A`wnZ z;e0V;>(7^*b^j42w6?rmQyAwH6^U>(h4W*j#s1tYa5gz{ZYqp3t|Af66hA%q@wq^0 z5oZOkJNE77v(vG|p7Gnh^pB^f{o6K7Z)=C@U%;eFH02E*JT5lTI10~I1);B2DJ{>+0(K1;sGhy z2%jrAaY-T)FyLERbmJxw#b&186iTMx`{8{YkW*IMU{w(qG=Fei6H-8qpy!o@(<;|bP zE?@rEHTSjp&GDCeyjbn><QbyPDZK>00ps`0nU6A=AkeW zCEu!Fz6{0ae+~R5zz&*h7K~}Y?@@^RFg%U0=J}orI>+Y28tOdW}ujXVg`yC_~tS|>)dEv8_un;;95B>#Q$5cCXZ|Hu#mn~R^UU0 zC~~14d|2Y;Dx3g8Ib9G&>+P0Ep5{1bNS@Z+NjGy{@TbQzaWr`Z-Y;RnIUkn&WrD){ zNM2r%dYo!ush9187xla>mUNM%M5G(LU#@qfr_d2;fb%;n_;v})X@amCDIj@5HiY^$ zA?@HrCohD5w&ckUzRB?ZL36nXzHxHiE91czTFz6urX^n{_3$pA>!}|y{5M8uy|*)9 zqdeXnl3pR{prkiR>hvqbm-~dpn%35fz2|S}Psfb3x3*rZ*J`R8)10lly{(%=-J+3fMSm9Ppn;pi9op?umQua|N<&w%Bn6aKs4 ztnl~*FNZ0^Ro5=Ih|zf4)`aj{dF=Ui@X`M-d zoZ~J5axa6k$VZlf8X#W?{i1y$=Sg)Xx3}9OcMjT@comwhsMCkT0V~Sm+**FDO}TjuTStmvTB!Nd8`q_;ApnJ!-s>{alb| zYfrVbU+g1GLF;nZujBT|xAV#z_URn*d$_!UohAn$!QY4S61dAa&M&rpAZgTUaafri z=nv~gV2FVrWuylOwE?CU+UrJCAHb#dxT-xE*M}nU{y;wG-ovmiJ{cI*Lop*c$_A5xC@jQJN28Q9GZ z!%sLUMa?ap)i}Vp`EVdL%(UQW3?KwGl0qY2a@!akbjeU8fDW>jh!{-c&D5Z(4aI>q zLL=~>j~6W&=b6w#!*Xa32O$V?!c~lM;X!pk2t>mJ&?Zcz28V}faB@ZAoUva@z7~h` zM!3Y`<&2lb^1e-!?pspLZK;m*9Qff}jr^OWKT$8}tcB)hBx{6<)&DB#PgLGM$sF#% z_Ja3)t3S;^;ZO4~ zqV(KI_RjO?Md?q+k9nn~q$?Z_)Ng6U_CN*mPyRF?CE7rSk~+e%Hyr-gEfY!^?f0)lYv_+4=6~`h`W0xb{>&#$YXl`6DK+tl$M+2wi}30B z$s_#l#{=e(%3PLpyHDOr)9(NK2!-mY7bpM@OhKk4pp<% d$bt8eBRJubAwITc^M4I*Oi*wiq_sF$_CJK?1+D-9 literal 0 HcmV?d00001 diff --git a/build-baseline/CMakeFiles/CMakeConfigureLog.yaml b/build-baseline/CMakeFiles/CMakeConfigureLog.yaml new file mode 100644 index 000000000..3145fc3aa --- /dev/null +++ b/build-baseline/CMakeFiles/CMakeConfigureLog.yaml @@ -0,0 +1,964 @@ + +--- +events: + - + kind: "message-v1" + backtrace: + - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineSystem.cmake:205 (message)" + - "CMakeLists.txt:3 (project)" + message: | + The system is: Linux - 6.17.0-1015-azure - x86_64 + - + kind: "message-v1" + backtrace: + - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerId.cmake:17 (message)" + - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerId.cmake:64 (__determine_compiler_id_test)" + - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCCompiler.cmake:123 (CMAKE_DETERMINE_COMPILER_ID)" + - "CMakeLists.txt:3 (project)" + message: | + Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded. + Compiler: /usr/bin/cc + Build flags: + Id flags: + + The output was: + 0 + + + Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "a.out" + + The C compiler identification is GNU, found in: + /tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/3.31.6/CompilerIdC/a.out + + - + kind: "message-v1" + backtrace: + - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerId.cmake:17 (message)" + - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerId.cmake:64 (__determine_compiler_id_test)" + - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCXXCompiler.cmake:126 (CMAKE_DETERMINE_COMPILER_ID)" + - "CMakeLists.txt:3 (project)" + message: | + Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded. + Compiler: /usr/bin/c++ + Build flags: + Id flags: + + The output was: + 0 + + + Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "a.out" + + The CXX compiler identification is GNU, found in: + /tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/3.31.6/CompilerIdCXX/a.out + + - + kind: "message-v1" + backtrace: + - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerId.cmake:17 (message)" + - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerId.cmake:64 (__determine_compiler_id_test)" + - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineFortranCompiler.cmake:190 (CMAKE_DETERMINE_COMPILER_ID)" + - "CMakeLists.txt:3 (project)" + message: | + Compiling the Fortran compiler identification source file "CMakeFortranCompilerId.F" succeeded. + Compiler: /usr/bin/gfortran + Build flags: + Id flags: -v + + The output was: + 0 + Driving: /usr/bin/gfortran -v CMakeFortranCompilerId.F -l gfortran -l m -shared-libgcc + Using built-in specs. + COLLECT_GCC=/usr/bin/gfortran + COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper + OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa + OFFLOAD_TARGET_DEFAULT=1 + Target: x86_64-linux-gnu + Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04.1' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2 + Thread model: posix + Supported LTO compression algorithms: zlib zstd + gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1) + COLLECT_GCC_OPTIONS='-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'a-' + /usr/libexec/gcc/x86_64-linux-gnu/13/f951 CMakeFortranCompilerId.F -ffixed-form -cpp=/tmp/cchf7utn.f90 -quiet -v -imultiarch x86_64-linux-gnu CMakeFortranCompilerId.F -quiet -dumpdir a- -dumpbase CMakeFortranCompilerId.F -dumpbase-ext .F -mtune=generic -march=x86-64 -version -fintrinsic-modules-path /usr/lib/gcc/x86_64-linux-gnu/13/finclude -fpre-include=/usr/include/finclude/x86_64-linux-gnu/math-vector-fortran.h -o /tmp/ccKbsFm2.s + GNU Fortran (Ubuntu 13.3.0-6ubuntu2~24.04.1) version 13.3.0 (x86_64-linux-gnu) + compiled by GNU C version 13.3.0, GMP version 6.3.0, MPFR version 4.2.1, MPC version 1.3.1, isl version isl-0.26-GMP + + GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 + ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu" + ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed/x86_64-linux-gnu" + ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed" + ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/../../../../x86_64-linux-gnu/include" + #include "..." search starts here: + #include <...> search starts here: + /usr/lib/gcc/x86_64-linux-gnu/13/finclude + /usr/lib/gcc/x86_64-linux-gnu/13/include + /usr/local/include + /usr/include/x86_64-linux-gnu + /usr/include + End of search list. + COLLECT_GCC_OPTIONS='-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'a-' + as -v --64 -o /tmp/ccTxw3Nk.o /tmp/ccKbsFm2.s + GNU assembler version 2.42 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.42 + Reading specs from /usr/lib/gcc/x86_64-linux-gnu/13/libgfortran.spec + rename spec lib to liborig + COLLECT_GCC_OPTIONS='-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'a-' + COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/ + LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/ + COLLECT_GCC_OPTIONS='-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'a.' + /usr/libexec/gcc/x86_64-linux-gnu/13/collect2 -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/ccY7SCYT.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lquadmath -plugin-opt=-pass-through=-lm -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. /tmp/ccTxw3Nk.o -lgfortran -lm -lgcc_s -lgcc --as-needed -lquadmath --no-as-needed -lm -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o + COLLECT_GCC_OPTIONS='-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'a.' + + + Compilation of the Fortran compiler identification source "CMakeFortranCompilerId.F" produced "a.out" + + The Fortran compiler identification is GNU, found in: + /tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/3.31.6/CompilerIdFortran/a.out + + - + kind: "try_compile-v1" + backtrace: + - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerABI.cmake:74 (try_compile)" + - "/usr/local/share/cmake-3.31/Modules/CMakeTestCCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:3 (project)" + checks: + - "Detecting C compiler ABI info" + directories: + source: "/tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-Cqp6Wn" + binary: "/tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-Cqp6Wn" + cmakeVariables: + CMAKE_C_FLAGS: "" + CMAKE_C_FLAGS_DEBUG: "-g" + CMAKE_EXE_LINKER_FLAGS: "" + buildResult: + variable: "CMAKE_C_ABI_COMPILED" + cached: true + stdout: | + Change Dir: '/tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-Cqp6Wn' + + Run Build Command(s): /usr/local/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_27bbf/fast + /usr/bin/gmake -f CMakeFiles/cmTC_27bbf.dir/build.make CMakeFiles/cmTC_27bbf.dir/build + gmake[1]: Entering directory '/tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-Cqp6Wn' + Building C object CMakeFiles/cmTC_27bbf.dir/CMakeCCompilerABI.c.o + /usr/bin/cc -v -o CMakeFiles/cmTC_27bbf.dir/CMakeCCompilerABI.c.o -c /usr/local/share/cmake-3.31/Modules/CMakeCCompilerABI.c + Using built-in specs. + COLLECT_GCC=/usr/bin/cc + OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa + OFFLOAD_TARGET_DEFAULT=1 + Target: x86_64-linux-gnu + Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04.1' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2 + Thread model: posix + Supported LTO compression algorithms: zlib zstd + gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1) + COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_27bbf.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_27bbf.dir/' + /usr/libexec/gcc/x86_64-linux-gnu/13/cc1 -quiet -v -imultiarch x86_64-linux-gnu /usr/local/share/cmake-3.31/Modules/CMakeCCompilerABI.c -quiet -dumpdir CMakeFiles/cmTC_27bbf.dir/ -dumpbase CMakeCCompilerABI.c.c -dumpbase-ext .c -mtune=generic -march=x86-64 -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/cczzyZYM.s + GNU C17 (Ubuntu 13.3.0-6ubuntu2~24.04.1) version 13.3.0 (x86_64-linux-gnu) + compiled by GNU C version 13.3.0, GMP version 6.3.0, MPFR version 4.2.1, MPC version 1.3.1, isl version isl-0.26-GMP + + GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 + ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu" + ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed/x86_64-linux-gnu" + ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed" + ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/../../../../x86_64-linux-gnu/include" + #include "..." search starts here: + #include <...> search starts here: + /usr/lib/gcc/x86_64-linux-gnu/13/include + /usr/local/include + /usr/include/x86_64-linux-gnu + /usr/include + End of search list. + Compiler executable checksum: b220a7f1a1f69970d969d254ad9ec166 + COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_27bbf.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_27bbf.dir/' + as -v --64 -o CMakeFiles/cmTC_27bbf.dir/CMakeCCompilerABI.c.o /tmp/cczzyZYM.s + GNU assembler version 2.42 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.42 + COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/ + LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/ + COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_27bbf.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_27bbf.dir/CMakeCCompilerABI.c.' + Linking C executable cmTC_27bbf + /usr/local/bin/cmake -E cmake_link_script CMakeFiles/cmTC_27bbf.dir/link.txt --verbose=1 + Using built-in specs. + COLLECT_GCC=/usr/bin/cc + COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper + OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa + OFFLOAD_TARGET_DEFAULT=1 + Target: x86_64-linux-gnu + Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04.1' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2 + Thread model: posix + Supported LTO compression algorithms: zlib zstd + gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1) + COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/ + LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/ + COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_27bbf' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_27bbf.' + /usr/libexec/gcc/x86_64-linux-gnu/13/collect2 -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/ccWWXbmf.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_27bbf /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. -v CMakeFiles/cmTC_27bbf.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o + collect2 version 13.3.0 + /usr/bin/ld -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/ccWWXbmf.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_27bbf /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. -v CMakeFiles/cmTC_27bbf.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o + GNU ld (GNU Binutils for Ubuntu) 2.42 + COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_27bbf' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_27bbf.' + /usr/bin/cc -v -Wl,-v CMakeFiles/cmTC_27bbf.dir/CMakeCCompilerABI.c.o -o cmTC_27bbf + gmake[1]: Leaving directory '/tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-Cqp6Wn' + + exitCode: 0 + - + kind: "message-v1" + backtrace: + - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerABI.cmake:182 (message)" + - "/usr/local/share/cmake-3.31/Modules/CMakeTestCCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:3 (project)" + message: | + Parsed C implicit include dir info: rv=done + found start of include info + found start of implicit include info + add: [/usr/lib/gcc/x86_64-linux-gnu/13/include] + add: [/usr/local/include] + add: [/usr/include/x86_64-linux-gnu] + add: [/usr/include] + end of search list found + collapse include dir [/usr/lib/gcc/x86_64-linux-gnu/13/include] ==> [/usr/lib/gcc/x86_64-linux-gnu/13/include] + collapse include dir [/usr/local/include] ==> [/usr/local/include] + collapse include dir [/usr/include/x86_64-linux-gnu] ==> [/usr/include/x86_64-linux-gnu] + collapse include dir [/usr/include] ==> [/usr/include] + implicit include dirs: [/usr/lib/gcc/x86_64-linux-gnu/13/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include] + + + - + kind: "message-v1" + backtrace: + - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerABI.cmake:218 (message)" + - "/usr/local/share/cmake-3.31/Modules/CMakeTestCCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:3 (project)" + message: | + Parsed C implicit link information: + link line regex: [^( *|.*[/\\])(ld[0-9]*(\\.[a-z]+)?|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)] + linker tool regex: [^[ ]*(->|")?[ ]*(([^"]*[/\\])?(ld[0-9]*(\\.[a-z]+)?))("|,| |$)] + ignore line: [Change Dir: '/tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-Cqp6Wn'] + ignore line: [] + ignore line: [Run Build Command(s): /usr/local/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_27bbf/fast] + ignore line: [/usr/bin/gmake -f CMakeFiles/cmTC_27bbf.dir/build.make CMakeFiles/cmTC_27bbf.dir/build] + ignore line: [gmake[1]: Entering directory '/tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-Cqp6Wn'] + ignore line: [Building C object CMakeFiles/cmTC_27bbf.dir/CMakeCCompilerABI.c.o] + ignore line: [/usr/bin/cc -v -o CMakeFiles/cmTC_27bbf.dir/CMakeCCompilerABI.c.o -c /usr/local/share/cmake-3.31/Modules/CMakeCCompilerABI.c] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/cc] + ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa] + ignore line: [OFFLOAD_TARGET_DEFAULT=1] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04.1' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c ada c++ go d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2] + ignore line: [Thread model: posix] + ignore line: [Supported LTO compression algorithms: zlib zstd] + ignore line: [gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1) ] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_27bbf.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_27bbf.dir/'] + ignore line: [ /usr/libexec/gcc/x86_64-linux-gnu/13/cc1 -quiet -v -imultiarch x86_64-linux-gnu /usr/local/share/cmake-3.31/Modules/CMakeCCompilerABI.c -quiet -dumpdir CMakeFiles/cmTC_27bbf.dir/ -dumpbase CMakeCCompilerABI.c.c -dumpbase-ext .c -mtune=generic -march=x86-64 -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/cczzyZYM.s] + ignore line: [GNU C17 (Ubuntu 13.3.0-6ubuntu2~24.04.1) version 13.3.0 (x86_64-linux-gnu)] + ignore line: [ compiled by GNU C version 13.3.0 GMP version 6.3.0 MPFR version 4.2.1 MPC version 1.3.1 isl version isl-0.26-GMP] + ignore line: [] + ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072] + ignore line: [ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed/x86_64-linux-gnu"] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed"] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/../../../../x86_64-linux-gnu/include"] + ignore line: [#include "..." search starts here:] + ignore line: [#include <...> search starts here:] + ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/13/include] + ignore line: [ /usr/local/include] + ignore line: [ /usr/include/x86_64-linux-gnu] + ignore line: [ /usr/include] + ignore line: [End of search list.] + ignore line: [Compiler executable checksum: b220a7f1a1f69970d969d254ad9ec166] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_27bbf.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_27bbf.dir/'] + ignore line: [ as -v --64 -o CMakeFiles/cmTC_27bbf.dir/CMakeCCompilerABI.c.o /tmp/cczzyZYM.s] + ignore line: [GNU assembler version 2.42 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.42] + ignore line: [COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_27bbf.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_27bbf.dir/CMakeCCompilerABI.c.'] + ignore line: [Linking C executable cmTC_27bbf] + ignore line: [/usr/local/bin/cmake -E cmake_link_script CMakeFiles/cmTC_27bbf.dir/link.txt --verbose=1] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/cc] + ignore line: [COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper] + ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa] + ignore line: [OFFLOAD_TARGET_DEFAULT=1] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04.1' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c ada c++ go d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2] + ignore line: [Thread model: posix] + ignore line: [Supported LTO compression algorithms: zlib zstd] + ignore line: [gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1) ] + ignore line: [COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_27bbf' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_27bbf.'] + link line: [ /usr/libexec/gcc/x86_64-linux-gnu/13/collect2 -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/ccWWXbmf.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_27bbf /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. -v CMakeFiles/cmTC_27bbf.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] + arg [/usr/libexec/gcc/x86_64-linux-gnu/13/collect2] ==> ignore + arg [-plugin] ==> ignore + arg [/usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so] ==> ignore + arg [-plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper] ==> ignore + arg [-plugin-opt=-fresolution=/tmp/ccWWXbmf.res] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [--build-id] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [-m] ==> ignore + arg [elf_x86_64] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [--as-needed] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/lib64/ld-linux-x86-64.so.2] ==> ignore + arg [-pie] ==> ignore + arg [-znow] ==> ignore + arg [-zrelro] ==> ignore + arg [-o] ==> ignore + arg [cmTC_27bbf] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/13] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib] + arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu] + arg [-L/lib/../lib] ==> dir [/lib/../lib] + arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu] + arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/13/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../..] + arg [-v] ==> ignore + arg [CMakeFiles/cmTC_27bbf.dir/CMakeCCompilerABI.c.o] ==> ignore + arg [-lgcc] ==> lib [gcc] + arg [--push-state] ==> ignore + arg [--as-needed] ==> ignore + arg [-lgcc_s] ==> lib [gcc_s] + arg [--pop-state] ==> ignore + arg [-lc] ==> lib [c] + arg [-lgcc] ==> lib [gcc] + arg [--push-state] ==> ignore + arg [--as-needed] ==> ignore + arg [-lgcc_s] ==> lib [gcc_s] + arg [--pop-state] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] + ignore line: [collect2 version 13.3.0] + ignore line: [/usr/bin/ld -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/ccWWXbmf.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_27bbf /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. -v CMakeFiles/cmTC_27bbf.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] + linker tool for 'C': /usr/bin/ld + collapse obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o] ==> [/usr/lib/x86_64-linux-gnu/Scrt1.o] + collapse obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o] ==> [/usr/lib/x86_64-linux-gnu/crti.o] + collapse obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] ==> [/usr/lib/x86_64-linux-gnu/crtn.o] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/13] ==> [/usr/lib/gcc/x86_64-linux-gnu/13] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib] ==> [/usr/lib] + collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu] + collapse library dir [/lib/../lib] ==> [/lib] + collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/../lib] ==> [/usr/lib] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../..] ==> [/usr/lib] + implicit libs: [gcc;gcc_s;c;gcc;gcc_s] + implicit objs: [/usr/lib/x86_64-linux-gnu/Scrt1.o;/usr/lib/x86_64-linux-gnu/crti.o;/usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o;/usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o;/usr/lib/x86_64-linux-gnu/crtn.o] + implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/13;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib] + implicit fwks: [] + + + - + kind: "message-v1" + backtrace: + - "/usr/local/share/cmake-3.31/Modules/Internal/CMakeDetermineLinkerId.cmake:40 (message)" + - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerABI.cmake:255 (cmake_determine_linker_id)" + - "/usr/local/share/cmake-3.31/Modules/CMakeTestCCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:3 (project)" + message: | + Running the C compiler's linker: "/usr/bin/ld" "-v" + GNU ld (GNU Binutils for Ubuntu) 2.42 + - + kind: "try_compile-v1" + backtrace: + - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerABI.cmake:74 (try_compile)" + - "/usr/local/share/cmake-3.31/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:3 (project)" + checks: + - "Detecting CXX compiler ABI info" + directories: + source: "/tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-HN0NXM" + binary: "/tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-HN0NXM" + cmakeVariables: + CMAKE_CXX_FLAGS: "" + CMAKE_CXX_FLAGS_DEBUG: "-g" + CMAKE_CXX_SCAN_FOR_MODULES: "OFF" + CMAKE_EXE_LINKER_FLAGS: "" + buildResult: + variable: "CMAKE_CXX_ABI_COMPILED" + cached: true + stdout: | + Change Dir: '/tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-HN0NXM' + + Run Build Command(s): /usr/local/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_f7e45/fast + /usr/bin/gmake -f CMakeFiles/cmTC_f7e45.dir/build.make CMakeFiles/cmTC_f7e45.dir/build + gmake[1]: Entering directory '/tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-HN0NXM' + Building CXX object CMakeFiles/cmTC_f7e45.dir/CMakeCXXCompilerABI.cpp.o + /usr/bin/c++ -v -o CMakeFiles/cmTC_f7e45.dir/CMakeCXXCompilerABI.cpp.o -c /usr/local/share/cmake-3.31/Modules/CMakeCXXCompilerABI.cpp + Using built-in specs. + COLLECT_GCC=/usr/bin/c++ + OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa + OFFLOAD_TARGET_DEFAULT=1 + Target: x86_64-linux-gnu + Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04.1' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2 + Thread model: posix + Supported LTO compression algorithms: zlib zstd + gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1) + COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_f7e45.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_f7e45.dir/' + /usr/libexec/gcc/x86_64-linux-gnu/13/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE /usr/local/share/cmake-3.31/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpdir CMakeFiles/cmTC_f7e45.dir/ -dumpbase CMakeCXXCompilerABI.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/ccIlSxAa.s + GNU C++17 (Ubuntu 13.3.0-6ubuntu2~24.04.1) version 13.3.0 (x86_64-linux-gnu) + compiled by GNU C version 13.3.0, GMP version 6.3.0, MPFR version 4.2.1, MPC version 1.3.1, isl version isl-0.26-GMP + + GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 + ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/13" + ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu" + ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed/x86_64-linux-gnu" + ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed" + ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/../../../../x86_64-linux-gnu/include" + #include "..." search starts here: + #include <...> search starts here: + /usr/include/c++/13 + /usr/include/x86_64-linux-gnu/c++/13 + /usr/include/c++/13/backward + /usr/lib/gcc/x86_64-linux-gnu/13/include + /usr/local/include + /usr/include/x86_64-linux-gnu + /usr/include + End of search list. + Compiler executable checksum: 7896445e4990772fdae9dc0659a99266 + COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_f7e45.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_f7e45.dir/' + as -v --64 -o CMakeFiles/cmTC_f7e45.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccIlSxAa.s + GNU assembler version 2.42 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.42 + COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/ + LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/ + COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_f7e45.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_f7e45.dir/CMakeCXXCompilerABI.cpp.' + Linking CXX executable cmTC_f7e45 + /usr/local/bin/cmake -E cmake_link_script CMakeFiles/cmTC_f7e45.dir/link.txt --verbose=1 + Using built-in specs. + COLLECT_GCC=/usr/bin/c++ + COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper + OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa + OFFLOAD_TARGET_DEFAULT=1 + Target: x86_64-linux-gnu + Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04.1' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2 + Thread model: posix + Supported LTO compression algorithms: zlib zstd + gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1) + COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/ + LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/ + COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_f7e45' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_f7e45.' + /usr/libexec/gcc/x86_64-linux-gnu/13/collect2 -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/ccDZX5to.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_f7e45 /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. -v CMakeFiles/cmTC_f7e45.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o + collect2 version 13.3.0 + /usr/bin/ld -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/ccDZX5to.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_f7e45 /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. -v CMakeFiles/cmTC_f7e45.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o + GNU ld (GNU Binutils for Ubuntu) 2.42 + COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_f7e45' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_f7e45.' + /usr/bin/c++ -v -Wl,-v CMakeFiles/cmTC_f7e45.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_f7e45 + gmake[1]: Leaving directory '/tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-HN0NXM' + + exitCode: 0 + - + kind: "message-v1" + backtrace: + - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerABI.cmake:182 (message)" + - "/usr/local/share/cmake-3.31/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:3 (project)" + message: | + Parsed CXX implicit include dir info: rv=done + found start of include info + found start of implicit include info + add: [/usr/include/c++/13] + add: [/usr/include/x86_64-linux-gnu/c++/13] + add: [/usr/include/c++/13/backward] + add: [/usr/lib/gcc/x86_64-linux-gnu/13/include] + add: [/usr/local/include] + add: [/usr/include/x86_64-linux-gnu] + add: [/usr/include] + end of search list found + collapse include dir [/usr/include/c++/13] ==> [/usr/include/c++/13] + collapse include dir [/usr/include/x86_64-linux-gnu/c++/13] ==> [/usr/include/x86_64-linux-gnu/c++/13] + collapse include dir [/usr/include/c++/13/backward] ==> [/usr/include/c++/13/backward] + collapse include dir [/usr/lib/gcc/x86_64-linux-gnu/13/include] ==> [/usr/lib/gcc/x86_64-linux-gnu/13/include] + collapse include dir [/usr/local/include] ==> [/usr/local/include] + collapse include dir [/usr/include/x86_64-linux-gnu] ==> [/usr/include/x86_64-linux-gnu] + collapse include dir [/usr/include] ==> [/usr/include] + implicit include dirs: [/usr/include/c++/13;/usr/include/x86_64-linux-gnu/c++/13;/usr/include/c++/13/backward;/usr/lib/gcc/x86_64-linux-gnu/13/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include] + + + - + kind: "message-v1" + backtrace: + - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerABI.cmake:218 (message)" + - "/usr/local/share/cmake-3.31/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:3 (project)" + message: | + Parsed CXX implicit link information: + link line regex: [^( *|.*[/\\])(ld[0-9]*(\\.[a-z]+)?|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)] + linker tool regex: [^[ ]*(->|")?[ ]*(([^"]*[/\\])?(ld[0-9]*(\\.[a-z]+)?))("|,| |$)] + ignore line: [Change Dir: '/tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-HN0NXM'] + ignore line: [] + ignore line: [Run Build Command(s): /usr/local/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_f7e45/fast] + ignore line: [/usr/bin/gmake -f CMakeFiles/cmTC_f7e45.dir/build.make CMakeFiles/cmTC_f7e45.dir/build] + ignore line: [gmake[1]: Entering directory '/tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-HN0NXM'] + ignore line: [Building CXX object CMakeFiles/cmTC_f7e45.dir/CMakeCXXCompilerABI.cpp.o] + ignore line: [/usr/bin/c++ -v -o CMakeFiles/cmTC_f7e45.dir/CMakeCXXCompilerABI.cpp.o -c /usr/local/share/cmake-3.31/Modules/CMakeCXXCompilerABI.cpp] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/c++] + ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa] + ignore line: [OFFLOAD_TARGET_DEFAULT=1] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04.1' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c ada c++ go d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2] + ignore line: [Thread model: posix] + ignore line: [Supported LTO compression algorithms: zlib zstd] + ignore line: [gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1) ] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_f7e45.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_f7e45.dir/'] + ignore line: [ /usr/libexec/gcc/x86_64-linux-gnu/13/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE /usr/local/share/cmake-3.31/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpdir CMakeFiles/cmTC_f7e45.dir/ -dumpbase CMakeCXXCompilerABI.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/ccIlSxAa.s] + ignore line: [GNU C++17 (Ubuntu 13.3.0-6ubuntu2~24.04.1) version 13.3.0 (x86_64-linux-gnu)] + ignore line: [ compiled by GNU C version 13.3.0 GMP version 6.3.0 MPFR version 4.2.1 MPC version 1.3.1 isl version isl-0.26-GMP] + ignore line: [] + ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072] + ignore line: [ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/13"] + ignore line: [ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed/x86_64-linux-gnu"] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed"] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/../../../../x86_64-linux-gnu/include"] + ignore line: [#include "..." search starts here:] + ignore line: [#include <...> search starts here:] + ignore line: [ /usr/include/c++/13] + ignore line: [ /usr/include/x86_64-linux-gnu/c++/13] + ignore line: [ /usr/include/c++/13/backward] + ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/13/include] + ignore line: [ /usr/local/include] + ignore line: [ /usr/include/x86_64-linux-gnu] + ignore line: [ /usr/include] + ignore line: [End of search list.] + ignore line: [Compiler executable checksum: 7896445e4990772fdae9dc0659a99266] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_f7e45.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_f7e45.dir/'] + ignore line: [ as -v --64 -o CMakeFiles/cmTC_f7e45.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccIlSxAa.s] + ignore line: [GNU assembler version 2.42 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.42] + ignore line: [COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_f7e45.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_f7e45.dir/CMakeCXXCompilerABI.cpp.'] + ignore line: [Linking CXX executable cmTC_f7e45] + ignore line: [/usr/local/bin/cmake -E cmake_link_script CMakeFiles/cmTC_f7e45.dir/link.txt --verbose=1] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/c++] + ignore line: [COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper] + ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa] + ignore line: [OFFLOAD_TARGET_DEFAULT=1] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04.1' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c ada c++ go d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2] + ignore line: [Thread model: posix] + ignore line: [Supported LTO compression algorithms: zlib zstd] + ignore line: [gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1) ] + ignore line: [COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_f7e45' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_f7e45.'] + link line: [ /usr/libexec/gcc/x86_64-linux-gnu/13/collect2 -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/ccDZX5to.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_f7e45 /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. -v CMakeFiles/cmTC_f7e45.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] + arg [/usr/libexec/gcc/x86_64-linux-gnu/13/collect2] ==> ignore + arg [-plugin] ==> ignore + arg [/usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so] ==> ignore + arg [-plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper] ==> ignore + arg [-plugin-opt=-fresolution=/tmp/ccDZX5to.res] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [--build-id] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [-m] ==> ignore + arg [elf_x86_64] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [--as-needed] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/lib64/ld-linux-x86-64.so.2] ==> ignore + arg [-pie] ==> ignore + arg [-znow] ==> ignore + arg [-zrelro] ==> ignore + arg [-o] ==> ignore + arg [cmTC_f7e45] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/13] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib] + arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu] + arg [-L/lib/../lib] ==> dir [/lib/../lib] + arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu] + arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/13/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../..] + arg [-v] ==> ignore + arg [CMakeFiles/cmTC_f7e45.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore + arg [-lstdc++] ==> lib [stdc++] + arg [-lm] ==> lib [m] + arg [-lgcc_s] ==> lib [gcc_s] + arg [-lgcc] ==> lib [gcc] + arg [-lc] ==> lib [c] + arg [-lgcc_s] ==> lib [gcc_s] + arg [-lgcc] ==> lib [gcc] + arg [/usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] + ignore line: [collect2 version 13.3.0] + ignore line: [/usr/bin/ld -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/ccDZX5to.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_f7e45 /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. -v CMakeFiles/cmTC_f7e45.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] + linker tool for 'CXX': /usr/bin/ld + collapse obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o] ==> [/usr/lib/x86_64-linux-gnu/Scrt1.o] + collapse obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o] ==> [/usr/lib/x86_64-linux-gnu/crti.o] + collapse obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] ==> [/usr/lib/x86_64-linux-gnu/crtn.o] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/13] ==> [/usr/lib/gcc/x86_64-linux-gnu/13] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib] ==> [/usr/lib] + collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu] + collapse library dir [/lib/../lib] ==> [/lib] + collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/../lib] ==> [/usr/lib] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../..] ==> [/usr/lib] + implicit libs: [stdc++;m;gcc_s;gcc;c;gcc_s;gcc] + implicit objs: [/usr/lib/x86_64-linux-gnu/Scrt1.o;/usr/lib/x86_64-linux-gnu/crti.o;/usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o;/usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o;/usr/lib/x86_64-linux-gnu/crtn.o] + implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/13;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib] + implicit fwks: [] + + + - + kind: "message-v1" + backtrace: + - "/usr/local/share/cmake-3.31/Modules/Internal/CMakeDetermineLinkerId.cmake:40 (message)" + - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerABI.cmake:255 (cmake_determine_linker_id)" + - "/usr/local/share/cmake-3.31/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:3 (project)" + message: | + Running the CXX compiler's linker: "/usr/bin/ld" "-v" + GNU ld (GNU Binutils for Ubuntu) 2.42 + - + kind: "try_compile-v1" + backtrace: + - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerABI.cmake:74 (try_compile)" + - "/usr/local/share/cmake-3.31/Modules/CMakeTestFortranCompiler.cmake:20 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:3 (project)" + checks: + - "Detecting Fortran compiler ABI info" + directories: + source: "/tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-VcDTl6" + binary: "/tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-VcDTl6" + cmakeVariables: + CMAKE_EXE_LINKER_FLAGS: "" + CMAKE_Fortran_FLAGS: "" + CMAKE_Fortran_FLAGS_DEBUG: "-g" + buildResult: + variable: "CMAKE_Fortran_ABI_COMPILED" + cached: true + stdout: | + Change Dir: '/tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-VcDTl6' + + Run Build Command(s): /usr/local/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_42f7f/fast + /usr/bin/gmake -f CMakeFiles/cmTC_42f7f.dir/build.make CMakeFiles/cmTC_42f7f.dir/build + gmake[1]: Entering directory '/tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-VcDTl6' + Building Fortran object CMakeFiles/cmTC_42f7f.dir/CMakeFortranCompilerABI.F90.o + /usr/bin/gfortran -v -c /usr/local/share/cmake-3.31/Modules/CMakeFortranCompilerABI.F90 -o CMakeFiles/cmTC_42f7f.dir/CMakeFortranCompilerABI.F90.o + Using built-in specs. + COLLECT_GCC=/usr/bin/gfortran + OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa + OFFLOAD_TARGET_DEFAULT=1 + Target: x86_64-linux-gnu + Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04.1' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2 + Thread model: posix + Supported LTO compression algorithms: zlib zstd + gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1) + COLLECT_GCC_OPTIONS='-v' '-c' '-o' 'CMakeFiles/cmTC_42f7f.dir/CMakeFortranCompilerABI.F90.o' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_42f7f.dir/' + /usr/libexec/gcc/x86_64-linux-gnu/13/f951 /usr/local/share/cmake-3.31/Modules/CMakeFortranCompilerABI.F90 -cpp=/tmp/cc85bnTv.f90 -quiet -v -imultiarch x86_64-linux-gnu /usr/local/share/cmake-3.31/Modules/CMakeFortranCompilerABI.F90 -quiet -dumpdir CMakeFiles/cmTC_42f7f.dir/ -dumpbase CMakeFortranCompilerABI.F90.F90 -dumpbase-ext .F90 -mtune=generic -march=x86-64 -version -fintrinsic-modules-path /usr/lib/gcc/x86_64-linux-gnu/13/finclude -fpre-include=/usr/include/finclude/x86_64-linux-gnu/math-vector-fortran.h -o /tmp/cce5wTp8.s + GNU Fortran (Ubuntu 13.3.0-6ubuntu2~24.04.1) version 13.3.0 (x86_64-linux-gnu) + compiled by GNU C version 13.3.0, GMP version 6.3.0, MPFR version 4.2.1, MPC version 1.3.1, isl version isl-0.26-GMP + + GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 + ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu" + ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed/x86_64-linux-gnu" + ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed" + ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/../../../../x86_64-linux-gnu/include" + #include "..." search starts here: + #include <...> search starts here: + /usr/lib/gcc/x86_64-linux-gnu/13/finclude + /usr/lib/gcc/x86_64-linux-gnu/13/include + /usr/local/include + /usr/include/x86_64-linux-gnu + /usr/include + End of search list. + COLLECT_GCC_OPTIONS='-v' '-c' '-o' 'CMakeFiles/cmTC_42f7f.dir/CMakeFortranCompilerABI.F90.o' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_42f7f.dir/' + as -v --64 -o CMakeFiles/cmTC_42f7f.dir/CMakeFortranCompilerABI.F90.o /tmp/cce5wTp8.s + GNU assembler version 2.42 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.42 + COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/ + LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/ + COLLECT_GCC_OPTIONS='-v' '-c' '-o' 'CMakeFiles/cmTC_42f7f.dir/CMakeFortranCompilerABI.F90.o' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_42f7f.dir/CMakeFortranCompilerABI.F90.' + Linking Fortran executable cmTC_42f7f + /usr/local/bin/cmake -E cmake_link_script CMakeFiles/cmTC_42f7f.dir/link.txt --verbose=1 + Driving: /usr/bin/gfortran -v -Wl,-v CMakeFiles/cmTC_42f7f.dir/CMakeFortranCompilerABI.F90.o -o cmTC_42f7f -l gfortran -l m -shared-libgcc + Using built-in specs. + COLLECT_GCC=/usr/bin/gfortran + COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper + OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa + OFFLOAD_TARGET_DEFAULT=1 + Target: x86_64-linux-gnu + Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04.1' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2 + Thread model: posix + Supported LTO compression algorithms: zlib zstd + gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1) + Reading specs from /usr/lib/gcc/x86_64-linux-gnu/13/libgfortran.spec + rename spec lib to liborig + COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_42f7f' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_42f7f-' + COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/ + LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/ + COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_42f7f' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_42f7f.' + /usr/libexec/gcc/x86_64-linux-gnu/13/collect2 -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/cchOSnKy.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lquadmath -plugin-opt=-pass-through=-lm -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_42f7f /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. -v CMakeFiles/cmTC_42f7f.dir/CMakeFortranCompilerABI.F90.o -lgfortran -lm -lgcc_s -lgcc --as-needed -lquadmath --no-as-needed -lm -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o + collect2 version 13.3.0 + /usr/bin/ld -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/cchOSnKy.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lquadmath -plugin-opt=-pass-through=-lm -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_42f7f /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. -v CMakeFiles/cmTC_42f7f.dir/CMakeFortranCompilerABI.F90.o -lgfortran -lm -lgcc_s -lgcc --as-needed -lquadmath --no-as-needed -lm -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o + GNU ld (GNU Binutils for Ubuntu) 2.42 + COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_42f7f' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_42f7f.' + /usr/bin/gfortran -v -Wl,-v CMakeFiles/cmTC_42f7f.dir/CMakeFortranCompilerABI.F90.o -o cmTC_42f7f + gmake[1]: Leaving directory '/tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-VcDTl6' + + exitCode: 0 + - + kind: "message-v1" + backtrace: + - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerABI.cmake:182 (message)" + - "/usr/local/share/cmake-3.31/Modules/CMakeTestFortranCompiler.cmake:20 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:3 (project)" + message: | + Parsed Fortran implicit include dir info: rv=done + found start of include info + found start of implicit include info + add: [/usr/lib/gcc/x86_64-linux-gnu/13/finclude] + add: [/usr/lib/gcc/x86_64-linux-gnu/13/include] + add: [/usr/local/include] + add: [/usr/include/x86_64-linux-gnu] + add: [/usr/include] + end of search list found + collapse include dir [/usr/lib/gcc/x86_64-linux-gnu/13/finclude] ==> [/usr/lib/gcc/x86_64-linux-gnu/13/finclude] + collapse include dir [/usr/lib/gcc/x86_64-linux-gnu/13/include] ==> [/usr/lib/gcc/x86_64-linux-gnu/13/include] + collapse include dir [/usr/local/include] ==> [/usr/local/include] + collapse include dir [/usr/include/x86_64-linux-gnu] ==> [/usr/include/x86_64-linux-gnu] + collapse include dir [/usr/include] ==> [/usr/include] + implicit include dirs: [/usr/lib/gcc/x86_64-linux-gnu/13/finclude;/usr/lib/gcc/x86_64-linux-gnu/13/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include] + + + - + kind: "message-v1" + backtrace: + - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerABI.cmake:218 (message)" + - "/usr/local/share/cmake-3.31/Modules/CMakeTestFortranCompiler.cmake:20 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:3 (project)" + message: | + Parsed Fortran implicit link information: + link line regex: [^( *|.*[/\\])(ld[0-9]*(\\.[a-z]+)?|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)] + linker tool regex: [^[ ]*(->|")?[ ]*(([^"]*[/\\])?(ld[0-9]*(\\.[a-z]+)?))("|,| |$)] + ignore line: [Change Dir: '/tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-VcDTl6'] + ignore line: [] + ignore line: [Run Build Command(s): /usr/local/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_42f7f/fast] + ignore line: [/usr/bin/gmake -f CMakeFiles/cmTC_42f7f.dir/build.make CMakeFiles/cmTC_42f7f.dir/build] + ignore line: [gmake[1]: Entering directory '/tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-VcDTl6'] + ignore line: [Building Fortran object CMakeFiles/cmTC_42f7f.dir/CMakeFortranCompilerABI.F90.o] + ignore line: [/usr/bin/gfortran -v -c /usr/local/share/cmake-3.31/Modules/CMakeFortranCompilerABI.F90 -o CMakeFiles/cmTC_42f7f.dir/CMakeFortranCompilerABI.F90.o] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/gfortran] + ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa] + ignore line: [OFFLOAD_TARGET_DEFAULT=1] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04.1' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c ada c++ go d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2] + ignore line: [Thread model: posix] + ignore line: [Supported LTO compression algorithms: zlib zstd] + ignore line: [gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1) ] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-c' '-o' 'CMakeFiles/cmTC_42f7f.dir/CMakeFortranCompilerABI.F90.o' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_42f7f.dir/'] + ignore line: [ /usr/libexec/gcc/x86_64-linux-gnu/13/f951 /usr/local/share/cmake-3.31/Modules/CMakeFortranCompilerABI.F90 -cpp=/tmp/cc85bnTv.f90 -quiet -v -imultiarch x86_64-linux-gnu /usr/local/share/cmake-3.31/Modules/CMakeFortranCompilerABI.F90 -quiet -dumpdir CMakeFiles/cmTC_42f7f.dir/ -dumpbase CMakeFortranCompilerABI.F90.F90 -dumpbase-ext .F90 -mtune=generic -march=x86-64 -version -fintrinsic-modules-path /usr/lib/gcc/x86_64-linux-gnu/13/finclude -fpre-include=/usr/include/finclude/x86_64-linux-gnu/math-vector-fortran.h -o /tmp/cce5wTp8.s] + ignore line: [GNU Fortran (Ubuntu 13.3.0-6ubuntu2~24.04.1) version 13.3.0 (x86_64-linux-gnu)] + ignore line: [ compiled by GNU C version 13.3.0 GMP version 6.3.0 MPFR version 4.2.1 MPC version 1.3.1 isl version isl-0.26-GMP] + ignore line: [] + ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072] + ignore line: [ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed/x86_64-linux-gnu"] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed"] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/../../../../x86_64-linux-gnu/include"] + ignore line: [#include "..." search starts here:] + ignore line: [#include <...> search starts here:] + ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/13/finclude] + ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/13/include] + ignore line: [ /usr/local/include] + ignore line: [ /usr/include/x86_64-linux-gnu] + ignore line: [ /usr/include] + ignore line: [End of search list.] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-c' '-o' 'CMakeFiles/cmTC_42f7f.dir/CMakeFortranCompilerABI.F90.o' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_42f7f.dir/'] + ignore line: [ as -v --64 -o CMakeFiles/cmTC_42f7f.dir/CMakeFortranCompilerABI.F90.o /tmp/cce5wTp8.s] + ignore line: [GNU assembler version 2.42 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.42] + ignore line: [COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-c' '-o' 'CMakeFiles/cmTC_42f7f.dir/CMakeFortranCompilerABI.F90.o' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_42f7f.dir/CMakeFortranCompilerABI.F90.'] + ignore line: [Linking Fortran executable cmTC_42f7f] + ignore line: [/usr/local/bin/cmake -E cmake_link_script CMakeFiles/cmTC_42f7f.dir/link.txt --verbose=1] + ignore line: [Driving: /usr/bin/gfortran -v -Wl -v CMakeFiles/cmTC_42f7f.dir/CMakeFortranCompilerABI.F90.o -o cmTC_42f7f -l gfortran -l m -shared-libgcc] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/gfortran] + ignore line: [COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper] + ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa] + ignore line: [OFFLOAD_TARGET_DEFAULT=1] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04.1' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c ada c++ go d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2] + ignore line: [Thread model: posix] + ignore line: [Supported LTO compression algorithms: zlib zstd] + ignore line: [gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1) ] + ignore line: [Reading specs from /usr/lib/gcc/x86_64-linux-gnu/13/libgfortran.spec] + ignore line: [rename spec lib to liborig] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_42f7f' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_42f7f-'] + ignore line: [COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_42f7f' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_42f7f.'] + link line: [ /usr/libexec/gcc/x86_64-linux-gnu/13/collect2 -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/cchOSnKy.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lquadmath -plugin-opt=-pass-through=-lm -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_42f7f /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. -v CMakeFiles/cmTC_42f7f.dir/CMakeFortranCompilerABI.F90.o -lgfortran -lm -lgcc_s -lgcc --as-needed -lquadmath --no-as-needed -lm -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] + arg [/usr/libexec/gcc/x86_64-linux-gnu/13/collect2] ==> ignore + arg [-plugin] ==> ignore + arg [/usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so] ==> ignore + arg [-plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper] ==> ignore + arg [-plugin-opt=-fresolution=/tmp/cchOSnKy.res] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lquadmath] ==> ignore + arg [-plugin-opt=-pass-through=-lm] ==> ignore + arg [-plugin-opt=-pass-through=-lc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [--build-id] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [-m] ==> ignore + arg [elf_x86_64] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [--as-needed] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/lib64/ld-linux-x86-64.so.2] ==> ignore + arg [-pie] ==> ignore + arg [-znow] ==> ignore + arg [-zrelro] ==> ignore + arg [-o] ==> ignore + arg [cmTC_42f7f] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/13] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib] + arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu] + arg [-L/lib/../lib] ==> dir [/lib/../lib] + arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu] + arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/13/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../..] + arg [-v] ==> ignore + arg [CMakeFiles/cmTC_42f7f.dir/CMakeFortranCompilerABI.F90.o] ==> ignore + arg [-lgfortran] ==> lib [gfortran] + arg [-lm] ==> lib [m] + arg [-lgcc_s] ==> lib [gcc_s] + arg [-lgcc] ==> lib [gcc] + arg [--as-needed] ==> ignore + arg [-lquadmath] ==> lib [quadmath] + arg [--no-as-needed] ==> ignore + arg [-lm] ==> lib [m] + arg [-lc] ==> lib [c] + arg [-lgcc_s] ==> lib [gcc_s] + arg [-lgcc] ==> lib [gcc] + arg [/usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] + ignore line: [collect2 version 13.3.0] + ignore line: [/usr/bin/ld -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/cchOSnKy.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lquadmath -plugin-opt=-pass-through=-lm -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_42f7f /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. -v CMakeFiles/cmTC_42f7f.dir/CMakeFortranCompilerABI.F90.o -lgfortran -lm -lgcc_s -lgcc --as-needed -lquadmath --no-as-needed -lm -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] + linker tool for 'Fortran': /usr/bin/ld + collapse obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o] ==> [/usr/lib/x86_64-linux-gnu/Scrt1.o] + collapse obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o] ==> [/usr/lib/x86_64-linux-gnu/crti.o] + collapse obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] ==> [/usr/lib/x86_64-linux-gnu/crtn.o] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/13] ==> [/usr/lib/gcc/x86_64-linux-gnu/13] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib] ==> [/usr/lib] + collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu] + collapse library dir [/lib/../lib] ==> [/lib] + collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/../lib] ==> [/usr/lib] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../..] ==> [/usr/lib] + implicit libs: [gfortran;m;gcc_s;gcc;quadmath;m;c;gcc_s;gcc] + implicit objs: [/usr/lib/x86_64-linux-gnu/Scrt1.o;/usr/lib/x86_64-linux-gnu/crti.o;/usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o;/usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o;/usr/lib/x86_64-linux-gnu/crtn.o] + implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/13;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib] + implicit fwks: [] + + + - + kind: "message-v1" + backtrace: + - "/usr/local/share/cmake-3.31/Modules/Internal/CMakeDetermineLinkerId.cmake:40 (message)" + - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerABI.cmake:255 (cmake_determine_linker_id)" + - "/usr/local/share/cmake-3.31/Modules/CMakeTestFortranCompiler.cmake:20 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:3 (project)" + message: | + Running the Fortran compiler's linker: "/usr/bin/ld" "-v" + GNU ld (GNU Binutils for Ubuntu) 2.42 + - + kind: "try_compile-v1" + backtrace: + - "/usr/local/share/cmake-3.31/Modules/FindMPI.cmake:1283 (try_compile)" + - "/usr/local/share/cmake-3.31/Modules/FindMPI.cmake:1327 (_MPI_try_staged_settings)" + - "/usr/local/share/cmake-3.31/Modules/FindMPI.cmake:1650 (_MPI_check_lang_works)" + - "CMakeLists.txt:101 (find_package)" + description: "The MPI test test_mpi for C in mode normal" + directories: + source: "/tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-lQ1zxg" + binary: "/tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-lQ1zxg" + cmakeVariables: + CMAKE_C_FLAGS: "" + CMAKE_C_FLAGS_DEBUG: "-g" + CMAKE_EXE_LINKER_FLAGS: "" + CMAKE_MODULE_PATH: "/tmp/workspace/EXP-code/EXP/cmake" + CMAKE_POSITION_INDEPENDENT_CODE: "ON" + buildResult: + variable: "MPI_RESULT_C_test_mpi_normal" + cached: true + stdout: | + Change Dir: '/tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-lQ1zxg' + + Run Build Command(s): /usr/local/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_8763c/fast + /usr/bin/gmake -f CMakeFiles/cmTC_8763c.dir/build.make CMakeFiles/cmTC_8763c.dir/build + gmake[1]: Entering directory '/tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-lQ1zxg' + Building C object CMakeFiles/cmTC_8763c.dir/test_mpi.c.o + /usr/bin/cc -fPIE -o CMakeFiles/cmTC_8763c.dir/test_mpi.c.o -c /tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-lQ1zxg/test_mpi.c + /tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-lQ1zxg/test_mpi.c:1:10: fatal error: mpi.h: No such file or directory + 1 | #include + | ^~~~~~~ + compilation terminated. + gmake[1]: *** [CMakeFiles/cmTC_8763c.dir/build.make:81: CMakeFiles/cmTC_8763c.dir/test_mpi.c.o] Error 1 + gmake[1]: Leaving directory '/tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-lQ1zxg' + gmake: *** [Makefile:134: cmTC_8763c/fast] Error 2 + + exitCode: 2 + - + kind: "try_compile-v1" + backtrace: + - "/usr/local/share/cmake-3.31/Modules/FindMPI.cmake:1283 (try_compile)" + - "/usr/local/share/cmake-3.31/Modules/FindMPI.cmake:1327 (_MPI_try_staged_settings)" + - "/usr/local/share/cmake-3.31/Modules/FindMPI.cmake:1650 (_MPI_check_lang_works)" + - "CMakeLists.txt:101 (find_package)" + description: "The MPI test test_mpi for CXX in mode normal" + directories: + source: "/tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-FeQ5BV" + binary: "/tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-FeQ5BV" + cmakeVariables: + CMAKE_CXX_FLAGS: "" + CMAKE_CXX_FLAGS_DEBUG: "-g" + CMAKE_EXE_LINKER_FLAGS: "" + CMAKE_MODULE_PATH: "/tmp/workspace/EXP-code/EXP/cmake" + CMAKE_POSITION_INDEPENDENT_CODE: "ON" + buildResult: + variable: "MPI_RESULT_CXX_test_mpi_normal" + cached: true + stdout: | + Change Dir: '/tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-FeQ5BV' + + Run Build Command(s): /usr/local/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_ac9ec/fast + /usr/bin/gmake -f CMakeFiles/cmTC_ac9ec.dir/build.make CMakeFiles/cmTC_ac9ec.dir/build + gmake[1]: Entering directory '/tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-FeQ5BV' + Building CXX object CMakeFiles/cmTC_ac9ec.dir/test_mpi.cpp.o + /usr/bin/c++ -std=c++17 -fPIE -o CMakeFiles/cmTC_ac9ec.dir/test_mpi.cpp.o -c /tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-FeQ5BV/test_mpi.cpp + /tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-FeQ5BV/test_mpi.cpp:1:10: fatal error: mpi.h: No such file or directory + 1 | #include + | ^~~~~~~ + compilation terminated. + gmake[1]: *** [CMakeFiles/cmTC_ac9ec.dir/build.make:81: CMakeFiles/cmTC_ac9ec.dir/test_mpi.cpp.o] Error 1 + gmake[1]: Leaving directory '/tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-FeQ5BV' + gmake: *** [Makefile:134: cmTC_ac9ec/fast] Error 2 + + exitCode: 2 +... diff --git a/build-baseline/CMakeFiles/cmake.check_cache b/build-baseline/CMakeFiles/cmake.check_cache new file mode 100644 index 000000000..3dccd7317 --- /dev/null +++ b/build-baseline/CMakeFiles/cmake.check_cache @@ -0,0 +1 @@ +# This file is generated by cmake for dependency checking of the CMakeCache.txt file From be2cd3a47a831e200655ffdca0f6aeeb66857c2c Mon Sep 17 00:00:00 2001 From: michael-petersen Date: Fri, 29 May 2026 07:15:14 +0100 Subject: [PATCH 120/131] remove some build files along for the ride --- build-baseline/CMakeCache.txt | 673 ---------- .../CMakeFiles/3.31.6/CMakeCCompiler.cmake | 81 -- .../CMakeFiles/3.31.6/CMakeCXXCompiler.cmake | 101 -- .../3.31.6/CMakeDetermineCompilerABI_C.bin | Bin 15968 -> 0 bytes .../3.31.6/CMakeDetermineCompilerABI_CXX.bin | Bin 15992 -> 0 bytes .../CMakeDetermineCompilerABI_Fortran.bin | Bin 16312 -> 0 bytes .../3.31.6/CMakeFortranCompiler.cmake | 68 - .../CMakeFiles/3.31.6/CMakeSystem.cmake | 15 - .../3.31.6/CompilerIdC/CMakeCCompilerId.c | 904 ------------- .../CMakeFiles/3.31.6/CompilerIdC/a.out | Bin 16088 -> 0 bytes .../CompilerIdCXX/CMakeCXXCompilerId.cpp | 919 -------------- .../CMakeFiles/3.31.6/CompilerIdCXX/a.out | Bin 16096 -> 0 bytes .../CMakeFortranCompilerId.F | 1119 ----------------- .../CMakeFiles/3.31.6/CompilerIdFortran/a.out | Bin 16224 -> 0 bytes .../CMakeFiles/CMakeConfigureLog.yaml | 964 -------------- build-baseline/CMakeFiles/cmake.check_cache | 1 - 16 files changed, 4845 deletions(-) delete mode 100644 build-baseline/CMakeCache.txt delete mode 100644 build-baseline/CMakeFiles/3.31.6/CMakeCCompiler.cmake delete mode 100644 build-baseline/CMakeFiles/3.31.6/CMakeCXXCompiler.cmake delete mode 100755 build-baseline/CMakeFiles/3.31.6/CMakeDetermineCompilerABI_C.bin delete mode 100755 build-baseline/CMakeFiles/3.31.6/CMakeDetermineCompilerABI_CXX.bin delete mode 100755 build-baseline/CMakeFiles/3.31.6/CMakeDetermineCompilerABI_Fortran.bin delete mode 100644 build-baseline/CMakeFiles/3.31.6/CMakeFortranCompiler.cmake delete mode 100644 build-baseline/CMakeFiles/3.31.6/CMakeSystem.cmake delete mode 100644 build-baseline/CMakeFiles/3.31.6/CompilerIdC/CMakeCCompilerId.c delete mode 100755 build-baseline/CMakeFiles/3.31.6/CompilerIdC/a.out delete mode 100644 build-baseline/CMakeFiles/3.31.6/CompilerIdCXX/CMakeCXXCompilerId.cpp delete mode 100755 build-baseline/CMakeFiles/3.31.6/CompilerIdCXX/a.out delete mode 100644 build-baseline/CMakeFiles/3.31.6/CompilerIdFortran/CMakeFortranCompilerId.F delete mode 100755 build-baseline/CMakeFiles/3.31.6/CompilerIdFortran/a.out delete mode 100644 build-baseline/CMakeFiles/CMakeConfigureLog.yaml delete mode 100644 build-baseline/CMakeFiles/cmake.check_cache diff --git a/build-baseline/CMakeCache.txt b/build-baseline/CMakeCache.txt deleted file mode 100644 index feaba33cb..000000000 --- a/build-baseline/CMakeCache.txt +++ /dev/null @@ -1,673 +0,0 @@ -# This is the CMakeCache file. -# For build in directory: /tmp/workspace/EXP-code/EXP/build-baseline -# It was generated by CMake: /usr/local/bin/cmake -# You can edit this file to change values found and used by cmake. -# If you do not want to change any of the values, simply exit the editor. -# If you do want to change a value, simply edit, save, and exit the editor. -# The syntax for the file is as follows: -# KEY:TYPE=VALUE -# KEY is the name of a variable in the cache. -# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!. -# VALUE is the current value for the KEY. - -######################## -# EXTERNAL cache entries -######################## - -//Build documentation -BUILD_DOCS:BOOL=OFF - -//Build using shared libraries -BUILD_SHARED_LIBS:BOOL=ON - -//Path to a program. -CMAKE_ADDR2LINE:FILEPATH=/usr/bin/addr2line - -//Path to a program. -CMAKE_AR:FILEPATH=/usr/bin/ar - -//Choose the type of build, options are: None Debug Release RelWithDebInfo -// MinSizeRel ... -CMAKE_BUILD_TYPE:STRING= - -//Enable/Disable color output during build. -CMAKE_COLOR_MAKEFILE:BOOL=ON - -//CXX compiler -CMAKE_CXX_COMPILER:FILEPATH=/usr/bin/c++ - -//A wrapper around 'ar' adding the appropriate '--plugin' option -// for the GCC compiler -CMAKE_CXX_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-13 - -//A wrapper around 'ranlib' adding the appropriate '--plugin' option -// for the GCC compiler -CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-13 - -//Flags used by the CXX compiler during all build types. -CMAKE_CXX_FLAGS:STRING= - -//Flags used by the CXX compiler during DEBUG builds. -CMAKE_CXX_FLAGS_DEBUG:STRING=-g - -//Flags used by the CXX compiler during MINSIZEREL builds. -CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG - -//Flags used by the CXX compiler during RELEASE builds. -CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG - -//Flags used by the CXX compiler during RELWITHDEBINFO builds. -CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG - -//C compiler -CMAKE_C_COMPILER:FILEPATH=/usr/bin/cc - -//A wrapper around 'ar' adding the appropriate '--plugin' option -// for the GCC compiler -CMAKE_C_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-13 - -//A wrapper around 'ranlib' adding the appropriate '--plugin' option -// for the GCC compiler -CMAKE_C_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-13 - -//Flags used by the C compiler during all build types. -CMAKE_C_FLAGS:STRING= - -//Flags used by the C compiler during DEBUG builds. -CMAKE_C_FLAGS_DEBUG:STRING=-g - -//Flags used by the C compiler during MINSIZEREL builds. -CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG - -//Flags used by the C compiler during RELEASE builds. -CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG - -//Flags used by the C compiler during RELWITHDEBINFO builds. -CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG - -//Path to a program. -CMAKE_DLLTOOL:FILEPATH=CMAKE_DLLTOOL-NOTFOUND - -//Flags used by the linker during all build types. -CMAKE_EXE_LINKER_FLAGS:STRING= - -//Flags used by the linker during DEBUG builds. -CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING= - -//Flags used by the linker during MINSIZEREL builds. -CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= - -//Flags used by the linker during RELEASE builds. -CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING= - -//Flags used by the linker during RELWITHDEBINFO builds. -CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= - -//Enable/Disable output of compile commands during generation. -CMAKE_EXPORT_COMPILE_COMMANDS:BOOL= - -//Value Computed by CMake. -CMAKE_FIND_PACKAGE_REDIRECTS_DIR:STATIC=/tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/pkgRedirects - -//Fortran compiler -CMAKE_Fortran_COMPILER:FILEPATH=/usr/bin/gfortran - -//A wrapper around 'ar' adding the appropriate '--plugin' option -// for the GCC compiler -CMAKE_Fortran_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-13 - -//A wrapper around 'ranlib' adding the appropriate '--plugin' option -// for the GCC compiler -CMAKE_Fortran_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-13 - -//Flags used by the Fortran compiler during all build types. -CMAKE_Fortran_FLAGS:STRING= - -//Flags used by the Fortran compiler during DEBUG builds. -CMAKE_Fortran_FLAGS_DEBUG:STRING=-g - -//Flags used by the Fortran compiler during MINSIZEREL builds. -CMAKE_Fortran_FLAGS_MINSIZEREL:STRING=-Os - -//Flags used by the Fortran compiler during RELEASE builds. -CMAKE_Fortran_FLAGS_RELEASE:STRING=-O3 - -//Flags used by the Fortran compiler during RELWITHDEBINFO builds. -CMAKE_Fortran_FLAGS_RELWITHDEBINFO:STRING=-O2 -g - -//Install path prefix, prepended onto install directories. -CMAKE_INSTALL_PREFIX:PATH=/usr/local - -//Path to a program. -CMAKE_LINKER:FILEPATH=/usr/bin/ld - -//Path to a program. -CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/gmake - -//Flags used by the linker during the creation of modules during -// all build types. -CMAKE_MODULE_LINKER_FLAGS:STRING= - -//Flags used by the linker during the creation of modules during -// DEBUG builds. -CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= - -//Flags used by the linker during the creation of modules during -// MINSIZEREL builds. -CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING= - -//Flags used by the linker during the creation of modules during -// RELEASE builds. -CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING= - -//Flags used by the linker during the creation of modules during -// RELWITHDEBINFO builds. -CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING= - -//Path to a program. -CMAKE_NM:FILEPATH=/usr/bin/nm - -//Path to a program. -CMAKE_OBJCOPY:FILEPATH=/usr/bin/objcopy - -//Path to a program. -CMAKE_OBJDUMP:FILEPATH=/usr/bin/objdump - -//Value Computed by CMake -CMAKE_PROJECT_DESCRIPTION:STATIC= - -//Value Computed by CMake -CMAKE_PROJECT_HOMEPAGE_URL:STATIC=https://github.com/EXP-code/EXP - -//Value Computed by CMake -CMAKE_PROJECT_NAME:STATIC=EXP - -//Value Computed by CMake -CMAKE_PROJECT_VERSION:STATIC=7.10.3 - -//Value Computed by CMake -CMAKE_PROJECT_VERSION_MAJOR:STATIC=7 - -//Value Computed by CMake -CMAKE_PROJECT_VERSION_MINOR:STATIC=10 - -//Value Computed by CMake -CMAKE_PROJECT_VERSION_PATCH:STATIC=3 - -//Value Computed by CMake -CMAKE_PROJECT_VERSION_TWEAK:STATIC= - -//Path to a program. -CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib - -//Path to a program. -CMAKE_READELF:FILEPATH=/usr/bin/readelf - -//Flags used by the linker during the creation of shared libraries -// during all build types. -CMAKE_SHARED_LINKER_FLAGS:STRING= - -//Flags used by the linker during the creation of shared libraries -// during DEBUG builds. -CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= - -//Flags used by the linker during the creation of shared libraries -// during MINSIZEREL builds. -CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING= - -//Flags used by the linker during the creation of shared libraries -// during RELEASE builds. -CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING= - -//Flags used by the linker during the creation of shared libraries -// during RELWITHDEBINFO builds. -CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING= - -//If set, runtime paths are not added when installing shared libraries, -// but are added when building. -CMAKE_SKIP_INSTALL_RPATH:BOOL=NO - -//If set, runtime paths are not added when using shared libraries. -CMAKE_SKIP_RPATH:BOOL=NO - -//Flags used by the linker during the creation of static libraries -// during all build types. -CMAKE_STATIC_LINKER_FLAGS:STRING= - -//Flags used by the linker during the creation of static libraries -// during DEBUG builds. -CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= - -//Flags used by the linker during the creation of static libraries -// during MINSIZEREL builds. -CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= - -//Flags used by the linker during the creation of static libraries -// during RELEASE builds. -CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= - -//Flags used by the linker during the creation of static libraries -// during RELWITHDEBINFO builds. -CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= - -//Path to a program. -CMAKE_STRIP:FILEPATH=/usr/bin/strip - -//Path to a program. -CMAKE_TAPI:FILEPATH=CMAKE_TAPI-NOTFOUND - -//If this value is on, makefiles will be generated without the -// .SILENT directive, and all commands will be echoed to the console -// during the make. This is useful for debugging only. With Visual -// Studio IDE projects all commands are done without /nologo. -CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE - -//Enable CUDA -ENABLE_CUDA:BOOL=OFF - -//Use real*4 instead of real*8 for CUDA -ENABLE_CUDA_SINGLE:BOOL=OFF - -//Compile EXP support libraries only -ENABLE_MINIMAL:BOOL=OFF - -//Enable EXP n-body -ENABLE_NBODY:BOOL=ON - -//Enable PNG graphics support -ENABLE_PNG:BOOL=OFF - -//Enable the Python bindings -ENABLE_PYEXP:BOOL=ON - -//Python bindings and support libraries only -ENABLE_PYEXP_ONLY:BOOL=OFF - -//Enable *careful* Sturm-Liouville solutions -ENABLE_SLCHECK:BOOL=ON - -//Enable SLURM checkpointing support -ENABLE_SLURM:BOOL=OFF - -//Enable build tests for EXP, pyEXP and helpers -ENABLE_TESTS:BOOL=ON - -//Enable compilation of user modules -ENABLE_USER:BOOL=ON - -//Enable build of the EXP standalone utilities -ENABLE_UTILS:BOOL=ON - -//Configure VTK if available -ENABLE_VTK:BOOL=OFF - -//Enable RPC/XDR support for Tipsy standard -ENABLE_XDR:BOOL=OFF - -//Value Computed by CMake -EXP_BINARY_DIR:STATIC=/tmp/workspace/EXP-code/EXP/build-baseline - -//Value Computed by CMake -EXP_IS_TOP_LEVEL:STATIC=ON - -//Command to run an MPI application (for unit tests only) -EXP_MPI_LAUNCH:STRING=mpirun - -//Value Computed by CMake -EXP_SOURCE_DIR:STATIC=/tmp/workspace/EXP-code/EXP - -//Executable for running MPI programs. -MPIEXEC_EXECUTABLE:FILEPATH=MPIEXEC_EXECUTABLE-NOTFOUND - -//Maximum number of processors available to run MPI applications. -MPIEXEC_MAX_NUMPROCS:STRING=2 - -//Flag used by MPI to specify the number of processes for mpiexec; -// the next option will be the number of processes. -MPIEXEC_NUMPROC_FLAG:STRING=-n - -//These flags will be placed after all flags passed to mpiexec. -MPIEXEC_POSTFLAGS:STRING= - -//These flags will be directly before the executable that is being -// run by mpiexec. -MPIEXEC_PREFLAGS:STRING= - -//MPI CXX additional include directories -MPI_CXX_ADDITIONAL_INCLUDE_DIRS:STRING= - -//MPI compiler for CXX -MPI_CXX_COMPILER:FILEPATH=MPI_CXX_COMPILER-NOTFOUND - -//MPI CXX compiler wrapper include directories -MPI_CXX_COMPILER_INCLUDE_DIRS:STRING= - -//MPI CXX compilation definitions -MPI_CXX_COMPILE_DEFINITIONS:STRING= - -//MPI CXX compilation flags -MPI_CXX_COMPILE_OPTIONS:STRING= - -//Path to a file. -MPI_CXX_HEADER_DIR:PATH=MPI_CXX_HEADER_DIR-NOTFOUND - -//MPI CXX libraries to link against -MPI_CXX_LIB_NAMES:STRING= - -//MPI CXX linker flags -MPI_CXX_LINK_FLAGS:STRING= - -//If true, the MPI-2 C++ bindings are disabled using definitions. -MPI_CXX_SKIP_MPICXX:BOOL=OFF - -//MPI C additional include directories -MPI_C_ADDITIONAL_INCLUDE_DIRS:STRING= - -//MPI compiler for C -MPI_C_COMPILER:FILEPATH=MPI_C_COMPILER-NOTFOUND - -//MPI C compiler wrapper include directories -MPI_C_COMPILER_INCLUDE_DIRS:STRING= - -//MPI C compilation definitions -MPI_C_COMPILE_DEFINITIONS:STRING= - -//MPI C compilation flags -MPI_C_COMPILE_OPTIONS:STRING= - -//Path to a file. -MPI_C_HEADER_DIR:PATH=MPI_C_HEADER_DIR-NOTFOUND - -//MPI C libraries to link against -MPI_C_LIB_NAMES:STRING= - -//MPI C linker flags -MPI_C_LINK_FLAGS:STRING= - -//Arguments to supply to pkg-config -PKG_CONFIG_ARGN:STRING= - -//pkg-config executable -PKG_CONFIG_EXECUTABLE:FILEPATH=/usr/bin/pkg-config - - -######################## -# INTERNAL cache entries -######################## - -//ADVANCED property for variable: CMAKE_ADDR2LINE -CMAKE_ADDR2LINE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_AR -CMAKE_AR-ADVANCED:INTERNAL=1 -//This is the directory where this CMakeCache.txt was created -CMAKE_CACHEFILE_DIR:INTERNAL=/tmp/workspace/EXP-code/EXP/build-baseline -//Major version of cmake used to create the current loaded cache -CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3 -//Minor version of cmake used to create the current loaded cache -CMAKE_CACHE_MINOR_VERSION:INTERNAL=31 -//Patch version of cmake used to create the current loaded cache -CMAKE_CACHE_PATCH_VERSION:INTERNAL=6 -//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE -CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1 -//Path to CMake executable. -CMAKE_COMMAND:INTERNAL=/usr/local/bin/cmake -//Path to cpack program executable. -CMAKE_CPACK_COMMAND:INTERNAL=/usr/local/bin/cpack -//Path to ctest program executable. -CMAKE_CTEST_COMMAND:INTERNAL=/usr/local/bin/ctest -//ADVANCED property for variable: CMAKE_CXX_COMPILER -CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR -CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB -CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS -CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG -CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL -CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE -CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO -CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_COMPILER -CMAKE_C_COMPILER-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_COMPILER_AR -CMAKE_C_COMPILER_AR-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_COMPILER_RANLIB -CMAKE_C_COMPILER_RANLIB-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS -CMAKE_C_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG -CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL -CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE -CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO -CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_DLLTOOL -CMAKE_DLLTOOL-ADVANCED:INTERNAL=1 -//Path to cache edit program executable. -CMAKE_EDIT_COMMAND:INTERNAL=/usr/local/bin/ccmake -//Executable file format -CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS -CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG -CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL -CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE -CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO -CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS -CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1 -//Name of external makefile project generator. -CMAKE_EXTRA_GENERATOR:INTERNAL= -//ADVANCED property for variable: CMAKE_Fortran_COMPILER -CMAKE_Fortran_COMPILER-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_Fortran_COMPILER_AR -CMAKE_Fortran_COMPILER_AR-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_Fortran_COMPILER_RANLIB -CMAKE_Fortran_COMPILER_RANLIB-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_Fortran_FLAGS -CMAKE_Fortran_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_Fortran_FLAGS_DEBUG -CMAKE_Fortran_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_Fortran_FLAGS_MINSIZEREL -CMAKE_Fortran_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_Fortran_FLAGS_RELEASE -CMAKE_Fortran_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_Fortran_FLAGS_RELWITHDEBINFO -CMAKE_Fortran_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//Name of generator. -CMAKE_GENERATOR:INTERNAL=Unix Makefiles -//Generator instance identifier. -CMAKE_GENERATOR_INSTANCE:INTERNAL= -//Name of generator platform. -CMAKE_GENERATOR_PLATFORM:INTERNAL= -//Name of generator toolset. -CMAKE_GENERATOR_TOOLSET:INTERNAL= -//Source directory with the top level CMakeLists.txt file for this -// project -CMAKE_HOME_DIRECTORY:INTERNAL=/tmp/workspace/EXP-code/EXP -//Install .so files without execute permission. -CMAKE_INSTALL_SO_NO_EXE:INTERNAL=1 -//ADVANCED property for variable: CMAKE_LINKER -CMAKE_LINKER-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MAKE_PROGRAM -CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS -CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG -CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL -CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE -CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO -CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_NM -CMAKE_NM-ADVANCED:INTERNAL=1 -//number of local generators -CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1 -//ADVANCED property for variable: CMAKE_OBJCOPY -CMAKE_OBJCOPY-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_OBJDUMP -CMAKE_OBJDUMP-ADVANCED:INTERNAL=1 -//Platform information initialized -CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_RANLIB -CMAKE_RANLIB-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_READELF -CMAKE_READELF-ADVANCED:INTERNAL=1 -//Path to CMake installation. -CMAKE_ROOT:INTERNAL=/usr/local/share/cmake-3.31 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS -CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG -CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL -CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE -CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO -CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH -CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SKIP_RPATH -CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS -CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG -CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL -CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE -CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO -CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STRIP -CMAKE_STRIP-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_TAPI -CMAKE_TAPI-ADVANCED:INTERNAL=1 -//uname command -CMAKE_UNAME:INTERNAL=/usr/bin/uname -//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE -CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: MPIEXEC_EXECUTABLE -MPIEXEC_EXECUTABLE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: MPIEXEC_MAX_NUMPROCS -MPIEXEC_MAX_NUMPROCS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: MPIEXEC_NUMPROC_FLAG -MPIEXEC_NUMPROC_FLAG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: MPIEXEC_POSTFLAGS -MPIEXEC_POSTFLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: MPIEXEC_PREFLAGS -MPIEXEC_PREFLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: MPI_CXX_ADDITIONAL_INCLUDE_DIRS -MPI_CXX_ADDITIONAL_INCLUDE_DIRS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: MPI_CXX_COMPILER -MPI_CXX_COMPILER-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: MPI_CXX_COMPILER_INCLUDE_DIRS -MPI_CXX_COMPILER_INCLUDE_DIRS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: MPI_CXX_COMPILE_DEFINITIONS -MPI_CXX_COMPILE_DEFINITIONS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: MPI_CXX_COMPILE_OPTIONS -MPI_CXX_COMPILE_OPTIONS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: MPI_CXX_HEADER_DIR -MPI_CXX_HEADER_DIR-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: MPI_CXX_LIB_NAMES -MPI_CXX_LIB_NAMES-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: MPI_CXX_LINK_FLAGS -MPI_CXX_LINK_FLAGS-ADVANCED:INTERNAL=1 -MPI_CXX_PKG_CFLAGS:INTERNAL= -MPI_CXX_PKG_CFLAGS_I:INTERNAL= -MPI_CXX_PKG_CFLAGS_OTHER:INTERNAL= -MPI_CXX_PKG_FOUND:INTERNAL= -MPI_CXX_PKG_INCLUDEDIR:INTERNAL= -MPI_CXX_PKG_LIBDIR:INTERNAL= -MPI_CXX_PKG_LIBS:INTERNAL= -MPI_CXX_PKG_LIBS_L:INTERNAL= -MPI_CXX_PKG_LIBS_OTHER:INTERNAL= -MPI_CXX_PKG_LIBS_PATHS:INTERNAL= -MPI_CXX_PKG_MODULE_NAME:INTERNAL= -MPI_CXX_PKG_PREFIX:INTERNAL= -MPI_CXX_PKG_STATIC_CFLAGS:INTERNAL= -MPI_CXX_PKG_STATIC_CFLAGS_I:INTERNAL= -MPI_CXX_PKG_STATIC_CFLAGS_OTHER:INTERNAL= -MPI_CXX_PKG_STATIC_LIBDIR:INTERNAL= -MPI_CXX_PKG_STATIC_LIBS:INTERNAL= -MPI_CXX_PKG_STATIC_LIBS_L:INTERNAL= -MPI_CXX_PKG_STATIC_LIBS_OTHER:INTERNAL= -MPI_CXX_PKG_STATIC_LIBS_PATHS:INTERNAL= -MPI_CXX_PKG_VERSION:INTERNAL= -MPI_CXX_PKG_mpi-cxx_INCLUDEDIR:INTERNAL= -MPI_CXX_PKG_mpi-cxx_LIBDIR:INTERNAL= -MPI_CXX_PKG_mpi-cxx_PREFIX:INTERNAL= -MPI_CXX_PKG_mpi-cxx_VERSION:INTERNAL= -//ADVANCED property for variable: MPI_CXX_SKIP_MPICXX -MPI_CXX_SKIP_MPICXX-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: MPI_C_ADDITIONAL_INCLUDE_DIRS -MPI_C_ADDITIONAL_INCLUDE_DIRS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: MPI_C_COMPILER -MPI_C_COMPILER-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: MPI_C_COMPILER_INCLUDE_DIRS -MPI_C_COMPILER_INCLUDE_DIRS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: MPI_C_COMPILE_DEFINITIONS -MPI_C_COMPILE_DEFINITIONS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: MPI_C_COMPILE_OPTIONS -MPI_C_COMPILE_OPTIONS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: MPI_C_HEADER_DIR -MPI_C_HEADER_DIR-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: MPI_C_LIB_NAMES -MPI_C_LIB_NAMES-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: MPI_C_LINK_FLAGS -MPI_C_LINK_FLAGS-ADVANCED:INTERNAL=1 -MPI_C_PKG_CFLAGS:INTERNAL= -MPI_C_PKG_CFLAGS_I:INTERNAL= -MPI_C_PKG_CFLAGS_OTHER:INTERNAL= -MPI_C_PKG_FOUND:INTERNAL= -MPI_C_PKG_INCLUDEDIR:INTERNAL= -MPI_C_PKG_LIBDIR:INTERNAL= -MPI_C_PKG_LIBS:INTERNAL= -MPI_C_PKG_LIBS_L:INTERNAL= -MPI_C_PKG_LIBS_OTHER:INTERNAL= -MPI_C_PKG_LIBS_PATHS:INTERNAL= -MPI_C_PKG_MODULE_NAME:INTERNAL= -MPI_C_PKG_PREFIX:INTERNAL= -MPI_C_PKG_STATIC_CFLAGS:INTERNAL= -MPI_C_PKG_STATIC_CFLAGS_I:INTERNAL= -MPI_C_PKG_STATIC_CFLAGS_OTHER:INTERNAL= -MPI_C_PKG_STATIC_LIBDIR:INTERNAL= -MPI_C_PKG_STATIC_LIBS:INTERNAL= -MPI_C_PKG_STATIC_LIBS_L:INTERNAL= -MPI_C_PKG_STATIC_LIBS_OTHER:INTERNAL= -MPI_C_PKG_STATIC_LIBS_PATHS:INTERNAL= -MPI_C_PKG_VERSION:INTERNAL= -MPI_C_PKG_mpi-c_INCLUDEDIR:INTERNAL= -MPI_C_PKG_mpi-c_LIBDIR:INTERNAL= -MPI_C_PKG_mpi-c_PREFIX:INTERNAL= -MPI_C_PKG_mpi-c_VERSION:INTERNAL= -//Result of TRY_COMPILE -MPI_RESULT_CXX_test_mpi_normal:INTERNAL=FALSE -//Result of TRY_COMPILE -MPI_RESULT_C_test_mpi_normal:INTERNAL=FALSE -//ADVANCED property for variable: PKG_CONFIG_ARGN -PKG_CONFIG_ARGN-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: PKG_CONFIG_EXECUTABLE -PKG_CONFIG_EXECUTABLE-ADVANCED:INTERNAL=1 -//linker supports push/pop state -_CMAKE_CXX_LINKER_PUSHPOP_STATE_SUPPORTED:INTERNAL=TRUE -//linker supports push/pop state -_CMAKE_C_LINKER_PUSHPOP_STATE_SUPPORTED:INTERNAL=TRUE -//linker supports push/pop state -_CMAKE_Fortran_LINKER_PUSHPOP_STATE_SUPPORTED:INTERNAL=TRUE -//linker supports push/pop state -_CMAKE_LINKER_PUSHPOP_STATE_SUPPORTED:INTERNAL=TRUE -__pkg_config_checked_MPI_CXX_PKG:INTERNAL=1 -__pkg_config_checked_MPI_C_PKG:INTERNAL=1 - diff --git a/build-baseline/CMakeFiles/3.31.6/CMakeCCompiler.cmake b/build-baseline/CMakeFiles/3.31.6/CMakeCCompiler.cmake deleted file mode 100644 index 6f50f9184..000000000 --- a/build-baseline/CMakeFiles/3.31.6/CMakeCCompiler.cmake +++ /dev/null @@ -1,81 +0,0 @@ -set(CMAKE_C_COMPILER "/usr/bin/cc") -set(CMAKE_C_COMPILER_ARG1 "") -set(CMAKE_C_COMPILER_ID "GNU") -set(CMAKE_C_COMPILER_VERSION "13.3.0") -set(CMAKE_C_COMPILER_VERSION_INTERNAL "") -set(CMAKE_C_COMPILER_WRAPPER "") -set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "17") -set(CMAKE_C_EXTENSIONS_COMPUTED_DEFAULT "ON") -set(CMAKE_C_STANDARD_LATEST "23") -set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert;c_std_17;c_std_23") -set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes") -set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros") -set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert") -set(CMAKE_C17_COMPILE_FEATURES "c_std_17") -set(CMAKE_C23_COMPILE_FEATURES "c_std_23") - -set(CMAKE_C_PLATFORM_ID "Linux") -set(CMAKE_C_SIMULATE_ID "") -set(CMAKE_C_COMPILER_FRONTEND_VARIANT "GNU") -set(CMAKE_C_SIMULATE_VERSION "") - - - - -set(CMAKE_AR "/usr/bin/ar") -set(CMAKE_C_COMPILER_AR "/usr/bin/gcc-ar-13") -set(CMAKE_RANLIB "/usr/bin/ranlib") -set(CMAKE_C_COMPILER_RANLIB "/usr/bin/gcc-ranlib-13") -set(CMAKE_LINKER "/usr/bin/ld") -set(CMAKE_LINKER_LINK "") -set(CMAKE_LINKER_LLD "") -set(CMAKE_C_COMPILER_LINKER "/usr/bin/ld") -set(CMAKE_C_COMPILER_LINKER_ID "GNU") -set(CMAKE_C_COMPILER_LINKER_VERSION 2.42) -set(CMAKE_C_COMPILER_LINKER_FRONTEND_VARIANT GNU) -set(CMAKE_MT "") -set(CMAKE_TAPI "CMAKE_TAPI-NOTFOUND") -set(CMAKE_COMPILER_IS_GNUCC 1) -set(CMAKE_C_COMPILER_LOADED 1) -set(CMAKE_C_COMPILER_WORKS TRUE) -set(CMAKE_C_ABI_COMPILED TRUE) - -set(CMAKE_C_COMPILER_ENV_VAR "CC") - -set(CMAKE_C_COMPILER_ID_RUN 1) -set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m) -set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) -set(CMAKE_C_LINKER_PREFERENCE 10) -set(CMAKE_C_LINKER_DEPFILE_SUPPORTED ) - -# Save compiler ABI information. -set(CMAKE_C_SIZEOF_DATA_PTR "8") -set(CMAKE_C_COMPILER_ABI "ELF") -set(CMAKE_C_BYTE_ORDER "LITTLE_ENDIAN") -set(CMAKE_C_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") - -if(CMAKE_C_SIZEOF_DATA_PTR) - set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}") -endif() - -if(CMAKE_C_COMPILER_ABI) - set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}") -endif() - -if(CMAKE_C_LIBRARY_ARCHITECTURE) - set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") -endif() - -set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "") -if(CMAKE_C_CL_SHOWINCLUDES_PREFIX) - set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}") -endif() - - - - - -set(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/13/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include") -set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "gcc;gcc_s;c;gcc;gcc_s") -set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/13;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib") -set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/build-baseline/CMakeFiles/3.31.6/CMakeCXXCompiler.cmake b/build-baseline/CMakeFiles/3.31.6/CMakeCXXCompiler.cmake deleted file mode 100644 index 14f6ae31d..000000000 --- a/build-baseline/CMakeFiles/3.31.6/CMakeCXXCompiler.cmake +++ /dev/null @@ -1,101 +0,0 @@ -set(CMAKE_CXX_COMPILER "/usr/bin/c++") -set(CMAKE_CXX_COMPILER_ARG1 "") -set(CMAKE_CXX_COMPILER_ID "GNU") -set(CMAKE_CXX_COMPILER_VERSION "13.3.0") -set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "") -set(CMAKE_CXX_COMPILER_WRAPPER "") -set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "17") -set(CMAKE_CXX_EXTENSIONS_COMPUTED_DEFAULT "ON") -set(CMAKE_CXX_STANDARD_LATEST "23") -set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17;cxx_std_20;cxx_std_23") -set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters") -set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates") -set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates") -set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17") -set(CMAKE_CXX20_COMPILE_FEATURES "cxx_std_20") -set(CMAKE_CXX23_COMPILE_FEATURES "cxx_std_23") -set(CMAKE_CXX26_COMPILE_FEATURES "") - -set(CMAKE_CXX_PLATFORM_ID "Linux") -set(CMAKE_CXX_SIMULATE_ID "") -set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "GNU") -set(CMAKE_CXX_SIMULATE_VERSION "") - - - - -set(CMAKE_AR "/usr/bin/ar") -set(CMAKE_CXX_COMPILER_AR "/usr/bin/gcc-ar-13") -set(CMAKE_RANLIB "/usr/bin/ranlib") -set(CMAKE_CXX_COMPILER_RANLIB "/usr/bin/gcc-ranlib-13") -set(CMAKE_LINKER "/usr/bin/ld") -set(CMAKE_LINKER_LINK "") -set(CMAKE_LINKER_LLD "") -set(CMAKE_CXX_COMPILER_LINKER "/usr/bin/ld") -set(CMAKE_CXX_COMPILER_LINKER_ID "GNU") -set(CMAKE_CXX_COMPILER_LINKER_VERSION 2.42) -set(CMAKE_CXX_COMPILER_LINKER_FRONTEND_VARIANT GNU) -set(CMAKE_MT "") -set(CMAKE_TAPI "CMAKE_TAPI-NOTFOUND") -set(CMAKE_COMPILER_IS_GNUCXX 1) -set(CMAKE_CXX_COMPILER_LOADED 1) -set(CMAKE_CXX_COMPILER_WORKS TRUE) -set(CMAKE_CXX_ABI_COMPILED TRUE) - -set(CMAKE_CXX_COMPILER_ENV_VAR "CXX") - -set(CMAKE_CXX_COMPILER_ID_RUN 1) -set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;mpp;CPP;ixx;cppm;ccm;cxxm;c++m) -set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) - -foreach (lang IN ITEMS C OBJC OBJCXX) - if (CMAKE_${lang}_COMPILER_ID_RUN) - foreach(extension IN LISTS CMAKE_${lang}_SOURCE_FILE_EXTENSIONS) - list(REMOVE_ITEM CMAKE_CXX_SOURCE_FILE_EXTENSIONS ${extension}) - endforeach() - endif() -endforeach() - -set(CMAKE_CXX_LINKER_PREFERENCE 30) -set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1) -set(CMAKE_CXX_LINKER_DEPFILE_SUPPORTED ) - -# Save compiler ABI information. -set(CMAKE_CXX_SIZEOF_DATA_PTR "8") -set(CMAKE_CXX_COMPILER_ABI "ELF") -set(CMAKE_CXX_BYTE_ORDER "LITTLE_ENDIAN") -set(CMAKE_CXX_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") - -if(CMAKE_CXX_SIZEOF_DATA_PTR) - set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}") -endif() - -if(CMAKE_CXX_COMPILER_ABI) - set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}") -endif() - -if(CMAKE_CXX_LIBRARY_ARCHITECTURE) - set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") -endif() - -set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "") -if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX) - set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}") -endif() - - - - - -set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "/usr/include/c++/13;/usr/include/x86_64-linux-gnu/c++/13;/usr/include/c++/13/backward;/usr/lib/gcc/x86_64-linux-gnu/13/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include") -set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "stdc++;m;gcc_s;gcc;c;gcc_s;gcc") -set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/13;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib") -set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") -set(CMAKE_CXX_COMPILER_CLANG_RESOURCE_DIR "") - -set(CMAKE_CXX_COMPILER_IMPORT_STD "") -### Imported target for C++23 standard library -set(CMAKE_CXX23_COMPILER_IMPORT_STD_NOT_FOUND_MESSAGE "Unsupported generator: Unix Makefiles") - - - diff --git a/build-baseline/CMakeFiles/3.31.6/CMakeDetermineCompilerABI_C.bin b/build-baseline/CMakeFiles/3.31.6/CMakeDetermineCompilerABI_C.bin deleted file mode 100755 index abaa3e37354a9bfc765d68765e83b8ed69650879..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15968 zcmeHOYit}>6~4Q9x#ZzZnvjr`W=k7L08i}1F=>#=I_q_2k>iBKp@I-5v!1a%VjpI9 zwzUhCpzx>(sgkN{DNrd?6(I2^l@R$+QML*y0s$gFfFOhvN-G5sT2~ZgAkA{l%=tFs zVcnv_4;* zZ&kOb#UwBExj>%@fV4rml$?ug!Y?3Xzja(`fwu%SMF2B_pX*w0sq z3?BHT1OS3>#!E}Y2o8%MFzm;y5-aAbzLQelseH?+$1MM7$4>pPv`ezaHQ; zAC!3WorjdMir+aJB>L@zp+GNM%&Yq5*Zmn9;w)vsCUupX1F|~K-u%c$_ z%t;zm@^~PlJ=U!jJ=>42pMLDCkDMt#|3&Mr?8!4<>wZdaV;k-_`>+icZVy9*Wv+8f zwh8j_8LG+HCcJ3>tmG5(e6ZiD7P>5P=@z^(4_}^#znS>AwP;5f24!@_sCuUB870#x z6EiYt8lz6xEIRkviq)Lo9<_Hczb9*K)3#|ln)U77%E%AzGc4P+$DFEXyTkjk#Y)*8 zHVZ|Y+8QfW%F?Rqb7e^%K2GuIke-c+2#Yy^Be> zvZc{zT(Rim*+s9?U3cOr`8MOT{~zulC07oU-}I-h>eIE$Kg?a@Zl26t)xWHtTJwt) zl%DS{Otn8^3oFxh@Ss`*_j&6+<(TDo@h0*Cg`QS+>D=(xlgh%*pp zAkILXfj9$k2I36F8Hh6wXCTf%oPmEo1N{E$wMu?yVE?Wvy`QU$8rFp89_ie9G;BYV z-#<{;)So$p_m@@%8x(!0AOgZbg%!JLsB>d*HLk%g}} z3(gT*hrkYr4GZ4O@80-b*6EiTjbnso3GXL7N2n7%I@4&JCFH{IRJkPXJ*X0ssl?Z7eec{>~QFY({V-9goE`rk~vPpn7{tXTK{_NDi<9ap>8-}%n%clfU_ z+5aQ-pMo9Lxp12v{l857Cz!~sNPRw;UA{Q!Qe-CL5@#UJK%9X%191l848$3TGZ1GW z&On@j|BVb_y&~2pV(p=S(?eZchHlFG#pNPDA?qC9A~M!NZV(x_KI=usdPu%s;sX6& zt~V+ypOZz5SerP`H+)orHLXfr68)P3THPmNB$mo|e|K9_w5C0Ea#JbeI z+3c?L=EH?r*{h|ywrkt9&W@g%FK)YUTesHPt#xe?#cPG+akWsr+=$w6z7wSRk|ZQ8 z2E1;#l|7%2q*|dSWIT$wN(+BB!fzKI;~VyQswC7pmC6JR#yzjHPSDc=jMqS`)F-LJ zadEwX=W&=&H!F;P@ZY3LtNuUb+ox0}9av&~{Zja2!V9QZgg-6>tp@PReEE5mvVs?yTbPo_=m(k+Wyyxm!@Ir<2mA2Cf6#A zdnmuhJVl0+T*m4r#HVQdtjoYMz^@R$ipEJs#-abLiBuQG9^(yOzZLr}@_p(*Ln7sK z#B+b5_Ae5jhI0tplC9U--%k9hBz;Rpt_yW&#Pzzg3aylYP&^tr#~RAsPi|j2gBav-~fr zqT_i*dybZlmVyo(?Azx*bu?&mK>vq^`u63sMAI${Bd3d2??0%Fy@UJr^bH#O2L=x1 zhK=FAJ@l}W3?q9NGT5TUz#sEWApf3+OEmuF>AnecpWZ<_W{uxmKt;h+3AKH5|;*WU)5cfB* zkB;B-;*b2Rv{(v0AR<6$i0b=P<1WJgv={*SU01k7dk zh3AmC|G>Nz`yr$Dkb%D^-}aC{=E<`iL{foWAl;C`zeEZidx+nhcWQx0oez!*kAE)k z!+HD$aclyA%tPy2*;=WL|9RsB{=ivMh5efjoq-SHpau9rzD^b95Fhiil=w&O<#6Dx z77)Rlm^XR&OB$Oz{KJT`(=?(=MjHH*7| UmgmB){a5l23zcONhlr^D3BLOi8~^|S diff --git a/build-baseline/CMakeFiles/3.31.6/CMakeDetermineCompilerABI_CXX.bin b/build-baseline/CMakeFiles/3.31.6/CMakeDetermineCompilerABI_CXX.bin deleted file mode 100755 index 631c9ac47e35575c396fa010d9b7b9df90165656..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15992 zcmeHOYit}>6~4Q9xipD4Y23I;X_nHU1nP-jF-{<49ebT!9Q9#VzWN{IAV*ea+MNFXXv5yYQBi4;U2u4s`%LzZ*qo^L%K zty^9{keIvL`R@77IrrW<_s;H}nR`E*92$&9A_{4l`ha375z|aU6us}23_(Kmsx@?c zySiJgBzd{VX?;QiX?403U5rh_FC%2XR?alQyERQU=!6zBvfol^ZiUtWm7E9rc`A{? z1D}-&fZ*%(#ihmoj*1`9@5iy3Ytw#ndlq9{;<8N;ek`(|GPFH)hfac3sSk*Fa!mN! zEAb3syA%Tq`b~;o5C_B$$aQc!e8tWFJM|qDzq4_#7!}0(HLZZC??dG0#YOaQ1?c8O zQr}Yj5R>==CA?}!&dKz2@5p7_a!#Q#-8S9Z)7H~%l#52ES2edQPG25V`-hJxDyGVu zgi%FLY8mCRZiDFA{z~?ZvH1M)=Z;@`;x6^TjSFk8x7^P*+-~+^8%|svh6u}?=Q`O& z$K!L9ld(^w;(c^aMM&oMV!Tu~Ik$1tdHgZ=gRgv@!W^YvJe_bIn)mVYlL%FaVFbbm zgb@fM5Jn)3Kp25A0{_Pm_)GIWe@mUZ)|5KE;@3NrN`0Z~Mr*%Fo%(UpMK3C~olg>7 z+xiq8o3|ts+t;>UAZfgL%YgFajz6VmUpk(e{axzR@8=GVCOfJfKS`b0^HVCI)>0QfF3tm0{Ps+d@@;nDbQiZMDnITTZg!MM1K6Jo}v)hV8dfvvaBE z|GYQ#{QR<1z*Z@ssdibn3;x{RlY3aLD(^XxI<+Ut+0^V6cXjIYo|PnA z-CnEJu4d`*!ivAsU3cUd`PS=a|35rLO3oZ1zuC`ROU+g;znHwq%{-mFmilJuOv}q_ zDLg-19&5f(jU;ahyMa&hH>^3oJlcFdsQGOpP0JqxCEYxBk*oIlsNO4Fb(q2kgb@fM z5Jn)3Kp25A0$~Kg2!s&`BM?R)jKDu10e=7WW+^>9II_D;@8^o+W_HRg9c}MD=C>bC zj|^sZyECR;D%#njrSv{?|8O!rFx;m+JI_BeH++=znpUMQiT-VxR*wnZF4!vAA_&0R$f~S=TqTNjsR-?;3QvnY zy@c}a5gB%G)O33(P9AkjWWAW2UT`nyJx{td_0Dfj&gX{6XqOcK-vg`<{|`&Vy43ys z{k!Aaj$|qYw-WE@GP;cRww{V7c0SVCZM1hA9ot3mW>xaITCQHL1#LLq5z>4~0umPk zUN_vxp8F%J)~YEPk7BOk!k-K9UBY90!#+)!h-y`_gk~`Ad6jj9o)%!dYOPYArVQ7M z>jgZI!-%>=Vf=&tE@c|E|3{vEOvU5c665t{;S<7R+`TUR3E>4)D>XQxV(O$2v`WBB zOT}%gXTM$@e1{nNpiw)!JbP+gU_8B_c%|0W*Xg5}5zqckh3gEwO?;#E<&P2{hmjAz z@9`UzO87|1K0$m;ZLIefwBIIveY9EO_XzycVjnE$Ij?+JE#Qm9uZwO}828Zpl6k6G z#Wf?Bv3iC07>%FS1S~c3ev$PwP7*Q>y=P6Nx+?YlRC8)2d9Xv0{EIXS;URXm4!6EBYPNDwQmHC|GbyGitnK z(Rt#V46$=`J$uKVW^_?tk#XeyYXE*`>aHX=7|^N|_%W>gaI_<3-c=ERxwy z%`QA)G&9Zw)thxJ+F?NYU7nXupL1L{XZuWgJqwBoHE!@w-vRIGq)D3y20k*}cOczQ zH0{PPlPS@r1`a86|Io<3z9DmDaPV+))Ew>GM-Mg0FtEoVfvpU0wSB?PTCSzM&`~KY z=)DXiEZ*2)X3Ir$(kf(m(?fcMtg=qQtd#An;!`5~Ot~z+vde-tO7QbmJ|o^i(QsSD z;=LI4X7dgVuajs$Qh6rtS{XvOq;V2Cr$E~=rj$`Ay0$S$fBN64S&l8`Z<1hz}%!S?_U&X~z@XI0sgodc}yl|oa&WZt$-+}p4u>PNs zl1~x!SL50m_%$uokLZ68zoHD!A#q=V`7HKH2JImOUm@RSpFif$^KC>@f}NHYWboHX z!DA2g*XNyv_Nem7QR4B>34Z9u?-0i(@W(u~x`VBiN_fYG1N?#Wr1JaM9on@I>Ol$c zgM5oJ%%OhF+hXD$w3pL?yIMvBb7EfS;V)sV^YHg0`o3;NnS>PhJ!u$U$9K{f?ZNLK l--n^?l&z<$d;>)(5hxt>YAw%^8~bnLKNd=>0}cUE{R8m(8!Z3; diff --git a/build-baseline/CMakeFiles/3.31.6/CMakeDetermineCompilerABI_Fortran.bin b/build-baseline/CMakeFiles/3.31.6/CMakeDetermineCompilerABI_Fortran.bin deleted file mode 100755 index 5b0a4ed39ccffe11495184de525e2f73ddb891b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16312 zcmeHOeQX?85r5~{iQ6Xer6klOkZem^C4krQM~ssy0x3}*-*uA}{DiRS)3&fWMN>fpV#7NQJP6c2w(Jq$2 zdA0bASO{{p#FRd!7-$u}URBC#310vl{pzt$hJRYYf;qPkIr>$ixkXCDTu?vIuLe~l z2YENOgE{NHcp5qbY4YrG7Y%@z`~5ICyBnlh?A~0;k5FEY5@$aY(Jx1SIr3w!kv((H zC*}l?cIrovYoJ5Y|5kcOnV8NW@-2#4? zm;aRbYwo9bmA;25$|rOBIz?kDIn>tLm`XIHl9|F-!&rM;LtCq!&+5&x3D_=-fn#dh zjzLkiUrZy${#afP2c{MES1x_?gO=Ere}43pJ&mut_}kd9Ir{|Hfj(%1g!VinP{#6A zaG;Iq|3gqx81mEht7+tw2>rA&${xV3E`wvAv@-Y?D&Pgc%hhvt1^kH$_zM;ApH;wr zR{{Sk;Mc)%37O_dI-4=`uI0F~S=Vly~y>)F{q(BHAc#Gio(jLL{SS3wCs)pFco&QTYIL5JgLJsi(``!N`{ z)nYASg_X%GaFn-zjD+>P4IJ%}M&JDo+`+5F7Si*5lkZpimysRa7a5NcUK>+-##w%S zi^B05qN*iu#)s1_P~tN_9IsQRIUkPKCDR2TekFsze?mC^EcvhNBR*XIE|JesAC7Hh zn)c!J6DL(K`*7|vDo*)uNO(wL2Eq)483;2FW+2Q!m;o;X|Eyd6o-ux|);L&mvQY@* zz_eRcJY|d@uRSJhiW?k&i#ND%u3Hm>63U~fn>|wmy5Z|6`}twLZq38e9`KET7>8?`k!`%-u7Iw+qpPl6Q9M((Wg-#vCY#QSiA`fmd z4(}=&hZlbr0O-?-A@D!AeA$853M&H|12iY9mnqNb$Q#qoq04+tYXkQ6s;2SxBJQH+ z(Cdwb#yI%BcHkYiPWnEN=*;4aMQA|H*(KPi0~bCl7Ec@yfGq{(i34*W@0X?XP{R4D zaae-J#EF?}rK=R5{e)C4`ID^XRn#5>2cPkADc0N{j00cFN5%Q&d`-`SJ2YX*#C)7P z=d~F2E)XYA9+TM~KNp?2{{v&9FlQVboIBVJ#ovR;?W!sLvW}OY$JzGG2Eb-+hYlSD zNt`?;yz9ohQcw|6n1L_@VFtnsgc%4k5N06EK$w9r17QaKcQb(RYy8w$$UBXxY}`sU z=HXS9-55_>_t*_BdP`GdUp7%l+4;uKK7e}Ei?GgYI+sk@PRG_>y=UWk(YvE(=cYWo ze98`+iJa@)*?u>uv@YAVr_O1z{CS-4IGhG3vR-9M)+sIqkk_J6TqwI zip4{~mjmAp{6pYB0)EdwipArI!+{jJuU|yQqLEdL7u8NerHJF&foZ7cMl|SJBwsOI z55-nE)&ibGd}*|2Y5mQ0SM90YFSe|_>2odDUxzUI-vvhw?ELRluud0_Tc8~oY<$Pk z=p$8~OBOCjMj*6|`6$5Of2&xG0r&LZL~Tf62Eq)483;2FW+2Q!n1L_@VFtns{6A-a z*Q@dRG=AQ}HE&2PFQfv?xQ5QJUrF*}1$ztT@P!vrJHBB9`jlecdgE0j^RvfFl1FL% z9Ivlt{o5CdSu~lV#c;efZKhf|@|v`lNzZHDZl?C}nz(w3vw}D?aubuZK8>F~`Gqe& zcOmf_w`-Irb`!w(6g7m~JxzAJ){Wz@CY zGwI(YnfpQ2|JN9=^A1+nCZAq~=pp_U;={!6CH@HUp#Mk7yiRgkXXhqu?ch)$;}*0g zcQfZ(2u+%hid)p<29E4BFuL69LUWN}xstIDE_5cpu) zzt9hHLF+z2l+*%e#QAz7SoA_60#`>grVtvgVo>5M1YZwIE5tr1U_E^OGX5=TzuddN z7=IcH<=TG?aI9y7+A04t0PHt#V0)Iwpa4Xdmv|M*5$IG-Lsb2TfxJ?F{s6iNXmi)1 zRVkHg&x|y=+FN(e9`8dTBCheSOU7|UK}38~1jpqQfNKJ-vKU(`{v_a6Lw~2}`?`_T zc>mH$O{KIB?W>~R{fkW+Wj!p-^IIy^lLmYle1xWKIiLF~*gpn%v`qVd2za^m?56>j ze+AHupcD*`WRa(en$oSF=>Bk zJ0GlI|5OG1S&7$)e^Dnm{PT!c!LL)`Iu*CZ9k)r(!qRkWC~3OZhyWn(7KVrQxR_sn zZ@OtSj!W=yS$iUDj-;|fR?1AcStoB=g)tF_KN?f;FJeMpU)}z2HA+7{*JzGvwKGu?k6x| z2Zz~hm7V?F{s8zEapZfg2)9O|XZ4BZ^#N6x=}J zbqBUTs0|f3QiRa+d(*Bp1l)BLALUXq1DiQ=LeFGfTOY|3^qiB;*^ax{2MraHu#qU4 zAPD{tZ@>#dnvYufQK2XHW*~&(uA?;f+D;z+F)tBJ&^dO>LI*14Qm)WtGj%BHBUun# zdkoHUMCndeW;FOvANRddvA(63$EE z774$Nit1@Tz?|o$q?Wc^M*dkia4yLH?c~o~1D&6E{>NAw6#V|Tkw0^MPv9s1Jz)&z z6Mlc5&oI~6ka*DltAM`)b4hML&$pR#e42K8`}Me53ko>bW`CZKGuJS=K-fksa{qZ= zoCFNJ%>F#TXU_9^Fp)&nu_(R)C7dg>KhKYua~y6z+cAFt{BiEhGS9y~PLVjr+Wm`{@-$7g?T*W={BmF#w7ARy+GN)+gi&mckn9{`3q;rhMbJ^KCQ=Podj z6#V|51k~@ZkstFM`7tB47v|}J|0EeO=k~Hc%gm1i{HMsD`Qw~es(|BjeZL6!^YbTj zelBJEVE=zb{$3c3EQuc?ky$YQaZq6X*#D5GESa||(K`p@zXlq=|Fot|nLp!sssiVY z;XgtF*TB+k!+Rd!eWpQsmYL6hFFd_?{`~wg+5jLB+bL;YX8b%TaO`n>o}cr+VT}?) z!`iEl^Y~Nn#s0HDKaWo~0tl2-%sX>j<{yH_?=NCxx?XXPL#P*@HWTbmY4mWkMe=hVJ4&O@F{)6bfcQIv|6y=@`2K;>24 & 0x00FF) -# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) -# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) - -#elif defined(__BORLANDC__) -# define COMPILER_ID "Borland" - /* __BORLANDC__ = 0xVRR */ -# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) -# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) - -#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 -# define COMPILER_ID "Watcom" - /* __WATCOMC__ = VVRR */ -# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) -# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) -# if (__WATCOMC__ % 10) > 0 -# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) -# endif - -#elif defined(__WATCOMC__) -# define COMPILER_ID "OpenWatcom" - /* __WATCOMC__ = VVRP + 1100 */ -# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) -# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) -# if (__WATCOMC__ % 10) > 0 -# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) -# endif - -#elif defined(__SUNPRO_C) -# define COMPILER_ID "SunPro" -# if __SUNPRO_C >= 0x5100 - /* __SUNPRO_C = 0xVRRP */ -# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12) -# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF) -# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) -# else - /* __SUNPRO_CC = 0xVRP */ -# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8) -# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF) -# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) -# endif - -#elif defined(__HP_cc) -# define COMPILER_ID "HP" - /* __HP_cc = VVRRPP */ -# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000) -# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100) -# define COMPILER_VERSION_PATCH DEC(__HP_cc % 100) - -#elif defined(__DECC) -# define COMPILER_ID "Compaq" - /* __DECC_VER = VVRRTPPPP */ -# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000) -# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100) -# define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000) - -#elif defined(__IBMC__) && defined(__COMPILER_VER__) -# define COMPILER_ID "zOS" - /* __IBMC__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) - -#elif defined(__open_xl__) && defined(__clang__) -# define COMPILER_ID "IBMClang" -# define COMPILER_VERSION_MAJOR DEC(__open_xl_version__) -# define COMPILER_VERSION_MINOR DEC(__open_xl_release__) -# define COMPILER_VERSION_PATCH DEC(__open_xl_modification__) -# define COMPILER_VERSION_TWEAK DEC(__open_xl_ptf_fix_level__) - - -#elif defined(__ibmxl__) && defined(__clang__) -# define COMPILER_ID "XLClang" -# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) -# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) -# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) -# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) - - -#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800 -# define COMPILER_ID "XL" - /* __IBMC__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) - -#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800 -# define COMPILER_ID "VisualAge" - /* __IBMC__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) - -#elif defined(__NVCOMPILER) -# define COMPILER_ID "NVHPC" -# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__) -# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__) -# if defined(__NVCOMPILER_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__) -# endif - -#elif defined(__PGI) -# define COMPILER_ID "PGI" -# define COMPILER_VERSION_MAJOR DEC(__PGIC__) -# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) -# if defined(__PGIC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) -# endif - -#elif defined(__clang__) && defined(__cray__) -# define COMPILER_ID "CrayClang" -# define COMPILER_VERSION_MAJOR DEC(__cray_major__) -# define COMPILER_VERSION_MINOR DEC(__cray_minor__) -# define COMPILER_VERSION_PATCH DEC(__cray_patchlevel__) -# define COMPILER_VERSION_INTERNAL_STR __clang_version__ - - -#elif defined(_CRAYC) -# define COMPILER_ID "Cray" -# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) -# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) - -#elif defined(__TI_COMPILER_VERSION__) -# define COMPILER_ID "TI" - /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ -# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) -# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) -# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) - -#elif defined(__CLANG_FUJITSU) -# define COMPILER_ID "FujitsuClang" -# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) -# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) -# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) -# define COMPILER_VERSION_INTERNAL_STR __clang_version__ - - -#elif defined(__FUJITSU) -# define COMPILER_ID "Fujitsu" -# if defined(__FCC_version__) -# define COMPILER_VERSION __FCC_version__ -# elif defined(__FCC_major__) -# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) -# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) -# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) -# endif -# if defined(__fcc_version) -# define COMPILER_VERSION_INTERNAL DEC(__fcc_version) -# elif defined(__FCC_VERSION) -# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION) -# endif - - -#elif defined(__ghs__) -# define COMPILER_ID "GHS" -/* __GHS_VERSION_NUMBER = VVVVRP */ -# ifdef __GHS_VERSION_NUMBER -# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) -# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) -# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) -# endif - -#elif defined(__TASKING__) -# define COMPILER_ID "Tasking" - # define COMPILER_VERSION_MAJOR DEC(__VERSION__/1000) - # define COMPILER_VERSION_MINOR DEC(__VERSION__ % 100) -# define COMPILER_VERSION_INTERNAL DEC(__VERSION__) - -#elif defined(__ORANGEC__) -# define COMPILER_ID "OrangeC" -# define COMPILER_VERSION_MAJOR DEC(__ORANGEC_MAJOR__) -# define COMPILER_VERSION_MINOR DEC(__ORANGEC_MINOR__) -# define COMPILER_VERSION_PATCH DEC(__ORANGEC_PATCHLEVEL__) - -#elif defined(__TINYC__) -# define COMPILER_ID "TinyCC" - -#elif defined(__BCC__) -# define COMPILER_ID "Bruce" - -#elif defined(__SCO_VERSION__) -# define COMPILER_ID "SCO" - -#elif defined(__ARMCC_VERSION) && !defined(__clang__) -# define COMPILER_ID "ARMCC" -#if __ARMCC_VERSION >= 1000000 - /* __ARMCC_VERSION = VRRPPPP */ - # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) - # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) - # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) -#else - /* __ARMCC_VERSION = VRPPPP */ - # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) - # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) - # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) -#endif - - -#elif defined(__clang__) && defined(__apple_build_version__) -# define COMPILER_ID "AppleClang" -# if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -# endif -# define COMPILER_VERSION_MAJOR DEC(__clang_major__) -# define COMPILER_VERSION_MINOR DEC(__clang_minor__) -# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) -# if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -# endif -# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) - -#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) -# define COMPILER_ID "ARMClang" - # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) - # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) - # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION/100 % 100) -# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) - -#elif defined(__clang__) && defined(__ti__) -# define COMPILER_ID "TIClang" - # define COMPILER_VERSION_MAJOR DEC(__ti_major__) - # define COMPILER_VERSION_MINOR DEC(__ti_minor__) - # define COMPILER_VERSION_PATCH DEC(__ti_patchlevel__) -# define COMPILER_VERSION_INTERNAL DEC(__ti_version__) - -#elif defined(__clang__) -# define COMPILER_ID "Clang" -# if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -# endif -# define COMPILER_VERSION_MAJOR DEC(__clang_major__) -# define COMPILER_VERSION_MINOR DEC(__clang_minor__) -# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) -# if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -# endif - -#elif defined(__LCC__) && (defined(__GNUC__) || defined(__GNUG__) || defined(__MCST__)) -# define COMPILER_ID "LCC" -# define COMPILER_VERSION_MAJOR DEC(__LCC__ / 100) -# define COMPILER_VERSION_MINOR DEC(__LCC__ % 100) -# if defined(__LCC_MINOR__) -# define COMPILER_VERSION_PATCH DEC(__LCC_MINOR__) -# endif -# if defined(__GNUC__) && defined(__GNUC_MINOR__) -# define SIMULATE_ID "GNU" -# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) -# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) -# if defined(__GNUC_PATCHLEVEL__) -# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -# endif -# endif - -#elif defined(__GNUC__) -# define COMPILER_ID "GNU" -# define COMPILER_VERSION_MAJOR DEC(__GNUC__) -# if defined(__GNUC_MINOR__) -# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) -# endif -# if defined(__GNUC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -# endif - -#elif defined(_MSC_VER) -# define COMPILER_ID "MSVC" - /* _MSC_VER = VVRR */ -# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) -# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) -# if defined(_MSC_FULL_VER) -# if _MSC_VER >= 1400 - /* _MSC_FULL_VER = VVRRPPPPP */ -# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) -# else - /* _MSC_FULL_VER = VVRRPPPP */ -# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) -# endif -# endif -# if defined(_MSC_BUILD) -# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) -# endif - -#elif defined(_ADI_COMPILER) -# define COMPILER_ID "ADSP" -#if defined(__VERSIONNUM__) - /* __VERSIONNUM__ = 0xVVRRPPTT */ -# define COMPILER_VERSION_MAJOR DEC(__VERSIONNUM__ >> 24 & 0xFF) -# define COMPILER_VERSION_MINOR DEC(__VERSIONNUM__ >> 16 & 0xFF) -# define COMPILER_VERSION_PATCH DEC(__VERSIONNUM__ >> 8 & 0xFF) -# define COMPILER_VERSION_TWEAK DEC(__VERSIONNUM__ & 0xFF) -#endif - -#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) -# define COMPILER_ID "IAR" -# if defined(__VER__) && defined(__ICCARM__) -# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) -# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) -# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) -# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) -# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__)) -# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) -# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) -# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) -# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) -# endif - -#elif defined(__SDCC_VERSION_MAJOR) || defined(SDCC) -# define COMPILER_ID "SDCC" -# if defined(__SDCC_VERSION_MAJOR) -# define COMPILER_VERSION_MAJOR DEC(__SDCC_VERSION_MAJOR) -# define COMPILER_VERSION_MINOR DEC(__SDCC_VERSION_MINOR) -# define COMPILER_VERSION_PATCH DEC(__SDCC_VERSION_PATCH) -# else - /* SDCC = VRP */ -# define COMPILER_VERSION_MAJOR DEC(SDCC/100) -# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10) -# define COMPILER_VERSION_PATCH DEC(SDCC % 10) -# endif - - -/* These compilers are either not known or too old to define an - identification macro. Try to identify the platform and guess that - it is the native compiler. */ -#elif defined(__hpux) || defined(__hpua) -# define COMPILER_ID "HP" - -#else /* unknown compiler */ -# define COMPILER_ID "" -#endif - -/* Construct the string literal in pieces to prevent the source from - getting matched. Store it in a pointer rather than an array - because some compilers will just produce instructions to fill the - array rather than assigning a pointer to a static array. */ -char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; -#ifdef SIMULATE_ID -char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; -#endif - -#ifdef __QNXNTO__ -char const* qnxnto = "INFO" ":" "qnxnto[]"; -#endif - -#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) -char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; -#endif - -#define STRINGIFY_HELPER(X) #X -#define STRINGIFY(X) STRINGIFY_HELPER(X) - -/* Identify known platforms by name. */ -#if defined(__linux) || defined(__linux__) || defined(linux) -# define PLATFORM_ID "Linux" - -#elif defined(__MSYS__) -# define PLATFORM_ID "MSYS" - -#elif defined(__CYGWIN__) -# define PLATFORM_ID "Cygwin" - -#elif defined(__MINGW32__) -# define PLATFORM_ID "MinGW" - -#elif defined(__APPLE__) -# define PLATFORM_ID "Darwin" - -#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) -# define PLATFORM_ID "Windows" - -#elif defined(__FreeBSD__) || defined(__FreeBSD) -# define PLATFORM_ID "FreeBSD" - -#elif defined(__NetBSD__) || defined(__NetBSD) -# define PLATFORM_ID "NetBSD" - -#elif defined(__OpenBSD__) || defined(__OPENBSD) -# define PLATFORM_ID "OpenBSD" - -#elif defined(__sun) || defined(sun) -# define PLATFORM_ID "SunOS" - -#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) -# define PLATFORM_ID "AIX" - -#elif defined(__hpux) || defined(__hpux__) -# define PLATFORM_ID "HP-UX" - -#elif defined(__HAIKU__) -# define PLATFORM_ID "Haiku" - -#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) -# define PLATFORM_ID "BeOS" - -#elif defined(__QNX__) || defined(__QNXNTO__) -# define PLATFORM_ID "QNX" - -#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) -# define PLATFORM_ID "Tru64" - -#elif defined(__riscos) || defined(__riscos__) -# define PLATFORM_ID "RISCos" - -#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) -# define PLATFORM_ID "SINIX" - -#elif defined(__UNIX_SV__) -# define PLATFORM_ID "UNIX_SV" - -#elif defined(__bsdos__) -# define PLATFORM_ID "BSDOS" - -#elif defined(_MPRAS) || defined(MPRAS) -# define PLATFORM_ID "MP-RAS" - -#elif defined(__osf) || defined(__osf__) -# define PLATFORM_ID "OSF1" - -#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) -# define PLATFORM_ID "SCO_SV" - -#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) -# define PLATFORM_ID "ULTRIX" - -#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) -# define PLATFORM_ID "Xenix" - -#elif defined(__WATCOMC__) -# if defined(__LINUX__) -# define PLATFORM_ID "Linux" - -# elif defined(__DOS__) -# define PLATFORM_ID "DOS" - -# elif defined(__OS2__) -# define PLATFORM_ID "OS2" - -# elif defined(__WINDOWS__) -# define PLATFORM_ID "Windows3x" - -# elif defined(__VXWORKS__) -# define PLATFORM_ID "VxWorks" - -# else /* unknown platform */ -# define PLATFORM_ID -# endif - -#elif defined(__INTEGRITY) -# if defined(INT_178B) -# define PLATFORM_ID "Integrity178" - -# else /* regular Integrity */ -# define PLATFORM_ID "Integrity" -# endif - -# elif defined(_ADI_COMPILER) -# define PLATFORM_ID "ADSP" - -#else /* unknown platform */ -# define PLATFORM_ID - -#endif - -/* For windows compilers MSVC and Intel we can determine - the architecture of the compiler being used. This is because - the compilers do not have flags that can change the architecture, - but rather depend on which compiler is being used -*/ -#if defined(_WIN32) && defined(_MSC_VER) -# if defined(_M_IA64) -# define ARCHITECTURE_ID "IA64" - -# elif defined(_M_ARM64EC) -# define ARCHITECTURE_ID "ARM64EC" - -# elif defined(_M_X64) || defined(_M_AMD64) -# define ARCHITECTURE_ID "x64" - -# elif defined(_M_IX86) -# define ARCHITECTURE_ID "X86" - -# elif defined(_M_ARM64) -# define ARCHITECTURE_ID "ARM64" - -# elif defined(_M_ARM) -# if _M_ARM == 4 -# define ARCHITECTURE_ID "ARMV4I" -# elif _M_ARM == 5 -# define ARCHITECTURE_ID "ARMV5I" -# else -# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) -# endif - -# elif defined(_M_MIPS) -# define ARCHITECTURE_ID "MIPS" - -# elif defined(_M_SH) -# define ARCHITECTURE_ID "SHx" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__WATCOMC__) -# if defined(_M_I86) -# define ARCHITECTURE_ID "I86" - -# elif defined(_M_IX86) -# define ARCHITECTURE_ID "X86" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) -# if defined(__ICCARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__ICCRX__) -# define ARCHITECTURE_ID "RX" - -# elif defined(__ICCRH850__) -# define ARCHITECTURE_ID "RH850" - -# elif defined(__ICCRL78__) -# define ARCHITECTURE_ID "RL78" - -# elif defined(__ICCRISCV__) -# define ARCHITECTURE_ID "RISCV" - -# elif defined(__ICCAVR__) -# define ARCHITECTURE_ID "AVR" - -# elif defined(__ICC430__) -# define ARCHITECTURE_ID "MSP430" - -# elif defined(__ICCV850__) -# define ARCHITECTURE_ID "V850" - -# elif defined(__ICC8051__) -# define ARCHITECTURE_ID "8051" - -# elif defined(__ICCSTM8__) -# define ARCHITECTURE_ID "STM8" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__ghs__) -# if defined(__PPC64__) -# define ARCHITECTURE_ID "PPC64" - -# elif defined(__ppc__) -# define ARCHITECTURE_ID "PPC" - -# elif defined(__ARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__x86_64__) -# define ARCHITECTURE_ID "x64" - -# elif defined(__i386__) -# define ARCHITECTURE_ID "X86" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__clang__) && defined(__ti__) -# if defined(__ARM_ARCH) -# define ARCHITECTURE_ID "ARM" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__TI_COMPILER_VERSION__) -# if defined(__TI_ARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__MSP430__) -# define ARCHITECTURE_ID "MSP430" - -# elif defined(__TMS320C28XX__) -# define ARCHITECTURE_ID "TMS320C28x" - -# elif defined(__TMS320C6X__) || defined(_TMS320C6X) -# define ARCHITECTURE_ID "TMS320C6x" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -# elif defined(__ADSPSHARC__) -# define ARCHITECTURE_ID "SHARC" - -# elif defined(__ADSPBLACKFIN__) -# define ARCHITECTURE_ID "Blackfin" - -#elif defined(__TASKING__) - -# if defined(__CTC__) || defined(__CPTC__) -# define ARCHITECTURE_ID "TriCore" - -# elif defined(__CMCS__) -# define ARCHITECTURE_ID "MCS" - -# elif defined(__CARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__CARC__) -# define ARCHITECTURE_ID "ARC" - -# elif defined(__C51__) -# define ARCHITECTURE_ID "8051" - -# elif defined(__CPCP__) -# define ARCHITECTURE_ID "PCP" - -# else -# define ARCHITECTURE_ID "" -# endif - -#else -# define ARCHITECTURE_ID -#endif - -/* Convert integer to decimal digit literals. */ -#define DEC(n) \ - ('0' + (((n) / 10000000)%10)), \ - ('0' + (((n) / 1000000)%10)), \ - ('0' + (((n) / 100000)%10)), \ - ('0' + (((n) / 10000)%10)), \ - ('0' + (((n) / 1000)%10)), \ - ('0' + (((n) / 100)%10)), \ - ('0' + (((n) / 10)%10)), \ - ('0' + ((n) % 10)) - -/* Convert integer to hex digit literals. */ -#define HEX(n) \ - ('0' + ((n)>>28 & 0xF)), \ - ('0' + ((n)>>24 & 0xF)), \ - ('0' + ((n)>>20 & 0xF)), \ - ('0' + ((n)>>16 & 0xF)), \ - ('0' + ((n)>>12 & 0xF)), \ - ('0' + ((n)>>8 & 0xF)), \ - ('0' + ((n)>>4 & 0xF)), \ - ('0' + ((n) & 0xF)) - -/* Construct a string literal encoding the version number. */ -#ifdef COMPILER_VERSION -char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]"; - -/* Construct a string literal encoding the version number components. */ -#elif defined(COMPILER_VERSION_MAJOR) -char const info_version[] = { - 'I', 'N', 'F', 'O', ':', - 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', - COMPILER_VERSION_MAJOR, -# ifdef COMPILER_VERSION_MINOR - '.', COMPILER_VERSION_MINOR, -# ifdef COMPILER_VERSION_PATCH - '.', COMPILER_VERSION_PATCH, -# ifdef COMPILER_VERSION_TWEAK - '.', COMPILER_VERSION_TWEAK, -# endif -# endif -# endif - ']','\0'}; -#endif - -/* Construct a string literal encoding the internal version number. */ -#ifdef COMPILER_VERSION_INTERNAL -char const info_version_internal[] = { - 'I', 'N', 'F', 'O', ':', - 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', - 'i','n','t','e','r','n','a','l','[', - COMPILER_VERSION_INTERNAL,']','\0'}; -#elif defined(COMPILER_VERSION_INTERNAL_STR) -char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]"; -#endif - -/* Construct a string literal encoding the version number components. */ -#ifdef SIMULATE_VERSION_MAJOR -char const info_simulate_version[] = { - 'I', 'N', 'F', 'O', ':', - 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', - SIMULATE_VERSION_MAJOR, -# ifdef SIMULATE_VERSION_MINOR - '.', SIMULATE_VERSION_MINOR, -# ifdef SIMULATE_VERSION_PATCH - '.', SIMULATE_VERSION_PATCH, -# ifdef SIMULATE_VERSION_TWEAK - '.', SIMULATE_VERSION_TWEAK, -# endif -# endif -# endif - ']','\0'}; -#endif - -/* Construct the string literal in pieces to prevent the source from - getting matched. Store it in a pointer rather than an array - because some compilers will just produce instructions to fill the - array rather than assigning a pointer to a static array. */ -char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; -char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; - - - -#define C_STD_99 199901L -#define C_STD_11 201112L -#define C_STD_17 201710L -#define C_STD_23 202311L - -#ifdef __STDC_VERSION__ -# define C_STD __STDC_VERSION__ -#endif - -#if !defined(__STDC__) && !defined(__clang__) -# if defined(_MSC_VER) || defined(__ibmxl__) || defined(__IBMC__) -# define C_VERSION "90" -# else -# define C_VERSION -# endif -#elif C_STD > C_STD_17 -# define C_VERSION "23" -#elif C_STD > C_STD_11 -# define C_VERSION "17" -#elif C_STD > C_STD_99 -# define C_VERSION "11" -#elif C_STD >= C_STD_99 -# define C_VERSION "99" -#else -# define C_VERSION "90" -#endif -const char* info_language_standard_default = - "INFO" ":" "standard_default[" C_VERSION "]"; - -const char* info_language_extensions_default = "INFO" ":" "extensions_default[" -#if (defined(__clang__) || defined(__GNUC__) || defined(__xlC__) || \ - defined(__TI_COMPILER_VERSION__)) && \ - !defined(__STRICT_ANSI__) - "ON" -#else - "OFF" -#endif -"]"; - -/*--------------------------------------------------------------------------*/ - -#ifdef ID_VOID_MAIN -void main() {} -#else -# if defined(__CLASSIC_C__) -int main(argc, argv) int argc; char *argv[]; -# else -int main(int argc, char* argv[]) -# endif -{ - int require = 0; - require += info_compiler[argc]; - require += info_platform[argc]; - require += info_arch[argc]; -#ifdef COMPILER_VERSION_MAJOR - require += info_version[argc]; -#endif -#ifdef COMPILER_VERSION_INTERNAL - require += info_version_internal[argc]; -#endif -#ifdef SIMULATE_ID - require += info_simulate[argc]; -#endif -#ifdef SIMULATE_VERSION_MAJOR - require += info_simulate_version[argc]; -#endif -#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) - require += info_cray[argc]; -#endif - require += info_language_standard_default[argc]; - require += info_language_extensions_default[argc]; - (void)argv; - return require; -} -#endif diff --git a/build-baseline/CMakeFiles/3.31.6/CompilerIdC/a.out b/build-baseline/CMakeFiles/3.31.6/CompilerIdC/a.out deleted file mode 100755 index f1ada888b26eb7e10c09f9d3c051a0bbc662377d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16088 zcmeHOZ)_Y#6`#8#jYE^zaU1L=r8!E15?XI;$8p`DB$wFdtdX6B!~vl+tk%A@@5KEv zcYDOHpai9qm^4xg2>Jn}szOx!i3AcVA|HyQR)Lm+8VRYPpHfIskV5MUs7#4+yf^cH z>+^CB672^h_F3LH@Av-9?3>xW+1;5hrUv`tv6uoaQM(jN$tHs&Me)RaQXrO8J!%yl zKcMbZw~)M4V@97ejI@R>#TW7h!Iuzczg8~P;ddICYA}QrGH1WVD8mgR0#|Y#?6-^+ zB8T~FQUN&hL465!CQ9gIz#kPq@LE4^%50mlpWV5T+me@q!r{lFJ_XCzQ+F5=J|p#k zBcGfT{_l}|hIzY$0T26S#4pVI#1EY7U^@J|pZ;&^J1BlHC3F}S=Jy&{fup{Ulb>|0 zSlpbUn-58Si}gd3+Z73MXOU+% z`;RCJGsBpqQN>Rf8Sz+myXe_|>#nos?s#qb)mKY@I)3u4mP;$IKYxX7xZUi-HcT83 zLxg26bDeBs^6@1q$=D`-(fe&)1B)Ekuepw{m#{<~+*t%KEP~%g_}z8lD953Ujyh%E zE%{E~%@zn5ophbCY{AWCAM_NfIltX%-{8RBUZ>OQw6+K3ZC%P47#?!cUdbEJmVK`@ zJk*;j7QA71BEqv|G{@a*^B4nNt-&$2SvOmQ^SA}g)!_Pm3q{1E3`7}-G7x1T%0QHXC<9Rj{wFf< z*T%cvu}@xWuum`h{Z^&yFVFb#>dW@Y=Nq2W?W=Bois0&|@6xexLsGGQbQ8W)s$NmO+_>Qc8$KtT>>t+6FWw}LH+Fi z=i{X0!V&VD{=zkTx^nrKsq5TK`}Eou=}G-`>YDw89ecU)8P)jgOe}Ss@NoT}^3zW@%Fp<>7kP6y2|fpH5vrM%~6u)qNWDA~!XnC<9Rjq6|bCh%yjmAj&|L zfhYq}2BHi^8TfzB0Du3w84c|3Kd@u8n4iezywXwnDtT<7^#Z-~Ij>aC77It)HFa#W zOrbp}v>#L2VW{ygkz7rPGZYfP4{Kni$&Oh35pJ=>E-z#t} z&F^zJ>GCa?Ou2PN49O` z&xqQe>%9a!28lSPPyausxZh_WwYuq%c<-uP;!je|3`7)VAj&|LfhYq}2BHi^8Hh3v zWgyBxl!5m)16Z$!^@&&ms2^Uas+Fit)-SFS`FFC;@eYx(4syN7c!XIeGS)-#a}N{r zf4@;JvixINOo%mt8GdLZ;&q8kmqhuXYLdLC_tAyZBhVX5I<2r!-02N}YRrMqd!tGVt?d&+EncmA0p= zA~Y^8YPU7PdV55PR6pU()bB|dSNdHMDSsq!n#3OQ&q*ANE5x}Vakj|)Rlge|<*zvoombfY z6^Xw&6#s3)69`(vd0)fbH8P6#5Z)Z8yJ_gU=pdZ)mP{DSPI1_!@fMXx8UW{|4v&`n z4y#Bj@ZFKD7p~9D~`B1C+!zYWyh^dDt^b9 z^L#IDwb!@codQ|MEtT9U$1C`yDK%Dd^PZEg$*CE=$F-AA`13NIG=*AYk}q>`nGpEZo!) zq=dI}=w2~RmG{I(;McxNS>>s`?~V}nONM7q$`)w5$Aq#9Mc=c=3l(dkRGjci{!|S# zQpwU@oorg5J$nb*cr0r3j9bnqD?L@9Dh&5aMuT=}GZ7rpmAstG4$9(@q^yaYIauRG zD)^LOW$|z%%cAZ~%ge|B%%sU5lJPeq(RiRt!QFgzl$yh1!J@8E7IjUYMz&mW?~d`j zjBW|R+x_r9JIu>a3)|Mxhe+VL6J7S27TZrI>R^5cxtj{L{^5OP8(}CM_h-QTJ6!9J zc>s631zO7*?1#iW82d28_K?B=?f=|3L-Oz=ZLevdFVfj^!nXSTAnQb~QBKfoV+j#Rb&fkV6T z>6v%cCHMipK?TN8Kjwiw;vcq`(}BBMLI7i89^mkoGzK{QYdOYFU_^zC1jK!iuVa2r vKznfiTR|AwPQ`$d{1KH1`=5>24 & 0x00FF) -# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) -# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) - -#elif defined(__BORLANDC__) -# define COMPILER_ID "Borland" - /* __BORLANDC__ = 0xVRR */ -# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) -# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) - -#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 -# define COMPILER_ID "Watcom" - /* __WATCOMC__ = VVRR */ -# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) -# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) -# if (__WATCOMC__ % 10) > 0 -# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) -# endif - -#elif defined(__WATCOMC__) -# define COMPILER_ID "OpenWatcom" - /* __WATCOMC__ = VVRP + 1100 */ -# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) -# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) -# if (__WATCOMC__ % 10) > 0 -# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) -# endif - -#elif defined(__SUNPRO_CC) -# define COMPILER_ID "SunPro" -# if __SUNPRO_CC >= 0x5100 - /* __SUNPRO_CC = 0xVRRP */ -# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12) -# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF) -# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) -# else - /* __SUNPRO_CC = 0xVRP */ -# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8) -# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF) -# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) -# endif - -#elif defined(__HP_aCC) -# define COMPILER_ID "HP" - /* __HP_aCC = VVRRPP */ -# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000) -# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100) -# define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100) - -#elif defined(__DECCXX) -# define COMPILER_ID "Compaq" - /* __DECCXX_VER = VVRRTPPPP */ -# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000) -# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100) -# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000) - -#elif defined(__IBMCPP__) && defined(__COMPILER_VER__) -# define COMPILER_ID "zOS" - /* __IBMCPP__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) - -#elif defined(__open_xl__) && defined(__clang__) -# define COMPILER_ID "IBMClang" -# define COMPILER_VERSION_MAJOR DEC(__open_xl_version__) -# define COMPILER_VERSION_MINOR DEC(__open_xl_release__) -# define COMPILER_VERSION_PATCH DEC(__open_xl_modification__) -# define COMPILER_VERSION_TWEAK DEC(__open_xl_ptf_fix_level__) - - -#elif defined(__ibmxl__) && defined(__clang__) -# define COMPILER_ID "XLClang" -# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) -# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) -# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) -# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) - - -#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800 -# define COMPILER_ID "XL" - /* __IBMCPP__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) - -#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800 -# define COMPILER_ID "VisualAge" - /* __IBMCPP__ = VRP */ -# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) - -#elif defined(__NVCOMPILER) -# define COMPILER_ID "NVHPC" -# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__) -# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__) -# if defined(__NVCOMPILER_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__) -# endif - -#elif defined(__PGI) -# define COMPILER_ID "PGI" -# define COMPILER_VERSION_MAJOR DEC(__PGIC__) -# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) -# if defined(__PGIC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) -# endif - -#elif defined(__clang__) && defined(__cray__) -# define COMPILER_ID "CrayClang" -# define COMPILER_VERSION_MAJOR DEC(__cray_major__) -# define COMPILER_VERSION_MINOR DEC(__cray_minor__) -# define COMPILER_VERSION_PATCH DEC(__cray_patchlevel__) -# define COMPILER_VERSION_INTERNAL_STR __clang_version__ - - -#elif defined(_CRAYC) -# define COMPILER_ID "Cray" -# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) -# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) - -#elif defined(__TI_COMPILER_VERSION__) -# define COMPILER_ID "TI" - /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ -# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) -# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) -# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) - -#elif defined(__CLANG_FUJITSU) -# define COMPILER_ID "FujitsuClang" -# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) -# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) -# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) -# define COMPILER_VERSION_INTERNAL_STR __clang_version__ - - -#elif defined(__FUJITSU) -# define COMPILER_ID "Fujitsu" -# if defined(__FCC_version__) -# define COMPILER_VERSION __FCC_version__ -# elif defined(__FCC_major__) -# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) -# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) -# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) -# endif -# if defined(__fcc_version) -# define COMPILER_VERSION_INTERNAL DEC(__fcc_version) -# elif defined(__FCC_VERSION) -# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION) -# endif - - -#elif defined(__ghs__) -# define COMPILER_ID "GHS" -/* __GHS_VERSION_NUMBER = VVVVRP */ -# ifdef __GHS_VERSION_NUMBER -# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) -# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) -# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) -# endif - -#elif defined(__TASKING__) -# define COMPILER_ID "Tasking" - # define COMPILER_VERSION_MAJOR DEC(__VERSION__/1000) - # define COMPILER_VERSION_MINOR DEC(__VERSION__ % 100) -# define COMPILER_VERSION_INTERNAL DEC(__VERSION__) - -#elif defined(__ORANGEC__) -# define COMPILER_ID "OrangeC" -# define COMPILER_VERSION_MAJOR DEC(__ORANGEC_MAJOR__) -# define COMPILER_VERSION_MINOR DEC(__ORANGEC_MINOR__) -# define COMPILER_VERSION_PATCH DEC(__ORANGEC_PATCHLEVEL__) - -#elif defined(__SCO_VERSION__) -# define COMPILER_ID "SCO" - -#elif defined(__ARMCC_VERSION) && !defined(__clang__) -# define COMPILER_ID "ARMCC" -#if __ARMCC_VERSION >= 1000000 - /* __ARMCC_VERSION = VRRPPPP */ - # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) - # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) - # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) -#else - /* __ARMCC_VERSION = VRPPPP */ - # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) - # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) - # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) -#endif - - -#elif defined(__clang__) && defined(__apple_build_version__) -# define COMPILER_ID "AppleClang" -# if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -# endif -# define COMPILER_VERSION_MAJOR DEC(__clang_major__) -# define COMPILER_VERSION_MINOR DEC(__clang_minor__) -# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) -# if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -# endif -# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) - -#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) -# define COMPILER_ID "ARMClang" - # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) - # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) - # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION/100 % 100) -# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) - -#elif defined(__clang__) && defined(__ti__) -# define COMPILER_ID "TIClang" - # define COMPILER_VERSION_MAJOR DEC(__ti_major__) - # define COMPILER_VERSION_MINOR DEC(__ti_minor__) - # define COMPILER_VERSION_PATCH DEC(__ti_patchlevel__) -# define COMPILER_VERSION_INTERNAL DEC(__ti_version__) - -#elif defined(__clang__) -# define COMPILER_ID "Clang" -# if defined(_MSC_VER) -# define SIMULATE_ID "MSVC" -# endif -# define COMPILER_VERSION_MAJOR DEC(__clang_major__) -# define COMPILER_VERSION_MINOR DEC(__clang_minor__) -# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) -# if defined(_MSC_VER) - /* _MSC_VER = VVRR */ -# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) -# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) -# endif - -#elif defined(__LCC__) && (defined(__GNUC__) || defined(__GNUG__) || defined(__MCST__)) -# define COMPILER_ID "LCC" -# define COMPILER_VERSION_MAJOR DEC(__LCC__ / 100) -# define COMPILER_VERSION_MINOR DEC(__LCC__ % 100) -# if defined(__LCC_MINOR__) -# define COMPILER_VERSION_PATCH DEC(__LCC_MINOR__) -# endif -# if defined(__GNUC__) && defined(__GNUC_MINOR__) -# define SIMULATE_ID "GNU" -# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) -# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) -# if defined(__GNUC_PATCHLEVEL__) -# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -# endif -# endif - -#elif defined(__GNUC__) || defined(__GNUG__) -# define COMPILER_ID "GNU" -# if defined(__GNUC__) -# define COMPILER_VERSION_MAJOR DEC(__GNUC__) -# else -# define COMPILER_VERSION_MAJOR DEC(__GNUG__) -# endif -# if defined(__GNUC_MINOR__) -# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) -# endif -# if defined(__GNUC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -# endif - -#elif defined(_MSC_VER) -# define COMPILER_ID "MSVC" - /* _MSC_VER = VVRR */ -# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) -# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) -# if defined(_MSC_FULL_VER) -# if _MSC_VER >= 1400 - /* _MSC_FULL_VER = VVRRPPPPP */ -# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) -# else - /* _MSC_FULL_VER = VVRRPPPP */ -# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) -# endif -# endif -# if defined(_MSC_BUILD) -# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) -# endif - -#elif defined(_ADI_COMPILER) -# define COMPILER_ID "ADSP" -#if defined(__VERSIONNUM__) - /* __VERSIONNUM__ = 0xVVRRPPTT */ -# define COMPILER_VERSION_MAJOR DEC(__VERSIONNUM__ >> 24 & 0xFF) -# define COMPILER_VERSION_MINOR DEC(__VERSIONNUM__ >> 16 & 0xFF) -# define COMPILER_VERSION_PATCH DEC(__VERSIONNUM__ >> 8 & 0xFF) -# define COMPILER_VERSION_TWEAK DEC(__VERSIONNUM__ & 0xFF) -#endif - -#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) -# define COMPILER_ID "IAR" -# if defined(__VER__) && defined(__ICCARM__) -# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) -# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) -# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) -# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) -# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__)) -# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) -# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) -# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) -# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) -# endif - - -/* These compilers are either not known or too old to define an - identification macro. Try to identify the platform and guess that - it is the native compiler. */ -#elif defined(__hpux) || defined(__hpua) -# define COMPILER_ID "HP" - -#else /* unknown compiler */ -# define COMPILER_ID "" -#endif - -/* Construct the string literal in pieces to prevent the source from - getting matched. Store it in a pointer rather than an array - because some compilers will just produce instructions to fill the - array rather than assigning a pointer to a static array. */ -char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; -#ifdef SIMULATE_ID -char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; -#endif - -#ifdef __QNXNTO__ -char const* qnxnto = "INFO" ":" "qnxnto[]"; -#endif - -#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) -char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; -#endif - -#define STRINGIFY_HELPER(X) #X -#define STRINGIFY(X) STRINGIFY_HELPER(X) - -/* Identify known platforms by name. */ -#if defined(__linux) || defined(__linux__) || defined(linux) -# define PLATFORM_ID "Linux" - -#elif defined(__MSYS__) -# define PLATFORM_ID "MSYS" - -#elif defined(__CYGWIN__) -# define PLATFORM_ID "Cygwin" - -#elif defined(__MINGW32__) -# define PLATFORM_ID "MinGW" - -#elif defined(__APPLE__) -# define PLATFORM_ID "Darwin" - -#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) -# define PLATFORM_ID "Windows" - -#elif defined(__FreeBSD__) || defined(__FreeBSD) -# define PLATFORM_ID "FreeBSD" - -#elif defined(__NetBSD__) || defined(__NetBSD) -# define PLATFORM_ID "NetBSD" - -#elif defined(__OpenBSD__) || defined(__OPENBSD) -# define PLATFORM_ID "OpenBSD" - -#elif defined(__sun) || defined(sun) -# define PLATFORM_ID "SunOS" - -#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) -# define PLATFORM_ID "AIX" - -#elif defined(__hpux) || defined(__hpux__) -# define PLATFORM_ID "HP-UX" - -#elif defined(__HAIKU__) -# define PLATFORM_ID "Haiku" - -#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) -# define PLATFORM_ID "BeOS" - -#elif defined(__QNX__) || defined(__QNXNTO__) -# define PLATFORM_ID "QNX" - -#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) -# define PLATFORM_ID "Tru64" - -#elif defined(__riscos) || defined(__riscos__) -# define PLATFORM_ID "RISCos" - -#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) -# define PLATFORM_ID "SINIX" - -#elif defined(__UNIX_SV__) -# define PLATFORM_ID "UNIX_SV" - -#elif defined(__bsdos__) -# define PLATFORM_ID "BSDOS" - -#elif defined(_MPRAS) || defined(MPRAS) -# define PLATFORM_ID "MP-RAS" - -#elif defined(__osf) || defined(__osf__) -# define PLATFORM_ID "OSF1" - -#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) -# define PLATFORM_ID "SCO_SV" - -#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) -# define PLATFORM_ID "ULTRIX" - -#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) -# define PLATFORM_ID "Xenix" - -#elif defined(__WATCOMC__) -# if defined(__LINUX__) -# define PLATFORM_ID "Linux" - -# elif defined(__DOS__) -# define PLATFORM_ID "DOS" - -# elif defined(__OS2__) -# define PLATFORM_ID "OS2" - -# elif defined(__WINDOWS__) -# define PLATFORM_ID "Windows3x" - -# elif defined(__VXWORKS__) -# define PLATFORM_ID "VxWorks" - -# else /* unknown platform */ -# define PLATFORM_ID -# endif - -#elif defined(__INTEGRITY) -# if defined(INT_178B) -# define PLATFORM_ID "Integrity178" - -# else /* regular Integrity */ -# define PLATFORM_ID "Integrity" -# endif - -# elif defined(_ADI_COMPILER) -# define PLATFORM_ID "ADSP" - -#else /* unknown platform */ -# define PLATFORM_ID - -#endif - -/* For windows compilers MSVC and Intel we can determine - the architecture of the compiler being used. This is because - the compilers do not have flags that can change the architecture, - but rather depend on which compiler is being used -*/ -#if defined(_WIN32) && defined(_MSC_VER) -# if defined(_M_IA64) -# define ARCHITECTURE_ID "IA64" - -# elif defined(_M_ARM64EC) -# define ARCHITECTURE_ID "ARM64EC" - -# elif defined(_M_X64) || defined(_M_AMD64) -# define ARCHITECTURE_ID "x64" - -# elif defined(_M_IX86) -# define ARCHITECTURE_ID "X86" - -# elif defined(_M_ARM64) -# define ARCHITECTURE_ID "ARM64" - -# elif defined(_M_ARM) -# if _M_ARM == 4 -# define ARCHITECTURE_ID "ARMV4I" -# elif _M_ARM == 5 -# define ARCHITECTURE_ID "ARMV5I" -# else -# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) -# endif - -# elif defined(_M_MIPS) -# define ARCHITECTURE_ID "MIPS" - -# elif defined(_M_SH) -# define ARCHITECTURE_ID "SHx" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__WATCOMC__) -# if defined(_M_I86) -# define ARCHITECTURE_ID "I86" - -# elif defined(_M_IX86) -# define ARCHITECTURE_ID "X86" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) -# if defined(__ICCARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__ICCRX__) -# define ARCHITECTURE_ID "RX" - -# elif defined(__ICCRH850__) -# define ARCHITECTURE_ID "RH850" - -# elif defined(__ICCRL78__) -# define ARCHITECTURE_ID "RL78" - -# elif defined(__ICCRISCV__) -# define ARCHITECTURE_ID "RISCV" - -# elif defined(__ICCAVR__) -# define ARCHITECTURE_ID "AVR" - -# elif defined(__ICC430__) -# define ARCHITECTURE_ID "MSP430" - -# elif defined(__ICCV850__) -# define ARCHITECTURE_ID "V850" - -# elif defined(__ICC8051__) -# define ARCHITECTURE_ID "8051" - -# elif defined(__ICCSTM8__) -# define ARCHITECTURE_ID "STM8" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__ghs__) -# if defined(__PPC64__) -# define ARCHITECTURE_ID "PPC64" - -# elif defined(__ppc__) -# define ARCHITECTURE_ID "PPC" - -# elif defined(__ARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__x86_64__) -# define ARCHITECTURE_ID "x64" - -# elif defined(__i386__) -# define ARCHITECTURE_ID "X86" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__clang__) && defined(__ti__) -# if defined(__ARM_ARCH) -# define ARCHITECTURE_ID "ARM" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -#elif defined(__TI_COMPILER_VERSION__) -# if defined(__TI_ARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__MSP430__) -# define ARCHITECTURE_ID "MSP430" - -# elif defined(__TMS320C28XX__) -# define ARCHITECTURE_ID "TMS320C28x" - -# elif defined(__TMS320C6X__) || defined(_TMS320C6X) -# define ARCHITECTURE_ID "TMS320C6x" - -# else /* unknown architecture */ -# define ARCHITECTURE_ID "" -# endif - -# elif defined(__ADSPSHARC__) -# define ARCHITECTURE_ID "SHARC" - -# elif defined(__ADSPBLACKFIN__) -# define ARCHITECTURE_ID "Blackfin" - -#elif defined(__TASKING__) - -# if defined(__CTC__) || defined(__CPTC__) -# define ARCHITECTURE_ID "TriCore" - -# elif defined(__CMCS__) -# define ARCHITECTURE_ID "MCS" - -# elif defined(__CARM__) -# define ARCHITECTURE_ID "ARM" - -# elif defined(__CARC__) -# define ARCHITECTURE_ID "ARC" - -# elif defined(__C51__) -# define ARCHITECTURE_ID "8051" - -# elif defined(__CPCP__) -# define ARCHITECTURE_ID "PCP" - -# else -# define ARCHITECTURE_ID "" -# endif - -#else -# define ARCHITECTURE_ID -#endif - -/* Convert integer to decimal digit literals. */ -#define DEC(n) \ - ('0' + (((n) / 10000000)%10)), \ - ('0' + (((n) / 1000000)%10)), \ - ('0' + (((n) / 100000)%10)), \ - ('0' + (((n) / 10000)%10)), \ - ('0' + (((n) / 1000)%10)), \ - ('0' + (((n) / 100)%10)), \ - ('0' + (((n) / 10)%10)), \ - ('0' + ((n) % 10)) - -/* Convert integer to hex digit literals. */ -#define HEX(n) \ - ('0' + ((n)>>28 & 0xF)), \ - ('0' + ((n)>>24 & 0xF)), \ - ('0' + ((n)>>20 & 0xF)), \ - ('0' + ((n)>>16 & 0xF)), \ - ('0' + ((n)>>12 & 0xF)), \ - ('0' + ((n)>>8 & 0xF)), \ - ('0' + ((n)>>4 & 0xF)), \ - ('0' + ((n) & 0xF)) - -/* Construct a string literal encoding the version number. */ -#ifdef COMPILER_VERSION -char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]"; - -/* Construct a string literal encoding the version number components. */ -#elif defined(COMPILER_VERSION_MAJOR) -char const info_version[] = { - 'I', 'N', 'F', 'O', ':', - 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', - COMPILER_VERSION_MAJOR, -# ifdef COMPILER_VERSION_MINOR - '.', COMPILER_VERSION_MINOR, -# ifdef COMPILER_VERSION_PATCH - '.', COMPILER_VERSION_PATCH, -# ifdef COMPILER_VERSION_TWEAK - '.', COMPILER_VERSION_TWEAK, -# endif -# endif -# endif - ']','\0'}; -#endif - -/* Construct a string literal encoding the internal version number. */ -#ifdef COMPILER_VERSION_INTERNAL -char const info_version_internal[] = { - 'I', 'N', 'F', 'O', ':', - 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', - 'i','n','t','e','r','n','a','l','[', - COMPILER_VERSION_INTERNAL,']','\0'}; -#elif defined(COMPILER_VERSION_INTERNAL_STR) -char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]"; -#endif - -/* Construct a string literal encoding the version number components. */ -#ifdef SIMULATE_VERSION_MAJOR -char const info_simulate_version[] = { - 'I', 'N', 'F', 'O', ':', - 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', - SIMULATE_VERSION_MAJOR, -# ifdef SIMULATE_VERSION_MINOR - '.', SIMULATE_VERSION_MINOR, -# ifdef SIMULATE_VERSION_PATCH - '.', SIMULATE_VERSION_PATCH, -# ifdef SIMULATE_VERSION_TWEAK - '.', SIMULATE_VERSION_TWEAK, -# endif -# endif -# endif - ']','\0'}; -#endif - -/* Construct the string literal in pieces to prevent the source from - getting matched. Store it in a pointer rather than an array - because some compilers will just produce instructions to fill the - array rather than assigning a pointer to a static array. */ -char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; -char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; - - - -#define CXX_STD_98 199711L -#define CXX_STD_11 201103L -#define CXX_STD_14 201402L -#define CXX_STD_17 201703L -#define CXX_STD_20 202002L -#define CXX_STD_23 202302L - -#if defined(__INTEL_COMPILER) && defined(_MSVC_LANG) -# if _MSVC_LANG > CXX_STD_17 -# define CXX_STD _MSVC_LANG -# elif _MSVC_LANG == CXX_STD_17 && defined(__cpp_aggregate_paren_init) -# define CXX_STD CXX_STD_20 -# elif _MSVC_LANG > CXX_STD_14 && __cplusplus > CXX_STD_17 -# define CXX_STD CXX_STD_20 -# elif _MSVC_LANG > CXX_STD_14 -# define CXX_STD CXX_STD_17 -# elif defined(__INTEL_CXX11_MODE__) && defined(__cpp_aggregate_nsdmi) -# define CXX_STD CXX_STD_14 -# elif defined(__INTEL_CXX11_MODE__) -# define CXX_STD CXX_STD_11 -# else -# define CXX_STD CXX_STD_98 -# endif -#elif defined(_MSC_VER) && defined(_MSVC_LANG) -# if _MSVC_LANG > __cplusplus -# define CXX_STD _MSVC_LANG -# else -# define CXX_STD __cplusplus -# endif -#elif defined(__NVCOMPILER) -# if __cplusplus == CXX_STD_17 && defined(__cpp_aggregate_paren_init) -# define CXX_STD CXX_STD_20 -# else -# define CXX_STD __cplusplus -# endif -#elif defined(__INTEL_COMPILER) || defined(__PGI) -# if __cplusplus == CXX_STD_11 && defined(__cpp_namespace_attributes) -# define CXX_STD CXX_STD_17 -# elif __cplusplus == CXX_STD_11 && defined(__cpp_aggregate_nsdmi) -# define CXX_STD CXX_STD_14 -# else -# define CXX_STD __cplusplus -# endif -#elif (defined(__IBMCPP__) || defined(__ibmxl__)) && defined(__linux__) -# if __cplusplus == CXX_STD_11 && defined(__cpp_aggregate_nsdmi) -# define CXX_STD CXX_STD_14 -# else -# define CXX_STD __cplusplus -# endif -#elif __cplusplus == 1 && defined(__GXX_EXPERIMENTAL_CXX0X__) -# define CXX_STD CXX_STD_11 -#else -# define CXX_STD __cplusplus -#endif - -const char* info_language_standard_default = "INFO" ":" "standard_default[" -#if CXX_STD > CXX_STD_23 - "26" -#elif CXX_STD > CXX_STD_20 - "23" -#elif CXX_STD > CXX_STD_17 - "20" -#elif CXX_STD > CXX_STD_14 - "17" -#elif CXX_STD > CXX_STD_11 - "14" -#elif CXX_STD >= CXX_STD_11 - "11" -#else - "98" -#endif -"]"; - -const char* info_language_extensions_default = "INFO" ":" "extensions_default[" -#if (defined(__clang__) || defined(__GNUC__) || defined(__xlC__) || \ - defined(__TI_COMPILER_VERSION__)) && \ - !defined(__STRICT_ANSI__) - "ON" -#else - "OFF" -#endif -"]"; - -/*--------------------------------------------------------------------------*/ - -int main(int argc, char* argv[]) -{ - int require = 0; - require += info_compiler[argc]; - require += info_platform[argc]; - require += info_arch[argc]; -#ifdef COMPILER_VERSION_MAJOR - require += info_version[argc]; -#endif -#ifdef COMPILER_VERSION_INTERNAL - require += info_version_internal[argc]; -#endif -#ifdef SIMULATE_ID - require += info_simulate[argc]; -#endif -#ifdef SIMULATE_VERSION_MAJOR - require += info_simulate_version[argc]; -#endif -#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) - require += info_cray[argc]; -#endif - require += info_language_standard_default[argc]; - require += info_language_extensions_default[argc]; - (void)argv; - return require; -} diff --git a/build-baseline/CMakeFiles/3.31.6/CompilerIdCXX/a.out b/build-baseline/CMakeFiles/3.31.6/CompilerIdCXX/a.out deleted file mode 100755 index e926ed95aca95fa7a394ccb140ffe97fb42360fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16096 zcmeHOeQX>@6`#9&IW&ncX+zwkG)HNwq|_VRaa_05GlU#5+6yf^cH z>+^CB0{RCM`z-I9_j?~R`(}1;c6a8{cQ<>ivqPM9d%wQJlG33d9nsQ>~=q zyVNaeDang9X7mZeNNea~bUtqod=YW>YvMv3ev5&r2195ebM{+^GTa~{a3$x#eoI&( za*+R8DgcMxuP@HdL~(ue`AP8uul3`m%rqPOnXdUfC3)E^9DXe7Q?QIZb%!D0(^4Ne z^2s^j|4zwgkhe$}@StBt{DQn!{J^;mrv0ya>Hnm@z2f&uT!&FXewTq2IO@Bf{G@Be z;`$8Tyie*|s2^gIe{e~!+M3G_ceHQKrJHlvLS>?PqO+s9qunYOtu|dTw<}KnJf?Q- zKAtkW**0Z##4dYI z$+PoLwm`_pgkz6p3r;S3#8s^3{C22a1N}RD>^7^-+U}RPwJW=SXwXi(C3h@a_T19Y zU{9`CaEF}XoJ+CB^2LHgw~c9CL(X7C|CyeOkj(AHc&V(SSn7z16d!7;X3H&cW2xCPDD;QD?GMaaVpgc%4k5N06EK$w9r17QaKCo=G- z##`S^9lO$yI+4sNn_OzUua;39fGX3LP6aCKTIOH=QMEv~gpv z(sJu-{Zkh{oSOPg>e%mQ_6{Xmr(0i2o$7j-0#w(Q$@I^oR^!IUbUeb(5t2H!Ib+?RWGkzYTS5~4POvW_NTS|_RligaxFDAlREeMj?}r?MXAV(sSDS_Jbw#2IRpIt>w46`yKm3EBgOo9Hs_WO(O1dC^R4IU?T@*oa<*7F)S{_% zn`H_uexc>C(jMbE#~Uq{@`nca>#BfGX(V$<%JiMEkakLG`rtR}RC3;-*1JXHPIzvC zYbpD>J-c{KloWI2~MUL!Kk%?Gj z!-{1MkJAS+#(B-bX0pG74SJX9FL}39v7P>BUawX)uqxKKs_6rbH$2>MRP9)Q&z;+D z=g)}RpXQX)7wZ0VMKLY_zl9Fgs&A2CT?n4)*&tvMT=B~c67># z(_&9eh9xwIz&B*!uU1Y?Q@NXZ(`tbiUBG#qG z<0cT+onoCS)|Fx%>8_rhd*hoA3|9(XB~B0e^n~BsQPE=CBW>+gOS{#&MHJU-8h68D z^~Y+^hWjN#nv>F@aWUZa#r5pD-=b=j8kcb^<|;1unE<{`a9jtl@25gUHL1>oLAZTP zyc#<~Pxlzt8l=O=>7VPxbp`x56(Z_Jh3f?P*Qijh{b#j(OeNyRvdu7xP~ZMM;SpNN zef-^GSi|bY|CP3j1dIbI@sb#$G=xQ6CY#;Il%H;7!O>T?=j zr-JLRpAtN{p8ETQ$7q}+5{PX0LxiuP@sN=5rr#lv>W301Cib`=oR>HlZ;19wiL*uS zyZW6GDS3YipI6ZSHHp7D5PwC~KUIX*{0_ozn}-;ooA5PJy2}QxmtBOfrv8d2j2+sq z_K%djR;x%W@SWkT?KxwLfU;K^9koW(+-iN>%iANoUcXG1>7qTBD-Jt3JM9%qW!tGt zD1OJ7b3He0wbZxZodQ|gDV3Z_+bwvdNi|w>@~)k(CH3k8FW74_8dIe zBX2VM)7HrNxUxSq(At(Qj27|clH&C3>mE$n$=$s+?IY;@;O_3h{vLwq)u)|Ii8j@{ zPuaT$_U!B)u=n)!?N1KbL)|+ElH?KG=8(W{hJUq#!A(1!qx4x)6c)^O1`_7)ZLrhj zqMf1FqrC5-e-Bxuvjw|ScGF6q3f`?6Dd!Z%D$bZ||MPoOMR^n-yy2zFhRbECSaxa9 zMhi)Y4(|sHzM{R(u8a9wJ^YmL1`pj=rm6h?S1GGJnfIJw;$F${3`*Go?fV#4R-x#* z)>xrpjhBk!ZpoXhfrcwt+O(5R3)H={znKT6HqSWajIz>`1**buuVggx;(DH7ldk0E z9ClC^4=H7h=gh$xD^kIuoGOdQC0Q1A|59?@%)T#4gOpH;C?&I&k&exYw0~C@EnRRe@zSRD-*Rp&x71SgJOg(7s;2;33~r`MSfrK{6Hp}g8lbpLTmlw;s-9Gc+dT8 z0e?E+-y#Zd*dYL9@NWkE6QThBe4xYNhj`x!_+wrJj^``b2haa|;*b2RxL68*NklM# zA*vrxiJJ)jSHuAPF5l7=g7yD|;9CD#@dtl0;E(UKqA-~X-)?I1}S*#$z#Oa{Fm0xGEGbW@%U$gANujDgs}ue= 1900 - PRINT *, 'INFO:simulate_version[019.00]' -# elif _MSC_VER >= 1800 - PRINT *, 'INFO:simulate_version[018.00]' -# elif _MSC_VER >= 1700 - PRINT *, 'INFO:simulate_version[017.00]' -# elif _MSC_VER >= 1600 - PRINT *, 'INFO:simulate_version[016.00]' -# elif _MSC_VER >= 1500 - PRINT *, 'INFO:simulate_version[015.00]' -# elif _MSC_VER >= 1400 - PRINT *, 'INFO:simulate_version[014.00]' -# elif _MSC_VER >= 1310 - PRINT *, 'INFO:simulate_version[013.01]' -# else - PRINT *, 'INFO:simulate_version[013.00]' -# endif -#endif -#if defined(__INTEL_LLVM_COMPILER) - PRINT *, 'INFO:compiler[IntelLLVM]' -! __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and -! later. Look for 6 digit vs. 8 digit version number to decide encoding. -! VVVV is no smaller than the current year when a version is released. -# if __INTEL_LLVM_COMPILER < 1000000 -# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100) -# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10) -# else -# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000) -# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100) -# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100) -# endif -#elif defined(__INTEL_COMPILER) && __INTEL_COMPILER == 201900 - PRINT *, 'INFO:compiler[IntelLLVM]' -! ifx 2021.1 forgot to define __INTEL_LLVM_COMPILER. -! Instead it defines __INTEL_COMPILER == 201900. -# define COMPILER_VERSION_MAJOR DEC(2021) -# define COMPILER_VERSION_MINOR DEC(1) -# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) -# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) -#elif defined(__INTEL_COMPILER) || defined(__ICC) - PRINT *, 'INFO:compiler[Intel]' -! __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later. -# if __INTEL_COMPILER < 2021 -# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) -# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) -# if defined(__INTEL_COMPILER_UPDATE) -# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) -# else -# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) -# endif -# else -# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER) -# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE) -! The third version component from --version is an update index, -! but no macro is provided for it. -# define COMPILER_VERSION_PATCH DEC(0) -# endif -# if defined(__INTEL_COMPILER_BUILD_DATE) -# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) -# endif -#elif defined(__SUNPRO_F95) - PRINT *, 'INFO:compiler[SunPro]' -# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_F95>>8) -# define COMPILER_VERSION_MINOR HEX(__SUNPRO_F95>>4 & 0xF) -# define COMPILER_VERSION_PATCH HEX(__SUNPRO_F95 & 0xF) -#elif defined(__SUNPRO_F90) - PRINT *, 'INFO:compiler[SunPro]' -# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_F90>>8) -# define COMPILER_VERSION_MINOR HEX(__SUNPRO_F90>>4 & 0xF) -# define COMPILER_VERSION_PATCH HEX(__SUNPRO_F90 & 0xF) -#elif defined(_CRAYFTN) - PRINT *, 'INFO:compiler[Cray]' -# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) -# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) -# if defined(_RELEASE_PATCHLEVEL) -# define COMPILER_VERSION_PATCH DEC(_RELEASE_PATCHLEVEL) -# endif -#elif defined(__G95__) - PRINT *, 'INFO:compiler[G95]' -# define COMPILER_VERSION_MAJOR DEC(__G95__) -# define COMPILER_VERSION_MINOR DEC(__G95_MINOR__) -#elif defined(__PATHSCALE__) - PRINT *, 'INFO:compiler[PathScale]' -# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) -# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) -# if defined(__PATHCC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) -# endif -#elif defined(__ABSOFT__) - PRINT *, 'INFO:compiler[Absoft]' -#elif defined(__LCC__) && (defined(__GNUC__) || defined(__GNUG__) || defined(__MCST__)) - PRINT *, 'INFO:compiler[LCC]' -# define COMPILER_VERSION_MAJOR DEC(1) -# define COMPILER_VERSION_MINOR DEC(__LCC__ - 100) -# if defined(__LCC_MINOR__) -# define COMPILER_VERSION_PATCH DEC(__LCC_MINOR__) -# endif -#elif defined(__GNUC__) - PRINT *, 'INFO:compiler[GNU]' -# define COMPILER_VERSION_MAJOR DEC(__GNUC__) -# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) -# if defined(__GNUC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) -# endif -#elif defined(__IBMC__) -# if defined(__COMPILER_VER__) - PRINT *, 'INFO:compiler[zOS]' -# elif __IBMC__ >= 800 - PRINT *, 'INFO:compiler[XL]' -# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) -# else - PRINT *, 'INFO:compiler[VisualAge]' -# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) -# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) -# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) -# endif -#elif defined(__NVCOMPILER) || defined(__NVCOMPILER_LLVM__) - PRINT *, 'INFO:compiler[NVHPC]' -# if defined(__NVCOMPILER_MAJOR__) -# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__) -# else -# define COMPILER_VERSION_MAJOR DEC(__PGIC__) -# endif -# if defined(__NVCOMPILER_MINOR__) -# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__) -# else -# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) -# endif -# if defined(__NVCOMPILER_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__) -# elif defined(__PGIC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) -# endif -#elif defined(__PGI) - PRINT *, 'INFO:compiler[PGI]' -# define COMPILER_VERSION_MAJOR DEC(__PGIC__) -# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) -# if defined(__PGIC_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) -# endif -#elif defined(__FLANG) - PRINT *, 'INFO:compiler[Flang]' -# define COMPILER_VERSION_MAJOR DEC(__FLANG_MAJOR__) -# define COMPILER_VERSION_MINOR DEC(__FLANG_MINOR__) -# if defined(__FLANG_PATCHLEVEL__) -# define COMPILER_VERSION_PATCH DEC(__FLANG_PATCHLEVEL__) -# endif -#elif defined(__flang__) - PRINT *, 'INFO:compiler[LLVMFlang]' -# define COMPILER_VERSION_MAJOR DEC(__flang_major__) -# define COMPILER_VERSION_MINOR DEC(__flang_minor__) -# if defined(__flang_patchlevel__) -# define COMPILER_VERSION_PATCH DEC(__flang_patchlevel__) -# endif -#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) - PRINT *, 'INFO:compiler[VisualAge]' -#elif defined(__hpux) || defined(__hpux__) - PRINT *, 'INFO:compiler[HP]' -#elif defined(NAGFOR) - PRINT *, 'INFO:compiler[NAG]' -#define COMPILER_VERSION_MAJOR DEC(__NAG_COMPILER_RELEASE/10) -#define COMPILER_VERSION_MINOR DEC(__NAG_COMPILER_RELEASE % 10) -#define COMPILER_VERSION_PATCH DEC(__NAG_COMPILER_BUILD) -#elif defined(__FUJITSU) - PRINT *, 'INFO:compiler[Fujitsu]' -# if defined(__FRT_major__) -# define COMPILER_VERSION_MAJOR DEC(__FRT_major__) -# define COMPILER_VERSION_MINOR DEC(__FRT_minor__) -# define COMPILER_VERSION_PATCH DEC(__FRT_patchlevel__) -# elif defined(__FRT_version__) - PRINT *, 'INFO:compiler_version['//__FRT_version__//']' -# endif -#elif defined(__LFORTRAN__) - PRINT *, 'INFO:compiler[LFortran]' -#define COMPILER_VERSION_MAJOR DEC(__LFORTRAN_MAJOR__) -#define COMPILER_VERSION_MINOR DEC(__LFORTRAN_MINOR__) -#define COMPILER_VERSION_PATCH DEC(__LFORTRAN_PATCHLEVEL__) -#else - PRINT *, 'INFO:compiler[]' -#endif -#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) - PRINT *, 'INFO:compiler_wrapper[CrayPrgEnv]' -#endif - -#if 0 -! Identify the platform -#endif -#if defined(__linux) || defined(__linux__) || defined(linux) - PRINT *, 'INFO:platform[Linux]' -#elif defined(__CYGWIN__) - PRINT *, 'INFO:platform[Cygwin]' -#elif defined(__MINGW32__) - PRINT *, 'INFO:platform[MinGW]' -#elif defined(__APPLE__) - PRINT *, 'INFO:platform[Darwin]' -#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) - PRINT *, 'INFO:platform[Windows]' -#elif defined(__FreeBSD__) || defined(__FreeBSD) - PRINT *, 'INFO:platform[FreeBSD]' -#elif defined(__NetBSD__) || defined(__NetBSD) - PRINT *, 'INFO:platform[NetBSD]' -#elif defined(__OpenBSD__) || defined(__OPENBSD) - PRINT *, 'INFO:platform[OpenBSD]' -#elif defined(__sun) || defined(sun) - PRINT *, 'INFO:platform[SunOS]' -#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) - PRINT *, 'INFO:platform[AIX]' -#elif defined(__hpux) || defined(__hpux__) - PRINT *, 'INFO:platform[HP-UX]' -#elif defined(__HAIKU__) - PRINT *, 'INFO:platform[Haiku]' -#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) - PRINT *, 'INFO:platform[BeOS]' -#elif defined(__QNX__) || defined(__QNXNTO__) - PRINT *, 'INFO:platform[QNX]' -#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) - PRINT *, 'INFO:platform[Tru64]' -#elif defined(__riscos) || defined(__riscos__) - PRINT *, 'INFO:platform[RISCos]' -#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) - PRINT *, 'INFO:platform[SINIX]' -#elif defined(__UNIX_SV__) - PRINT *, 'INFO:platform[UNIX_SV]' -#elif defined(__bsdos__) - PRINT *, 'INFO:platform[BSDOS]' -#elif defined(_MPRAS) || defined(MPRAS) - PRINT *, 'INFO:platform[MP-RAS]' -#elif defined(__osf) || defined(__osf__) - PRINT *, 'INFO:platform[OSF1]' -#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) - PRINT *, 'INFO:platform[SCO_SV]' -#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) - PRINT *, 'INFO:platform[ULTRIX]' -#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) - PRINT *, 'INFO:platform[Xenix]' -#else - PRINT *, 'INFO:platform[]' -#endif -#if defined(_MSC_VER) -# if defined(_M_IA64) - PRINT *, 'INFO:arch[IA64]' -# elif defined(_M_X64) || defined(_M_AMD64) - PRINT *, 'INFO:arch[x64]' -# elif defined(_M_IX86) - PRINT *, 'INFO:arch[X86]' -# endif -#endif - -#if 0 -! Encode compiler version digits -#endif -#define DEC_8(n) (((n) / 10000000) % 10) -#define DEC_7(n) (((n) / 1000000) % 10) -#define DEC_6(n) (((n) / 100000) % 10) -#define DEC_5(n) (((n) / 10000) % 10) -#define DEC_4(n) (((n) / 1000) % 10) -#define DEC_3(n) (((n) / 100) % 10) -#define DEC_2(n) (((n) / 10) % 10) -#define DEC_1(n) (((n) ) % 10) -#define HEX_8(n) ((n)>>28 & 0xF) -#define HEX_7(n) ((n)>>24 & 0xF) -#define HEX_6(n) ((n)>>20 & 0xF) -#define HEX_5(n) ((n)>>16 & 0xF) -#define HEX_4(n) ((n)>>12 & 0xF) -#define HEX_3(n) ((n)>>8 & 0xF) -#define HEX_2(n) ((n)>>4 & 0xF) -#define HEX_1(n) ((n) & 0xF) - -#if defined(COMPILER_VERSION_MAJOR) -# undef DEC -# undef HEX -# define DEC(n) DEC_1(n) -# define HEX(n) HEX_1(n) -# if COMPILER_VERSION_MAJOR == 0 - PRINT *, 'INFO:compiler_version_MAJOR_digit_1[0]' -# elif COMPILER_VERSION_MAJOR == 1 - PRINT *, 'INFO:compiler_version_MAJOR_digit_1[1]' -# elif COMPILER_VERSION_MAJOR == 2 - PRINT *, 'INFO:compiler_version_MAJOR_digit_1[2]' -# elif COMPILER_VERSION_MAJOR == 3 - PRINT *, 'INFO:compiler_version_MAJOR_digit_1[3]' -# elif COMPILER_VERSION_MAJOR == 4 - PRINT *, 'INFO:compiler_version_MAJOR_digit_1[4]' -# elif COMPILER_VERSION_MAJOR == 5 - PRINT *, 'INFO:compiler_version_MAJOR_digit_1[5]' -# elif COMPILER_VERSION_MAJOR == 6 - PRINT *, 'INFO:compiler_version_MAJOR_digit_1[6]' -# elif COMPILER_VERSION_MAJOR == 7 - PRINT *, 'INFO:compiler_version_MAJOR_digit_1[7]' -# elif COMPILER_VERSION_MAJOR == 8 - PRINT *, 'INFO:compiler_version_MAJOR_digit_1[8]' -# elif COMPILER_VERSION_MAJOR == 9 - PRINT *, 'INFO:compiler_version_MAJOR_digit_1[9]' -# endif - -# undef DEC -# undef HEX -# define DEC(n) DEC_2(n) -# define HEX(n) HEX_2(n) -# if COMPILER_VERSION_MAJOR == 0 - PRINT *, 'INFO:compiler_version_MAJOR_digit_2[0]' -# elif COMPILER_VERSION_MAJOR == 1 - PRINT *, 'INFO:compiler_version_MAJOR_digit_2[1]' -# elif COMPILER_VERSION_MAJOR == 2 - PRINT *, 'INFO:compiler_version_MAJOR_digit_2[2]' -# elif COMPILER_VERSION_MAJOR == 3 - PRINT *, 'INFO:compiler_version_MAJOR_digit_2[3]' -# elif COMPILER_VERSION_MAJOR == 4 - PRINT *, 'INFO:compiler_version_MAJOR_digit_2[4]' -# elif COMPILER_VERSION_MAJOR == 5 - PRINT *, 'INFO:compiler_version_MAJOR_digit_2[5]' -# elif COMPILER_VERSION_MAJOR == 6 - PRINT *, 'INFO:compiler_version_MAJOR_digit_2[6]' -# elif COMPILER_VERSION_MAJOR == 7 - PRINT *, 'INFO:compiler_version_MAJOR_digit_2[7]' -# elif COMPILER_VERSION_MAJOR == 8 - PRINT *, 'INFO:compiler_version_MAJOR_digit_2[8]' -# elif COMPILER_VERSION_MAJOR == 9 - PRINT *, 'INFO:compiler_version_MAJOR_digit_2[9]' -# endif - -# undef DEC -# undef HEX -# define DEC(n) DEC_3(n) -# define HEX(n) HEX_3(n) -# if COMPILER_VERSION_MAJOR == 0 - PRINT *, 'INFO:compiler_version_MAJOR_digit_3[0]' -# elif COMPILER_VERSION_MAJOR == 1 - PRINT *, 'INFO:compiler_version_MAJOR_digit_3[1]' -# elif COMPILER_VERSION_MAJOR == 2 - PRINT *, 'INFO:compiler_version_MAJOR_digit_3[2]' -# elif COMPILER_VERSION_MAJOR == 3 - PRINT *, 'INFO:compiler_version_MAJOR_digit_3[3]' -# elif COMPILER_VERSION_MAJOR == 4 - PRINT *, 'INFO:compiler_version_MAJOR_digit_3[4]' -# elif COMPILER_VERSION_MAJOR == 5 - PRINT *, 'INFO:compiler_version_MAJOR_digit_3[5]' -# elif COMPILER_VERSION_MAJOR == 6 - PRINT *, 'INFO:compiler_version_MAJOR_digit_3[6]' -# elif COMPILER_VERSION_MAJOR == 7 - PRINT *, 'INFO:compiler_version_MAJOR_digit_3[7]' -# elif COMPILER_VERSION_MAJOR == 8 - PRINT *, 'INFO:compiler_version_MAJOR_digit_3[8]' -# elif COMPILER_VERSION_MAJOR == 9 - PRINT *, 'INFO:compiler_version_MAJOR_digit_3[9]' -# endif - -# undef DEC -# undef HEX -# define DEC(n) DEC_4(n) -# define HEX(n) HEX_4(n) -# if COMPILER_VERSION_MAJOR == 0 - PRINT *, 'INFO:compiler_version_MAJOR_digit_4[0]' -# elif COMPILER_VERSION_MAJOR == 1 - PRINT *, 'INFO:compiler_version_MAJOR_digit_4[1]' -# elif COMPILER_VERSION_MAJOR == 2 - PRINT *, 'INFO:compiler_version_MAJOR_digit_4[2]' -# elif COMPILER_VERSION_MAJOR == 3 - PRINT *, 'INFO:compiler_version_MAJOR_digit_4[3]' -# elif COMPILER_VERSION_MAJOR == 4 - PRINT *, 'INFO:compiler_version_MAJOR_digit_4[4]' -# elif COMPILER_VERSION_MAJOR == 5 - PRINT *, 'INFO:compiler_version_MAJOR_digit_4[5]' -# elif COMPILER_VERSION_MAJOR == 6 - PRINT *, 'INFO:compiler_version_MAJOR_digit_4[6]' -# elif COMPILER_VERSION_MAJOR == 7 - PRINT *, 'INFO:compiler_version_MAJOR_digit_4[7]' -# elif COMPILER_VERSION_MAJOR == 8 - PRINT *, 'INFO:compiler_version_MAJOR_digit_4[8]' -# elif COMPILER_VERSION_MAJOR == 9 - PRINT *, 'INFO:compiler_version_MAJOR_digit_4[9]' -# endif - -# undef DEC -# undef HEX -# define DEC(n) DEC_5(n) -# define HEX(n) HEX_5(n) -# if COMPILER_VERSION_MAJOR == 0 - PRINT *, 'INFO:compiler_version_MAJOR_digit_5[0]' -# elif COMPILER_VERSION_MAJOR == 1 - PRINT *, 'INFO:compiler_version_MAJOR_digit_5[1]' -# elif COMPILER_VERSION_MAJOR == 2 - PRINT *, 'INFO:compiler_version_MAJOR_digit_5[2]' -# elif COMPILER_VERSION_MAJOR == 3 - PRINT *, 'INFO:compiler_version_MAJOR_digit_5[3]' -# elif COMPILER_VERSION_MAJOR == 4 - PRINT *, 'INFO:compiler_version_MAJOR_digit_5[4]' -# elif COMPILER_VERSION_MAJOR == 5 - PRINT *, 'INFO:compiler_version_MAJOR_digit_5[5]' -# elif COMPILER_VERSION_MAJOR == 6 - PRINT *, 'INFO:compiler_version_MAJOR_digit_5[6]' -# elif COMPILER_VERSION_MAJOR == 7 - PRINT *, 'INFO:compiler_version_MAJOR_digit_5[7]' -# elif COMPILER_VERSION_MAJOR == 8 - PRINT *, 'INFO:compiler_version_MAJOR_digit_5[8]' -# elif COMPILER_VERSION_MAJOR == 9 - PRINT *, 'INFO:compiler_version_MAJOR_digit_5[9]' -# endif - -# undef DEC -# undef HEX -# define DEC(n) DEC_6(n) -# define HEX(n) HEX_6(n) -# if COMPILER_VERSION_MAJOR == 0 - PRINT *, 'INFO:compiler_version_MAJOR_digit_6[0]' -# elif COMPILER_VERSION_MAJOR == 1 - PRINT *, 'INFO:compiler_version_MAJOR_digit_6[1]' -# elif COMPILER_VERSION_MAJOR == 2 - PRINT *, 'INFO:compiler_version_MAJOR_digit_6[2]' -# elif COMPILER_VERSION_MAJOR == 3 - PRINT *, 'INFO:compiler_version_MAJOR_digit_6[3]' -# elif COMPILER_VERSION_MAJOR == 4 - PRINT *, 'INFO:compiler_version_MAJOR_digit_6[4]' -# elif COMPILER_VERSION_MAJOR == 5 - PRINT *, 'INFO:compiler_version_MAJOR_digit_6[5]' -# elif COMPILER_VERSION_MAJOR == 6 - PRINT *, 'INFO:compiler_version_MAJOR_digit_6[6]' -# elif COMPILER_VERSION_MAJOR == 7 - PRINT *, 'INFO:compiler_version_MAJOR_digit_6[7]' -# elif COMPILER_VERSION_MAJOR == 8 - PRINT *, 'INFO:compiler_version_MAJOR_digit_6[8]' -# elif COMPILER_VERSION_MAJOR == 9 - PRINT *, 'INFO:compiler_version_MAJOR_digit_6[9]' -# endif - -# undef DEC -# undef HEX -# define DEC(n) DEC_7(n) -# define HEX(n) HEX_7(n) -# if COMPILER_VERSION_MAJOR == 0 - PRINT *, 'INFO:compiler_version_MAJOR_digit_7[0]' -# elif COMPILER_VERSION_MAJOR == 1 - PRINT *, 'INFO:compiler_version_MAJOR_digit_7[1]' -# elif COMPILER_VERSION_MAJOR == 2 - PRINT *, 'INFO:compiler_version_MAJOR_digit_7[2]' -# elif COMPILER_VERSION_MAJOR == 3 - PRINT *, 'INFO:compiler_version_MAJOR_digit_7[3]' -# elif COMPILER_VERSION_MAJOR == 4 - PRINT *, 'INFO:compiler_version_MAJOR_digit_7[4]' -# elif COMPILER_VERSION_MAJOR == 5 - PRINT *, 'INFO:compiler_version_MAJOR_digit_7[5]' -# elif COMPILER_VERSION_MAJOR == 6 - PRINT *, 'INFO:compiler_version_MAJOR_digit_7[6]' -# elif COMPILER_VERSION_MAJOR == 7 - PRINT *, 'INFO:compiler_version_MAJOR_digit_7[7]' -# elif COMPILER_VERSION_MAJOR == 8 - PRINT *, 'INFO:compiler_version_MAJOR_digit_7[8]' -# elif COMPILER_VERSION_MAJOR == 9 - PRINT *, 'INFO:compiler_version_MAJOR_digit_7[9]' -# endif - -# undef DEC -# undef HEX -# define DEC(n) DEC_8(n) -# define HEX(n) HEX_8(n) -# if COMPILER_VERSION_MAJOR == 0 - PRINT *, 'INFO:compiler_version_MAJOR_digit_8[0]' -# elif COMPILER_VERSION_MAJOR == 1 - PRINT *, 'INFO:compiler_version_MAJOR_digit_8[1]' -# elif COMPILER_VERSION_MAJOR == 2 - PRINT *, 'INFO:compiler_version_MAJOR_digit_8[2]' -# elif COMPILER_VERSION_MAJOR == 3 - PRINT *, 'INFO:compiler_version_MAJOR_digit_8[3]' -# elif COMPILER_VERSION_MAJOR == 4 - PRINT *, 'INFO:compiler_version_MAJOR_digit_8[4]' -# elif COMPILER_VERSION_MAJOR == 5 - PRINT *, 'INFO:compiler_version_MAJOR_digit_8[5]' -# elif COMPILER_VERSION_MAJOR == 6 - PRINT *, 'INFO:compiler_version_MAJOR_digit_8[6]' -# elif COMPILER_VERSION_MAJOR == 7 - PRINT *, 'INFO:compiler_version_MAJOR_digit_8[7]' -# elif COMPILER_VERSION_MAJOR == 8 - PRINT *, 'INFO:compiler_version_MAJOR_digit_8[8]' -# elif COMPILER_VERSION_MAJOR == 9 - PRINT *, 'INFO:compiler_version_MAJOR_digit_8[9]' -# endif - -#endif -#if defined(COMPILER_VERSION_MINOR) -# undef DEC -# undef HEX -# define DEC(n) DEC_1(n) -# define HEX(n) HEX_1(n) -# if COMPILER_VERSION_MINOR == 0 - PRINT *, 'INFO:compiler_version_MINOR_digit_1[0]' -# elif COMPILER_VERSION_MINOR == 1 - PRINT *, 'INFO:compiler_version_MINOR_digit_1[1]' -# elif COMPILER_VERSION_MINOR == 2 - PRINT *, 'INFO:compiler_version_MINOR_digit_1[2]' -# elif COMPILER_VERSION_MINOR == 3 - PRINT *, 'INFO:compiler_version_MINOR_digit_1[3]' -# elif COMPILER_VERSION_MINOR == 4 - PRINT *, 'INFO:compiler_version_MINOR_digit_1[4]' -# elif COMPILER_VERSION_MINOR == 5 - PRINT *, 'INFO:compiler_version_MINOR_digit_1[5]' -# elif COMPILER_VERSION_MINOR == 6 - PRINT *, 'INFO:compiler_version_MINOR_digit_1[6]' -# elif COMPILER_VERSION_MINOR == 7 - PRINT *, 'INFO:compiler_version_MINOR_digit_1[7]' -# elif COMPILER_VERSION_MINOR == 8 - PRINT *, 'INFO:compiler_version_MINOR_digit_1[8]' -# elif COMPILER_VERSION_MINOR == 9 - PRINT *, 'INFO:compiler_version_MINOR_digit_1[9]' -# endif - -# undef DEC -# undef HEX -# define DEC(n) DEC_2(n) -# define HEX(n) HEX_2(n) -# if COMPILER_VERSION_MINOR == 0 - PRINT *, 'INFO:compiler_version_MINOR_digit_2[0]' -# elif COMPILER_VERSION_MINOR == 1 - PRINT *, 'INFO:compiler_version_MINOR_digit_2[1]' -# elif COMPILER_VERSION_MINOR == 2 - PRINT *, 'INFO:compiler_version_MINOR_digit_2[2]' -# elif COMPILER_VERSION_MINOR == 3 - PRINT *, 'INFO:compiler_version_MINOR_digit_2[3]' -# elif COMPILER_VERSION_MINOR == 4 - PRINT *, 'INFO:compiler_version_MINOR_digit_2[4]' -# elif COMPILER_VERSION_MINOR == 5 - PRINT *, 'INFO:compiler_version_MINOR_digit_2[5]' -# elif COMPILER_VERSION_MINOR == 6 - PRINT *, 'INFO:compiler_version_MINOR_digit_2[6]' -# elif COMPILER_VERSION_MINOR == 7 - PRINT *, 'INFO:compiler_version_MINOR_digit_2[7]' -# elif COMPILER_VERSION_MINOR == 8 - PRINT *, 'INFO:compiler_version_MINOR_digit_2[8]' -# elif COMPILER_VERSION_MINOR == 9 - PRINT *, 'INFO:compiler_version_MINOR_digit_2[9]' -# endif - -# undef DEC -# undef HEX -# define DEC(n) DEC_3(n) -# define HEX(n) HEX_3(n) -# if COMPILER_VERSION_MINOR == 0 - PRINT *, 'INFO:compiler_version_MINOR_digit_3[0]' -# elif COMPILER_VERSION_MINOR == 1 - PRINT *, 'INFO:compiler_version_MINOR_digit_3[1]' -# elif COMPILER_VERSION_MINOR == 2 - PRINT *, 'INFO:compiler_version_MINOR_digit_3[2]' -# elif COMPILER_VERSION_MINOR == 3 - PRINT *, 'INFO:compiler_version_MINOR_digit_3[3]' -# elif COMPILER_VERSION_MINOR == 4 - PRINT *, 'INFO:compiler_version_MINOR_digit_3[4]' -# elif COMPILER_VERSION_MINOR == 5 - PRINT *, 'INFO:compiler_version_MINOR_digit_3[5]' -# elif COMPILER_VERSION_MINOR == 6 - PRINT *, 'INFO:compiler_version_MINOR_digit_3[6]' -# elif COMPILER_VERSION_MINOR == 7 - PRINT *, 'INFO:compiler_version_MINOR_digit_3[7]' -# elif COMPILER_VERSION_MINOR == 8 - PRINT *, 'INFO:compiler_version_MINOR_digit_3[8]' -# elif COMPILER_VERSION_MINOR == 9 - PRINT *, 'INFO:compiler_version_MINOR_digit_3[9]' -# endif - -# undef DEC -# undef HEX -# define DEC(n) DEC_4(n) -# define HEX(n) HEX_4(n) -# if COMPILER_VERSION_MINOR == 0 - PRINT *, 'INFO:compiler_version_MINOR_digit_4[0]' -# elif COMPILER_VERSION_MINOR == 1 - PRINT *, 'INFO:compiler_version_MINOR_digit_4[1]' -# elif COMPILER_VERSION_MINOR == 2 - PRINT *, 'INFO:compiler_version_MINOR_digit_4[2]' -# elif COMPILER_VERSION_MINOR == 3 - PRINT *, 'INFO:compiler_version_MINOR_digit_4[3]' -# elif COMPILER_VERSION_MINOR == 4 - PRINT *, 'INFO:compiler_version_MINOR_digit_4[4]' -# elif COMPILER_VERSION_MINOR == 5 - PRINT *, 'INFO:compiler_version_MINOR_digit_4[5]' -# elif COMPILER_VERSION_MINOR == 6 - PRINT *, 'INFO:compiler_version_MINOR_digit_4[6]' -# elif COMPILER_VERSION_MINOR == 7 - PRINT *, 'INFO:compiler_version_MINOR_digit_4[7]' -# elif COMPILER_VERSION_MINOR == 8 - PRINT *, 'INFO:compiler_version_MINOR_digit_4[8]' -# elif COMPILER_VERSION_MINOR == 9 - PRINT *, 'INFO:compiler_version_MINOR_digit_4[9]' -# endif - -# undef DEC -# undef HEX -# define DEC(n) DEC_5(n) -# define HEX(n) HEX_5(n) -# if COMPILER_VERSION_MINOR == 0 - PRINT *, 'INFO:compiler_version_MINOR_digit_5[0]' -# elif COMPILER_VERSION_MINOR == 1 - PRINT *, 'INFO:compiler_version_MINOR_digit_5[1]' -# elif COMPILER_VERSION_MINOR == 2 - PRINT *, 'INFO:compiler_version_MINOR_digit_5[2]' -# elif COMPILER_VERSION_MINOR == 3 - PRINT *, 'INFO:compiler_version_MINOR_digit_5[3]' -# elif COMPILER_VERSION_MINOR == 4 - PRINT *, 'INFO:compiler_version_MINOR_digit_5[4]' -# elif COMPILER_VERSION_MINOR == 5 - PRINT *, 'INFO:compiler_version_MINOR_digit_5[5]' -# elif COMPILER_VERSION_MINOR == 6 - PRINT *, 'INFO:compiler_version_MINOR_digit_5[6]' -# elif COMPILER_VERSION_MINOR == 7 - PRINT *, 'INFO:compiler_version_MINOR_digit_5[7]' -# elif COMPILER_VERSION_MINOR == 8 - PRINT *, 'INFO:compiler_version_MINOR_digit_5[8]' -# elif COMPILER_VERSION_MINOR == 9 - PRINT *, 'INFO:compiler_version_MINOR_digit_5[9]' -# endif - -# undef DEC -# undef HEX -# define DEC(n) DEC_6(n) -# define HEX(n) HEX_6(n) -# if COMPILER_VERSION_MINOR == 0 - PRINT *, 'INFO:compiler_version_MINOR_digit_6[0]' -# elif COMPILER_VERSION_MINOR == 1 - PRINT *, 'INFO:compiler_version_MINOR_digit_6[1]' -# elif COMPILER_VERSION_MINOR == 2 - PRINT *, 'INFO:compiler_version_MINOR_digit_6[2]' -# elif COMPILER_VERSION_MINOR == 3 - PRINT *, 'INFO:compiler_version_MINOR_digit_6[3]' -# elif COMPILER_VERSION_MINOR == 4 - PRINT *, 'INFO:compiler_version_MINOR_digit_6[4]' -# elif COMPILER_VERSION_MINOR == 5 - PRINT *, 'INFO:compiler_version_MINOR_digit_6[5]' -# elif COMPILER_VERSION_MINOR == 6 - PRINT *, 'INFO:compiler_version_MINOR_digit_6[6]' -# elif COMPILER_VERSION_MINOR == 7 - PRINT *, 'INFO:compiler_version_MINOR_digit_6[7]' -# elif COMPILER_VERSION_MINOR == 8 - PRINT *, 'INFO:compiler_version_MINOR_digit_6[8]' -# elif COMPILER_VERSION_MINOR == 9 - PRINT *, 'INFO:compiler_version_MINOR_digit_6[9]' -# endif - -# undef DEC -# undef HEX -# define DEC(n) DEC_7(n) -# define HEX(n) HEX_7(n) -# if COMPILER_VERSION_MINOR == 0 - PRINT *, 'INFO:compiler_version_MINOR_digit_7[0]' -# elif COMPILER_VERSION_MINOR == 1 - PRINT *, 'INFO:compiler_version_MINOR_digit_7[1]' -# elif COMPILER_VERSION_MINOR == 2 - PRINT *, 'INFO:compiler_version_MINOR_digit_7[2]' -# elif COMPILER_VERSION_MINOR == 3 - PRINT *, 'INFO:compiler_version_MINOR_digit_7[3]' -# elif COMPILER_VERSION_MINOR == 4 - PRINT *, 'INFO:compiler_version_MINOR_digit_7[4]' -# elif COMPILER_VERSION_MINOR == 5 - PRINT *, 'INFO:compiler_version_MINOR_digit_7[5]' -# elif COMPILER_VERSION_MINOR == 6 - PRINT *, 'INFO:compiler_version_MINOR_digit_7[6]' -# elif COMPILER_VERSION_MINOR == 7 - PRINT *, 'INFO:compiler_version_MINOR_digit_7[7]' -# elif COMPILER_VERSION_MINOR == 8 - PRINT *, 'INFO:compiler_version_MINOR_digit_7[8]' -# elif COMPILER_VERSION_MINOR == 9 - PRINT *, 'INFO:compiler_version_MINOR_digit_7[9]' -# endif - -# undef DEC -# undef HEX -# define DEC(n) DEC_8(n) -# define HEX(n) HEX_8(n) -# if COMPILER_VERSION_MINOR == 0 - PRINT *, 'INFO:compiler_version_MINOR_digit_8[0]' -# elif COMPILER_VERSION_MINOR == 1 - PRINT *, 'INFO:compiler_version_MINOR_digit_8[1]' -# elif COMPILER_VERSION_MINOR == 2 - PRINT *, 'INFO:compiler_version_MINOR_digit_8[2]' -# elif COMPILER_VERSION_MINOR == 3 - PRINT *, 'INFO:compiler_version_MINOR_digit_8[3]' -# elif COMPILER_VERSION_MINOR == 4 - PRINT *, 'INFO:compiler_version_MINOR_digit_8[4]' -# elif COMPILER_VERSION_MINOR == 5 - PRINT *, 'INFO:compiler_version_MINOR_digit_8[5]' -# elif COMPILER_VERSION_MINOR == 6 - PRINT *, 'INFO:compiler_version_MINOR_digit_8[6]' -# elif COMPILER_VERSION_MINOR == 7 - PRINT *, 'INFO:compiler_version_MINOR_digit_8[7]' -# elif COMPILER_VERSION_MINOR == 8 - PRINT *, 'INFO:compiler_version_MINOR_digit_8[8]' -# elif COMPILER_VERSION_MINOR == 9 - PRINT *, 'INFO:compiler_version_MINOR_digit_8[9]' -# endif - -#endif -#if defined(COMPILER_VERSION_PATCH) -# undef DEC -# undef HEX -# define DEC(n) DEC_1(n) -# define HEX(n) HEX_1(n) -# if COMPILER_VERSION_PATCH == 0 - PRINT *, 'INFO:compiler_version_PATCH_digit_1[0]' -# elif COMPILER_VERSION_PATCH == 1 - PRINT *, 'INFO:compiler_version_PATCH_digit_1[1]' -# elif COMPILER_VERSION_PATCH == 2 - PRINT *, 'INFO:compiler_version_PATCH_digit_1[2]' -# elif COMPILER_VERSION_PATCH == 3 - PRINT *, 'INFO:compiler_version_PATCH_digit_1[3]' -# elif COMPILER_VERSION_PATCH == 4 - PRINT *, 'INFO:compiler_version_PATCH_digit_1[4]' -# elif COMPILER_VERSION_PATCH == 5 - PRINT *, 'INFO:compiler_version_PATCH_digit_1[5]' -# elif COMPILER_VERSION_PATCH == 6 - PRINT *, 'INFO:compiler_version_PATCH_digit_1[6]' -# elif COMPILER_VERSION_PATCH == 7 - PRINT *, 'INFO:compiler_version_PATCH_digit_1[7]' -# elif COMPILER_VERSION_PATCH == 8 - PRINT *, 'INFO:compiler_version_PATCH_digit_1[8]' -# elif COMPILER_VERSION_PATCH == 9 - PRINT *, 'INFO:compiler_version_PATCH_digit_1[9]' -# endif - -# undef DEC -# undef HEX -# define DEC(n) DEC_2(n) -# define HEX(n) HEX_2(n) -# if COMPILER_VERSION_PATCH == 0 - PRINT *, 'INFO:compiler_version_PATCH_digit_2[0]' -# elif COMPILER_VERSION_PATCH == 1 - PRINT *, 'INFO:compiler_version_PATCH_digit_2[1]' -# elif COMPILER_VERSION_PATCH == 2 - PRINT *, 'INFO:compiler_version_PATCH_digit_2[2]' -# elif COMPILER_VERSION_PATCH == 3 - PRINT *, 'INFO:compiler_version_PATCH_digit_2[3]' -# elif COMPILER_VERSION_PATCH == 4 - PRINT *, 'INFO:compiler_version_PATCH_digit_2[4]' -# elif COMPILER_VERSION_PATCH == 5 - PRINT *, 'INFO:compiler_version_PATCH_digit_2[5]' -# elif COMPILER_VERSION_PATCH == 6 - PRINT *, 'INFO:compiler_version_PATCH_digit_2[6]' -# elif COMPILER_VERSION_PATCH == 7 - PRINT *, 'INFO:compiler_version_PATCH_digit_2[7]' -# elif COMPILER_VERSION_PATCH == 8 - PRINT *, 'INFO:compiler_version_PATCH_digit_2[8]' -# elif COMPILER_VERSION_PATCH == 9 - PRINT *, 'INFO:compiler_version_PATCH_digit_2[9]' -# endif - -# undef DEC -# undef HEX -# define DEC(n) DEC_3(n) -# define HEX(n) HEX_3(n) -# if COMPILER_VERSION_PATCH == 0 - PRINT *, 'INFO:compiler_version_PATCH_digit_3[0]' -# elif COMPILER_VERSION_PATCH == 1 - PRINT *, 'INFO:compiler_version_PATCH_digit_3[1]' -# elif COMPILER_VERSION_PATCH == 2 - PRINT *, 'INFO:compiler_version_PATCH_digit_3[2]' -# elif COMPILER_VERSION_PATCH == 3 - PRINT *, 'INFO:compiler_version_PATCH_digit_3[3]' -# elif COMPILER_VERSION_PATCH == 4 - PRINT *, 'INFO:compiler_version_PATCH_digit_3[4]' -# elif COMPILER_VERSION_PATCH == 5 - PRINT *, 'INFO:compiler_version_PATCH_digit_3[5]' -# elif COMPILER_VERSION_PATCH == 6 - PRINT *, 'INFO:compiler_version_PATCH_digit_3[6]' -# elif COMPILER_VERSION_PATCH == 7 - PRINT *, 'INFO:compiler_version_PATCH_digit_3[7]' -# elif COMPILER_VERSION_PATCH == 8 - PRINT *, 'INFO:compiler_version_PATCH_digit_3[8]' -# elif COMPILER_VERSION_PATCH == 9 - PRINT *, 'INFO:compiler_version_PATCH_digit_3[9]' -# endif - -# undef DEC -# undef HEX -# define DEC(n) DEC_4(n) -# define HEX(n) HEX_4(n) -# if COMPILER_VERSION_PATCH == 0 - PRINT *, 'INFO:compiler_version_PATCH_digit_4[0]' -# elif COMPILER_VERSION_PATCH == 1 - PRINT *, 'INFO:compiler_version_PATCH_digit_4[1]' -# elif COMPILER_VERSION_PATCH == 2 - PRINT *, 'INFO:compiler_version_PATCH_digit_4[2]' -# elif COMPILER_VERSION_PATCH == 3 - PRINT *, 'INFO:compiler_version_PATCH_digit_4[3]' -# elif COMPILER_VERSION_PATCH == 4 - PRINT *, 'INFO:compiler_version_PATCH_digit_4[4]' -# elif COMPILER_VERSION_PATCH == 5 - PRINT *, 'INFO:compiler_version_PATCH_digit_4[5]' -# elif COMPILER_VERSION_PATCH == 6 - PRINT *, 'INFO:compiler_version_PATCH_digit_4[6]' -# elif COMPILER_VERSION_PATCH == 7 - PRINT *, 'INFO:compiler_version_PATCH_digit_4[7]' -# elif COMPILER_VERSION_PATCH == 8 - PRINT *, 'INFO:compiler_version_PATCH_digit_4[8]' -# elif COMPILER_VERSION_PATCH == 9 - PRINT *, 'INFO:compiler_version_PATCH_digit_4[9]' -# endif - -# undef DEC -# undef HEX -# define DEC(n) DEC_5(n) -# define HEX(n) HEX_5(n) -# if COMPILER_VERSION_PATCH == 0 - PRINT *, 'INFO:compiler_version_PATCH_digit_5[0]' -# elif COMPILER_VERSION_PATCH == 1 - PRINT *, 'INFO:compiler_version_PATCH_digit_5[1]' -# elif COMPILER_VERSION_PATCH == 2 - PRINT *, 'INFO:compiler_version_PATCH_digit_5[2]' -# elif COMPILER_VERSION_PATCH == 3 - PRINT *, 'INFO:compiler_version_PATCH_digit_5[3]' -# elif COMPILER_VERSION_PATCH == 4 - PRINT *, 'INFO:compiler_version_PATCH_digit_5[4]' -# elif COMPILER_VERSION_PATCH == 5 - PRINT *, 'INFO:compiler_version_PATCH_digit_5[5]' -# elif COMPILER_VERSION_PATCH == 6 - PRINT *, 'INFO:compiler_version_PATCH_digit_5[6]' -# elif COMPILER_VERSION_PATCH == 7 - PRINT *, 'INFO:compiler_version_PATCH_digit_5[7]' -# elif COMPILER_VERSION_PATCH == 8 - PRINT *, 'INFO:compiler_version_PATCH_digit_5[8]' -# elif COMPILER_VERSION_PATCH == 9 - PRINT *, 'INFO:compiler_version_PATCH_digit_5[9]' -# endif - -# undef DEC -# undef HEX -# define DEC(n) DEC_6(n) -# define HEX(n) HEX_6(n) -# if COMPILER_VERSION_PATCH == 0 - PRINT *, 'INFO:compiler_version_PATCH_digit_6[0]' -# elif COMPILER_VERSION_PATCH == 1 - PRINT *, 'INFO:compiler_version_PATCH_digit_6[1]' -# elif COMPILER_VERSION_PATCH == 2 - PRINT *, 'INFO:compiler_version_PATCH_digit_6[2]' -# elif COMPILER_VERSION_PATCH == 3 - PRINT *, 'INFO:compiler_version_PATCH_digit_6[3]' -# elif COMPILER_VERSION_PATCH == 4 - PRINT *, 'INFO:compiler_version_PATCH_digit_6[4]' -# elif COMPILER_VERSION_PATCH == 5 - PRINT *, 'INFO:compiler_version_PATCH_digit_6[5]' -# elif COMPILER_VERSION_PATCH == 6 - PRINT *, 'INFO:compiler_version_PATCH_digit_6[6]' -# elif COMPILER_VERSION_PATCH == 7 - PRINT *, 'INFO:compiler_version_PATCH_digit_6[7]' -# elif COMPILER_VERSION_PATCH == 8 - PRINT *, 'INFO:compiler_version_PATCH_digit_6[8]' -# elif COMPILER_VERSION_PATCH == 9 - PRINT *, 'INFO:compiler_version_PATCH_digit_6[9]' -# endif - -# undef DEC -# undef HEX -# define DEC(n) DEC_7(n) -# define HEX(n) HEX_7(n) -# if COMPILER_VERSION_PATCH == 0 - PRINT *, 'INFO:compiler_version_PATCH_digit_7[0]' -# elif COMPILER_VERSION_PATCH == 1 - PRINT *, 'INFO:compiler_version_PATCH_digit_7[1]' -# elif COMPILER_VERSION_PATCH == 2 - PRINT *, 'INFO:compiler_version_PATCH_digit_7[2]' -# elif COMPILER_VERSION_PATCH == 3 - PRINT *, 'INFO:compiler_version_PATCH_digit_7[3]' -# elif COMPILER_VERSION_PATCH == 4 - PRINT *, 'INFO:compiler_version_PATCH_digit_7[4]' -# elif COMPILER_VERSION_PATCH == 5 - PRINT *, 'INFO:compiler_version_PATCH_digit_7[5]' -# elif COMPILER_VERSION_PATCH == 6 - PRINT *, 'INFO:compiler_version_PATCH_digit_7[6]' -# elif COMPILER_VERSION_PATCH == 7 - PRINT *, 'INFO:compiler_version_PATCH_digit_7[7]' -# elif COMPILER_VERSION_PATCH == 8 - PRINT *, 'INFO:compiler_version_PATCH_digit_7[8]' -# elif COMPILER_VERSION_PATCH == 9 - PRINT *, 'INFO:compiler_version_PATCH_digit_7[9]' -# endif - -# undef DEC -# undef HEX -# define DEC(n) DEC_8(n) -# define HEX(n) HEX_8(n) -# if COMPILER_VERSION_PATCH == 0 - PRINT *, 'INFO:compiler_version_PATCH_digit_8[0]' -# elif COMPILER_VERSION_PATCH == 1 - PRINT *, 'INFO:compiler_version_PATCH_digit_8[1]' -# elif COMPILER_VERSION_PATCH == 2 - PRINT *, 'INFO:compiler_version_PATCH_digit_8[2]' -# elif COMPILER_VERSION_PATCH == 3 - PRINT *, 'INFO:compiler_version_PATCH_digit_8[3]' -# elif COMPILER_VERSION_PATCH == 4 - PRINT *, 'INFO:compiler_version_PATCH_digit_8[4]' -# elif COMPILER_VERSION_PATCH == 5 - PRINT *, 'INFO:compiler_version_PATCH_digit_8[5]' -# elif COMPILER_VERSION_PATCH == 6 - PRINT *, 'INFO:compiler_version_PATCH_digit_8[6]' -# elif COMPILER_VERSION_PATCH == 7 - PRINT *, 'INFO:compiler_version_PATCH_digit_8[7]' -# elif COMPILER_VERSION_PATCH == 8 - PRINT *, 'INFO:compiler_version_PATCH_digit_8[8]' -# elif COMPILER_VERSION_PATCH == 9 - PRINT *, 'INFO:compiler_version_PATCH_digit_8[9]' -# endif - -#endif -#if defined(COMPILER_VERSION_TWEAK) -# undef DEC -# undef HEX -# define DEC(n) DEC_1(n) -# define HEX(n) HEX_1(n) -# if COMPILER_VERSION_TWEAK == 0 - PRINT *, 'INFO:compiler_version_TWEAK_digit_1[0]' -# elif COMPILER_VERSION_TWEAK == 1 - PRINT *, 'INFO:compiler_version_TWEAK_digit_1[1]' -# elif COMPILER_VERSION_TWEAK == 2 - PRINT *, 'INFO:compiler_version_TWEAK_digit_1[2]' -# elif COMPILER_VERSION_TWEAK == 3 - PRINT *, 'INFO:compiler_version_TWEAK_digit_1[3]' -# elif COMPILER_VERSION_TWEAK == 4 - PRINT *, 'INFO:compiler_version_TWEAK_digit_1[4]' -# elif COMPILER_VERSION_TWEAK == 5 - PRINT *, 'INFO:compiler_version_TWEAK_digit_1[5]' -# elif COMPILER_VERSION_TWEAK == 6 - PRINT *, 'INFO:compiler_version_TWEAK_digit_1[6]' -# elif COMPILER_VERSION_TWEAK == 7 - PRINT *, 'INFO:compiler_version_TWEAK_digit_1[7]' -# elif COMPILER_VERSION_TWEAK == 8 - PRINT *, 'INFO:compiler_version_TWEAK_digit_1[8]' -# elif COMPILER_VERSION_TWEAK == 9 - PRINT *, 'INFO:compiler_version_TWEAK_digit_1[9]' -# endif - -# undef DEC -# undef HEX -# define DEC(n) DEC_2(n) -# define HEX(n) HEX_2(n) -# if COMPILER_VERSION_TWEAK == 0 - PRINT *, 'INFO:compiler_version_TWEAK_digit_2[0]' -# elif COMPILER_VERSION_TWEAK == 1 - PRINT *, 'INFO:compiler_version_TWEAK_digit_2[1]' -# elif COMPILER_VERSION_TWEAK == 2 - PRINT *, 'INFO:compiler_version_TWEAK_digit_2[2]' -# elif COMPILER_VERSION_TWEAK == 3 - PRINT *, 'INFO:compiler_version_TWEAK_digit_2[3]' -# elif COMPILER_VERSION_TWEAK == 4 - PRINT *, 'INFO:compiler_version_TWEAK_digit_2[4]' -# elif COMPILER_VERSION_TWEAK == 5 - PRINT *, 'INFO:compiler_version_TWEAK_digit_2[5]' -# elif COMPILER_VERSION_TWEAK == 6 - PRINT *, 'INFO:compiler_version_TWEAK_digit_2[6]' -# elif COMPILER_VERSION_TWEAK == 7 - PRINT *, 'INFO:compiler_version_TWEAK_digit_2[7]' -# elif COMPILER_VERSION_TWEAK == 8 - PRINT *, 'INFO:compiler_version_TWEAK_digit_2[8]' -# elif COMPILER_VERSION_TWEAK == 9 - PRINT *, 'INFO:compiler_version_TWEAK_digit_2[9]' -# endif - -# undef DEC -# undef HEX -# define DEC(n) DEC_3(n) -# define HEX(n) HEX_3(n) -# if COMPILER_VERSION_TWEAK == 0 - PRINT *, 'INFO:compiler_version_TWEAK_digit_3[0]' -# elif COMPILER_VERSION_TWEAK == 1 - PRINT *, 'INFO:compiler_version_TWEAK_digit_3[1]' -# elif COMPILER_VERSION_TWEAK == 2 - PRINT *, 'INFO:compiler_version_TWEAK_digit_3[2]' -# elif COMPILER_VERSION_TWEAK == 3 - PRINT *, 'INFO:compiler_version_TWEAK_digit_3[3]' -# elif COMPILER_VERSION_TWEAK == 4 - PRINT *, 'INFO:compiler_version_TWEAK_digit_3[4]' -# elif COMPILER_VERSION_TWEAK == 5 - PRINT *, 'INFO:compiler_version_TWEAK_digit_3[5]' -# elif COMPILER_VERSION_TWEAK == 6 - PRINT *, 'INFO:compiler_version_TWEAK_digit_3[6]' -# elif COMPILER_VERSION_TWEAK == 7 - PRINT *, 'INFO:compiler_version_TWEAK_digit_3[7]' -# elif COMPILER_VERSION_TWEAK == 8 - PRINT *, 'INFO:compiler_version_TWEAK_digit_3[8]' -# elif COMPILER_VERSION_TWEAK == 9 - PRINT *, 'INFO:compiler_version_TWEAK_digit_3[9]' -# endif - -# undef DEC -# undef HEX -# define DEC(n) DEC_4(n) -# define HEX(n) HEX_4(n) -# if COMPILER_VERSION_TWEAK == 0 - PRINT *, 'INFO:compiler_version_TWEAK_digit_4[0]' -# elif COMPILER_VERSION_TWEAK == 1 - PRINT *, 'INFO:compiler_version_TWEAK_digit_4[1]' -# elif COMPILER_VERSION_TWEAK == 2 - PRINT *, 'INFO:compiler_version_TWEAK_digit_4[2]' -# elif COMPILER_VERSION_TWEAK == 3 - PRINT *, 'INFO:compiler_version_TWEAK_digit_4[3]' -# elif COMPILER_VERSION_TWEAK == 4 - PRINT *, 'INFO:compiler_version_TWEAK_digit_4[4]' -# elif COMPILER_VERSION_TWEAK == 5 - PRINT *, 'INFO:compiler_version_TWEAK_digit_4[5]' -# elif COMPILER_VERSION_TWEAK == 6 - PRINT *, 'INFO:compiler_version_TWEAK_digit_4[6]' -# elif COMPILER_VERSION_TWEAK == 7 - PRINT *, 'INFO:compiler_version_TWEAK_digit_4[7]' -# elif COMPILER_VERSION_TWEAK == 8 - PRINT *, 'INFO:compiler_version_TWEAK_digit_4[8]' -# elif COMPILER_VERSION_TWEAK == 9 - PRINT *, 'INFO:compiler_version_TWEAK_digit_4[9]' -# endif - -# undef DEC -# undef HEX -# define DEC(n) DEC_5(n) -# define HEX(n) HEX_5(n) -# if COMPILER_VERSION_TWEAK == 0 - PRINT *, 'INFO:compiler_version_TWEAK_digit_5[0]' -# elif COMPILER_VERSION_TWEAK == 1 - PRINT *, 'INFO:compiler_version_TWEAK_digit_5[1]' -# elif COMPILER_VERSION_TWEAK == 2 - PRINT *, 'INFO:compiler_version_TWEAK_digit_5[2]' -# elif COMPILER_VERSION_TWEAK == 3 - PRINT *, 'INFO:compiler_version_TWEAK_digit_5[3]' -# elif COMPILER_VERSION_TWEAK == 4 - PRINT *, 'INFO:compiler_version_TWEAK_digit_5[4]' -# elif COMPILER_VERSION_TWEAK == 5 - PRINT *, 'INFO:compiler_version_TWEAK_digit_5[5]' -# elif COMPILER_VERSION_TWEAK == 6 - PRINT *, 'INFO:compiler_version_TWEAK_digit_5[6]' -# elif COMPILER_VERSION_TWEAK == 7 - PRINT *, 'INFO:compiler_version_TWEAK_digit_5[7]' -# elif COMPILER_VERSION_TWEAK == 8 - PRINT *, 'INFO:compiler_version_TWEAK_digit_5[8]' -# elif COMPILER_VERSION_TWEAK == 9 - PRINT *, 'INFO:compiler_version_TWEAK_digit_5[9]' -# endif - -# undef DEC -# undef HEX -# define DEC(n) DEC_6(n) -# define HEX(n) HEX_6(n) -# if COMPILER_VERSION_TWEAK == 0 - PRINT *, 'INFO:compiler_version_TWEAK_digit_6[0]' -# elif COMPILER_VERSION_TWEAK == 1 - PRINT *, 'INFO:compiler_version_TWEAK_digit_6[1]' -# elif COMPILER_VERSION_TWEAK == 2 - PRINT *, 'INFO:compiler_version_TWEAK_digit_6[2]' -# elif COMPILER_VERSION_TWEAK == 3 - PRINT *, 'INFO:compiler_version_TWEAK_digit_6[3]' -# elif COMPILER_VERSION_TWEAK == 4 - PRINT *, 'INFO:compiler_version_TWEAK_digit_6[4]' -# elif COMPILER_VERSION_TWEAK == 5 - PRINT *, 'INFO:compiler_version_TWEAK_digit_6[5]' -# elif COMPILER_VERSION_TWEAK == 6 - PRINT *, 'INFO:compiler_version_TWEAK_digit_6[6]' -# elif COMPILER_VERSION_TWEAK == 7 - PRINT *, 'INFO:compiler_version_TWEAK_digit_6[7]' -# elif COMPILER_VERSION_TWEAK == 8 - PRINT *, 'INFO:compiler_version_TWEAK_digit_6[8]' -# elif COMPILER_VERSION_TWEAK == 9 - PRINT *, 'INFO:compiler_version_TWEAK_digit_6[9]' -# endif - -# undef DEC -# undef HEX -# define DEC(n) DEC_7(n) -# define HEX(n) HEX_7(n) -# if COMPILER_VERSION_TWEAK == 0 - PRINT *, 'INFO:compiler_version_TWEAK_digit_7[0]' -# elif COMPILER_VERSION_TWEAK == 1 - PRINT *, 'INFO:compiler_version_TWEAK_digit_7[1]' -# elif COMPILER_VERSION_TWEAK == 2 - PRINT *, 'INFO:compiler_version_TWEAK_digit_7[2]' -# elif COMPILER_VERSION_TWEAK == 3 - PRINT *, 'INFO:compiler_version_TWEAK_digit_7[3]' -# elif COMPILER_VERSION_TWEAK == 4 - PRINT *, 'INFO:compiler_version_TWEAK_digit_7[4]' -# elif COMPILER_VERSION_TWEAK == 5 - PRINT *, 'INFO:compiler_version_TWEAK_digit_7[5]' -# elif COMPILER_VERSION_TWEAK == 6 - PRINT *, 'INFO:compiler_version_TWEAK_digit_7[6]' -# elif COMPILER_VERSION_TWEAK == 7 - PRINT *, 'INFO:compiler_version_TWEAK_digit_7[7]' -# elif COMPILER_VERSION_TWEAK == 8 - PRINT *, 'INFO:compiler_version_TWEAK_digit_7[8]' -# elif COMPILER_VERSION_TWEAK == 9 - PRINT *, 'INFO:compiler_version_TWEAK_digit_7[9]' -# endif - -# undef DEC -# undef HEX -# define DEC(n) DEC_8(n) -# define HEX(n) HEX_8(n) -# if COMPILER_VERSION_TWEAK == 0 - PRINT *, 'INFO:compiler_version_TWEAK_digit_8[0]' -# elif COMPILER_VERSION_TWEAK == 1 - PRINT *, 'INFO:compiler_version_TWEAK_digit_8[1]' -# elif COMPILER_VERSION_TWEAK == 2 - PRINT *, 'INFO:compiler_version_TWEAK_digit_8[2]' -# elif COMPILER_VERSION_TWEAK == 3 - PRINT *, 'INFO:compiler_version_TWEAK_digit_8[3]' -# elif COMPILER_VERSION_TWEAK == 4 - PRINT *, 'INFO:compiler_version_TWEAK_digit_8[4]' -# elif COMPILER_VERSION_TWEAK == 5 - PRINT *, 'INFO:compiler_version_TWEAK_digit_8[5]' -# elif COMPILER_VERSION_TWEAK == 6 - PRINT *, 'INFO:compiler_version_TWEAK_digit_8[6]' -# elif COMPILER_VERSION_TWEAK == 7 - PRINT *, 'INFO:compiler_version_TWEAK_digit_8[7]' -# elif COMPILER_VERSION_TWEAK == 8 - PRINT *, 'INFO:compiler_version_TWEAK_digit_8[8]' -# elif COMPILER_VERSION_TWEAK == 9 - PRINT *, 'INFO:compiler_version_TWEAK_digit_8[9]' -# endif - -#endif - - END diff --git a/build-baseline/CMakeFiles/3.31.6/CompilerIdFortran/a.out b/build-baseline/CMakeFiles/3.31.6/CompilerIdFortran/a.out deleted file mode 100755 index 501630c2607269f726d7a57a5a28c9abc8eb8d04..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16224 zcmeHOdu$xV8K1L#V93Ll;6NZiP9Y#%;*DQ1=87I!atFMx~T}n<2NuBP2elIC!C~0P(RVHV^)v&CX&c z0AI#sLhlmp0vm^GOtsHvw@Xt zVG}4Lf2>!+57UbJ-@N$qkDog)@%Gj?Umd&X!hPG@_jkQZG0+EXu%JB+3FNVUGW^g+ z^#2a12^rD@q1U5Ga~1USW>I3>v&mQFkY5Y(h46Eh4iIFMV=J@CpUNS>FNgg1Iplu^ z`7-z&S9E^TJEnCyo+0v@lY4r_e zwGJHDbgb>|>uv7Qn=pee{#OE{P5hPdaVRt;>?l-lywt$&*}H!V!?27kfPsaw^cmrk zaMYd&JQj@f51^>SGJNzNxFVOZ^QE4ygLM5#ED&}Hd7UG9jg*)Bgr4NYzjK+8<2fNi zbHPE2+PxF$2X66f;oFKrsW~LRkwgRbM9vNU$N8&HROj;cj#aS%DGA8aSC>5Kj*JU9;aT1COF@ZJWja| z?c)6RkjJUhp+`*n!5zT!g6*mOxO4o#wf^z<{bL_Yuj^~Cov7XC-@bZy4m4y@E4a@L zY86ZG<92~4z+NS)meOp$)4QiIYV1s{b^;1~&kAG;)^>17K z959nr(5=ZJ{CnB`4DhZ^fNkQV|Dl^fxdD9qcO3RWrl9d#=VOqqN50Br_HJdzGMVck z>fWu>z;EHT8K~j>(Z8Jw{o{Kle+_1meE}b}{M+YU$-}&k+Vx6{Y#(RcXE|{`)}IeJ>wX5#SzF#7E{yY66^U?S3g=d( z#r|v-IPFfH=L_T9s3H-Lrf^PCTEwXoIPbwTqOCt~6vjD8MIxLj-duisp8njHw_kDA zop$2P6vlZ}MIxM?3a3?Ru|I7BXPy(M9Ii(N&eMxjB*KX)oWCEn_2*sAx_=4J(6+oS zD~xkMMIszc;iQxn`(p^4)lQsC3*&@UB*K~EY2n9bj?yB|T!Hg8Je%A4b46hsmx@F< zI~C3^j@a_{7-!v4Cr+X;&I2kE;lvcqB}$9^xm4h|oj5-%j8m&35ss#C-u$nvKW}l? z{SdtCu;uNs!Z`a>B*K~EhnXLr8b1QH? zs8W##XNnIeetiD)so7h^d6l#7pEz;OFO2h&ibOa&70!UtB2G}?R6B863gcX@A`wnZ z;e0V;>(7^*b^j42w6?rmQyAwH6^U>(h4W*j#s1tYa5gz{ZYqp3t|Af66hA%q@wq^0 z5oZOkJNE77v(vG|p7Gnh^pB^f{o6K7Z)=C@U%;eFH02E*JT5lTI10~I1);B2DJ{>+0(K1;sGhy z2%jrAaY-T)FyLERbmJxw#b&186iTMx`{8{YkW*IMU{w(qG=Fei6H-8qpy!o@(<;|bP zE?@rEHTSjp&GDCeyjbn><QbyPDZK>00ps`0nU6A=AkeW zCEu!Fz6{0ae+~R5zz&*h7K~}Y?@@^RFg%U0=J}orI>+Y28tOdW}ujXVg`yC_~tS|>)dEv8_un;;95B>#Q$5cCXZ|Hu#mn~R^UU0 zC~~14d|2Y;Dx3g8Ib9G&>+P0Ep5{1bNS@Z+NjGy{@TbQzaWr`Z-Y;RnIUkn&WrD){ zNM2r%dYo!ush9187xla>mUNM%M5G(LU#@qfr_d2;fb%;n_;v})X@amCDIj@5HiY^$ zA?@HrCohD5w&ckUzRB?ZL36nXzHxHiE91czTFz6urX^n{_3$pA>!}|y{5M8uy|*)9 zqdeXnl3pR{prkiR>hvqbm-~dpn%35fz2|S}Psfb3x3*rZ*J`R8)10lly{(%=-J+3fMSm9Ppn;pi9op?umQua|N<&w%Bn6aKs4 ztnl~*FNZ0^Ro5=Ih|zf4)`aj{dF=Ui@X`M-d zoZ~J5axa6k$VZlf8X#W?{i1y$=Sg)Xx3}9OcMjT@comwhsMCkT0V~Sm+**FDO}TjuTStmvTB!Nd8`q_;ApnJ!-s>{alb| zYfrVbU+g1GLF;nZujBT|xAV#z_URn*d$_!UohAn$!QY4S61dAa&M&rpAZgTUaafri z=nv~gV2FVrWuylOwE?CU+UrJCAHb#dxT-xE*M}nU{y;wG-ovmiJ{cI*Lop*c$_A5xC@jQJN28Q9GZ z!%sLUMa?ap)i}Vp`EVdL%(UQW3?KwGl0qY2a@!akbjeU8fDW>jh!{-c&D5Z(4aI>q zLL=~>j~6W&=b6w#!*Xa32O$V?!c~lM;X!pk2t>mJ&?Zcz28V}faB@ZAoUva@z7~h` zM!3Y`<&2lb^1e-!?pspLZK;m*9Qff}jr^OWKT$8}tcB)hBx{6<)&DB#PgLGM$sF#% z_Ja3)t3S;^;ZO4~ zqV(KI_RjO?Md?q+k9nn~q$?Z_)Ng6U_CN*mPyRF?CE7rSk~+e%Hyr-gEfY!^?f0)lYv_+4=6~`h`W0xb{>&#$YXl`6DK+tl$M+2wi}30B z$s_#l#{=e(%3PLpyHDOr)9(NK2!-mY7bpM@OhKk4pp<% d$bt8eBRJubAwITc^M4I*Oi*wiq_sF$_CJK?1+D-9 diff --git a/build-baseline/CMakeFiles/CMakeConfigureLog.yaml b/build-baseline/CMakeFiles/CMakeConfigureLog.yaml deleted file mode 100644 index 3145fc3aa..000000000 --- a/build-baseline/CMakeFiles/CMakeConfigureLog.yaml +++ /dev/null @@ -1,964 +0,0 @@ - ---- -events: - - - kind: "message-v1" - backtrace: - - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineSystem.cmake:205 (message)" - - "CMakeLists.txt:3 (project)" - message: | - The system is: Linux - 6.17.0-1015-azure - x86_64 - - - kind: "message-v1" - backtrace: - - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerId.cmake:17 (message)" - - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerId.cmake:64 (__determine_compiler_id_test)" - - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCCompiler.cmake:123 (CMAKE_DETERMINE_COMPILER_ID)" - - "CMakeLists.txt:3 (project)" - message: | - Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded. - Compiler: /usr/bin/cc - Build flags: - Id flags: - - The output was: - 0 - - - Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "a.out" - - The C compiler identification is GNU, found in: - /tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/3.31.6/CompilerIdC/a.out - - - - kind: "message-v1" - backtrace: - - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerId.cmake:17 (message)" - - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerId.cmake:64 (__determine_compiler_id_test)" - - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCXXCompiler.cmake:126 (CMAKE_DETERMINE_COMPILER_ID)" - - "CMakeLists.txt:3 (project)" - message: | - Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded. - Compiler: /usr/bin/c++ - Build flags: - Id flags: - - The output was: - 0 - - - Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "a.out" - - The CXX compiler identification is GNU, found in: - /tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/3.31.6/CompilerIdCXX/a.out - - - - kind: "message-v1" - backtrace: - - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerId.cmake:17 (message)" - - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerId.cmake:64 (__determine_compiler_id_test)" - - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineFortranCompiler.cmake:190 (CMAKE_DETERMINE_COMPILER_ID)" - - "CMakeLists.txt:3 (project)" - message: | - Compiling the Fortran compiler identification source file "CMakeFortranCompilerId.F" succeeded. - Compiler: /usr/bin/gfortran - Build flags: - Id flags: -v - - The output was: - 0 - Driving: /usr/bin/gfortran -v CMakeFortranCompilerId.F -l gfortran -l m -shared-libgcc - Using built-in specs. - COLLECT_GCC=/usr/bin/gfortran - COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper - OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa - OFFLOAD_TARGET_DEFAULT=1 - Target: x86_64-linux-gnu - Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04.1' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2 - Thread model: posix - Supported LTO compression algorithms: zlib zstd - gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1) - COLLECT_GCC_OPTIONS='-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'a-' - /usr/libexec/gcc/x86_64-linux-gnu/13/f951 CMakeFortranCompilerId.F -ffixed-form -cpp=/tmp/cchf7utn.f90 -quiet -v -imultiarch x86_64-linux-gnu CMakeFortranCompilerId.F -quiet -dumpdir a- -dumpbase CMakeFortranCompilerId.F -dumpbase-ext .F -mtune=generic -march=x86-64 -version -fintrinsic-modules-path /usr/lib/gcc/x86_64-linux-gnu/13/finclude -fpre-include=/usr/include/finclude/x86_64-linux-gnu/math-vector-fortran.h -o /tmp/ccKbsFm2.s - GNU Fortran (Ubuntu 13.3.0-6ubuntu2~24.04.1) version 13.3.0 (x86_64-linux-gnu) - compiled by GNU C version 13.3.0, GMP version 6.3.0, MPFR version 4.2.1, MPC version 1.3.1, isl version isl-0.26-GMP - - GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 - ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu" - ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed/x86_64-linux-gnu" - ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed" - ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/../../../../x86_64-linux-gnu/include" - #include "..." search starts here: - #include <...> search starts here: - /usr/lib/gcc/x86_64-linux-gnu/13/finclude - /usr/lib/gcc/x86_64-linux-gnu/13/include - /usr/local/include - /usr/include/x86_64-linux-gnu - /usr/include - End of search list. - COLLECT_GCC_OPTIONS='-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'a-' - as -v --64 -o /tmp/ccTxw3Nk.o /tmp/ccKbsFm2.s - GNU assembler version 2.42 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.42 - Reading specs from /usr/lib/gcc/x86_64-linux-gnu/13/libgfortran.spec - rename spec lib to liborig - COLLECT_GCC_OPTIONS='-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'a-' - COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/ - LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/ - COLLECT_GCC_OPTIONS='-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'a.' - /usr/libexec/gcc/x86_64-linux-gnu/13/collect2 -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/ccY7SCYT.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lquadmath -plugin-opt=-pass-through=-lm -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. /tmp/ccTxw3Nk.o -lgfortran -lm -lgcc_s -lgcc --as-needed -lquadmath --no-as-needed -lm -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o - COLLECT_GCC_OPTIONS='-v' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'a.' - - - Compilation of the Fortran compiler identification source "CMakeFortranCompilerId.F" produced "a.out" - - The Fortran compiler identification is GNU, found in: - /tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/3.31.6/CompilerIdFortran/a.out - - - - kind: "try_compile-v1" - backtrace: - - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerABI.cmake:74 (try_compile)" - - "/usr/local/share/cmake-3.31/Modules/CMakeTestCCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" - - "CMakeLists.txt:3 (project)" - checks: - - "Detecting C compiler ABI info" - directories: - source: "/tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-Cqp6Wn" - binary: "/tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-Cqp6Wn" - cmakeVariables: - CMAKE_C_FLAGS: "" - CMAKE_C_FLAGS_DEBUG: "-g" - CMAKE_EXE_LINKER_FLAGS: "" - buildResult: - variable: "CMAKE_C_ABI_COMPILED" - cached: true - stdout: | - Change Dir: '/tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-Cqp6Wn' - - Run Build Command(s): /usr/local/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_27bbf/fast - /usr/bin/gmake -f CMakeFiles/cmTC_27bbf.dir/build.make CMakeFiles/cmTC_27bbf.dir/build - gmake[1]: Entering directory '/tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-Cqp6Wn' - Building C object CMakeFiles/cmTC_27bbf.dir/CMakeCCompilerABI.c.o - /usr/bin/cc -v -o CMakeFiles/cmTC_27bbf.dir/CMakeCCompilerABI.c.o -c /usr/local/share/cmake-3.31/Modules/CMakeCCompilerABI.c - Using built-in specs. - COLLECT_GCC=/usr/bin/cc - OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa - OFFLOAD_TARGET_DEFAULT=1 - Target: x86_64-linux-gnu - Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04.1' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2 - Thread model: posix - Supported LTO compression algorithms: zlib zstd - gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1) - COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_27bbf.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_27bbf.dir/' - /usr/libexec/gcc/x86_64-linux-gnu/13/cc1 -quiet -v -imultiarch x86_64-linux-gnu /usr/local/share/cmake-3.31/Modules/CMakeCCompilerABI.c -quiet -dumpdir CMakeFiles/cmTC_27bbf.dir/ -dumpbase CMakeCCompilerABI.c.c -dumpbase-ext .c -mtune=generic -march=x86-64 -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/cczzyZYM.s - GNU C17 (Ubuntu 13.3.0-6ubuntu2~24.04.1) version 13.3.0 (x86_64-linux-gnu) - compiled by GNU C version 13.3.0, GMP version 6.3.0, MPFR version 4.2.1, MPC version 1.3.1, isl version isl-0.26-GMP - - GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 - ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu" - ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed/x86_64-linux-gnu" - ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed" - ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/../../../../x86_64-linux-gnu/include" - #include "..." search starts here: - #include <...> search starts here: - /usr/lib/gcc/x86_64-linux-gnu/13/include - /usr/local/include - /usr/include/x86_64-linux-gnu - /usr/include - End of search list. - Compiler executable checksum: b220a7f1a1f69970d969d254ad9ec166 - COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_27bbf.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_27bbf.dir/' - as -v --64 -o CMakeFiles/cmTC_27bbf.dir/CMakeCCompilerABI.c.o /tmp/cczzyZYM.s - GNU assembler version 2.42 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.42 - COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/ - LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/ - COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_27bbf.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_27bbf.dir/CMakeCCompilerABI.c.' - Linking C executable cmTC_27bbf - /usr/local/bin/cmake -E cmake_link_script CMakeFiles/cmTC_27bbf.dir/link.txt --verbose=1 - Using built-in specs. - COLLECT_GCC=/usr/bin/cc - COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper - OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa - OFFLOAD_TARGET_DEFAULT=1 - Target: x86_64-linux-gnu - Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04.1' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2 - Thread model: posix - Supported LTO compression algorithms: zlib zstd - gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1) - COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/ - LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/ - COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_27bbf' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_27bbf.' - /usr/libexec/gcc/x86_64-linux-gnu/13/collect2 -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/ccWWXbmf.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_27bbf /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. -v CMakeFiles/cmTC_27bbf.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o - collect2 version 13.3.0 - /usr/bin/ld -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/ccWWXbmf.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_27bbf /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. -v CMakeFiles/cmTC_27bbf.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o - GNU ld (GNU Binutils for Ubuntu) 2.42 - COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_27bbf' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_27bbf.' - /usr/bin/cc -v -Wl,-v CMakeFiles/cmTC_27bbf.dir/CMakeCCompilerABI.c.o -o cmTC_27bbf - gmake[1]: Leaving directory '/tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-Cqp6Wn' - - exitCode: 0 - - - kind: "message-v1" - backtrace: - - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerABI.cmake:182 (message)" - - "/usr/local/share/cmake-3.31/Modules/CMakeTestCCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" - - "CMakeLists.txt:3 (project)" - message: | - Parsed C implicit include dir info: rv=done - found start of include info - found start of implicit include info - add: [/usr/lib/gcc/x86_64-linux-gnu/13/include] - add: [/usr/local/include] - add: [/usr/include/x86_64-linux-gnu] - add: [/usr/include] - end of search list found - collapse include dir [/usr/lib/gcc/x86_64-linux-gnu/13/include] ==> [/usr/lib/gcc/x86_64-linux-gnu/13/include] - collapse include dir [/usr/local/include] ==> [/usr/local/include] - collapse include dir [/usr/include/x86_64-linux-gnu] ==> [/usr/include/x86_64-linux-gnu] - collapse include dir [/usr/include] ==> [/usr/include] - implicit include dirs: [/usr/lib/gcc/x86_64-linux-gnu/13/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include] - - - - - kind: "message-v1" - backtrace: - - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerABI.cmake:218 (message)" - - "/usr/local/share/cmake-3.31/Modules/CMakeTestCCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" - - "CMakeLists.txt:3 (project)" - message: | - Parsed C implicit link information: - link line regex: [^( *|.*[/\\])(ld[0-9]*(\\.[a-z]+)?|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)] - linker tool regex: [^[ ]*(->|")?[ ]*(([^"]*[/\\])?(ld[0-9]*(\\.[a-z]+)?))("|,| |$)] - ignore line: [Change Dir: '/tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-Cqp6Wn'] - ignore line: [] - ignore line: [Run Build Command(s): /usr/local/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_27bbf/fast] - ignore line: [/usr/bin/gmake -f CMakeFiles/cmTC_27bbf.dir/build.make CMakeFiles/cmTC_27bbf.dir/build] - ignore line: [gmake[1]: Entering directory '/tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-Cqp6Wn'] - ignore line: [Building C object CMakeFiles/cmTC_27bbf.dir/CMakeCCompilerABI.c.o] - ignore line: [/usr/bin/cc -v -o CMakeFiles/cmTC_27bbf.dir/CMakeCCompilerABI.c.o -c /usr/local/share/cmake-3.31/Modules/CMakeCCompilerABI.c] - ignore line: [Using built-in specs.] - ignore line: [COLLECT_GCC=/usr/bin/cc] - ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa] - ignore line: [OFFLOAD_TARGET_DEFAULT=1] - ignore line: [Target: x86_64-linux-gnu] - ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04.1' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c ada c++ go d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2] - ignore line: [Thread model: posix] - ignore line: [Supported LTO compression algorithms: zlib zstd] - ignore line: [gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1) ] - ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_27bbf.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_27bbf.dir/'] - ignore line: [ /usr/libexec/gcc/x86_64-linux-gnu/13/cc1 -quiet -v -imultiarch x86_64-linux-gnu /usr/local/share/cmake-3.31/Modules/CMakeCCompilerABI.c -quiet -dumpdir CMakeFiles/cmTC_27bbf.dir/ -dumpbase CMakeCCompilerABI.c.c -dumpbase-ext .c -mtune=generic -march=x86-64 -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/cczzyZYM.s] - ignore line: [GNU C17 (Ubuntu 13.3.0-6ubuntu2~24.04.1) version 13.3.0 (x86_64-linux-gnu)] - ignore line: [ compiled by GNU C version 13.3.0 GMP version 6.3.0 MPFR version 4.2.1 MPC version 1.3.1 isl version isl-0.26-GMP] - ignore line: [] - ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072] - ignore line: [ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"] - ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed/x86_64-linux-gnu"] - ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed"] - ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/../../../../x86_64-linux-gnu/include"] - ignore line: [#include "..." search starts here:] - ignore line: [#include <...> search starts here:] - ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/13/include] - ignore line: [ /usr/local/include] - ignore line: [ /usr/include/x86_64-linux-gnu] - ignore line: [ /usr/include] - ignore line: [End of search list.] - ignore line: [Compiler executable checksum: b220a7f1a1f69970d969d254ad9ec166] - ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_27bbf.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_27bbf.dir/'] - ignore line: [ as -v --64 -o CMakeFiles/cmTC_27bbf.dir/CMakeCCompilerABI.c.o /tmp/cczzyZYM.s] - ignore line: [GNU assembler version 2.42 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.42] - ignore line: [COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/] - ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/] - ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_27bbf.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_27bbf.dir/CMakeCCompilerABI.c.'] - ignore line: [Linking C executable cmTC_27bbf] - ignore line: [/usr/local/bin/cmake -E cmake_link_script CMakeFiles/cmTC_27bbf.dir/link.txt --verbose=1] - ignore line: [Using built-in specs.] - ignore line: [COLLECT_GCC=/usr/bin/cc] - ignore line: [COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper] - ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa] - ignore line: [OFFLOAD_TARGET_DEFAULT=1] - ignore line: [Target: x86_64-linux-gnu] - ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04.1' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c ada c++ go d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2] - ignore line: [Thread model: posix] - ignore line: [Supported LTO compression algorithms: zlib zstd] - ignore line: [gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1) ] - ignore line: [COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/] - ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/] - ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_27bbf' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_27bbf.'] - link line: [ /usr/libexec/gcc/x86_64-linux-gnu/13/collect2 -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/ccWWXbmf.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_27bbf /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. -v CMakeFiles/cmTC_27bbf.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] - arg [/usr/libexec/gcc/x86_64-linux-gnu/13/collect2] ==> ignore - arg [-plugin] ==> ignore - arg [/usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so] ==> ignore - arg [-plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper] ==> ignore - arg [-plugin-opt=-fresolution=/tmp/ccWWXbmf.res] ==> ignore - arg [-plugin-opt=-pass-through=-lgcc] ==> ignore - arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore - arg [-plugin-opt=-pass-through=-lc] ==> ignore - arg [-plugin-opt=-pass-through=-lgcc] ==> ignore - arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore - arg [--build-id] ==> ignore - arg [--eh-frame-hdr] ==> ignore - arg [-m] ==> ignore - arg [elf_x86_64] ==> ignore - arg [--hash-style=gnu] ==> ignore - arg [--as-needed] ==> ignore - arg [-dynamic-linker] ==> ignore - arg [/lib64/ld-linux-x86-64.so.2] ==> ignore - arg [-pie] ==> ignore - arg [-znow] ==> ignore - arg [-zrelro] ==> ignore - arg [-o] ==> ignore - arg [cmTC_27bbf] ==> ignore - arg [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o] - arg [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o] - arg [/usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o] - arg [-L/usr/lib/gcc/x86_64-linux-gnu/13] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13] - arg [-L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu] - arg [-L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib] - arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu] - arg [-L/lib/../lib] ==> dir [/lib/../lib] - arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu] - arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib] - arg [-L/usr/lib/gcc/x86_64-linux-gnu/13/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../..] - arg [-v] ==> ignore - arg [CMakeFiles/cmTC_27bbf.dir/CMakeCCompilerABI.c.o] ==> ignore - arg [-lgcc] ==> lib [gcc] - arg [--push-state] ==> ignore - arg [--as-needed] ==> ignore - arg [-lgcc_s] ==> lib [gcc_s] - arg [--pop-state] ==> ignore - arg [-lc] ==> lib [c] - arg [-lgcc] ==> lib [gcc] - arg [--push-state] ==> ignore - arg [--as-needed] ==> ignore - arg [-lgcc_s] ==> lib [gcc_s] - arg [--pop-state] ==> ignore - arg [/usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o] - arg [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] - ignore line: [collect2 version 13.3.0] - ignore line: [/usr/bin/ld -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/ccWWXbmf.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_27bbf /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. -v CMakeFiles/cmTC_27bbf.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] - linker tool for 'C': /usr/bin/ld - collapse obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o] ==> [/usr/lib/x86_64-linux-gnu/Scrt1.o] - collapse obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o] ==> [/usr/lib/x86_64-linux-gnu/crti.o] - collapse obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] ==> [/usr/lib/x86_64-linux-gnu/crtn.o] - collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/13] ==> [/usr/lib/gcc/x86_64-linux-gnu/13] - collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] - collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib] ==> [/usr/lib] - collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu] - collapse library dir [/lib/../lib] ==> [/lib] - collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] - collapse library dir [/usr/lib/../lib] ==> [/usr/lib] - collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../..] ==> [/usr/lib] - implicit libs: [gcc;gcc_s;c;gcc;gcc_s] - implicit objs: [/usr/lib/x86_64-linux-gnu/Scrt1.o;/usr/lib/x86_64-linux-gnu/crti.o;/usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o;/usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o;/usr/lib/x86_64-linux-gnu/crtn.o] - implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/13;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib] - implicit fwks: [] - - - - - kind: "message-v1" - backtrace: - - "/usr/local/share/cmake-3.31/Modules/Internal/CMakeDetermineLinkerId.cmake:40 (message)" - - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerABI.cmake:255 (cmake_determine_linker_id)" - - "/usr/local/share/cmake-3.31/Modules/CMakeTestCCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" - - "CMakeLists.txt:3 (project)" - message: | - Running the C compiler's linker: "/usr/bin/ld" "-v" - GNU ld (GNU Binutils for Ubuntu) 2.42 - - - kind: "try_compile-v1" - backtrace: - - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerABI.cmake:74 (try_compile)" - - "/usr/local/share/cmake-3.31/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" - - "CMakeLists.txt:3 (project)" - checks: - - "Detecting CXX compiler ABI info" - directories: - source: "/tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-HN0NXM" - binary: "/tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-HN0NXM" - cmakeVariables: - CMAKE_CXX_FLAGS: "" - CMAKE_CXX_FLAGS_DEBUG: "-g" - CMAKE_CXX_SCAN_FOR_MODULES: "OFF" - CMAKE_EXE_LINKER_FLAGS: "" - buildResult: - variable: "CMAKE_CXX_ABI_COMPILED" - cached: true - stdout: | - Change Dir: '/tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-HN0NXM' - - Run Build Command(s): /usr/local/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_f7e45/fast - /usr/bin/gmake -f CMakeFiles/cmTC_f7e45.dir/build.make CMakeFiles/cmTC_f7e45.dir/build - gmake[1]: Entering directory '/tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-HN0NXM' - Building CXX object CMakeFiles/cmTC_f7e45.dir/CMakeCXXCompilerABI.cpp.o - /usr/bin/c++ -v -o CMakeFiles/cmTC_f7e45.dir/CMakeCXXCompilerABI.cpp.o -c /usr/local/share/cmake-3.31/Modules/CMakeCXXCompilerABI.cpp - Using built-in specs. - COLLECT_GCC=/usr/bin/c++ - OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa - OFFLOAD_TARGET_DEFAULT=1 - Target: x86_64-linux-gnu - Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04.1' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2 - Thread model: posix - Supported LTO compression algorithms: zlib zstd - gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1) - COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_f7e45.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_f7e45.dir/' - /usr/libexec/gcc/x86_64-linux-gnu/13/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE /usr/local/share/cmake-3.31/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpdir CMakeFiles/cmTC_f7e45.dir/ -dumpbase CMakeCXXCompilerABI.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/ccIlSxAa.s - GNU C++17 (Ubuntu 13.3.0-6ubuntu2~24.04.1) version 13.3.0 (x86_64-linux-gnu) - compiled by GNU C version 13.3.0, GMP version 6.3.0, MPFR version 4.2.1, MPC version 1.3.1, isl version isl-0.26-GMP - - GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 - ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/13" - ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu" - ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed/x86_64-linux-gnu" - ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed" - ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/../../../../x86_64-linux-gnu/include" - #include "..." search starts here: - #include <...> search starts here: - /usr/include/c++/13 - /usr/include/x86_64-linux-gnu/c++/13 - /usr/include/c++/13/backward - /usr/lib/gcc/x86_64-linux-gnu/13/include - /usr/local/include - /usr/include/x86_64-linux-gnu - /usr/include - End of search list. - Compiler executable checksum: 7896445e4990772fdae9dc0659a99266 - COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_f7e45.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_f7e45.dir/' - as -v --64 -o CMakeFiles/cmTC_f7e45.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccIlSxAa.s - GNU assembler version 2.42 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.42 - COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/ - LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/ - COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_f7e45.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_f7e45.dir/CMakeCXXCompilerABI.cpp.' - Linking CXX executable cmTC_f7e45 - /usr/local/bin/cmake -E cmake_link_script CMakeFiles/cmTC_f7e45.dir/link.txt --verbose=1 - Using built-in specs. - COLLECT_GCC=/usr/bin/c++ - COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper - OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa - OFFLOAD_TARGET_DEFAULT=1 - Target: x86_64-linux-gnu - Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04.1' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2 - Thread model: posix - Supported LTO compression algorithms: zlib zstd - gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1) - COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/ - LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/ - COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_f7e45' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_f7e45.' - /usr/libexec/gcc/x86_64-linux-gnu/13/collect2 -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/ccDZX5to.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_f7e45 /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. -v CMakeFiles/cmTC_f7e45.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o - collect2 version 13.3.0 - /usr/bin/ld -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/ccDZX5to.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_f7e45 /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. -v CMakeFiles/cmTC_f7e45.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o - GNU ld (GNU Binutils for Ubuntu) 2.42 - COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_f7e45' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_f7e45.' - /usr/bin/c++ -v -Wl,-v CMakeFiles/cmTC_f7e45.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_f7e45 - gmake[1]: Leaving directory '/tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-HN0NXM' - - exitCode: 0 - - - kind: "message-v1" - backtrace: - - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerABI.cmake:182 (message)" - - "/usr/local/share/cmake-3.31/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" - - "CMakeLists.txt:3 (project)" - message: | - Parsed CXX implicit include dir info: rv=done - found start of include info - found start of implicit include info - add: [/usr/include/c++/13] - add: [/usr/include/x86_64-linux-gnu/c++/13] - add: [/usr/include/c++/13/backward] - add: [/usr/lib/gcc/x86_64-linux-gnu/13/include] - add: [/usr/local/include] - add: [/usr/include/x86_64-linux-gnu] - add: [/usr/include] - end of search list found - collapse include dir [/usr/include/c++/13] ==> [/usr/include/c++/13] - collapse include dir [/usr/include/x86_64-linux-gnu/c++/13] ==> [/usr/include/x86_64-linux-gnu/c++/13] - collapse include dir [/usr/include/c++/13/backward] ==> [/usr/include/c++/13/backward] - collapse include dir [/usr/lib/gcc/x86_64-linux-gnu/13/include] ==> [/usr/lib/gcc/x86_64-linux-gnu/13/include] - collapse include dir [/usr/local/include] ==> [/usr/local/include] - collapse include dir [/usr/include/x86_64-linux-gnu] ==> [/usr/include/x86_64-linux-gnu] - collapse include dir [/usr/include] ==> [/usr/include] - implicit include dirs: [/usr/include/c++/13;/usr/include/x86_64-linux-gnu/c++/13;/usr/include/c++/13/backward;/usr/lib/gcc/x86_64-linux-gnu/13/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include] - - - - - kind: "message-v1" - backtrace: - - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerABI.cmake:218 (message)" - - "/usr/local/share/cmake-3.31/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" - - "CMakeLists.txt:3 (project)" - message: | - Parsed CXX implicit link information: - link line regex: [^( *|.*[/\\])(ld[0-9]*(\\.[a-z]+)?|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)] - linker tool regex: [^[ ]*(->|")?[ ]*(([^"]*[/\\])?(ld[0-9]*(\\.[a-z]+)?))("|,| |$)] - ignore line: [Change Dir: '/tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-HN0NXM'] - ignore line: [] - ignore line: [Run Build Command(s): /usr/local/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_f7e45/fast] - ignore line: [/usr/bin/gmake -f CMakeFiles/cmTC_f7e45.dir/build.make CMakeFiles/cmTC_f7e45.dir/build] - ignore line: [gmake[1]: Entering directory '/tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-HN0NXM'] - ignore line: [Building CXX object CMakeFiles/cmTC_f7e45.dir/CMakeCXXCompilerABI.cpp.o] - ignore line: [/usr/bin/c++ -v -o CMakeFiles/cmTC_f7e45.dir/CMakeCXXCompilerABI.cpp.o -c /usr/local/share/cmake-3.31/Modules/CMakeCXXCompilerABI.cpp] - ignore line: [Using built-in specs.] - ignore line: [COLLECT_GCC=/usr/bin/c++] - ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa] - ignore line: [OFFLOAD_TARGET_DEFAULT=1] - ignore line: [Target: x86_64-linux-gnu] - ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04.1' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c ada c++ go d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2] - ignore line: [Thread model: posix] - ignore line: [Supported LTO compression algorithms: zlib zstd] - ignore line: [gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1) ] - ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_f7e45.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_f7e45.dir/'] - ignore line: [ /usr/libexec/gcc/x86_64-linux-gnu/13/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE /usr/local/share/cmake-3.31/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpdir CMakeFiles/cmTC_f7e45.dir/ -dumpbase CMakeCXXCompilerABI.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/ccIlSxAa.s] - ignore line: [GNU C++17 (Ubuntu 13.3.0-6ubuntu2~24.04.1) version 13.3.0 (x86_64-linux-gnu)] - ignore line: [ compiled by GNU C version 13.3.0 GMP version 6.3.0 MPFR version 4.2.1 MPC version 1.3.1 isl version isl-0.26-GMP] - ignore line: [] - ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072] - ignore line: [ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/13"] - ignore line: [ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"] - ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed/x86_64-linux-gnu"] - ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed"] - ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/../../../../x86_64-linux-gnu/include"] - ignore line: [#include "..." search starts here:] - ignore line: [#include <...> search starts here:] - ignore line: [ /usr/include/c++/13] - ignore line: [ /usr/include/x86_64-linux-gnu/c++/13] - ignore line: [ /usr/include/c++/13/backward] - ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/13/include] - ignore line: [ /usr/local/include] - ignore line: [ /usr/include/x86_64-linux-gnu] - ignore line: [ /usr/include] - ignore line: [End of search list.] - ignore line: [Compiler executable checksum: 7896445e4990772fdae9dc0659a99266] - ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_f7e45.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_f7e45.dir/'] - ignore line: [ as -v --64 -o CMakeFiles/cmTC_f7e45.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccIlSxAa.s] - ignore line: [GNU assembler version 2.42 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.42] - ignore line: [COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/] - ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/] - ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_f7e45.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_f7e45.dir/CMakeCXXCompilerABI.cpp.'] - ignore line: [Linking CXX executable cmTC_f7e45] - ignore line: [/usr/local/bin/cmake -E cmake_link_script CMakeFiles/cmTC_f7e45.dir/link.txt --verbose=1] - ignore line: [Using built-in specs.] - ignore line: [COLLECT_GCC=/usr/bin/c++] - ignore line: [COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper] - ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa] - ignore line: [OFFLOAD_TARGET_DEFAULT=1] - ignore line: [Target: x86_64-linux-gnu] - ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04.1' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c ada c++ go d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2] - ignore line: [Thread model: posix] - ignore line: [Supported LTO compression algorithms: zlib zstd] - ignore line: [gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1) ] - ignore line: [COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/] - ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/] - ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_f7e45' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_f7e45.'] - link line: [ /usr/libexec/gcc/x86_64-linux-gnu/13/collect2 -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/ccDZX5to.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_f7e45 /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. -v CMakeFiles/cmTC_f7e45.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] - arg [/usr/libexec/gcc/x86_64-linux-gnu/13/collect2] ==> ignore - arg [-plugin] ==> ignore - arg [/usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so] ==> ignore - arg [-plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper] ==> ignore - arg [-plugin-opt=-fresolution=/tmp/ccDZX5to.res] ==> ignore - arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore - arg [-plugin-opt=-pass-through=-lgcc] ==> ignore - arg [-plugin-opt=-pass-through=-lc] ==> ignore - arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore - arg [-plugin-opt=-pass-through=-lgcc] ==> ignore - arg [--build-id] ==> ignore - arg [--eh-frame-hdr] ==> ignore - arg [-m] ==> ignore - arg [elf_x86_64] ==> ignore - arg [--hash-style=gnu] ==> ignore - arg [--as-needed] ==> ignore - arg [-dynamic-linker] ==> ignore - arg [/lib64/ld-linux-x86-64.so.2] ==> ignore - arg [-pie] ==> ignore - arg [-znow] ==> ignore - arg [-zrelro] ==> ignore - arg [-o] ==> ignore - arg [cmTC_f7e45] ==> ignore - arg [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o] - arg [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o] - arg [/usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o] - arg [-L/usr/lib/gcc/x86_64-linux-gnu/13] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13] - arg [-L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu] - arg [-L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib] - arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu] - arg [-L/lib/../lib] ==> dir [/lib/../lib] - arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu] - arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib] - arg [-L/usr/lib/gcc/x86_64-linux-gnu/13/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../..] - arg [-v] ==> ignore - arg [CMakeFiles/cmTC_f7e45.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore - arg [-lstdc++] ==> lib [stdc++] - arg [-lm] ==> lib [m] - arg [-lgcc_s] ==> lib [gcc_s] - arg [-lgcc] ==> lib [gcc] - arg [-lc] ==> lib [c] - arg [-lgcc_s] ==> lib [gcc_s] - arg [-lgcc] ==> lib [gcc] - arg [/usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o] - arg [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] - ignore line: [collect2 version 13.3.0] - ignore line: [/usr/bin/ld -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/ccDZX5to.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_f7e45 /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. -v CMakeFiles/cmTC_f7e45.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] - linker tool for 'CXX': /usr/bin/ld - collapse obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o] ==> [/usr/lib/x86_64-linux-gnu/Scrt1.o] - collapse obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o] ==> [/usr/lib/x86_64-linux-gnu/crti.o] - collapse obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] ==> [/usr/lib/x86_64-linux-gnu/crtn.o] - collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/13] ==> [/usr/lib/gcc/x86_64-linux-gnu/13] - collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] - collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib] ==> [/usr/lib] - collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu] - collapse library dir [/lib/../lib] ==> [/lib] - collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] - collapse library dir [/usr/lib/../lib] ==> [/usr/lib] - collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../..] ==> [/usr/lib] - implicit libs: [stdc++;m;gcc_s;gcc;c;gcc_s;gcc] - implicit objs: [/usr/lib/x86_64-linux-gnu/Scrt1.o;/usr/lib/x86_64-linux-gnu/crti.o;/usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o;/usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o;/usr/lib/x86_64-linux-gnu/crtn.o] - implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/13;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib] - implicit fwks: [] - - - - - kind: "message-v1" - backtrace: - - "/usr/local/share/cmake-3.31/Modules/Internal/CMakeDetermineLinkerId.cmake:40 (message)" - - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerABI.cmake:255 (cmake_determine_linker_id)" - - "/usr/local/share/cmake-3.31/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" - - "CMakeLists.txt:3 (project)" - message: | - Running the CXX compiler's linker: "/usr/bin/ld" "-v" - GNU ld (GNU Binutils for Ubuntu) 2.42 - - - kind: "try_compile-v1" - backtrace: - - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerABI.cmake:74 (try_compile)" - - "/usr/local/share/cmake-3.31/Modules/CMakeTestFortranCompiler.cmake:20 (CMAKE_DETERMINE_COMPILER_ABI)" - - "CMakeLists.txt:3 (project)" - checks: - - "Detecting Fortran compiler ABI info" - directories: - source: "/tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-VcDTl6" - binary: "/tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-VcDTl6" - cmakeVariables: - CMAKE_EXE_LINKER_FLAGS: "" - CMAKE_Fortran_FLAGS: "" - CMAKE_Fortran_FLAGS_DEBUG: "-g" - buildResult: - variable: "CMAKE_Fortran_ABI_COMPILED" - cached: true - stdout: | - Change Dir: '/tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-VcDTl6' - - Run Build Command(s): /usr/local/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_42f7f/fast - /usr/bin/gmake -f CMakeFiles/cmTC_42f7f.dir/build.make CMakeFiles/cmTC_42f7f.dir/build - gmake[1]: Entering directory '/tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-VcDTl6' - Building Fortran object CMakeFiles/cmTC_42f7f.dir/CMakeFortranCompilerABI.F90.o - /usr/bin/gfortran -v -c /usr/local/share/cmake-3.31/Modules/CMakeFortranCompilerABI.F90 -o CMakeFiles/cmTC_42f7f.dir/CMakeFortranCompilerABI.F90.o - Using built-in specs. - COLLECT_GCC=/usr/bin/gfortran - OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa - OFFLOAD_TARGET_DEFAULT=1 - Target: x86_64-linux-gnu - Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04.1' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2 - Thread model: posix - Supported LTO compression algorithms: zlib zstd - gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1) - COLLECT_GCC_OPTIONS='-v' '-c' '-o' 'CMakeFiles/cmTC_42f7f.dir/CMakeFortranCompilerABI.F90.o' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_42f7f.dir/' - /usr/libexec/gcc/x86_64-linux-gnu/13/f951 /usr/local/share/cmake-3.31/Modules/CMakeFortranCompilerABI.F90 -cpp=/tmp/cc85bnTv.f90 -quiet -v -imultiarch x86_64-linux-gnu /usr/local/share/cmake-3.31/Modules/CMakeFortranCompilerABI.F90 -quiet -dumpdir CMakeFiles/cmTC_42f7f.dir/ -dumpbase CMakeFortranCompilerABI.F90.F90 -dumpbase-ext .F90 -mtune=generic -march=x86-64 -version -fintrinsic-modules-path /usr/lib/gcc/x86_64-linux-gnu/13/finclude -fpre-include=/usr/include/finclude/x86_64-linux-gnu/math-vector-fortran.h -o /tmp/cce5wTp8.s - GNU Fortran (Ubuntu 13.3.0-6ubuntu2~24.04.1) version 13.3.0 (x86_64-linux-gnu) - compiled by GNU C version 13.3.0, GMP version 6.3.0, MPFR version 4.2.1, MPC version 1.3.1, isl version isl-0.26-GMP - - GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 - ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu" - ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed/x86_64-linux-gnu" - ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed" - ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/../../../../x86_64-linux-gnu/include" - #include "..." search starts here: - #include <...> search starts here: - /usr/lib/gcc/x86_64-linux-gnu/13/finclude - /usr/lib/gcc/x86_64-linux-gnu/13/include - /usr/local/include - /usr/include/x86_64-linux-gnu - /usr/include - End of search list. - COLLECT_GCC_OPTIONS='-v' '-c' '-o' 'CMakeFiles/cmTC_42f7f.dir/CMakeFortranCompilerABI.F90.o' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_42f7f.dir/' - as -v --64 -o CMakeFiles/cmTC_42f7f.dir/CMakeFortranCompilerABI.F90.o /tmp/cce5wTp8.s - GNU assembler version 2.42 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.42 - COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/ - LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/ - COLLECT_GCC_OPTIONS='-v' '-c' '-o' 'CMakeFiles/cmTC_42f7f.dir/CMakeFortranCompilerABI.F90.o' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_42f7f.dir/CMakeFortranCompilerABI.F90.' - Linking Fortran executable cmTC_42f7f - /usr/local/bin/cmake -E cmake_link_script CMakeFiles/cmTC_42f7f.dir/link.txt --verbose=1 - Driving: /usr/bin/gfortran -v -Wl,-v CMakeFiles/cmTC_42f7f.dir/CMakeFortranCompilerABI.F90.o -o cmTC_42f7f -l gfortran -l m -shared-libgcc - Using built-in specs. - COLLECT_GCC=/usr/bin/gfortran - COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper - OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa - OFFLOAD_TARGET_DEFAULT=1 - Target: x86_64-linux-gnu - Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04.1' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2 - Thread model: posix - Supported LTO compression algorithms: zlib zstd - gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1) - Reading specs from /usr/lib/gcc/x86_64-linux-gnu/13/libgfortran.spec - rename spec lib to liborig - COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_42f7f' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_42f7f-' - COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/ - LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/ - COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_42f7f' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_42f7f.' - /usr/libexec/gcc/x86_64-linux-gnu/13/collect2 -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/cchOSnKy.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lquadmath -plugin-opt=-pass-through=-lm -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_42f7f /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. -v CMakeFiles/cmTC_42f7f.dir/CMakeFortranCompilerABI.F90.o -lgfortran -lm -lgcc_s -lgcc --as-needed -lquadmath --no-as-needed -lm -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o - collect2 version 13.3.0 - /usr/bin/ld -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/cchOSnKy.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lquadmath -plugin-opt=-pass-through=-lm -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_42f7f /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. -v CMakeFiles/cmTC_42f7f.dir/CMakeFortranCompilerABI.F90.o -lgfortran -lm -lgcc_s -lgcc --as-needed -lquadmath --no-as-needed -lm -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o - GNU ld (GNU Binutils for Ubuntu) 2.42 - COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_42f7f' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_42f7f.' - /usr/bin/gfortran -v -Wl,-v CMakeFiles/cmTC_42f7f.dir/CMakeFortranCompilerABI.F90.o -o cmTC_42f7f - gmake[1]: Leaving directory '/tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-VcDTl6' - - exitCode: 0 - - - kind: "message-v1" - backtrace: - - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerABI.cmake:182 (message)" - - "/usr/local/share/cmake-3.31/Modules/CMakeTestFortranCompiler.cmake:20 (CMAKE_DETERMINE_COMPILER_ABI)" - - "CMakeLists.txt:3 (project)" - message: | - Parsed Fortran implicit include dir info: rv=done - found start of include info - found start of implicit include info - add: [/usr/lib/gcc/x86_64-linux-gnu/13/finclude] - add: [/usr/lib/gcc/x86_64-linux-gnu/13/include] - add: [/usr/local/include] - add: [/usr/include/x86_64-linux-gnu] - add: [/usr/include] - end of search list found - collapse include dir [/usr/lib/gcc/x86_64-linux-gnu/13/finclude] ==> [/usr/lib/gcc/x86_64-linux-gnu/13/finclude] - collapse include dir [/usr/lib/gcc/x86_64-linux-gnu/13/include] ==> [/usr/lib/gcc/x86_64-linux-gnu/13/include] - collapse include dir [/usr/local/include] ==> [/usr/local/include] - collapse include dir [/usr/include/x86_64-linux-gnu] ==> [/usr/include/x86_64-linux-gnu] - collapse include dir [/usr/include] ==> [/usr/include] - implicit include dirs: [/usr/lib/gcc/x86_64-linux-gnu/13/finclude;/usr/lib/gcc/x86_64-linux-gnu/13/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include] - - - - - kind: "message-v1" - backtrace: - - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerABI.cmake:218 (message)" - - "/usr/local/share/cmake-3.31/Modules/CMakeTestFortranCompiler.cmake:20 (CMAKE_DETERMINE_COMPILER_ABI)" - - "CMakeLists.txt:3 (project)" - message: | - Parsed Fortran implicit link information: - link line regex: [^( *|.*[/\\])(ld[0-9]*(\\.[a-z]+)?|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)] - linker tool regex: [^[ ]*(->|")?[ ]*(([^"]*[/\\])?(ld[0-9]*(\\.[a-z]+)?))("|,| |$)] - ignore line: [Change Dir: '/tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-VcDTl6'] - ignore line: [] - ignore line: [Run Build Command(s): /usr/local/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_42f7f/fast] - ignore line: [/usr/bin/gmake -f CMakeFiles/cmTC_42f7f.dir/build.make CMakeFiles/cmTC_42f7f.dir/build] - ignore line: [gmake[1]: Entering directory '/tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-VcDTl6'] - ignore line: [Building Fortran object CMakeFiles/cmTC_42f7f.dir/CMakeFortranCompilerABI.F90.o] - ignore line: [/usr/bin/gfortran -v -c /usr/local/share/cmake-3.31/Modules/CMakeFortranCompilerABI.F90 -o CMakeFiles/cmTC_42f7f.dir/CMakeFortranCompilerABI.F90.o] - ignore line: [Using built-in specs.] - ignore line: [COLLECT_GCC=/usr/bin/gfortran] - ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa] - ignore line: [OFFLOAD_TARGET_DEFAULT=1] - ignore line: [Target: x86_64-linux-gnu] - ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04.1' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c ada c++ go d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2] - ignore line: [Thread model: posix] - ignore line: [Supported LTO compression algorithms: zlib zstd] - ignore line: [gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1) ] - ignore line: [COLLECT_GCC_OPTIONS='-v' '-c' '-o' 'CMakeFiles/cmTC_42f7f.dir/CMakeFortranCompilerABI.F90.o' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_42f7f.dir/'] - ignore line: [ /usr/libexec/gcc/x86_64-linux-gnu/13/f951 /usr/local/share/cmake-3.31/Modules/CMakeFortranCompilerABI.F90 -cpp=/tmp/cc85bnTv.f90 -quiet -v -imultiarch x86_64-linux-gnu /usr/local/share/cmake-3.31/Modules/CMakeFortranCompilerABI.F90 -quiet -dumpdir CMakeFiles/cmTC_42f7f.dir/ -dumpbase CMakeFortranCompilerABI.F90.F90 -dumpbase-ext .F90 -mtune=generic -march=x86-64 -version -fintrinsic-modules-path /usr/lib/gcc/x86_64-linux-gnu/13/finclude -fpre-include=/usr/include/finclude/x86_64-linux-gnu/math-vector-fortran.h -o /tmp/cce5wTp8.s] - ignore line: [GNU Fortran (Ubuntu 13.3.0-6ubuntu2~24.04.1) version 13.3.0 (x86_64-linux-gnu)] - ignore line: [ compiled by GNU C version 13.3.0 GMP version 6.3.0 MPFR version 4.2.1 MPC version 1.3.1 isl version isl-0.26-GMP] - ignore line: [] - ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072] - ignore line: [ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"] - ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed/x86_64-linux-gnu"] - ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed"] - ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/../../../../x86_64-linux-gnu/include"] - ignore line: [#include "..." search starts here:] - ignore line: [#include <...> search starts here:] - ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/13/finclude] - ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/13/include] - ignore line: [ /usr/local/include] - ignore line: [ /usr/include/x86_64-linux-gnu] - ignore line: [ /usr/include] - ignore line: [End of search list.] - ignore line: [COLLECT_GCC_OPTIONS='-v' '-c' '-o' 'CMakeFiles/cmTC_42f7f.dir/CMakeFortranCompilerABI.F90.o' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_42f7f.dir/'] - ignore line: [ as -v --64 -o CMakeFiles/cmTC_42f7f.dir/CMakeFortranCompilerABI.F90.o /tmp/cce5wTp8.s] - ignore line: [GNU assembler version 2.42 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.42] - ignore line: [COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/] - ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/] - ignore line: [COLLECT_GCC_OPTIONS='-v' '-c' '-o' 'CMakeFiles/cmTC_42f7f.dir/CMakeFortranCompilerABI.F90.o' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_42f7f.dir/CMakeFortranCompilerABI.F90.'] - ignore line: [Linking Fortran executable cmTC_42f7f] - ignore line: [/usr/local/bin/cmake -E cmake_link_script CMakeFiles/cmTC_42f7f.dir/link.txt --verbose=1] - ignore line: [Driving: /usr/bin/gfortran -v -Wl -v CMakeFiles/cmTC_42f7f.dir/CMakeFortranCompilerABI.F90.o -o cmTC_42f7f -l gfortran -l m -shared-libgcc] - ignore line: [Using built-in specs.] - ignore line: [COLLECT_GCC=/usr/bin/gfortran] - ignore line: [COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper] - ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa] - ignore line: [OFFLOAD_TARGET_DEFAULT=1] - ignore line: [Target: x86_64-linux-gnu] - ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04.1' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c ada c++ go d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/gcc-13-EldibY/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2] - ignore line: [Thread model: posix] - ignore line: [Supported LTO compression algorithms: zlib zstd] - ignore line: [gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1) ] - ignore line: [Reading specs from /usr/lib/gcc/x86_64-linux-gnu/13/libgfortran.spec] - ignore line: [rename spec lib to liborig] - ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_42f7f' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_42f7f-'] - ignore line: [COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/] - ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/] - ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_42f7f' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_42f7f.'] - link line: [ /usr/libexec/gcc/x86_64-linux-gnu/13/collect2 -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/cchOSnKy.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lquadmath -plugin-opt=-pass-through=-lm -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_42f7f /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. -v CMakeFiles/cmTC_42f7f.dir/CMakeFortranCompilerABI.F90.o -lgfortran -lm -lgcc_s -lgcc --as-needed -lquadmath --no-as-needed -lm -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] - arg [/usr/libexec/gcc/x86_64-linux-gnu/13/collect2] ==> ignore - arg [-plugin] ==> ignore - arg [/usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so] ==> ignore - arg [-plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper] ==> ignore - arg [-plugin-opt=-fresolution=/tmp/cchOSnKy.res] ==> ignore - arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore - arg [-plugin-opt=-pass-through=-lgcc] ==> ignore - arg [-plugin-opt=-pass-through=-lquadmath] ==> ignore - arg [-plugin-opt=-pass-through=-lm] ==> ignore - arg [-plugin-opt=-pass-through=-lc] ==> ignore - arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore - arg [-plugin-opt=-pass-through=-lgcc] ==> ignore - arg [--build-id] ==> ignore - arg [--eh-frame-hdr] ==> ignore - arg [-m] ==> ignore - arg [elf_x86_64] ==> ignore - arg [--hash-style=gnu] ==> ignore - arg [--as-needed] ==> ignore - arg [-dynamic-linker] ==> ignore - arg [/lib64/ld-linux-x86-64.so.2] ==> ignore - arg [-pie] ==> ignore - arg [-znow] ==> ignore - arg [-zrelro] ==> ignore - arg [-o] ==> ignore - arg [cmTC_42f7f] ==> ignore - arg [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o] - arg [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o] - arg [/usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o] - arg [-L/usr/lib/gcc/x86_64-linux-gnu/13] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13] - arg [-L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu] - arg [-L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib] - arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu] - arg [-L/lib/../lib] ==> dir [/lib/../lib] - arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu] - arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib] - arg [-L/usr/lib/gcc/x86_64-linux-gnu/13/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../..] - arg [-v] ==> ignore - arg [CMakeFiles/cmTC_42f7f.dir/CMakeFortranCompilerABI.F90.o] ==> ignore - arg [-lgfortran] ==> lib [gfortran] - arg [-lm] ==> lib [m] - arg [-lgcc_s] ==> lib [gcc_s] - arg [-lgcc] ==> lib [gcc] - arg [--as-needed] ==> ignore - arg [-lquadmath] ==> lib [quadmath] - arg [--no-as-needed] ==> ignore - arg [-lm] ==> lib [m] - arg [-lc] ==> lib [c] - arg [-lgcc_s] ==> lib [gcc_s] - arg [-lgcc] ==> lib [gcc] - arg [/usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o] - arg [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] - ignore line: [collect2 version 13.3.0] - ignore line: [/usr/bin/ld -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/cchOSnKy.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lquadmath -plugin-opt=-pass-through=-lm -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_42f7f /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. -v CMakeFiles/cmTC_42f7f.dir/CMakeFortranCompilerABI.F90.o -lgfortran -lm -lgcc_s -lgcc --as-needed -lquadmath --no-as-needed -lm -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] - linker tool for 'Fortran': /usr/bin/ld - collapse obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o] ==> [/usr/lib/x86_64-linux-gnu/Scrt1.o] - collapse obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o] ==> [/usr/lib/x86_64-linux-gnu/crti.o] - collapse obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] ==> [/usr/lib/x86_64-linux-gnu/crtn.o] - collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/13] ==> [/usr/lib/gcc/x86_64-linux-gnu/13] - collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] - collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib] ==> [/usr/lib] - collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu] - collapse library dir [/lib/../lib] ==> [/lib] - collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] - collapse library dir [/usr/lib/../lib] ==> [/usr/lib] - collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../..] ==> [/usr/lib] - implicit libs: [gfortran;m;gcc_s;gcc;quadmath;m;c;gcc_s;gcc] - implicit objs: [/usr/lib/x86_64-linux-gnu/Scrt1.o;/usr/lib/x86_64-linux-gnu/crti.o;/usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o;/usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o;/usr/lib/x86_64-linux-gnu/crtn.o] - implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/13;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib] - implicit fwks: [] - - - - - kind: "message-v1" - backtrace: - - "/usr/local/share/cmake-3.31/Modules/Internal/CMakeDetermineLinkerId.cmake:40 (message)" - - "/usr/local/share/cmake-3.31/Modules/CMakeDetermineCompilerABI.cmake:255 (cmake_determine_linker_id)" - - "/usr/local/share/cmake-3.31/Modules/CMakeTestFortranCompiler.cmake:20 (CMAKE_DETERMINE_COMPILER_ABI)" - - "CMakeLists.txt:3 (project)" - message: | - Running the Fortran compiler's linker: "/usr/bin/ld" "-v" - GNU ld (GNU Binutils for Ubuntu) 2.42 - - - kind: "try_compile-v1" - backtrace: - - "/usr/local/share/cmake-3.31/Modules/FindMPI.cmake:1283 (try_compile)" - - "/usr/local/share/cmake-3.31/Modules/FindMPI.cmake:1327 (_MPI_try_staged_settings)" - - "/usr/local/share/cmake-3.31/Modules/FindMPI.cmake:1650 (_MPI_check_lang_works)" - - "CMakeLists.txt:101 (find_package)" - description: "The MPI test test_mpi for C in mode normal" - directories: - source: "/tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-lQ1zxg" - binary: "/tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-lQ1zxg" - cmakeVariables: - CMAKE_C_FLAGS: "" - CMAKE_C_FLAGS_DEBUG: "-g" - CMAKE_EXE_LINKER_FLAGS: "" - CMAKE_MODULE_PATH: "/tmp/workspace/EXP-code/EXP/cmake" - CMAKE_POSITION_INDEPENDENT_CODE: "ON" - buildResult: - variable: "MPI_RESULT_C_test_mpi_normal" - cached: true - stdout: | - Change Dir: '/tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-lQ1zxg' - - Run Build Command(s): /usr/local/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_8763c/fast - /usr/bin/gmake -f CMakeFiles/cmTC_8763c.dir/build.make CMakeFiles/cmTC_8763c.dir/build - gmake[1]: Entering directory '/tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-lQ1zxg' - Building C object CMakeFiles/cmTC_8763c.dir/test_mpi.c.o - /usr/bin/cc -fPIE -o CMakeFiles/cmTC_8763c.dir/test_mpi.c.o -c /tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-lQ1zxg/test_mpi.c - /tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-lQ1zxg/test_mpi.c:1:10: fatal error: mpi.h: No such file or directory - 1 | #include - | ^~~~~~~ - compilation terminated. - gmake[1]: *** [CMakeFiles/cmTC_8763c.dir/build.make:81: CMakeFiles/cmTC_8763c.dir/test_mpi.c.o] Error 1 - gmake[1]: Leaving directory '/tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-lQ1zxg' - gmake: *** [Makefile:134: cmTC_8763c/fast] Error 2 - - exitCode: 2 - - - kind: "try_compile-v1" - backtrace: - - "/usr/local/share/cmake-3.31/Modules/FindMPI.cmake:1283 (try_compile)" - - "/usr/local/share/cmake-3.31/Modules/FindMPI.cmake:1327 (_MPI_try_staged_settings)" - - "/usr/local/share/cmake-3.31/Modules/FindMPI.cmake:1650 (_MPI_check_lang_works)" - - "CMakeLists.txt:101 (find_package)" - description: "The MPI test test_mpi for CXX in mode normal" - directories: - source: "/tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-FeQ5BV" - binary: "/tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-FeQ5BV" - cmakeVariables: - CMAKE_CXX_FLAGS: "" - CMAKE_CXX_FLAGS_DEBUG: "-g" - CMAKE_EXE_LINKER_FLAGS: "" - CMAKE_MODULE_PATH: "/tmp/workspace/EXP-code/EXP/cmake" - CMAKE_POSITION_INDEPENDENT_CODE: "ON" - buildResult: - variable: "MPI_RESULT_CXX_test_mpi_normal" - cached: true - stdout: | - Change Dir: '/tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-FeQ5BV' - - Run Build Command(s): /usr/local/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_ac9ec/fast - /usr/bin/gmake -f CMakeFiles/cmTC_ac9ec.dir/build.make CMakeFiles/cmTC_ac9ec.dir/build - gmake[1]: Entering directory '/tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-FeQ5BV' - Building CXX object CMakeFiles/cmTC_ac9ec.dir/test_mpi.cpp.o - /usr/bin/c++ -std=c++17 -fPIE -o CMakeFiles/cmTC_ac9ec.dir/test_mpi.cpp.o -c /tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-FeQ5BV/test_mpi.cpp - /tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-FeQ5BV/test_mpi.cpp:1:10: fatal error: mpi.h: No such file or directory - 1 | #include - | ^~~~~~~ - compilation terminated. - gmake[1]: *** [CMakeFiles/cmTC_ac9ec.dir/build.make:81: CMakeFiles/cmTC_ac9ec.dir/test_mpi.cpp.o] Error 1 - gmake[1]: Leaving directory '/tmp/workspace/EXP-code/EXP/build-baseline/CMakeFiles/CMakeScratch/TryCompile-FeQ5BV' - gmake: *** [Makefile:134: cmTC_ac9ec/fast] Error 2 - - exitCode: 2 -... diff --git a/build-baseline/CMakeFiles/cmake.check_cache b/build-baseline/CMakeFiles/cmake.check_cache deleted file mode 100644 index 3dccd7317..000000000 --- a/build-baseline/CMakeFiles/cmake.check_cache +++ /dev/null @@ -1 +0,0 @@ -# This file is generated by cmake for dependency checking of the CMakeCache.txt file From f8e8c48e8f7bc5babb5a8f3a1370ff6149218692 Mon Sep 17 00:00:00 2001 From: "Martin D. Weinberg" Date: Fri, 29 May 2026 08:30:06 -0400 Subject: [PATCH 121/131] Add explicit version number to deprecation warning --- expui/BiorthBasis.cc | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/expui/BiorthBasis.cc b/expui/BiorthBasis.cc index a5e032345..9c6d21a30 100644 --- a/expui/BiorthBasis.cc +++ b/expui/BiorthBasis.cc @@ -283,7 +283,7 @@ namespace BasisClasses if (conf["subsamp"]) { if (myid==0) std::cout << "---- Spherical: parameter 'subsamp' is deprecated. " - << "It works, but will be removed in a future release. " + << "It works, but will be removed in version >= 7.11. " << "Please use 'samplesz' instead." << std::endl; } @@ -1549,7 +1549,7 @@ namespace BasisClasses if (conf["eof_file"]) { if (myid==0) std::cout << "Cylindrical: parameter 'eof_file' is deprecated. " - << "and will be removed in a future release. Please " + << "and will be removed in version >= 7.11. Please " << "use 'cachename' instead." << std::endl; @@ -1560,7 +1560,7 @@ namespace BasisClasses if (conf["subsamp"]) { if (myid==0) std::cout << "---- Cylindrical: parameter 'subsamp' is deprecated. " - << "It works, but will be removed in a future release. " + << "It works, but will be removed in version >= 7.11. " << "Please use 'samplesz' instead." << std::endl; } @@ -2509,7 +2509,7 @@ namespace BasisClasses if (conf["subsamp"]) { if (myid==0) std::cout << "---- FlatDisk: parameter 'subsamp' is deprecated. " - << "It works, but will be removed in a future release. " + << "It works, but will be removed in version >= 7.11. " << "Please use 'samplesz' instead." << std::endl; } @@ -4472,7 +4472,7 @@ namespace BasisClasses if (conf["subsamp"]) { if (myid==0) std::cout << "---- Cube: parameter 'subsamp' is deprecated. " - << "It works, but will be removed in a future release. " + << "It works, but will be removed in version >= 7.11. " << "Please use 'samplesz' instead." << std::endl; } From 3b07ea61503e55352a01b32e806e9325ddd7b1a2 Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Fri, 29 May 2026 08:32:18 -0400 Subject: [PATCH 122/131] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- utils/Test/testDeproject.cc | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/utils/Test/testDeproject.cc b/utils/Test/testDeproject.cc index ed606a312..014790865 100644 --- a/utils/Test/testDeproject.cc +++ b/utils/Test/testDeproject.cc @@ -1,9 +1,14 @@ -#include -#include -#include -#include +#include +#include #include +#include +#include +#include +#include +#include #include +#include +#include #include "Deprojector.H" #include "cxxopts.H" From 5e753a562db0968e6baf26cf069c2c79e102596c Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Fri, 29 May 2026 08:32:41 -0400 Subject: [PATCH 123/131] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- utils/Test/testDeproject.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utils/Test/testDeproject.cc b/utils/Test/testDeproject.cc index 014790865..33960d3d4 100644 --- a/utils/Test/testDeproject.cc +++ b/utils/Test/testDeproject.cc @@ -25,7 +25,7 @@ int main(int argc, char* argv[]) std::string type; cxxopts::Options options("testDeprojector", "Test the Deproject class for various surface density profiles.\n" - "Independent implemenation for comparison with the EmpCylSL-based\n" + "Independent implementation for comparison with the EmpCylSL-based\n" "EmpDeproj class.\n"); options.add_options() From eb52943cfcdc942647517115dae55b03493ed2ae Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Fri, 29 May 2026 08:32:58 -0400 Subject: [PATCH 124/131] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- utils/Test/testEmpDeproj.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/utils/Test/testEmpDeproj.cc b/utils/Test/testEmpDeproj.cc index a502331ba..870f8f6e9 100644 --- a/utils/Test/testEmpDeproj.cc +++ b/utils/Test/testEmpDeproj.cc @@ -1,6 +1,7 @@ #include #include #include +#include #include #include #include From 2452b0393b6312a09035f98a4cf3cb94c87a3937 Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Fri, 29 May 2026 08:33:17 -0400 Subject: [PATCH 125/131] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- utils/Test/testEmp.cc | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/utils/Test/testEmp.cc b/utils/Test/testEmp.cc index 524d72e52..e925c6c9d 100644 --- a/utils/Test/testEmp.cc +++ b/utils/Test/testEmp.cc @@ -1,13 +1,15 @@ -#include -#include -#include -#include #include -#include -#include -#include +#include #include +#include +#include +#include +#include #include +#include +#include +#include +#include #include "EmpDeproj.H" #include "cxxopts.H" From 9b56ca1a1ffc6111f50390800a41e6de4d769d3b Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Fri, 29 May 2026 08:33:34 -0400 Subject: [PATCH 126/131] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- utils/Test/testmd5.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/utils/Test/testmd5.cc b/utils/Test/testmd5.cc index 7490a8d2d..050aa7a6f 100644 --- a/utils/Test/testmd5.cc +++ b/utils/Test/testmd5.cc @@ -1,9 +1,10 @@ // This test verifies that QuickDigest5 correctly computes the MD5 // hash of a file -#include +#include #include - +#include +#include #include "quickdigest5.hpp" #include "exputils.H" // For get_md5sum which uses the system's md5sum From 2b21274543635adf1e421dd3b4bd571808dd791a Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Fri, 29 May 2026 08:34:29 -0400 Subject: [PATCH 127/131] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- utils/Test/testmd5.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/utils/Test/testmd5.cc b/utils/Test/testmd5.cc index 050aa7a6f..3dd6d4414 100644 --- a/utils/Test/testmd5.cc +++ b/utils/Test/testmd5.cc @@ -18,9 +18,9 @@ int main(int argc, char* argv[]) // Check if the file exists before trying to hash it std::filesystem::path p(filePath); if (!std::filesystem::exists(p)) { - std::cout << "File <" << filePath << "> not found." << std::endl - << "Usage: " << argv[0] << " [file_path]" << std::endl - << "Defaulting to example.txt if it exists." << std::endl; + std::cerr << "File <" << filePath << "> not found." << std::endl + << "Usage: " << argv[0] << " [file_path]" << std::endl; + return 1; } // One-line method to get the hex digest of a file From 256a55cd33f543d872dc3ddbeff4ceb52e649ec0 Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Fri, 29 May 2026 08:35:11 -0400 Subject: [PATCH 128/131] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- utils/Test/testmd5.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/utils/Test/testmd5.cc b/utils/Test/testmd5.cc index 3dd6d4414..3518f9eea 100644 --- a/utils/Test/testmd5.cc +++ b/utils/Test/testmd5.cc @@ -30,6 +30,7 @@ int main(int argc, char* argv[]) std::cout << "MD5: " << hash << std::endl; } else { std::cerr << "Error: Could not process file." << std::endl; + return 1; } // System version of md5sum for comparison @@ -44,9 +45,11 @@ int main(int argc, char* argv[]) std::cout << "Success: hashes match!" << std::endl; } else { std::cerr << "Error: hashes do not match!" << std::endl; + return 1; } } catch (const std::exception& e) { std::cerr << "Error computing system md5sum: " << e.what() << std::endl; + return 1; } return 0; From 6485d5182e10f34a315af23029e8e484cc602aed Mon Sep 17 00:00:00 2001 From: "Martin D. Weinberg" Date: Fri, 29 May 2026 12:09:35 -0400 Subject: [PATCH 129/131] Add missing global key --- src/global_key_set.H | 1 + 1 file changed, 1 insertion(+) diff --git a/src/global_key_set.H b/src/global_key_set.H index cfa4a9ef0..2d678d805 100644 --- a/src/global_key_set.H +++ b/src/global_key_set.H @@ -8,6 +8,7 @@ global_valid_keys = { "dbthresh", "time", "dtime", + "maxMindt" "PFbufsz", "NICE", "VERBOSE", From 0f837d1a92c6aab0c7dddc2d8b1ad6557990f4c8 Mon Sep 17 00:00:00 2001 From: Martin Weinberg Date: Fri, 29 May 2026 12:21:08 -0400 Subject: [PATCH 130/131] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- src/global_key_set.H | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/global_key_set.H b/src/global_key_set.H index 2d678d805..c31745af5 100644 --- a/src/global_key_set.H +++ b/src/global_key_set.H @@ -8,7 +8,7 @@ global_valid_keys = { "dbthresh", "time", "dtime", - "maxMindt" + "maxMindt", "PFbufsz", "NICE", "VERBOSE", From 1a780bc92cd449103effbd23759bc08426dcdc17 Mon Sep 17 00:00:00 2001 From: michael-petersen Date: Fri, 29 May 2026 17:47:15 +0100 Subject: [PATCH 131/131] reset bug counter at minor version to 0 --- CMakeLists.txt | 2 +- doc/exp.cfg | 2 +- doc/exp.cfg.breathe | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f1231517e..410029e1a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.25) # Needed for CUDA, MPI, and CTest features project( EXP - VERSION "7.10.3" + VERSION "7.10.0" HOMEPAGE_URL https://github.com/EXP-code/EXP LANGUAGES C CXX Fortran) diff --git a/doc/exp.cfg b/doc/exp.cfg index 64a2a0d70..c83ce4a1c 100644 --- a/doc/exp.cfg +++ b/doc/exp.cfg @@ -48,7 +48,7 @@ PROJECT_NAME = EXP # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = 7.10.3 +PROJECT_NUMBER = 7.10.0 # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a diff --git a/doc/exp.cfg.breathe b/doc/exp.cfg.breathe index 3af775e38..c8d8a0781 100644 --- a/doc/exp.cfg.breathe +++ b/doc/exp.cfg.breathe @@ -48,7 +48,7 @@ PROJECT_NAME = EXP # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = 7.10.3 +PROJECT_NUMBER = 7.10.0 # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a