Dear All,

This hitch hiker has been enjoying scratching her itch (caused by a virus 
from the Forth camp she visited many moons ago, smiley)

She has been wondering, it cannot be this simple. She must have missed 
something very important. Please help her to find out what she is missing.

Her itch was to reduce the number of occurrence of 'resolvelinks()' from 3 
(1 in *$SAGE_ROOT/sage*, 1 in *$SAGE_SRC_BIN/sage* and 1 in 
*$SAGE_SRC_BIN/sage-env*) to 1.

   - *$SAGE_ROOT/sage* was renamed to *$SAGE_ROOT/sage.sage* and the 
   function '*resolvelinks()*' was removed.
   - *$SAGE_SRC_BIN/sage*  was renamed to* $SAGE_SRC_BIN/sage.src.bin.sage* 
   and the function '*resolvelinks(*)' was removed.
   - *$SAGE_SRC_BIN/sage-env* was factored into 
   *$SAGE_SRC_BIN/sage.src.bin.sage-env* and *$SAGE_SRC_BIN/resolvelinks*
   
You can name these files whatever you like, just modify the scripts below 
(just one place to change for each name)

Then, 3 glue files were created, it is critical that these files have these 
names (all or just one of them?), otherwise the configuration scripts will 
break:

   1. *$SAGE_ROOT/sage*
   2. *$SAGE_SRC_BIN/sage*
   3. *$SAGE_SRC_BIN/sage-env*
   
When copy&paste is needed(?) should only the glue files be so? They will 
find out where are the files to be sourced based on these sign posts.
The code as it is now will break when there are fake sign posts in front of 
true $SAGE_ROOT.  It is just a proof of concept, right now.  (Heavy duty 
sed, awk scripts should be able to fix this?)

If you build your own 'Sage' and like to have some fun with this factoring, 
please try it out  with your favorite use case scenarios to see what is 
broken (Sage team might be able to help in fixing it?).
If the Sage team thinks Sage might benefit from this idea, please feel free 
to do whatever they like to with it.

Please find appended below the glue codes and your help is much appreciated.

Regards,

phiho



*<$SAGE_ROOT/sage>*














*SELF=$(readlink -f $0)SAGE_ROOT=`dirname 
$SELF`RESOLVELINKS=$SAGE_ROOT/src/bin/resolvelinksSAGE_SAGE=$SAGE_ROOT/sage.sageif
 
[ ! -f $RESOLVELINKS -o ! -f $SAGE_SAGE ]; then    echo "$RESOLVELINKS 
and/or $SAGE_SAGE not found" >&2    exit 1fi. $RESOLVELINKS. $SAGE_SAGE*

*</$SAGE_ROOT/sage>*

*<$SAGE_SRC_BIN/sage>*

#
# Please note the following line need be replaced with a copy&paste
#
# . $SAGE_SRC_BIN/sage.src.bin.sage-sage-env.common
#










*SAGE_SRC_BIN_SAGE=$SAGE_SRC_BIN/sage.src.bin.sageif [ ! -f $RESOLVELINKS ] 
|| [ ! -f $SAGE_SRC_BIN_SAGE ]; then    echo "$RESOLVELINKS and/or 
$SAGE_SRC_BIN_SAGE not found" >&2    exit 1fi. $RESOLVELINKS. 
$SAGE_SRC_BIN_SAGE*
*</$SAGE_SRC_BIN/sage>*



*<$SAGE_SRC_BIN/sage-env>*
#
# Please note the following line need be replaced with a copy&paste
#
#  . $SAGE_SRC_BIN/sage.src.bin.sage-sage-env.common
#









*SAGE_ENV=$SAGE_SRC_BIN/sage.src.bin.sage-envif [ ! -f $RESOLVELINKS ] || [ 
! -f $SAGE_ENV ]; then    echo "$RESOLVELINKS and/or $SAGE_ENV not found" 
 >&2    returnfi. $RESOLVELINKS. $SAGE_ENV*


*</$SAGE_SRC_BIN/sage-env>*


*<$SAGE_SRC_BIN/sage.src.bin.sage-sage-env.common>*
*SELF=$(readlink -f $0)*

#
#  Maybe the Sage team can help to verify if the list of sing posts is 
exhaustive.
#

























*if [ ! -d "$SAGE_ROOT" ]; then    for signpost in  \        "/src/bin/" \  
      "/build/bin/" \        "/local/var" \        
"/build/pkgs/sagelib/src/bin/" \        
"/build/pkgs/sagemath_categories/src/bin/" \        
"/build/pkgs/sagemath_objects/src/bin/" \        
"/pkgs/sagemath-categories/bin/" \        "/pkgs/sagemath-objects/bin/" \  
      "/pkgs/sagemath-standard/bin/" \        
"/pkgs/sage-conf_pypi/sage_root/" \        "/pkgs/sagemath-standard/bin/" 
\        "/pkgs/sage-conf_pypi/sage_root/"    do        SAGE_ROOT=$(echo 
$SELF | sed "s:$pat.*$::")        if [ -f $SAGE_ROOT/src/bin/resolvelinks 
]; then            break        fi    
donefiSAGE_SRC_BIN=$SAGE_ROOT/src/binRESOLVELINKS=$SAGE_SRC_BIN/resolvelinks*
#################################################################################################################
#   The above snippet is common to sage and sage-env  copied and pasted 
from sage.src.bin.sage-sage-env.common  #
#################################################################################################################


*</$SAGE_SRC_BIN/sage.src.bin.sage-sage-env.common>*

-- 
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 on the web visit 
https://groups.google.com/d/msgid/sage-devel/2002b30c-d569-4dd3-b139-f4ca9dc4d6c4n%40googlegroups.com.

Reply via email to