I should also say that I don't have a lot of time in the next few weeks to 
work more on this, but I hope someone can investigate and produce a fix.

On Monday, March 24, 2025 at 2:00:59 PM UTC-7 John H Palmieri wrote:

> 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/2878d64e-b1be-44a4-a83c-503300bd8dcan%40googlegroups.com.

Reply via email to