Constants vs computed values

27 views
Skip to first unread message

ph h

unread,
May 17, 2022, 5:04:47 AM5/17/22
to sage-devel
Dear All,

Please find appended below the 3 input files for the configuration process.

Please advise if this switch from embedded 'resolvelinks' to embedded $SAGE_ROOT and $SAGE_LOCAL would break any rules in Sage installation.

To this hitchhiker, the switch seems to be beneficial in that she could 'make -j8' several times instead of less than one 'make' a day. 'make -j8' now 'hangs' consistently (why?) only once after installing 'flint-2.8.4', a restart will continue until the build is finished. 

Maybe, the use of constants instead of computed values also helps in speeding the build process?
Please note that only '$SAGE_BIN/sage-env' needs 'readlink.py':
 to resolve 2 instances:
  • DOT_SAGE=`$READLINK "$HOME/.sage"`
  • nodeenv_activate=`$READLINK "$nodeenv_activate"`
In  '$SAGE_BIN/sage' :

# Resolve the links in $0 so that local/bin/sage can be executed from
# a symlink (Trac #30888).
SELF=$SAGE_BIN/sage

From discussions on the thread "export SAGE_ROOT from '$SAGE_LOCAL/bin/sage'", it looks like help from experienced sage developers to factor out '$SAGE_ROOT/src/bin/sage' and '$SAGE_ROOT/src/bin/sage-env' so that when 'sage' is run from $SAGE_LOCAL environment, only the available resources are called upon.
In the example below,  'bin.sage', 'src.bin.sage', 'bin.sage-env' and 'src.bin.sage-env' are place holders for such factoring to start with until the ticket opened 6 years ago moves along:

Meta-ticket: Split sage-env into 5 to clean up sage configuration

Your advice and help is much appreciated.

Regards,

phiho

<$SAGE_ROOT/sage.in>
# SAGE_LOCAL is the installation prefix and can be customized by using
# ./configure --prefix
SAGE_LOCAL="@prefix@"

# SAGE_ROOT is the location of the Sage source/build tree.
export SAGE_ROOT="@SAGE_ROOT@"

. $SAGE_ROOT/sage.sage
</$SAGE_ROOT/sage.in>

<$SAGE_ROOT/src/bin/sage.in>
#!/usr/bin/env bash

# SAGE_LOCAL is the installation prefix and can be customized by using
# ./configure --prefix
SAGE_LOCAL="@prefix@"

if [ -z $SAGE_ROOT ]; then
    SAGE_BIN=$SAGE_LOCAL/bin
else
    SAGE_BIN=$SAGE_ROOT/src/bin
fi

. $SAGE_BIN/bin.sage

if [ -d $SAGE_ROOT ]; then
. $SAGE_BIN/src.bin.sage
fi
</$SAGE_ROOT/src/bin/sage.in>

<$SAGE_ROOT/src/bin/sage-env.in>
# -*- shell-script -*-
#
#
# SAGE_LOCAL is the installation prefix and can be customized by using
# ./configure --prefix
SAGE_LOCAL="@prefix@"

if [ -z $SAGE_ROOT ]; then
    SAGE_BIN=$SAGE_LOCAL/bin
else
    SAGE_BIN=$SAGE_ROOT/src/bin
fi

READLINK=$SAGE_BIN/readlink.py

. $SAGE_BIN/bin.sage-env
if [ -d $SAGE_ROOT ]; then
. $SAGE_BIN/src.bin.sage-env
fi
</$SAGE_ROOT/src/bin/sage-env.in>



ReplyForward

Matthias Koeppe

unread,
May 17, 2022, 11:45:53 AM5/17/22
to sage-devel
On Tuesday, May 17, 2022 at 2:04:47 AM UTC-7 hohoa...@gmail.com wrote:
[...] this switch from embedded 'resolvelinks' to embedded $SAGE_ROOT and $SAGE_LOCAL [...]
Maybe, the use of constants instead of computed values also helps in speeding the build process?

No, this is not relevant for the speed of the build process.

Reply all
Reply to author
Forward
0 new messages