I'm a little puzzled about how this ever worked. By "this", I mean detecting the number of threads to use. The relevant script is src/bin/sage-env.
- if SAGE_NUM_THREADS and SAGE_NUM_THREADS_PARALLEL are both set, then those values are supposed to be detected, but the "case" statement doesn't use valid syntax, as far as I can tell: the current version only detects two digit numbers for those variables, it seems to me. We should make this change: +shopt -s extglob + # Handle parallel building/testing/... case "$SAGE_NUM_THREADS,$SAGE_NUM_THREADS_PARALLEL" in - [1-9][0-9]*,[1-9][0-9]*) + +([[:digit:]])*,+([[:digit:]])* ) # Variables are set to positive values already, # sage-num-threads.py would just recompute them ;; @@ -589,6 +595,8 @@ case "$SAGE_NUM_THREADS,$SAGE_NUM_THREADS_PARALLEL" in ;; esac +shopt -u extglob + # Multithreading in OpenBLAS does not seem to play well with Sage's attempts to # spawn new processes, see #26118. Apparently, OpenBLAS sets the thread # affinity and, e.g., parallel doctest jobs, remain on the same core. - if either or both of those variables is not set, then the "-j N" argument to "make" is supposed to be used, detected by the script sage-num-threads.py. That thread is called in src/bin/sage-env like this: sage_num_threads_array=$(sage-num-threads.py 2>/dev/null || echo 1 2 1) In particular, it discards all errors. If I remove "2>/dev/null", then I get this error: /Users/palmieri/Sage/TESTING/sage-10.6.rc0/src/bin/sage-env: line 586: sage-num-threads.py: command not found So I think that maybe we should also make this change: @@ -251,6 +251,9 @@ if [ -z "${SAGE_ORIG_PATH_SET}" ]; then SAGE_ORIG_PATH=$PATH && export SAGE_ORIG_PATH SAGE_ORIG_PATH_SET=True && export SAGE_ORIG_PATH_SET fi +if [ -d "$SAGE_ROOT" ]; then + export PATH="$SAGE_ROOT/src/bin:$PATH" +fi if [ -n "$SAGE_LOCAL" ]; then export PATH="$SAGE_LOCAL/bin:$PATH" fi @@ -569,9 +572,11 @@ if [ "$TOUCH" = "" ]; then TOUCH="touch" && export TOUCH fi This should add src/bin to PATH, in such a way that it will be shadowed by local/bin and a few other directories, which might be the behavior we want, but maybe we only want to add this to the path in some circumstances? All of this might depend on which shell you're using, so I'm not 100% sure of any of it. Can those of you who are having problems test (by removing "2>/dev/null" from line 583 in src/bin/sage-env) whether sage-num-threads.py is running correctly when you run "./sage --sh"? You could also add in some "echo" statements to see which branch of the "case" statement is running, if SAGE_NUM_THREADS and SAGE_NUM_THREADS_PARALLEL are both set. -- John On Monday, March 24, 2025 at 8:00:55 AM UTC-7 marc....@gmail.com wrote: > On Sunday, March 23, 2025 at 6:24:09 PM UTC-5 dima wrote: > > Are you on macOS? > It could be a macOS-specific recent change. > > > I should have said that Sage-10.6rc0 is building in parallel *on macOS *for > me. > > - Marc > > -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+unsubscr...@googlegroups.com. To view this discussion visit https://groups.google.com/d/msgid/sage-devel/5fc8271e-4061-430f-8725-37879c3a3a5cn%40googlegroups.com.