Conversation
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #3179 +/- ##
==========================================
+ Coverage 73.81% 73.90% +0.09%
==========================================
Files 18 18
Lines 5423 5454 +31
==========================================
+ Hits 4003 4031 +28
- Misses 1420 1423 +3 🚀 New features to boost your workflow:
|
configure.ac
Outdated
|
|
||
| # make sure we enable C++11 support if possible | ||
| AX_CXX_COMPILE_STDCXX([11], [], [optional]) | ||
| # Require C++17 support |
There was a problem hiding this comment.
I don't want to require this until we actually use C++17 features, which as far as I know we don't? I think the most recent feature we use is std::move, which is C++11. So we should just make C++11 mandatory.
configure.ac
Outdated
|
|
||
| AC_ARG_WITH(openmp, [AS_HELP_STRING([--with-openmp],[use OpenMP directives for parallelism])], enable_openmp=$enableval, with_openmp=no) | ||
| if test x"$with_openmp" = "xyes"; then | ||
| AC_ARG_ENABLE(openmp, [AS_HELP_STRING([--enable-openmp],[use OpenMP directives for parallelism])], |
There was a problem hiding this comment.
I'm reluctant to rename this from --with-openmp to --enable-openmp, which could break a lot of people's build scripts for no good reason. In practice, configure scripts are not very consistent on with vs enable
There was a problem hiding this comment.
Reverted to --with-openmp.
| AC_CHECK_LIB(m, sin) | ||
|
|
||
| # FFTW3 is preferred; FFTW2 (dfftw/fftw) is also supported by Meep | ||
| # (see src/monitor.cpp and src/casimir.cpp for FFTW2 code paths). |
There was a problem hiding this comment.
I think we can probably just delete FFTW2 support at this point.
| fi | ||
| AC_CHECK_HEADERS([libguile.h guile/gh.h]) | ||
|
|
||
| # Check how smob types work in this Guile version: |
There was a problem hiding this comment.
I'm a little reluctant to require guile 2; there are still a lot of guile 1.8 installations around.
There was a problem hiding this comment.
Reverted Guile 1.8 API checks.
1: Upgrade minimum C++ standard from C++11 to C++17
Line 103:
AX_CXX_COMPILE_STDCXX([11], [], [optiona])C++11 is very old. The
[optional]flag means compilation proceeds even without C++11 support. Given Meep is actively developed with modern C++ features, this should be at least C++14 or C++17 and[mandatory]. Note: the [mandatory] option indicates that C++17 is a minimum baseline rather than a strict version lock.2: Duplicate
AC_CHECK_LIB(m, ...)callsLines 150 and 233:
AC_CHECK_LIB(m, sin)andAC_CHECK_LIB([m],[cos])—libmis checked twice with different functions. The second check at line 233 is redundant since-lmis already in$LIBSfrom line 150. Remove one of them.3: Inconsistent--with-openmpvs.--enable-openmpsemanticsLine 139: Uses
--with-openmp(viaAC_ARG_WITH) but stores the result inenable_openmp=$enableval. The Autoconf convention is--enable-*for features and--with-*for external packages. OpenMP is a feature, so this should beAC_ARG_ENABLE(openmp, ...). The variable naming is also confusing — the argument iswith_openmpbut the assignment goes toenable_openmp, then line 140 checks$with_openmp:Line 139: stores
$enablevalinenable_openmpLine 140: but then checks
$with_openmpThis works by accident (since
$with_openmpis set byAC_ARG_WITH), butenable_openmpis never used.4: MPICH
SEEK_SETworkaround is obsoleteLines 77-99: The
MPICH_IGNORE_CXX_SEEKworkaround was for MPICH2 and very old MPI implementations. MPICH 3.x (released 2012) fixed this. Remove block and clean upsrc/fix_boundary_sources.cppandsrc/mympi.cpp.5: Obsolete Guile API checksLines 339-362: The checks for
SCM_SMOB_PREDICATE,SCM_SMOB_DATA,SCM_NEWSMOB, andscm_make_smob_typetest for APIs that have been standard since Guilde 1.8. These can be removed since Guile 2.0+ is a requirement.6: Document BLAS/LAPACK variables
Added comment explaining
$with_blas/$with_lapackare set by theAX_BLAS/AX_LAPACKm4 macros.7: Add
AC_CONFIG_AUX_DIRAdded
AC_CONFIG_AUX_DIR([build-aux]), createdbuild-aux/directory; auxiliary files (install-sh,config.guess, etc.) live there.8: Clarify FFTW detection
Added comment explaining FFTW2 fallback is intentional (code paths exist in
monitor.cppandcasimir.cpp).