diff -up src/bin/sage.orig src/bin/sage --- src/bin/sage.orig 2014-02-07 11:02:57.653623604 -0200 +++ src/bin/sage 2014-02-07 11:08:54.765637279 -0200 @@ -11,17 +11,14 @@ usage() { echo " file. -- run given .sage, .py or .spyx files" echo " -advanced -- list all command line options" echo " -c -- Evaluates cmd as sage code" - echo " -experimental -- list all experimental packages that can be installed" echo " -gap [...] -- run Sage's Gap with given arguments" echo " -gp [...] -- run Sage's PARI/GP calculator with given arguments" echo " -h, -? -- print this help message" - echo " -i [packages] -- install the given Sage packages" echo " -inotebook [...] -- start the *insecure* Sage notebook" echo " -maxima [...] -- run Sage's Maxima with given arguments" echo " -mwrank [...] -- run Sage's mwrank with given arguments" echo " -n, -notebook [...] -- start the Sage notebook (options are the same" echo " as for the notebook command in Sage)" - echo " -optional -- list all optional packages that can be installed" echo " -python [...] -- run the Python interpreter" echo " -R [...] -- run Sage's R with given arguments" echo " -singular [...] -- run Sage's singular with given arguments" @@ -37,10 +34,6 @@ usage() { echo " --optional - controls which optional tests are run" echo " --sagenb - test all sagenb files" echo " --help - show all testing options" - echo " -upgrade [version] -- download, build and install the given version. Here," - echo " 'version' is a git branch or tag name. Useful values" - echo " are 'master' (the currend development version, this" - echo " is the default) or a version number like '5.13'." echo " -v, -version -- print the Sage version" exit 0 } @@ -64,14 +57,14 @@ usage_advanced() { echo " -root -- print the Sage root directory" echo " -gthread, -qthread, -q4thread, -wthread, -pylab" echo " -- pass the option through to ipython" + echo " -testall [options] -- test all source files, docs, and examples. options" + echo " like -t" echo " -v, -version -- print the Sage version" echo #### 1.......................26..................................................78 #### |.....................--.|...................................................| echo "Running the notebook:" - echo " -bn, -build-and-notebook [...] -- build the Sage library then start" - echo " the Sage notebook" echo " -inotebook [...] -- start the *insecure* Sage notebook" echo " -n, -notebook [...] -- start the Sage notebook (options are the same" echo " as for the notebook command in Sage)" @@ -88,13 +81,9 @@ usage_advanced() { echo " -gp [...] -- run Sage's PARI/GP calculator with given arguments" echo " -ipython [...] -- run Sage's IPython using the default environment (not" echo " Sage), passing additional options to IPython" - echo " -kash [...] -- run Sage's Kash with given arguments" - command -v kash &>/dev/null || \ echo " (not installed currently, run sage -i kash)" echo " -lisp [...] -- run Lisp interpreter included with Sage" echo " -M2 [...] -- run Sage's Macaulay2 with given arguments" - command -v M2 &>/dev/null || \ - echo " (not installed currently, run sage -i macaulay2)" echo " -maxima [...] -- run Sage's Maxima with given arguments" echo " -mwrank [...] -- run Sage's mwrank with given arguments" echo " -python [...] -- run the Python interpreter" @@ -108,80 +97,10 @@ usage_advanced() { echo #### 1.......................26..................................................78 #### |.....................--.|...................................................| - echo "Installing packages and upgrading:" - echo " -experimental -- list all experimental packages that can be installed" - echo " -f [opts] [packages]-- shortcut for -i -f: force build of the given Sage" - echo " packages" - echo " -i [opts] [packages]-- install the given Sage packages (unless they are" - echo " already installed); if no packages are given, print" - echo " a list of all installed packages. Options:" - echo " -c -- run the packages' test suites" - echo " -f -- force build: install the packages even" - echo " if they are already installed" - echo " -s -- do not delete the spkg/build directories" - echo " after a successful build" - echo " -info [packages] -- print the SPKG.txt of the given packages" - echo " -optional -- list all optional packages that can be installed" - echo " -standard -- list all standard packages that can be installed" - #echo " -update -- download latest non-optional Sage packages (do not build them)" - #echo " -update-build -- build and install all downloaded non-optional Sage packages" - echo " -upgrade [version] -- download, build and install the given version. Here," - echo " 'version' is a git branch or tag name. Useful values" - echo " are 'master' (the currend development version, this" - echo " is the default) or a version number like '5.13'." - - echo - #### 1.......................26..................................................78 - #### |.....................--.|...................................................| - echo "Building and testing the Sage library:" - echo " -b [branch] -- build Sage library. If branch is given, switch to" - echo " branch in devel/sage-branch and build that branch" - echo " -sync-build -- delete old code and other files in the Sage library" - echo " that have already been deleted from devel/sage but" - echo " remain in the build directory. This is sometimes" - echo " necessary because \`sage -b\` merely copies new or" - echo " modified files to the target directory." - echo " -ba [branch] -- same as -b and rebuild all Cython code" - echo " -ba-force [branch] -- same as -ba, but don't query before rebuilding" - echo " -br [branch] -- switch to, build, and run Sage given branch" - echo " -bt [...] -- build and test, options like -t below" - echo " -btp [...] -- build and test parallel, options like -tp below" - echo " -btnew [...] -- build and test modified files, options like -tnew" - echo " -fixdoctests [output_file] [--long]" - echo " -- writes a new version of file.py to output_file" - echo " (defaults: to file.py.out) that will pass the doctests." - echo " With the optional --long argument the long time tests" - echo " are also checked." - echo " A patch for the new file is printed to stdout." - echo " -startuptime [module] -- display how long each component of Sage takes to" - echo " start up; optionally specify a module to get more" - echo " details about that particular module" - echo " -t [options] <--all|files|dir>" - echo " -- test examples in .py, .pyx, .sage, .tex or .rst files" - echo " selected options:" - echo " --long - include lines with the phrase 'long time'" - echo " --verbose - print debugging output during the test" - echo " --optional - controls which optional tests are run" - echo " --randorder[=seed] - randomize order of tests" - echo " --new - only test files modified since last commit" - echo " --initial - only show the first failure per block" - echo " --debug - drop into PDB after an unexpected error" - echo " --failed - only test files that failed last test" - echo " --sagenb - test all sagenb files" - echo " --help - show all testing options" - echo " -tp [...] -- like -t above, but tests in parallel using N threads" - echo " with 0 interpreted as a sensible default" - echo " -testall [options] -- test all source files, docs, and examples. options" - echo " like -t" - - echo - #### 1.......................26..................................................78 - #### |.....................--.|...................................................| echo "Documentation:" echo " -coverage -- give info about doctest coverage of files" echo " -coverageall -- give summary info about doctest coverage of all" echo " files in the Sage library" - echo " -docbuild [lang/] -- Build the Sage documentation" echo " -search_src -- search through all the Sage library code for string" echo " -search_doc -- search through the Sage documentation for string" echo " -grep -- same as -search_src" @@ -201,17 +120,6 @@ usage_advanced() { echo #### 1.......................26..................................................78 #### |.....................--.|...................................................| - echo "Making Sage packages or distributions:" - echo " -bdist VER -- build a binary distribution of Sage" - echo " -combinat [...] -- run sage-combinat patch management script" - echo " -crap sage-ver.tar -- detect suspicious garbage in sage source tarball" - echo " -pkg -- create Sage package dir.spkg from a given directory" - echo " -pkg_nc -- as -pkg, but do not compress the package" - echo " -sdist -- build a source distribution of Sage" - - echo - #### 1.......................26..................................................78 - #### |.....................--.|...................................................| echo "Valgrind memory debugging:" echo " -cachegrind -- run Sage using Valgrind's cachegrind tool. The log" echo " files are named sage-cachegrind.PID can be found in" @@ -225,9 +133,6 @@ usage_advanced() { echo " -memcheck -- run Sage using Valgrind's memcheck tool. The log" echo " files are named sage-memcheck.PID can be found in" echo " $DOT_SAGE" - echo " -omega -- run Sage using Valgrind's omega tool. The log" - echo " files are named sage-omega.PID can be found in" - echo " $DOT_SAGE" echo " -valgrind -- this is an alias for -memcheck" echo echo "You can also use -- before a long option, e.g., 'sage --optional'." @@ -256,17 +161,6 @@ if [ "$1" = '-upgrade' -o "$1" = "--upgr fi -# Source sage-env ($0 is the name of this "sage" script, so we can just -# append -env to that). We redirect stdout to stderr, which is safer -# for scripts. -. "$0-env" >&2 -if [ $? -ne 0 ]; then - echo >&2 "Error setting environment variables by sourcing '$0-env';" - echo >&2 "possibly contact sage-devel (see http://groups.google.com/group/sage-devel)." - exit 1 -fi - - if [ $# -gt 0 ]; then if [ "$1" = '-h' -o "$1" = '-?' -o "$1" = '-help' -o "$1" = '--help' ]; then usage @@ -279,25 +173,11 @@ fi # Prepare for running Sage, either interactively or non-interactively. sage_setup() { - # Check that we're not in a source tarball which hasn't been built yet (#13561). - if [ ! -d "$SAGE_LOCAL/lib/python/site-packages/sage" ]; then - echo >&2 '************************************************************************' - echo >&2 'It seems that you are attempting to run Sage from an unpacked source' - echo >&2 'tarball, but you have not compiled it yet (or maybe the build has not' - echo >&2 'finished). You should run `make` in the Sage root directory first.' - echo >&2 'If you did not intend to build Sage from source, you should download' - echo >&2 'a binary tarball instead. Read README.txt for more information.' - echo >&2 '************************************************************************' - exit 1 - fi - # Display the startup banner if [ "$SAGE_BANNER" != "no" ]; then cat "$SAGE_LOCAL/bin/sage-banner" fi - maybe_sage_location - if [ ! -d "$IPYTHONDIR" ]; then # make sure that $DOT_SAGE exists so that ipython will happily # create its config directories there. If DOT_SAGE doesn't @@ -308,20 +188,6 @@ sage_setup() { } -# Check to see if the whole Sage install tree has moved. If so, -# change various hardcoded paths. Skip this if we don't have write -# access to $SAGE_LOCAL (e.g. when running as a different user) or -# if Python and sage-location haven't been installed yet. -maybe_sage_location() -{ - if [ -w "$SAGE_LOCAL" ]; then - if [ -x "$SAGE_LOCAL/bin/python" ] && [ -x "$SAGE_LOCAL/bin/sage-location" ]; then - sage-location || exit $? - fi - fi -} - - # Start an interactive Sage session, this function never returns. interactive_sage() { sage_setup @@ -371,11 +237,6 @@ if [ "$1" = '-axiom' -o "$1" = '--axiom' exec axiom "$@" fi -if [ "$1" = '-combinat' -o "$1" = '--combinat' ]; then - shift - exec sage-combinat "$@" -fi - if [ "$1" = '-gap' -o "$1" = '--gap' ]; then shift exec gap "$@" @@ -388,7 +249,7 @@ fi if [ "$1" = '-singular' -o "$1" = '--singular' ]; then shift - exec singular "$@" + exec Singular "$@" fi if [ "$1" = '-sqlite3' -o "$1" = '--sqlite3' ]; then @@ -416,16 +277,6 @@ if [ "$1" = '-lisp' -o "$1" = '--lisp' ] exec ecl "$@" fi -if [ "$1" = '-kash' -o "$1" = '--kash' ]; then - shift - exec kash "$@" -fi - -if [ "$1" = '-fixdoctests' -o "$1" = '--fixdoctests' ]; then - shift - exec sage-fixdoctests "$@" -fi - if [ "$1" = '-maxima' -o "$1" = '--maxima' ]; then shift exec maxima "$@" @@ -585,20 +436,6 @@ EOF fi ##################################################################### -# Test coverage of a module? -##################################################################### - -if [ "$1" = "-coverage" -o "$1" = "--coverage" ]; then - shift - exec sage-coverage "$@" -fi - -if [ "$1" = "-coverageall" -o "$1" = "--coverageall" ]; then - shift - exec sage-coverageall "$@" -fi - -##################################################################### # File conversion ##################################################################### @@ -613,36 +450,15 @@ if [ "$1" = '-rst2sws' -o "$1" = '--rst2 fi ##################################################################### -# Crap -##################################################################### - -if [ "$1" = "-crap" -o "$1" = "--crap" ]; then - shift - exec sage-crap $@ -fi - -##################################################################### # Run Sage's versions of the standard Algebra/Geometry etc. software ##################################################################### -build_sage() { - maybe_sage_location - sage-build "$@" || exit $? -} - if [ "$1" = "-notebook" -o "$1" = '--notebook' -o "$1" = '-n' ]; then shift sage-cleaner &>/dev/null & exec sage-notebook "$@" fi -if [ "$1" = "-bn" -o "$1" = "--build-and-notebook" ]; then - shift - build_sage - sage-cleaner &>/dev/null & - exec sage-notebook "$@" -fi - if [ "$1" = "-inotebook" -o "$1" = '--inotebook' ]; then shift sage-cleaner &>/dev/null & @@ -661,58 +477,12 @@ if [ "$1" = '-grepdoc' -o "$1" = "--grep exit 0 fi -if [ "$1" = '-b' ]; then - shift - time build_sage "$@" - exit $? -fi - -if [ "$1" = '-br' -o "$1" = "--br" ]; then - shift - build_sage "$@" - interactive_sage -fi - if [ "$1" = '-r' ]; then shift interactive_sage fi -if [ "$1" = '-ba' ]; then - shift - echo " *** WARNING ***" - echo " You are about to rebuild the entire Sage library." - echo " This will take a significant amount of time." - echo " (Use --ba-force instead of -ba to skip this prompt.)" - echo -n " Do you want to proceed? [y/n] " - read CHOICE - while [ "$CHOICE" != "y" -a "$CHOICE" != "n" ]; do - echo -n " Choose one of y, n: " - read CHOICE - done - if [ $CHOICE = 'n' ]; then - exit 0 - fi - build_sage -b "$@" - exit $? -fi - -if [ "$1" = '-ba-force' -o "$1" = '--ba-force' ]; then - shift - build_sage -b "$@" - exit $? -fi - -if [ "$1" = '-sync-build' -o "$1" = '--sync-build' ]; then - shift - cd "$SAGE_ROOT" - exec sage-sync-build.py "$@" -fi - -if [ "$1" = '-t' -o "$1" = '-bt' -o "$1" = '-tp' -o "$1" = '-btp' ]; then - if [ "$1" = '-bt' -o "$1" = '-btp' ]; then - build_sage - fi +if [ "$1" = '-t' -o "$1" = '-tp' ]; then if [ ! -f "$DOT_SAGE"/init.sage ]; then echo >&2 "init.sage does not exist ... creating" touch "$DOT_SAGE"/init.sage @@ -728,10 +498,7 @@ if [ "$1" = '-t' -o "$1" = '-bt' -o "$1" fi fi -if [ "$1" = '-tnew' -o "$1" = '-btnew' ]; then - if [ "$1" = '-btnew' ]; then - build_sage - fi +if [ "$1" = '-tnew' ]; then shift SAGE_BANNER="no" sage_setup @@ -745,12 +512,6 @@ if [ "$1" = '-testall' -o "$1" = "--test exec sage-runtests -a "$@" fi -if [ "$1" = '-patchbot' -o "$1" = "--patchbot" ]; then - shift - cd "$SAGE_ROOT" - exec "$SAGE_LOCAL/bin/patchbot/patchbot.py" "$@" -fi - if [ "$1" = '-c' ]; then shift SAGE_BANNER="no" @@ -759,124 +520,6 @@ if [ "$1" = '-c' ]; then exec sage-eval "$@" fi -install() { - maybe_sage_location - - mkdir -p "$SAGE_LOGS" - for PKG in "$@" - do - # Check for options - case "$PKG" in - -f) OPTF="-f" - continue;; - -m) OPTS="-s" - echo >&2 "Warning: the -m option is deprecated since Sage 5.0. Use -s instead." - continue;; - -s) OPTS="-s" - continue;; - -c) OPTC="-c" - continue;; - --check) OPTC="-c" - continue;; - -info) OPTINFO="--info" - continue;; - --info) OPTINFO="--info" - continue;; - -*) echo >&2 "Error: unknown option '$PKG'" - exit 2;; - esac - - PKG_NAME=`echo "$PKG" | sed -e "s/\.spkg$//"` - PKG_NAME=`basename "$PKG_NAME"` - - "$SAGE_ROOT"/build/pipestatus \ - "sage-spkg $OPTINFO $OPTF $OPTS $OPTC '$PKG' 2>&1" \ - "(trap '' SIGINT; tee -a '$SAGE_ROOT/logs/install.log' '$SAGE_LOGS/$PKG_NAME.log')" - # Do not try to install further packages if one failed - if [ $? -ne 0 ]; then - exit 1 - fi - done - exit 0 -} - -if [ "$1" = '-optional' -o "$1" = "--optional" ]; then - exec sage-list-optional -fi - -if [ "$1" = '-experimental' -o "$1" = "--experimental" ]; then - exec sage-list-experimental -fi - -if [ "$1" = '-standard' -o "$1" = "--standard" ]; then - exec sage-list-standard -fi - -if [ "$1" = '-i' ]; then - shift - # If there are no further arguments, simply list all installed - # packages. - if [ $# -eq 0 ]; then - exec sage-spkg - fi - install "$@" -fi - -if [ "$1" = '-f' ]; then - shift - # If there are no further arguments, simply list all installed - # packages. - if [ $# -eq 0 ]; then - exec sage-spkg - fi - install -f "$@" -fi - -if [ "$1" = '-info' -o "$1" = '--info' ]; then - shift - for PKG in "$@" - do - sage-spkg --info "$PKG" || exit $? - done - exit 0 -fi - -if [ "$1" = '-pkg' -o "$1" = '-spkg' -o "$1" = "--pkg" -o "$1" = "--spkg" ]; then - shift - exec sage-pkg "$@" -fi - -if [ "$1" = '-pkg_nc' -o "$1" = "--pkg_nc" ]; then - shift - exec sage-pkg -n "$@" -fi - -if [ "$1" = '-sdist' -o "$1" = "--sdist" ]; then - maybe_sage_location - shift - exec sage-sdist "$@" -fi - -if [ "$1" = '-rsyncdist' -o "$1" = "--rsyncdist" ]; then - if [ $# -ne 2 ]; then - echo >&2 "** MISSING VERSION NUMBER! **" - exit 2 - fi - maybe_sage_location - exec sage-rsyncdist $2 -fi - -if [ "$1" = '-bdist' -o "$1" = "--bdist" ]; then - maybe_sage_location - shift - exec sage-bdist "$@" -fi - -if [ "$1" = "-docbuild" -o "$1" = "--docbuild" ]; then - shift - exec python "$SAGE_DOC/common/builder.py" "$@" -fi - if [ "$1" = '-gdb' -o "$1" = "--gdb" ]; then shift sage_setup @@ -925,12 +568,6 @@ if [ "$1" = '-callgrind' -o "$1" = "--ca exec sage-callgrind "$@" fi -if [ "$1" = '-omega' -o "$1" = "--omega" ]; then - shift - sage_setup - exec sage-omega "$@" -fi - if [ "$1" = '-startuptime' -o "$1" = '--startuptime' ]; then exec sage-startuptime.py "$@" fi diff -up src/bin/sage-runtests.orig src/bin/sage-runtests --- src/bin/sage-runtests.orig 2014-02-07 11:09:24.776638428 -0200 +++ src/bin/sage-runtests 2014-02-07 11:09:41.780639079 -0200 @@ -54,10 +54,6 @@ if __name__ == "__main__": help="run doctests using Valgrind's cachegrind tool. The log " "files are named sage-cachegrind.PID and can be found in " + os.path.join(os.environ["DOT_SAGE"], "valgrind")) - parser.add_option("--omega", action="store_true", default=False, - help="run doctests using Valgrind's omega tool. The log " - "files are named sage-omega.PID and can be found in " + - os.path.join(os.environ["DOT_SAGE"], "valgrind")) parser.add_option("-f", "--failed", action="store_true", default=False, help="doctest only those files that failed in the previous run") diff -up src/bin/sage-valgrind.orig src/bin/sage-valgrind --- src/bin/sage-valgrind.orig 2014-02-07 11:09:56.469639641 -0200 +++ src/bin/sage-valgrind 2014-02-07 11:10:06.804640037 -0200 @@ -11,7 +11,7 @@ fi LOG="$DOT_SAGE"/valgrind/sage-memcheck.%p echo "Log file is $LOG" -MEMCHECK_FLAGS="--leak-resolution=high --log-file=$LOG --leak-check=full --num-callers=25 --suppressions=$SAGE_LOCAL/lib/valgrind/sage.supp "; export MEMCHECK_FLAGS +MEMCHECK_FLAGS="--leak-resolution=high --log-file=$LOG --leak-check=full --num-callers=25 "; export MEMCHECK_FLAGS if [ "$SAGE_MEMCHECK_FLAGS" ]; then echo "Overwriting memcheck flags with:" echo $SAGE_MEMCHECK_FLAGS