sim building problem

Create issue
Issue #2603 duplicate
Former user created an issue

I encountered some difficulties using the command

./simfactory/bin/sim build -j2 --thornlist ../einsteintoolkit.th

after all the previous commands in the tutorial for new users have succeeded. Here is the full output:

Using configuration: sim Building sim Cactus - version: 4.11.0 Building configuration sim Checking status of thorn CoordBase Checking status of thorn CartGrid3D Checking status of thorn ADMAnalysis Checking status of thorn ADMBase Checking status of thorn ADMCoupling Checking status of thorn SummationByParts Checking status of thorn ADMDerivatives Checking status of thorn ADMMacros Checking status of thorn ADMMass Checking status of thorn AEILocalInterp Checking status of thorn AHFinder Checking status of thorn zlib Checking status of thorn hwloc Checking status of thorn MPI Checking status of thorn HDF5 Checking status of thorn SpaceMask Checking status of thorn AHFinderDirect Checking status of thorn BLAS Checking status of thorn Baikal Checking status of thorn BaikalVacuum Checking status of thorn Boundary Checking status of thorn GenericFD Checking status of thorn CycleClock Checking status of thorn Vectors Checking status of thorn LoopControl Checking status of thorn CT_Analytic Checking status of thorn CarpetLib Checking status of thorn IOUtil Checking status of thorn Timers Checking status of thorn Carpet Checking status of thorn CT_MultiLevel Checking status of thorn Fortran Checking status of thorn CalcK Checking status of thorn CarpetEvolutionMask Checking status of thorn CarpetIOASCII Checking status of thorn CarpetIOBasic Checking status of thorn CarpetIOHDF5 Checking status of thorn CarpetIOScalar Checking status of thorn CarpetIntegrateTest Checking status of thorn CarpetInterp Checking status of thorn CarpetInterp2 Checking status of thorn CarpetMask Checking status of thorn CarpetProlongateTest Checking status of thorn CarpetReduce Checking status of thorn CarpetRegrid Checking status of thorn CarpetRegrid2 Checking status of thorn CarpetRegridTest Checking status of thorn CarpetSlab Checking status of thorn CarpetTracker Checking status of thorn Cartoon2D Checking status of thorn Constants Checking status of thorn Convert_to_HydroBase Checking status of thorn CoordGauge Checking status of thorn LAPACK Checking status of thorn TGRtensor Checking status of thorn TensorTypes Checking status of thorn Coordinates Checking status of thorn CoordinatesSymmetry Checking status of thorn DemoInterp Checking status of thorn SphericalSurface Checking status of thorn Dissipation Checking status of thorn DistortedBHIVP Checking status of thorn EHFinder Checking status of thorn EOS_Base Checking status of thorn EOS_Polytrope Checking status of thorn EOS_Hybrid Checking status of thorn EOS_IdealFluid Checking status of thorn EOS_Omni Checking status of thorn EinsteinExact_Test Checking status of thorn EllBase Checking status of thorn EllSOR Checking status of thorn Exact Checking status of thorn Extract Checking status of thorn FFTW3 Checking status of thorn FishboneMoncriefID Checking status of thorn FleshInfo Checking status of thorn pthreads Checking status of thorn Formaline Checking status of thorn GRHydro Checking status of thorn GRHydro_InitData Checking status of thorn GSL Checking status of thorn GaugeWave Checking status of thorn GiRaFFE Checking status of thorn GiRaFFE_to_HydroBase Checking status of thorn ShiftedKerrSchild Checking status of thorn GiRaFFEfood Checking status of thorn GlobalDerivative Checking status of thorn Socket Checking status of thorn HTTPD Checking status of thorn HTTPDExtra Checking status of thorn HelloWorld Checking status of thorn HighOrderWaveTest Checking status of thorn HydroBase Checking status of thorn Hydro_Analysis Checking status of thorn Hydro_InitExcision Checking status of thorn Hydro_RNSID Checking status of thorn IDAnalyticBH Checking status of thorn IDAxiBrillBH Checking status of thorn IDAxiOddBrillBH Checking status of thorn IDBrillData Checking status of thorn IDConstraintViolate Checking status of thorn IDFileADM Checking status of thorn IDLinearWaves Checking status of thorn IDScalarWave Checking status of thorn IDScalarWaveC Checking status of thorn IDScalarWaveCXX Checking status of thorn IDScalarWaveElliptic Checking status of thorn IDWaveMoL Checking status of thorn ID_converter_GiRaFFE Checking status of thorn ID_converter_ILGRMHD Checking status of thorn IOASCII Checking status of thorn IOBasic Checking status of thorn PUGH Checking status of thorn IOHDF5Util Checking status of thorn IOHDF5 Checking status of thorn libjpeg Checking status of thorn IOJpeg Checking status of thorn IllinoisGRMHD Checking status of thorn InitBase Checking status of thorn InterpToArray Checking status of thorn Interpolate2 Checking status of thorn KerrSchild Checking status of thorn LORENE Checking status of thorn LeanBSSNMoL Checking status of thorn LlamaWaveToy Checking status of thorn LocalInterp Checking status of thorn LocalInterp2 Checking status of thorn LocalReduce Checking status of thorn ML_ADMConstraints Checking status of thorn ML_ADMQuantities Checking status of thorn ML_BSSN Checking status of thorn ML_BSSN_Helper Checking status of thorn ML_BSSN_Test Checking status of thorn ML_CCZ4 Checking status of thorn ML_CCZ4_Helper Checking status of thorn ML_CCZ4_Test Checking status of thorn ML_WaveToy Checking status of thorn ML_WaveToy_Test Checking status of thorn MemSpeed Checking status of thorn Meudon_Bin_BH Checking status of thorn Meudon_Bin_NS Checking status of thorn Meudon_Mag_NS Checking status of thorn Minkowski Checking status of thorn MoL Checking status of thorn ModifiedSchwarzschildBL Checking status of thorn Multipole Checking status of thorn NPScalars Checking status of thorn NPScalars_Proca Checking status of thorn NaNCatcher Checking status of thorn NaNChecker Checking status of thorn NewRad Checking status of thorn Nice Checking status of thorn NoExcision Checking status of thorn NoMPI Checking status of thorn Noise Checking status of thorn Norms Checking status of thorn NullDecomp Checking status of thorn NullGrid Checking status of thorn NullInterp Checking status of thorn NullEvolve Checking status of thorn NullConstr Checking status of thorn NullExact Checking status of thorn NullNews Checking status of thorn NullPsiInt Checking status of thorn NullSHRExtract Checking status of thorn NullVars Checking status of thorn OpenSSL Checking status of thorn Outflow Checking status of thorn PAPI Checking status of thorn PUGHInterp Checking status of thorn PUGHReduce Checking status of thorn PUGHSlab Checking status of thorn Slab Checking status of thorn Periodic Checking status of thorn PeriodicCarpet Checking status of thorn TATelliptic Checking status of thorn Poisson Checking status of thorn ProcaBase Checking status of thorn ProcaEvolve Checking status of thorn Proca_simpleID Checking status of thorn PunctureTracker Checking status of thorn QuasiLocalMeasures Checking status of thorn ReadInterpolate Checking status of thorn ReductionTest Checking status of thorn ReductionTest2 Checking status of thorn ReductionTest3 Checking status of thorn ReflectionSymmetry Checking status of thorn RegridSyncTest Checking status of thorn RotatingDBHIVP Checking status of thorn RotatingSymmetry180 Checking status of thorn RotatingSymmetry90 Checking status of thorn SampleBoundary Checking status of thorn SampleIO Checking status of thorn Seed_Magnetic_Fields Checking status of thorn Seed_Magnetic_Fields_BNS Checking status of thorn SetMask_SphericalSurface Checking status of thorn ShiftedGaugeWave Checking status of thorn SlabTest Checking status of thorn SphericalHarmonicDecomp Checking status of thorn SphericalHarmonicRecon Checking status of thorn SphericalHarmonicReconGen Checking status of thorn StaticConformal Checking status of thorn SymBase Checking status of thorn SystemStatistics Checking status of thorn SystemTopology Checking status of thorn TOVSolver Checking status of thorn TerminationTrigger Checking status of thorn TestArrays Checking status of thorn TestCarpetGridInfo Checking status of thorn TestComplex Checking status of thorn TestCoordinates Checking status of thorn TestFortranCrayPointers Checking status of thorn TestFortranDependencies2 Checking status of thorn TestFortranDependencies1 Checking status of thorn TestFpointerNULL Checking status of thorn TestFreeF90 Checking status of thorn TestGlobalReduce Checking status of thorn TestInclude1 Checking status of thorn TestInclude2 Checking status of thorn TestLocalInterp2 Checking status of thorn TestLocalReduce Checking status of thorn TestLoop Checking status of thorn TestLoopControl Checking status of thorn TestMath Checking status of thorn TestMoL Checking status of thorn TestPar Checking status of thorn TestReadWrite Checking status of thorn TestReduce Checking status of thorn TestSchedule Checking status of thorn TestStrings Checking status of thorn TestTable Checking status of thorn TestTimers Checking status of thorn TestTypes Checking status of thorn Time Checking status of thorn TimerInfo Checking status of thorn TimerReport Checking status of thorn TmunuBase Checking status of thorn Trigger Checking status of thorn TwoPunctures Checking status of thorn TwoPunctures_KerrProca Checking status of thorn Vaidya2 Checking status of thorn VolumeIntegrals_GRMHD Checking status of thorn VolumeIntegrals_vacuum Checking status of thorn WatchDog Checking status of thorn WaveBinarySource Checking status of thorn WaveExtractL Checking status of thorn WaveMoL Checking status of thorn WaveToy1DF77 Checking status of thorn WaveToy2DF77 Checking status of thorn WaveToyC Checking status of thorn WaveToyCXX Checking status of thorn WaveToyExtra Checking status of thorn WaveToyF77 Checking status of thorn WaveToyF90 Checking status of thorn WaveToyFreeF90 Checking status of thorn WeylScal4 Checking status of thorn particle_tracerET Checking status of thorn smallbPoynET Checking status of thorn Cactus Checking status of thorn CactusBindings Creating cactus_sim in /Users/lorenzo/Cactus/exe from EinsteinAnalysis/ADMAnalysis EinsteinBase/ADMBase EinsteinBase/ADMCoupling Llama/ADMDerivatives EinsteinBase/ADMMacros EinsteinAnalysis/ADMMass Numerical/AEILocalInterp EinsteinAnalysis/AHFinder EinsteinAnalysis/AHFinderDirect ExternalLibraries/BLAS WVUThorns/Baikal WVUThorns/BaikalVacuum CactusBase/Boundary CTThorns/CT_Analytic CTThorns/CT_MultiLevel EinsteinAnalysis/CalcK Carpet/Carpet Carpet/CarpetEvolutionMask Carpet/CarpetIOASCII Carpet/CarpetIOBasic Carpet/CarpetIOHDF5 Carpet/CarpetIOScalar Carpet/CarpetIntegrateTest Carpet/CarpetInterp Carpet/CarpetInterp2 Carpet/CarpetLib Carpet/CarpetMask Carpet/CarpetProlongateTest Carpet/CarpetReduce Carpet/CarpetRegrid Carpet/CarpetRegrid2 Carpet/CarpetRegridTest Carpet/CarpetSlab Carpet/CarpetTracker CactusBase/CartGrid3D CactusNumerical/Cartoon2D EinsteinBase/Constants WVUThorns/Convert_to_HydroBase CactusBase/CoordBase EinsteinBase/CoordGauge Llama/Coordinates Llama/CoordinatesSymmetry Carpet/CycleClock CactusExamples/DemoInterp CactusNumerical/Dissipation EinsteinInitialData/DistortedBHIVP EinsteinAnalysis/EHFinder EinsteinBase/EOS_Base EinsteinEOS/EOS_Hybrid EinsteinEOS/EOS_IdealFluid EinsteinEOS/EOS_Omni EinsteinEOS/EOS_Polytrope EinsteinExact/EinsteinExact_Test CactusElliptic/EllBase CactusElliptic/EllSOR EinsteinInitialData/Exact EinsteinAnalysis/Extract ExternalLibraries/FFTW3 WVUThorns/FishboneMoncriefID CactusExamples/FleshInfo CactusUtils/Formaline CactusBase/Fortran EinsteinEvolve/GRHydro EinsteinEvolve/GRHydro_InitData ExternalLibraries/GSL EinsteinExact/GaugeWave KrancNumericalTools/GenericFD WVUThorns/GiRaFFE WVUThorns/GiRaFFE_to_HydroBase WVUThorns/GiRaFFEfood Llama/GlobalDerivative ExternalLibraries/HDF5 CactusConnect/HTTPD CactusConnect/HTTPDExtra CactusExamples/HelloWorld Carpet/HighOrderWaveTest EinsteinBase/HydroBase EinsteinAnalysis/Hydro_Analysis EinsteinInitialData/Hydro_InitExcision EinsteinInitialData/Hydro_RNSID EinsteinInitialData/IDAnalyticBH EinsteinInitialData/IDAxiBrillBH EinsteinInitialData/IDAxiOddBrillBH EinsteinInitialData/IDBrillData EinsteinInitialData/IDConstraintViolate EinsteinInitialData/IDFileADM EinsteinInitialData/IDLinearWaves CactusWave/IDScalarWave CactusWave/IDScalarWaveC CactusWave/IDScalarWaveCXX CactusWave/IDScalarWaveElliptic CactusExamples/IDWaveMoL WVUThorns/ID_converter_GiRaFFE WVUThorns/ID_converter_ILGRMHD CactusBase/IOASCII CactusBase/IOBasic CactusPUGHIO/IOHDF5 CactusPUGHIO/IOHDF5Util CactusIO/IOJpeg CactusBase/IOUtil WVUThorns/IllinoisGRMHD CactusBase/InitBase CactusNumerical/InterpToArray Llama/Interpolate2 EinsteinExact/KerrSchild ExternalLibraries/LAPACK ExternalLibraries/LORENE Lean/LeanBSSNMoL Llama/LlamaWaveToy CactusNumerical/LocalInterp CactusNumerical/LocalInterp2 CactusNumerical/LocalReduce Carpet/LoopControl McLachlan/ML_ADMConstraints McLachlan/ML_ADMQuantities McLachlan/ML_BSSN McLachlan/ML_BSSN_Helper McLachlan/ML_BSSN_Test McLachlan/ML_CCZ4 McLachlan/ML_CCZ4_Helper McLachlan/ML_CCZ4_Test McLachlan/ML_WaveToy McLachlan/ML_WaveToy_Test ExternalLibraries/MPI CactusUtils/MemSpeed EinsteinInitialData/Meudon_Bin_BH EinsteinInitialData/Meudon_Bin_NS EinsteinInitialData/Meudon_Mag_NS EinsteinExact/Minkowski CactusNumerical/MoL EinsteinExact/ModifiedSchwarzschildBL EinsteinAnalysis/Multipole Lean/NPScalars Proca/NPScalars_Proca CactusUtils/NaNCatcher CactusUtils/NaNChecker EinsteinEvolve/NewRad CactusUtils/Nice EinsteinInitialData/NoExcision CactusUtils/NoMPI CactusNumerical/Noise CactusNumerical/Norms PITTNullCode/NullConstr PITTNullCode/NullDecomp PITTNullCode/NullEvolve PITTNullCode/NullExact PITTNullCode/NullGrid PITTNullCode/NullInterp PITTNullCode/NullNews PITTNullCode/NullPsiInt PITTNullCode/NullSHRExtract PITTNullCode/NullVars ExternalLibraries/OpenSSL EinsteinAnalysis/Outflow ExternalLibraries/PAPI CactusPUGH/PUGH CactusPUGH/PUGHInterp CactusPUGH/PUGHReduce CactusPUGH/PUGHSlab CactusNumerical/Periodic Carpet/PeriodicCarpet CactusExamples/Poisson Proca/ProcaBase Proca/ProcaEvolve Proca/Proca_simpleID EinsteinAnalysis/PunctureTracker EinsteinAnalysis/QuasiLocalMeasures EinsteinInitialData/ReadInterpolate Carpet/ReductionTest Carpet/ReductionTest2 Carpet/ReductionTest3 CactusNumerical/ReflectionSymmetry Carpet/RegridSyncTest EinsteinInitialData/RotatingDBHIVP CactusNumerical/RotatingSymmetry180 CactusNumerical/RotatingSymmetry90 CactusExamples/SampleBoundary CactusExamples/SampleIO WVUThorns/Seed_Magnetic_Fields WVUThorns_Diagnostics/Seed_Magnetic_Fields_BNS EinsteinUtils/SetMask_SphericalSurface EinsteinExact/ShiftedGaugeWave WVUThorns/ShiftedKerrSchild CactusNumerical/Slab CactusNumerical/SlabTest CactusConnect/Socket CactusNumerical/SpaceMask PITTNullCode/SphericalHarmonicDecomp PITTNullCode/SphericalHarmonicRecon PITTNullCode/SphericalHarmonicReconGen CactusNumerical/SphericalSurface EinsteinBase/StaticConformal CactusNumerical/SummationByParts CactusBase/SymBase CactusUtils/SystemStatistics CactusUtils/SystemTopology CactusElliptic/TATelliptic EinsteinUtils/TGRtensor EinsteinInitialData/TOVSolver CactusNumerical/TensorTypes CactusUtils/TerminationTrigger CactusTest/TestArrays Carpet/TestCarpetGridInfo CactusTest/TestComplex CactusTest/TestCoordinates CactusTest/TestFortranCrayPointers CactusTest/TestFortranDependencies1 CactusTest/TestFortranDependencies2 CactusTest/TestFpointerNULL CactusTest/TestFreeF90 CactusTest/TestGlobalReduce CactusTest/TestInclude1 CactusTest/TestInclude2 CactusNumerical/TestLocalInterp2 CactusNumerical/TestLocalReduce CactusTest/TestLoop Carpet/TestLoopControl CactusTest/TestMath CactusTest/TestMoL CactusTest/TestPar CactusTest/TestReadWrite CactusTest/TestReduce CactusTest/TestSchedule CactusTest/TestStrings CactusTest/TestTable CactusTest/TestTimers CactusTest/TestTypes CactusBase/Time CactusExamples/TimerInfo CactusUtils/TimerReport Carpet/Timers EinsteinBase/TmunuBase CactusUtils/Trigger EinsteinInitialData/TwoPunctures Proca/TwoPunctures_KerrProca EinsteinExact/Vaidya2 CactusUtils/Vectors WVUThorns_Diagnostics/VolumeIntegrals_GRMHD WVUThorns_Diagnostics/VolumeIntegrals_vacuum CactusUtils/WatchDog CactusWave/WaveBinarySource Llama/WaveExtractL CactusExamples/WaveMoL CactusExamples/WaveToy1DF77 CactusExamples/WaveToy2DF77 CactusWave/WaveToyC CactusWave/WaveToyCXX CactusWave/WaveToyExtra CactusWave/WaveToyF77 CactusWave/WaveToyF90 CactusWave/WaveToyFreeF90 EinsteinAnalysis/WeylScal4 ExternalLibraries/hwloc ExternalLibraries/libjpeg WVUThorns_Diagnostics/particle_tracerET ExternalLibraries/pthreads WVUThorns_Diagnostics/smallbPoynET ExternalLibraries/zlib Undefined symbols for architecture x86_64: "GOMP_loop_nonmonotonic_dynamic_next", referenced from: __ZNK13CarpetInterp219fasterp_setup_gen_tINS_17fasterp_src_loc_tEE11interpolateEPK4_cGHRKSt6vectorIiSaIiEERS6_IPdSaISB_EE._omp_fn.0 in fasterp.cc.o __ZNK13CarpetInterp219fasterp_setup_gen_tINS_22fasterp_eno2_src_loc_tEE11interpolateEPK4_cGHRKSt6vectorIiSaIiEERS6_IPdSaISB_EE._omp_fn.0 in fasterp.cc.o __ZN10NaNChecker10CHECK_DATAIfEEvPKT_iPKdPKNS_17t_nanchecker_infoERiiiiiPKS5_PKcRK16GROUPDYNAMICDATAi._omp_fn.0 in NaNCheck.cc.o __ZN10NaNChecker10CHECK_DATAIdEEvPKT_iPKdPKNS_17t_nanchecker_infoERiiiiiPKS5_PKcRK16GROUPDYNAMICDATAi._omp_fn.0 in NaNCheck.cc.o __ZN10NaNChecker10CHECK_DATAIeEEvPKT_iPKdPKNS_17t_nanchecker_infoERiiiiiPKS5_PKcRK16GROUPDYNAMICDATAi._omp_fn.0 in NaNCheck.cc.o _SetMatrix_JFD._omp_fn.0 in FuncAndJacobian.c.o _J_times_dv._omp_fn.0 in FuncAndJacobian.c.o ... "_GOMP_loop_nonmonotonic_dynamic_start", referenced from: __ZNK13CarpetInterp219fasterp_setup_gen_tINS_17fasterp_src_loc_tEE11interpolateEPK4_cGHRKSt6vectorIiSaIiEERS6_IPdSaISB_EE._omp_fn.0 in fasterp.cc.o __ZNK13CarpetInterp219fasterp_setup_gen_tINS_22fasterp_eno2_src_loc_tEE11interpolateEPK4_cGHRKSt6vectorIiSaIiEERS6_IPdSaISB_EE._omp_fn.0 in fasterp.cc.o __ZN10NaNChecker10CHECK_DATAIfEEvPKT_iPKdPKNS_17t_nanchecker_infoERiiiiiPKS5_PKcRK16GROUPDYNAMICDATAi._omp_fn.0 in NaNCheck.cc.o __ZN10NaNChecker10CHECK_DATAIdEEvPKT_iPKdPKNS_17t_nanchecker_infoERiiiiiPKS5_PKcRK16GROUPDYNAMICDATAi._omp_fn.0 in NaNCheck.cc.o __ZN10NaNChecker10CHECK_DATAIeEEvPKT_iPKdPKNS_17t_nanchecker_infoERiiiiiPKS5_PKcRK16GROUPDYNAMICDATAi._omp_fn.0 in NaNCheck.cc.o _SetMatrix_JFD._omp_fn.0 in FuncAndJacobian.c.o _J_times_dv._omp_fn.0 in FuncAndJacobian.c.o ... "_GOMP_loop_nonmonotonic_guided_next", referenced from: noexcisionmod_MOD_multiply._omp_fn.0 in NoExcision_mod.F90.o _noexcision_mod_MOD_residual._omp_fn.0 in NoExcision_mod.F90.o noexcisionmod_MOD_residual._omp_fn.1 in NoExcision_mod.F90.o _noexcision_mod_MOD_residual._omp_fn.2 in NoExcision_mod.F90.o "_GOMP_loop_nonmonotonic_guided_start", referenced from: noexcisionmod_MOD_multiply._omp_fn.0 in NoExcision_mod.F90.o _noexcision_mod_MOD_residual._omp_fn.0 in NoExcision_mod.F90.o noexcisionmod_MOD_residual._omp_fn.1 in NoExcision_mod.F90.o _noexcision_mod_MOD_residual._omp_fn.2 in NoExcision_mod.F90.o "_GOMP_parallel", referenced from: _ADMDerivatives_CalcDerivatives in calc_derivs.cc.o _Baikal_zero_rhss in zero_rhss.c.o _Baikal_floor_the_lapse in floor_the_lapse.c.o _Baikal_ADM_to_BSSN in ADM_to_BSSN.c.o _Baikal_BSSN_to_ADM in BSSN_to_ADM.c.o _Baikal_BSSN_Ricci_FD_order_2 in BSSN_Ricci_FD_order_2.c.o _Baikal_BSSN_Ricci_FD_order_4 in BSSN_Ricci_FD_order_4.c.o ... "_H5Literate_by_name1", referenced from: __ZN3SHR14SPH_db_SpEC_H59scan_HDF5Ev in sph_database.cc.o "_H5Pset_dxpl_mpio", referenced from: _WriteGA in DumpVar.c.o "_H5Pset_fapl_mpio", referenced from: _IOHDF5_Write in Write.c.o "__gfortran_os_error_at", referenced from: _ahfinder in AHFinder.F.o ahfinder_dis in AHFinder_dis.F.o ahfinder_int in AHFinder_int.F.o linmin in AHFinder_pow.F.o ahfinder_initguess in AHFinder_initguess.F.o ahfinder_gau in AHFinder_gau.F.o ___carpet_boxtypes_MOD_splitregionsrecursive in carpet_boxtypes.F90.o ... ld: symbol(s) not found for architecture x86_64 collect2: error: ld returned 1 exit status make[1]: [/Users/lorenzo/Cactus/exe/cactus_sim] Error 1 make: [sim] Error 2

Comments (2)

  1. Erik Schnetter

    Lorenzo

    Can you create an account on Bitbucket so that we see your name attached to the ticket?

    Can you quote the output that you are showing? Currently, your output is reformatted and thus not readable. You can format it as code to avoid this.

  2. Log in to comment