From 069cf56efc08ea42aa94ccf98a00665941d650da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikael=20=C3=96hman?= Date: Wed, 12 Nov 2025 09:55:06 +0100 Subject: [PATCH 1/3] Add environment variable for profiling easybuild. --- eb | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/eb b/eb index 132cf92ecf..ee2f288fd2 100755 --- a/eb +++ b/eb @@ -122,7 +122,16 @@ then export FANCYLOGGER_IGNORE_MPI4PY=1 fi +# If a profile filename is given, run easybuild via cProfile +if [ -z "${EB_PROFILE}" ] +then + EB_PROFILE_FLAGS="" +else + verbose "Writing profile output to: \"${EB_PROFILE}\"" + EB_PROFILE_FLAGS="-m cProfile -o \"${EB_PROFILE}\"" +fi + export EB_SCRIPT_PATH="${0}" -verbose "${PYTHON} -m ${EASYBUILD_MAIN} ${*}" -exec "${PYTHON}" -m "${EASYBUILD_MAIN}" "${@}" +verbose "${PYTHON} ${EB_PROFILE_FLAGS} -m ${EASYBUILD_MAIN} ${*}" +exec "${PYTHON}" ${EB_PROFILE_FLAGS} -m "${EASYBUILD_MAIN}" "${@}" From 319277a5f0b7593ce2495d0277ca3a45b1a6e36b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikael=20=C3=96hman?= Date: Wed, 12 Nov 2025 22:48:51 +0100 Subject: [PATCH 2/3] Fix bash code for passing arguments --- eb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/eb b/eb index ee2f288fd2..63bbf6debf 100755 --- a/eb +++ b/eb @@ -125,13 +125,13 @@ fi # If a profile filename is given, run easybuild via cProfile if [ -z "${EB_PROFILE}" ] then - EB_PROFILE_FLAGS="" + EB_PROFILE_FLAGS=() else verbose "Writing profile output to: \"${EB_PROFILE}\"" - EB_PROFILE_FLAGS="-m cProfile -o \"${EB_PROFILE}\"" + EB_PROFILE_FLAGS=(-m cProfile -o "${EB_PROFILE}") fi export EB_SCRIPT_PATH="${0}" -verbose "${PYTHON} ${EB_PROFILE_FLAGS} -m ${EASYBUILD_MAIN} ${*}" -exec "${PYTHON}" ${EB_PROFILE_FLAGS} -m "${EASYBUILD_MAIN}" "${@}" +verbose "${PYTHON} ${EB_PROFILE_FLAGS[*]} -m ${EASYBUILD_MAIN} ${*}" +exec "${PYTHON}" "${EB_PROFILE_FLAGS[@]}" -m "${EASYBUILD_MAIN}" "${@}" From f54e450455bbe02510d1ffa4099bf06a6159628d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikael=20=C3=96hman?= Date: Wed, 19 Nov 2025 17:59:30 +0100 Subject: [PATCH 3/3] Check that at least python 3.9 is used for EB_PROFILE --- eb | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/eb b/eb index 63bbf6debf..d9d6a4c4d7 100755 --- a/eb +++ b/eb @@ -127,8 +127,14 @@ if [ -z "${EB_PROFILE}" ] then EB_PROFILE_FLAGS=() else - verbose "Writing profile output to: \"${EB_PROFILE}\"" - EB_PROFILE_FLAGS=(-m cProfile -o "${EB_PROFILE}") + if [ "${pyver_min}" -lt "9" ] + then + echo "EB_PROFILE not supported for Python < 3.9" + EB_PROFILE="" + else + verbose "Writing profile output to: \"${EB_PROFILE}\"" + EB_PROFILE_FLAGS=(-m cProfile -o "${EB_PROFILE}") + fi fi export EB_SCRIPT_PATH="${0}"