Raymond Toy pushed to branch issue-379-gnu-style-options at cmucl / cmucl

Commits:

23 changed files:

Changes:

  • .gitlab-ci.yml
    ... ... @@ -51,9 +51,9 @@ linux:build:
    51 51
         # instead of clang. 
    
    52 52
         - bin/build.sh $bootstrap -R -C "x86_linux" -o snapshot/bin/lisp
    
    53 53
         # - bin/build.sh $bootstrap -R -C "x86_linux" -o snapshot/bin/lisp
    
    54
    -    # Use -V to specify the version in case some tag makes git
    
    55
    -    # describe return something that make-dist.sh doesn't like.
    
    56
    -    - bin/make-dist.sh -V `git describe --dirty` -I dist linux-4
    
    54
    +    # When the result of `git describe` cannot be used as a version
    
    55
    +    # string, an alternative can be provided with the -V flag
    
    56
    +    - bin/make-dist.sh -I dist linux-4
    
    57 57
     
    
    58 58
     linux:cross-build:
    
    59 59
       stage: build
    
    ... ... @@ -80,8 +80,8 @@ linux:cross-build:
    80 80
         - bin/create-target.sh xtarget
    
    81 81
         - bin/create-target.sh xcross
    
    82 82
         - bin/cross-build-world.sh -crl xtarget xcross src/tools/cross-scripts/cross-x86-x86.lisp dist/bin/lisp
    
    83
    -    - bin/build.sh -b xlinux $bootstrap -R -C "" -o xtarget/lisp/lisp
    
    84
    -    - bin/make-dist.sh -V `git describe --dirty` -I xdist xlinux-4
    
    83
    +    - bin/build.sh -b xlinux $bootstrap -R -C "" -o "xtarget/lisp/lisp -lib xtarget/lisp"
    
    84
    +    - bin/make-dist.sh -I xdist xlinux-4
    
    85 85
     
    
    86 86
     linux:test:
    
    87 87
       stage: test
    
    ... ... @@ -194,9 +194,9 @@ osx:build:
    194 194
         # Regular build using the cross-compiled result or snapshot.
    
    195 195
         # Need /opt/local/bin to get msgmerge and msgfmt programs.
    
    196 196
         - PATH=/opt/local/bin:$PATH bin/build.sh $bootstrap -R -C "" -o snapshot/bin/lisp
    
    197
    -    # Use -V to specify the version in case some tag makes git
    
    197
    +    # If needed use -V to specify the version in case some tag makes git
    
    198 198
         # describe return something that make-dist.sh doesn't like.
    
    199
    -    - bin/make-dist.sh -V `git describe --dirty` -I dist darwin-4
    
    199
    +    - bin/make-dist.sh -I dist darwin-4
    
    200 200
     
    
    201 201
     osx:test:
    
    202 202
       stage: test
    
    ... ... @@ -319,9 +319,9 @@ opensuse:build:
    319 319
         # instead of clang. 
    
    320 320
         - bin/build.sh $bootstrap -R -C "x86_linux" -o snapshot/bin/lisp
    
    321 321
         # - bin/build.sh $bootstrap -R -C "x86_linux" -o snapshot/bin/lisp
    
    322
    -    # Use -V to specify the version in case some tag makes git
    
    322
    +    # If needed use -V to specify the version in case some tag makes git
    
    323 323
         # describe return something that make-dist.sh doesn't like.
    
    324
    -    - bin/make-dist.sh -V `git describe --dirty` -I dist linux-4
    
    324
    +    - bin/make-dist.sh -I dist linux-4
    
    325 325
     
    
    326 326
     opensuse:test:
    
    327 327
       stage: test
    

  • bin/build-utils.sh
    ... ... @@ -16,7 +16,7 @@ TARGET="`echo $1 | sed 's:/*$::'`"
    16 16
     shift
    
    17 17
     
    
    18 18
     $TARGET/lisp/lisp \
    
    19
    -	-noinit -nositeinit -batch "$@" <<EOF || exit 3
    
    19
    +	-lib $TARGET/lisp -noinit -nositeinit -batch "$@" <<EOF || exit 3
    
    20 20
     (in-package :cl-user)
    
    21 21
     
    
    22 22
     (setf lisp::*enable-package-locked-errors* nil)
    

  • bin/build.sh
    ... ... @@ -110,6 +110,13 @@ case `uname -s` in
    110 110
           esac ;;
    
    111 111
     esac
    
    112 112
     
    
    113
    +# Set default version and generate lisp/cmucl-version.h
    
    114
    +DEFAULT_VERSION="`bin/git-version.sh`"
    
    115
    +export DEFAULT_VERISON
    
    116
    +echo DEFAULT_VERSION = $DEFAULT_VERSION
    
    117
    +
    
    118
    +bin/git-version.sh -f > src/lisp/cmucl-version.h
    
    119
    +
    
    113 120
     export LANG=en_US.UTF-8
    
    114 121
     
    
    115 122
     buildit ()
    
    ... ... @@ -142,9 +149,10 @@ buildit ()
    142 149
     	then
    
    143 150
     	    $BUILDWORLD $TARGET $OLDLISP $BOOT || { echo "Failed: $BUILDWORLD"; exit 1; }
    
    144 151
     	fi
    
    145
    -	$TOOLDIR/load-world.sh $TARGET "$VERSION" || { echo "Failed: $TOOLDIR/load-world.sh"; exit 1; }
    
    152
    +	$TOOLDIR/load-world.sh $TARGET || { echo "Failed: $TOOLDIR/load-world.sh"; exit 1; }
    
    153
    +
    
    154
    +	$TARGET/lisp/lisp -lib $TARGET/lisp -batch -noinit -nositeinit < /dev/null || { echo "Failed: $TARGET/lisp/lisp -batch -noinit"; exit 1; }
    
    146 155
     
    
    147
    -	$TARGET/lisp/lisp -batch -noinit -nositeinit < /dev/null || { echo "Failed: $TARGET/lisp/lisp -batch -noinit"; exit 1; }
    
    148 156
     	return 0;
    
    149 157
         fi
    
    150 158
     }
    
    ... ... @@ -221,7 +229,7 @@ buildit
    221 229
     bootfiles=
    
    222 230
     
    
    223 231
     TARGET=$BASE-3
    
    224
    -OLDLISP="${BASE}-2/lisp/lisp $OLDLISPFLAGS"
    
    232
    +OLDLISP="${BASE}-2/lisp/lisp -lib ${BASE}-2/lisp $OLDLISPFLAGS"
    
    225 233
     ENABLE=$ENABLE3
    
    226 234
     
    
    227 235
     BUILD=2
    
    ... ... @@ -232,7 +240,7 @@ buildit
    232 240
     
    
    233 241
     TARGET=$BASE-4
    
    234 242
     CLEAN_FLAGS="-K all"
    
    235
    -OLDLISP="${BASE}-3/lisp/lisp $OLDLISPFLAGS"
    
    243
    +OLDLISP="${BASE}-3/lisp/lisp -lib ${BASE}-3/lisp $OLDLISPFLAGS"
    
    236 244
     ENABLE=$ENABLE4
    
    237 245
     
    
    238 246
     if [ "${BUILD_POT}" = "yes" ]; then
    
    ... ... @@ -250,7 +258,7 @@ buildit
    250 258
     
    
    251 259
     # Asdf and friends are part of the base install, so we need to build
    
    252 260
     # them now.
    
    253
    -$TARGET/lisp/lisp -noinit -nositeinit -batch << EOF || exit 3
    
    261
    +$TARGET/lisp/lisp -lib $TARGET/lisp -noinit -nositeinit -batch << EOF || exit 3
    
    254 262
     (in-package :cl-user)
    
    255 263
     (setf (ext:search-list "target:")
    
    256 264
           '("$TARGET/" "src/"))
    
    ... ... @@ -270,7 +278,7 @@ EOF
    270 278
     
    
    271 279
     if [ "$SKIPUTILS" = "no" ];
    
    272 280
     then
    
    273
    -    OLDLISP="${BASE}-4/lisp/lisp $OLDLISPFLAGS"
    
    281
    +    OLDLISP="${BASE}-4/lisp/lisp -lib ${BASE}-4/lisp $OLDLISPFLAGS"
    
    274 282
         time $TOOLDIR/build-utils.sh $TARGET
    
    275 283
     fi
    
    276 284
     
    

  • bin/cross-build-world.sh
    ... ... @@ -138,10 +138,11 @@ EOF
    138 138
     
    
    139 139
     if [ "$BUILD_RUNTIME" = "yes" ]; then
    
    140 140
         echo Building runtime
    
    141
    +    bin/git-version.sh -f > src/lisp/cmucl-version.h
    
    141 142
         (cd $TARGET/lisp; ${MAKE})
    
    142 143
     fi
    
    143 144
     
    
    144 145
     if [ "$LOAD_KERNEL" = "yes" ]; then
    
    145 146
         echo Load kernel.core
    
    146
    -    bin/load-world.sh -p $TARGET cross-compiled
    
    147
    +    bin/load-world.sh -p $TARGET
    
    147 148
     fi

  • bin/git-version.sh
    1
    +#!/bin/sh 
    
    2
    +
    
    3
    +# If FILE=yes, print out the version as a C file #define.  Otherwise,
    
    4
    +# just print the version to stdout and exit.
    
    5
    +FILE=""
    
    6
    +
    
    7
    +while getopts "f" arg; do
    
    8
    +    case $arg in
    
    9
    +	f) FILE=yes
    
    10
    +	   ;;
    
    11
    +    esac
    
    12
    +done
    
    13
    +
    
    14
    +# Script to determine the cmucl version based on git describe
    
    15
    +GIT_HASH="`(git describe --dirty 2>/dev/null || git describe 2>/dev/null)`"
    
    16
    +
    
    17
    +if [ `expr "X$GIT_HASH" : 'Xsnapshot-[0-9][0-9][0-9][0-9]-[01][0-9]'` != 0 ]; then
    
    18
    +    # The git hash looks like snapshot-yyyy-mm-<stuff>.  Remove the
    
    19
    +    # "snapshot-" part.
    
    20
    +    DEFAULT_VERSION=`expr "$GIT_HASH" : "snapshot-\(.*\)"`
    
    21
    +elif [ `expr "X$GIT_HASH" : 'X[0-9][0-9][a-f]'` != 0 ]; then
    
    22
    +    # The git hash looks like a release which is 3 hex digits.  Use it as is.
    
    23
    +    DEFAULT_VERSION="${GIT_HASH}"
    
    24
    +fi
    
    25
    +
    
    26
    +if [ -z "$FILE" ]; then
    
    27
    +    echo $DEFAULT_VERSION
    
    28
    +else
    
    29
    +    cat <<EOF
    
    30
    +/*
    
    31
    + * Cmucl version
    
    32
    + *
    
    33
    + * DO NOT EDIT!  This file is auto-generated via bin/git-version.sh.
    
    34
    + */
    
    35
    +
    
    36
    +#define CMUCL_VERSION "$DEFAULT_VERSION"
    
    37
    +EOF
    
    38
    +fi
    
    39
    +

  • bin/load-world.sh
    ... ... @@ -2,30 +2,14 @@
    2 2
     
    
    3 3
     usage()
    
    4 4
     {
    
    5
    -    echo "load-world.sh [-?p] target-directory [version-string]"
    
    5
    +    echo "load-world.sh [-?p] target-directory"
    
    6 6
         echo "   -p    Skip loading of PCL (Mostly for cross-compiling)"
    
    7 7
         echo "   -?    This help"
    
    8
    -    echo " If the version-string is not given, the current date and time is used"
    
    9 8
         exit 1
    
    10 9
     }
    
    11 10
     
    
    12 11
     SKIP_PCL=
    
    13 12
     NO_PCL_FEATURE=
    
    14
    -# Default version is the date with the git hash.  Older versions of
    
    15
    -# git don't support --dirty, but the output in that case is what we
    
    16
    -# want (except for ending with "dirty"), so we're set.
    
    17
    -GIT_HASH="`(cd src; git describe --dirty 2>/dev/null || git describe 2>/dev/null)`"
    
    18
    -
    
    19
    -# If the git hash looks like a snapshot tag or release, don't add the date.
    
    20
    -VERSION="`date '+%Y-%m-%d %H:%M:%S'`${GIT_HASH:+ $GIT_HASH}"
    
    21
    -if expr "X${GIT_HASH}" : 'Xsnapshot-[0-9][0-9][0-9][0-9]-[01][0-9]' > /dev/null; then
    
    22
    -    VERSION="${GIT_HASH}"
    
    23
    -fi
    
    24
    -
    
    25
    -if expr "X${GIT_HASH}" : 'X[0-9][0-9][a-f]' > /dev/null; then
    
    26
    -    VERSION="${GIT_HASH}"
    
    27
    -fi
    
    28
    -echo $VERSION
    
    29 13
     
    
    30 14
     while getopts "p" arg
    
    31 15
     do
    

  • bin/make-dist.sh
    ... ... @@ -94,21 +94,6 @@ def_arch_os () {
    94 94
     # Figure out the architecture and OS in case options aren't given
    
    95 95
     def_arch_os
    
    96 96
     
    
    97
    -# Choose a version based on the git hash as the default version.  We
    
    98
    -# only compute a default if the git hash looks like a snapshot
    
    99
    -# ("snapshot-yyyy-mm") or a release number..
    
    100
    -GIT_HASH="`(cd src; git describe --dirty 2>/dev/null)`"
    
    101
    -
    
    102
    -echo GIT_HASH = ${GIT_HASH}
    
    103
    -
    
    104
    -if expr "X${GIT_HASH}" : 'Xsnapshot-[0-9][0-9][0-9][0-9]-[01][0-9]' > /dev/null; then
    
    105
    -    DEFAULT_VERSION=`expr "${GIT_HASH}" : "snapshot-\(.*\)"`
    
    106
    -fi
    
    107
    -
    
    108
    -if expr "X${GIT_HASH}" : 'X[0-9][0-9][a-f]' > /dev/null; then
    
    109
    -    DEFAULT_VERSION="${GIT_HASH}"
    
    110
    -fi
    
    111
    -
    
    112 97
     # Default compression is -J (xz).  These variables are passed to the
    
    113 98
     # other scripts via the environmen, so export them.
    
    114 99
     COMPRESS=-J
    
    ... ... @@ -159,17 +144,6 @@ if [ -n "$COMPRESS_ARG" ]; then
    159 144
         esac
    
    160 145
     fi
    
    161 146
     
    
    162
    -if [ -z "$VERSION" ]; then
    
    163
    -    # If a default version exists, use it. Otherwise this is an
    
    164
    -    # error---at least one of these must not be empty.
    
    165
    -    if [ -z "${DEFAULT_VERSION}" ]; then
    
    166
    -	echo "Version (-V) must be specified because default version cannot be determined."
    
    167
    -	usage
    
    168
    -    else
    
    169
    -	VERSION=${DEFAULT_VERSION}
    
    170
    -    fi
    
    171
    -fi
    
    172
    -
    
    173 147
     if [ ! -d "$1" ]
    
    174 148
     then
    
    175 149
     	echo "$1 isn't a directory"
    
    ... ... @@ -190,10 +164,24 @@ fi
    190 164
     
    
    191 165
     TARGET="`echo $1 | sed 's:/*$::'`"
    
    192 166
     
    
    193
    -if [ -n "$INSTALL_DIR" ]; then
    
    194
    -    VERSION="today"
    
    167
    +# Choose a version based on the git hash as the default version.  We
    
    168
    +# only compute a default if the git hash looks like a snapshot
    
    169
    +# ("snapshot-yyyy-mm") or a release number..
    
    170
    +DEFAULT_VERSION="`$TARGET/lisp/lisp --version`"
    
    171
    +
    
    172
    +if [ -z "$VERSION" ]; then
    
    173
    +    # If a default version exists, use it. Otherwise this is an
    
    174
    +    # error---at least one of these must not be empty.
    
    175
    +    if [ -z "${DEFAULT_VERSION}" ]; then
    
    176
    +	echo "Version (-V) must be specified because default version cannot be determined."
    
    177
    +	usage
    
    178
    +    else
    
    179
    +	VERSION=${DEFAULT_VERSION}
    
    180
    +    fi
    
    195 181
     fi
    
    196 182
     
    
    183
    +echo INSTALL_DIR = $INSTALL_DIR
    
    184
    +
    
    197 185
     echo cmucl-$VERSION-$ARCH-$OS
    
    198 186
     ROOT=`dirname $0`
    
    199 187
     
    

  • bin/make-extra-dist.sh
    ... ... @@ -66,6 +66,8 @@ VERSION=$2
    66 66
     ARCH=$3
    
    67 67
     OS=$4
    
    68 68
     
    
    69
    +CMUCLLIBVER="lib/cmucl/$VERSION"
    
    70
    +
    
    69 71
     case $ARCH in
    
    70 72
     	x86*)		FASL="sse2f" ;;
    
    71 73
     	sparc*)		FASL=sparcf ;;
    
    ... ... @@ -90,41 +92,29 @@ if [ -z "$INSTALL_DIR" ]; then
    90 92
     fi
    
    91 93
     
    
    92 94
     echo Installing extra components
    
    93
    -install -d ${GROUP} ${OWNER} -m 0755 $DESTDIR/lib/cmucl/lib
    
    95
    +install -d ${GROUP} ${OWNER} -m 0755 $DESTDIR/$CMUCLLIBVER/lib
    
    94 96
     
    
    95
    -install -d ${GROUP} ${OWNER} -m 0755 $DESTDIR/lib/cmucl/lib/subsystems
    
    97
    +install -d ${GROUP} ${OWNER} -m 0755 $DESTDIR/$CMUCLLIBVER/lib/subsystems
    
    96 98
     
    
    97
    -install -d ${GROUP} ${OWNER} -m 0755 $DESTDIR/lib/cmucl/lib/contrib
    
    99
    +install -d ${GROUP} ${OWNER} -m 0755 $DESTDIR/$CMUCLLIBVER/lib/contrib
    
    98 100
     
    
    99 101
     for ext in $FASL
    
    100 102
     do
    
    101 103
       install ${GROUP} ${OWNER} -m 0644 $TARGET/clx/clx-library.$ext \
    
    102
    -      $DESTDIR/lib/cmucl/lib/subsystems/
    
    104
    +      $DESTDIR/$CMUCLLIBVER/lib/subsystems/
    
    103 105
       install ${GROUP} ${OWNER} -m 0644 $TARGET/hemlock/hemlock-library.$ext \
    
    104
    -      $DESTDIR/lib/cmucl/lib/subsystems/
    
    106
    +      $DESTDIR/$CMUCLLIBVER/lib/subsystems/
    
    105 107
       install ${GROUP} ${OWNER} -m 0644 $TARGET/interface/clm-library.$ext  \
    
    106
    -      $DESTDIR/lib/cmucl/lib/subsystems/
    
    108
    +      $DESTDIR/$CMUCLLIBVER/lib/subsystems/
    
    107 109
     done
    
    108 110
     
    
    109
    -# Not sure we really need these, but we'll install them in the
    
    110
    -# ext-formats directory.  (Should they go somewhere else?)
    
    111
    -#install -d ${GROUP} ${OWNER} -m 0755 $DESTDIR/lib/cmucl/lib/ext-formats
    
    112
    -#for f in src/i18n/NameAliases.txt src/i18n/UnicodeData.txt
    
    113
    -#do
    
    114
    -#    echo $f
    
    115
    -#    install ${GROUP} ${OWNER} -m 0644 $f $DESTDIR/lib/cmucl/lib/ext-formats/
    
    116
    -#done
    
    117
    -
    
    118
    -# install -d ${GROUP} ${OWNER} -m 0755 $DESTDIR/lib/cmucl/lib/fonts/
    
    119
    -# install ${GROUP} ${OWNER} -m 0644 misc/8x13u.snf misc/fonts.dir \
    
    120
    -#	$DESTDIR/lib/cmucl/lib/fonts/
    
    121 111
     install ${GROUP} ${OWNER} -m 0644 src/hemlock/XKeysymDB \
    
    122 112
     	src/hemlock/hemlock11.cursor src/hemlock/hemlock11.mask \
    
    123 113
     	$TARGET/hemlock/spell-dictionary.bin \
    
    124
    -	$DESTDIR/lib/cmucl/lib/
    
    125
    -install ${GROUP} ${OWNER} -m 0755 src/hemlock/mh-scan $DESTDIR/lib/cmucl/lib/
    
    114
    +	$DESTDIR/$CMUCLLIBVER/lib/
    
    115
    +install ${GROUP} ${OWNER} -m 0755 src/hemlock/mh-scan $DESTDIR/$CMUCLLIBVER/lib/
    
    126 116
     install ${GROUP} ${OWNER} -m 0755 $TARGET/motif/server/motifd \
    
    127
    -	$DESTDIR/lib/cmucl/lib/
    
    117
    +	$DESTDIR/$CMUCLLIBVER/lib/
    
    128 118
     
    
    129 119
     # Install the contrib stuff.  Create the directories and then copy the files.
    
    130 120
     #
    
    ... ... @@ -132,39 +122,29 @@ install ${GROUP} ${OWNER} -m 0755 $TARGET/motif/server/motifd \
    132 122
     # these directories.
    
    133 123
     for d in `(cd src; find contrib -type d -print | grep -v "asdf\|defsystem")`
    
    134 124
     do
    
    135
    -    install -d ${GROUP} ${OWNER} -m 0755 $DESTDIR/lib/cmucl/lib/$d
    
    125
    +    install -d ${GROUP} ${OWNER} -m 0755 $DESTDIR/$CMUCLLIBVER/lib/$d
    
    136 126
     done
    
    137 127
     
    
    138 128
     for f in `(cd src/contrib; find . -type f -print | grep -v "asdf\|defsystem\|unix")`
    
    139 129
     do
    
    140
    -    FILE=`basename $f`
    
    141 130
         DIR=`dirname $f`
    
    142
    -    install ${GROUP} ${OWNER} -m 0644 src/contrib/$f $DESTDIR/lib/cmucl/lib/contrib/$DIR
    
    131
    +    install ${GROUP} ${OWNER} -m 0644 src/contrib/$f $DESTDIR/$CMUCLLIBVER/lib/contrib/$DIR
    
    143 132
     done
    
    144 133
     
    
    145 134
     # Install all the locale data.
    
    146 135
     
    
    147 136
     for d in `(cd src/i18n/; find locale -type d -print)`
    
    148 137
     do
    
    149
    -    install -d ${GROUP} ${OWNER} -m 0755 $DESTDIR/lib/cmucl/lib/$d
    
    138
    +    install -d ${GROUP} ${OWNER} -m 0755 $DESTDIR/$CMUCLLIBVER/lib/$d
    
    150 139
     done
    
    151 140
     
    
    152 141
     # Install mo files.  Ignore any emacs-style backup files.
    
    153 142
     for f in `(cd $TARGET/i18n; find locale -type f -print | grep -v '~.*~\|.*~')`
    
    154 143
     do
    
    155
    -    FILE=`basename $f`
    
    156 144
         DIR=`dirname $f`
    
    157
    -    install ${GROUP} ${OWNER} -m 0644 $TARGET/i18n/$f $DESTDIR/lib/cmucl/lib/$DIR
    
    145
    +    install ${GROUP} ${OWNER} -m 0644 $TARGET/i18n/$f $DESTDIR/$CMUCLLIBVER/lib/$DIR
    
    158 146
     done
    
    159 147
     
    
    160
    -# Install po files.  (Do we really need to distribute the po files?)
    
    161
    -#for f in `(cd $TARGET/i18n; find locale -type f -print | grep -v '~.*~\|.*~')`
    
    162
    -#do
    
    163
    -#    FILE=`basename $f`
    
    164
    -#    DIR=`dirname $f`
    
    165
    -#    install ${GROUP} ${OWNER} -m 0644 $TARGET/i18n/$f $DESTDIR/lib/cmucl/lib/$DIR
    
    166
    -#done
    
    167
    -
    
    168 148
     if [ -z "$INSTALL_DIR" ]; then
    
    169 149
         sync ; sleep 1 ; sync ; sleep 1 ; sync
    
    170 150
         echo Tarring extra components
    

  • bin/make-main-dist.sh
    ... ... @@ -64,14 +64,24 @@ then
    64 64
     	exit 2
    
    65 65
     fi
    
    66 66
     
    
    67
    -DESTDIR=${INSTALL_DIR:-release-$$}
    
    68
    -DOCDIR=${DOCDIR:-doc/cmucl}
    
    69
    -MANDIR=${MANDIR:-man/man1}
    
    70
    -TARGET="`echo $1 | sed 's:/*$::'`"
    
    71 67
     VERSION=$2
    
    72 68
     ARCH=$3
    
    73 69
     OS=$4
    
    74 70
     
    
    71
    +# Where to install the main library of cmucl files
    
    72
    +CMUCLLIBVER="lib/cmucl/$VERSION"
    
    73
    +
    
    74
    +# Where to install everything
    
    75
    +DESTDIR=${INSTALL_DIR:-release-$$}
    
    76
    +
    
    77
    +# Where to install docs
    
    78
    +DOCDIR=${DOCDIR:-share/cmucl/$VERSION/doc}
    
    79
    +
    
    80
    +# Where to install man pages
    
    81
    +MANDIR=${MANDIR:-share/man/man1}
    
    82
    +
    
    83
    +TARGET="`echo $1 | sed 's:/*$::'`"
    
    84
    +
    
    75 85
     # Core file to look for.
    
    76 86
     CORE=lisp.core
    
    77 87
     case $ARCH in
    
    ... ... @@ -123,52 +133,59 @@ fi
    123 133
     # set -x
    
    124 134
     echo Installing main components
    
    125 135
     install -d ${GROUP} ${OWNER} -m 0755 $DESTDIR/bin
    
    126
    -install -d ${GROUP} ${OWNER} -m 0755 $DESTDIR/lib/cmucl
    
    127
    -install -d ${GROUP} ${OWNER} -m 0755 $DESTDIR/lib/cmucl/lib
    
    128
    -install -d ${GROUP} ${OWNER} -m 0755 $DESTDIR/lib/cmucl/lib/subsystems
    
    129
    -install -d ${GROUP} ${OWNER} -m 0755 $DESTDIR/lib/cmucl/lib/ext-formats
    
    136
    +install -d ${GROUP} ${OWNER} -m 0755 $DESTDIR/$CMUCLLIBVER
    
    137
    +install -d ${GROUP} ${OWNER} -m 0755 $DESTDIR/$CMUCLLIBVER/lib
    
    138
    +install -d ${GROUP} ${OWNER} -m 0755 $DESTDIR/$CMUCLLIBVER/lib/subsystems
    
    139
    +install -d ${GROUP} ${OWNER} -m 0755 $DESTDIR/$CMUCLLIBVER/lib/ext-formats
    
    130 140
     install -d ${GROUP} ${OWNER} -m 0755 $DESTDIR/${DOCDIR}
    
    131 141
     install -d ${GROUP} ${OWNER} -m 0755 $DESTDIR/${MANDIR}
    
    132
    -install ${GROUP} ${OWNER} -m 0755 $TARGET/lisp/lisp $DESTDIR/bin/
    
    142
    +install ${GROUP} ${OWNER} -m 0755 $TARGET/lisp/lisp $DESTDIR/bin/lisp-$VERSION
    
    143
    +# Install symlink for lisp
    
    144
    +(cd $DESTDIR/bin; ln -fs lisp-$VERSION lisp)
    
    145
    +# Install symlink for man pages
    
    146
    +(cd $DESTDIR/${MANDIR}
    
    147
    + ln -fs lisp-$VERSION.1 lisp.1
    
    148
    + ln -fs cmucl-$VERSION.1 cmucl.1)
    
    149
    +
    
    133 150
     if [ "$EXECUTABLE" = "true" ]
    
    134 151
     then
    
    135
    -    install ${GROUP} ${OWNER} -m 0644 $TARGET/lisp/lisp.a $DESTDIR/lib/cmucl/lib/
    
    136
    -    install ${GROUP} ${OWNER} -m 0644 $TARGET/lisp/exec-init.o $DESTDIR/lib/cmucl/lib/
    
    137
    -    install ${GROUP} ${OWNER} -m 0644 $TARGET/lisp/exec-final.o $DESTDIR/lib/cmucl/lib/
    
    138
    -    install ${GROUP} ${OWNER} -m 0755 src/tools/linker.sh $DESTDIR/lib/cmucl/lib/
    
    152
    +    install ${GROUP} ${OWNER} -m 0644 $TARGET/lisp/lisp.a $DESTDIR/$CMUCLLIBVER/lib/
    
    153
    +    install ${GROUP} ${OWNER} -m 0644 $TARGET/lisp/exec-init.o $DESTDIR/$CMUCLLIBVER/lib/
    
    154
    +    install ${GROUP} ${OWNER} -m 0644 $TARGET/lisp/exec-final.o $DESTDIR/$CMUCLLIBVER/lib/
    
    155
    +    install ${GROUP} ${OWNER} -m 0755 src/tools/linker.sh $DESTDIR/$CMUCLLIBVER/lib/
    
    139 156
         if [ -f src/tools/$SCRIPT-cmucl-linker-script ]; then
    
    140
    -	install ${GROUP} ${OWNER} -m 0755 src/tools/$SCRIPT-cmucl-linker-script $DESTDIR/lib/cmucl/lib/
    
    157
    +	install ${GROUP} ${OWNER} -m 0755 src/tools/$SCRIPT-cmucl-linker-script $DESTDIR/$CMUCLLIBVER/lib/
    
    141 158
         fi
    
    142 159
     fi
    
    143 160
     for corefile in $TARGET/lisp/$CORE
    
    144 161
     do
    
    145
    -  install ${GROUP} ${OWNER} -m 0644 $corefile $DESTDIR/lib/cmucl/lib/
    
    162
    +  install ${GROUP} ${OWNER} -m 0644 $corefile $DESTDIR/$CMUCLLIBVER/lib/
    
    146 163
     done
    
    147 164
     install ${GROUP} ${OWNER} -m 0755 src/tools/load-foreign.csh src/tools/config \
    
    148
    -	$DESTDIR/lib/cmucl/lib/
    
    165
    +	$DESTDIR/$CMUCLLIBVER/lib/
    
    149 166
     install ${GROUP} ${OWNER} -m 0644 src/tools/config.lisp \
    
    150
    -	$DESTDIR/lib/cmucl/lib/
    
    167
    +	$DESTDIR/$CMUCLLIBVER/lib/
    
    151 168
     install ${GROUP} ${OWNER} -m 0644 src/code/default-site-init.lisp \
    
    152
    -	$DESTDIR/lib/cmucl/lib/
    
    169
    +	$DESTDIR/$CMUCLLIBVER/lib/
    
    153 170
     install ${GROUP} ${OWNER} -m 0644 $TARGET/lisp/lisp.nm $TARGET/lisp/lisp.map \
    
    154
    -	$TARGET/lisp/internals.h $TARGET/lisp/internals.inc $DESTDIR/lib/cmucl/
    
    155
    -install ${GROUP} ${OWNER} -m 0755 src/tools/sample-wrapper $DESTDIR/lib/cmucl/
    
    171
    +	$TARGET/lisp/internals.h $TARGET/lisp/internals.inc $DESTDIR/$CMUCLLIBVER/
    
    172
    +install ${GROUP} ${OWNER} -m 0755 src/tools/sample-wrapper $DESTDIR/$CMUCLLIBVER/
    
    156 173
     
    
    157 174
     for f in gray-streams gray-compat simple-streams iodefs
    
    158 175
     do
    
    159
    -    install ${GROUP} ${OWNER} -m 0644 $TARGET/pcl/$f-library.$FASL $DESTDIR/lib/cmucl/lib/subsystems/
    
    176
    +    install ${GROUP} ${OWNER} -m 0644 $TARGET/pcl/$f-library.$FASL $DESTDIR/$CMUCLLIBVER/lib/subsystems/
    
    160 177
     done
    
    161 178
     
    
    162 179
     for f in src/pcl/simple-streams/external-formats/*.lisp src/pcl/simple-streams/external-formats/aliases src/i18n/unidata.bin
    
    163 180
     do
    
    164
    -    install ${GROUP} ${OWNER} -m 0644 $f $DESTDIR/lib/cmucl/lib/ext-formats/
    
    181
    +    install ${GROUP} ${OWNER} -m 0644 $f $DESTDIR/$CMUCLLIBVER/lib/ext-formats/
    
    165 182
     done
    
    166 183
     
    
    167 184
     # set -x
    
    168 185
     # Create the directories for asdf and defsystem
    
    169 186
     for f in asdf defsystem asdf/doc
    
    170 187
     do
    
    171
    -    install -d ${GROUP} ${OWNER} -m 0755 $DESTDIR/lib/cmucl/lib/contrib/$f
    
    188
    +    install -d ${GROUP} ${OWNER} -m 0755 $DESTDIR/$CMUCLLIBVER/lib/contrib/$f
    
    172 189
     done
    
    173 190
     
    
    174 191
     case `uname -s` in
    
    ... ... @@ -176,34 +193,34 @@ case `uname -s` in
    176 193
       *) UCONTRIB="unix" ;;
    
    177 194
     esac
    
    178 195
     
    
    179
    -install -d ${GROUP} ${OWNER} -m 0755 $DESTDIR/lib/cmucl/lib/contrib/unix
    
    180
    -install ${GROUP} ${OWNER} -m 0644 $TARGET/contrib/unix/$UCONTRIB.$FASL $DESTDIR/lib/cmucl/lib/contrib/unix
    
    181
    -install ${GROUP} ${OWNER} -m 0644 src/contrib/load-unix.lisp $DESTDIR/lib/cmucl/lib/contrib
    
    182
    -install ${GROUP} ${OWNER} -m 0644 src/contrib/unix/${UCONTRIB}.lisp $DESTDIR/lib/cmucl/lib/contrib/unix
    
    196
    +install -d ${GROUP} ${OWNER} -m 0755 $DESTDIR/$CMUCLLIBVER/lib/contrib/unix
    
    197
    +install ${GROUP} ${OWNER} -m 0644 $TARGET/contrib/unix/$UCONTRIB.$FASL $DESTDIR/$CMUCLLIBVER/lib/contrib/unix
    
    198
    +install ${GROUP} ${OWNER} -m 0644 src/contrib/load-unix.lisp $DESTDIR/$CMUCLLIBVER/lib/contrib
    
    199
    +install ${GROUP} ${OWNER} -m 0644 src/contrib/unix/${UCONTRIB}.lisp $DESTDIR/$CMUCLLIBVER/lib/contrib/unix
    
    183 200
     
    
    184 201
     # Copy the source files for asdf and defsystem
    
    185 202
     for f in `(cd src; find contrib/asdf contrib/defsystem -type f -print | grep -v CVS)`
    
    186 203
     do
    
    187
    -    install ${GROUP} ${OWNER} -m 0644 src/$f $DESTDIR/lib/cmucl/lib/$f
    
    204
    +    install ${GROUP} ${OWNER} -m 0644 src/$f $DESTDIR/$CMUCLLIBVER/lib/$f
    
    188 205
     done
    
    189 206
     
    
    190 207
     # Install the fasl files for asdf and defsystem
    
    191 208
     for f in asdf defsystem
    
    192 209
     do
    
    193
    -    install ${GROUP} ${OWNER} -m 0644 $TARGET/contrib/$f/$f.$FASL $DESTDIR/lib/cmucl/lib/contrib/$f
    
    210
    +    install ${GROUP} ${OWNER} -m 0644 $TARGET/contrib/$f/$f.$FASL $DESTDIR/$CMUCLLIBVER/lib/contrib/$f
    
    194 211
     done
    
    195 212
     
    
    196 213
     # Install the docs for asdf
    
    197 214
     for f in src/contrib/asdf/doc/*
    
    198 215
     do
    
    199 216
         base=`basename $f`
    
    200
    -    install ${GROUP} ${OWNER} -m 0644 $f $DESTDIR/lib/cmucl/lib/contrib/asdf/doc/$base
    
    217
    +    install ${GROUP} ${OWNER} -m 0644 $f $DESTDIR/$CMUCLLIBVER/lib/contrib/asdf/doc/$base
    
    201 218
     done
    
    202 219
     
    
    203 220
     install ${GROUP} ${OWNER} -m 0644 src/general-info/cmucl.1 \
    
    204
    -	$DESTDIR/${MANDIR}/
    
    221
    +	$DESTDIR/${MANDIR}/cmucl-$VERSION.1
    
    205 222
     install ${GROUP} ${OWNER} -m 0644 src/general-info/lisp.1 \
    
    206
    -	$DESTDIR/${MANDIR}/
    
    223
    +	$DESTDIR/${MANDIR}/lisp-$VERSION.1
    
    207 224
     install ${GROUP} ${OWNER} -m 0644 src/general-info/README $DESTDIR/${DOCDIR}
    
    208 225
     if [ -f src/general-info/release-$VERSION.txt ] 
    
    209 226
     then
    

  • bin/make-src-dist.sh
    ... ... @@ -52,12 +52,18 @@ else
    52 52
         VERSION="`date '+%Y-%m-%d-%H:%M:%S'`"
    
    53 53
     fi
    
    54 54
     
    
    55
    +DESTDIR=${INSTALL_DIR:-release-$$}
    
    56
    +
    
    55 57
     echo Creating source distribution
    
    56 58
     GTAR_OPTIONS="--exclude=.git --exclude='*.pot.~*~'"
    
    59
    +install -d ${GROUP} ${OWNER} -m 0755 $DESTDIR/share/cmucl/$VERSION/
    
    60
    +install ${GROUP} ${OWNER} -m 0755 bin/run-unit-tests.sh $DESTDIR/bin
    
    61
    +${GTAR} ${GTAR_OPTIONS} -cf - src tests | (cd $DESTDIR/share/cmucl/$VERSION; ${GTAR} xf -)
    
    57 62
     if [ -z "$INSTALL_DIR" ]; then
    
    58 63
         # echo "  Compressing with $ZIP"
    
    59
    -    ${GTAR} ${GTAR_OPTIONS} ${COMPRESS} -cf cmucl-src-$VERSION.tar.$COMPRESS_EXT bin src tests
    
    64
    +    ls $DESTDIR/share/cmucl/$VERSION/
    
    65
    +    ${GTAR} ${GTAR_OPTIONS} ${COMPRESS} -C $DESTDIR -cf cmucl-src-$VERSION.tar.$COMPRESS_EXT share/cmucl/$VERSION/src
    
    60 66
     else
    
    61 67
         # Install in the specified directory
    
    62
    -    ${GTAR} ${GTAR_OPTIONS} -cf - bin src tests | (cd $INSTALL_DIR; ${GTAR:-tar} xf -)
    
    68
    +    ${GTAR} ${GTAR_OPTIONS} -cf - src tests | (cd $DESTDIR/share/cmucl/$VERSION; ${GTAR:-tar} xf -)
    
    63 69
     fi

  • bin/run-unit-tests.sh
    ... ... @@ -6,7 +6,8 @@
    6 6
     # then just those tests are run.
    
    7 7
     
    
    8 8
     usage() {
    
    9
    -    echo "run-tests.sh [?] [-l lisp] [tests]"
    
    9
    +    echo "run-tests.sh [?] [-d test-dir] [-l lisp] [tests]"
    
    10
    +    echo "    -d test-dir  Directory containing the unit test files"
    
    10 11
         echo "    -l lisp      Lisp to use for the tests; defaults to lisp"
    
    11 12
         echo "    -?           This help message"
    
    12 13
         echo ""
    
    ... ... @@ -23,10 +24,11 @@ usage() {
    23 24
     }
    
    24 25
     
    
    25 26
     LISP=lisp
    
    26
    -while getopts "h?l:" arg
    
    27
    +while getopts "h?l:d:" arg
    
    27 28
     do
    
    28 29
         case $arg in
    
    29 30
           l) LISP=$OPTARG ;;
    
    31
    +      d) TESTDIR=$OPTARG ;;
    
    30 32
           \?) usage ;;
    
    31 33
         esac
    
    32 34
     done
    
    ... ... @@ -47,14 +49,21 @@ function cleanup {
    47 49
     
    
    48 50
     trap cleanup EXIT
    
    49 51
     
    
    52
    +if [ -n "${TESTDIR}" ]; then
    
    53
    +    TESTDIRARG=" :test-directory \"$TESTDIR/\""
    
    54
    +else
    
    55
    +    TESTDIR="tests/"
    
    56
    +    TESTDIRARG=""
    
    57
    +fi
    
    50 58
     # Compile up the C file that is used for testing alien funcalls to
    
    51 59
     # functions that return integer types of different lengths.  We use
    
    52 60
     # gcc since clang isn't always available.
    
    53
    -(cd tests; gcc -m32 -O3 -c test-return.c)
    
    61
    +(cd "$TESTDIR"; gcc -m32 -O3 -c test-return.c)
    
    54 62
     
    
    55 63
     if [ $# -eq 0 ]; then
    
    64
    +    # Test directory arg for run-all-tests if a non-default 
    
    56 65
         # No args so run all the tests
    
    57
    -    $LISP -nositeinit -noinit -load tests/run-tests.lisp -eval '(cmucl-test-runner:run-all-tests)'
    
    66
    +    $LISP -nositeinit -noinit -load "$TESTDIR"/run-tests.lisp -eval "(cmucl-test-runner:run-all-tests ${TESTDIRARG})"
    
    58 67
     else
    
    59 68
         # Run selected files.  Convert each file name to uppercase and append "-TESTS"
    
    60 69
         result=""
    
    ... ... @@ -63,6 +72,6 @@ else
    63 72
     	new=`echo $f | tr '[a-z]' '[A-Z]'`
    
    64 73
             result="$result "\"$new-TESTS\"
    
    65 74
         done
    
    66
    -    $LISP -nositeinit -noinit -load tests/run-tests.lisp -eval "(progn (cmucl-test-runner:load-test-files) (cmucl-test-runner:run-test $result))"
    
    75
    +    $LISP -nositeinit -noinit -load "$TESTDIR"/run-tests.lisp -eval "(progn (cmucl-test-runner:load-test-files) (cmucl-test-runner:run-test $result))"
    
    67 76
     fi
    
    68 77
     

  • src/code/commandline.lisp
    ... ... @@ -416,5 +416,9 @@
    416 416
       (format t "~A~%" (lisp-implementation-version))
    
    417 417
       (ext:quit))
    
    418 418
     
    
    419
    +;; the switches "-version" and "--version" are never actually called
    
    420
    +;; from lisp because main() handles it and returns before the lisp
    
    421
    +;; initial function is ever run.  It's here so that -help will print
    
    422
    +;; it out so the user knows about it.
    
    419 423
     (defswitch "version" #'version-switch-demon
    
    420
    -  "Prints the cmucl version and exits")
    424
    +  "Prints the cmucl version and exits, without loading the lisp core.")

  • src/code/default-site-init.lisp
    ... ... @@ -32,13 +32,22 @@
    32 32
     ;;;   bin/
    
    33 33
     ;;;   lib/
    
    34 34
     ;;;    cmucl/
    
    35
    -;;;     lib/
    
    36
    -;;;      lisp*.coore
    
    37
    -;;;   man/
    
    38
    -;;;   src/
    
    35
    +;;;     <version>/
    
    36
    +;;;       lib/
    
    37
    +;;;   share/
    
    38
    +;;;    cmucl/
    
    39
    +;;;     <version>/
    
    40
    +;;;      src/
    
    41
    +;;;      tests/
    
    42
    +;;;    man/
    
    43
    +;;;     man1/
    
    39 44
     ;;;
    
    40 45
     ;;; If your sources are located somewhere else, change this
    
    41 46
     ;;; accordingly.
    
    42
    -(setf (search-list "target:")
    
    43
    -      '("library:../src/"))
    
    47
    +(push (pathname
    
    48
    +       (concatenate 'string
    
    49
    +		    "library:../../../../share/cmucl/"
    
    50
    +		    lisp::*lisp-implementation-version*
    
    51
    +		    "/src/"))
    
    52
    +      (search-list "target:"))
    
    44 53
     

  • src/compiler/arm/parms.lisp
    ... ... @@ -343,11 +343,11 @@
    343 343
         :key-or-value
    
    344 344
     
    
    345 345
         lisp::*unidata-path*
    
    346
    +    lisp::*lisp-implementation-version*
    
    346 347
         
    
    347 348
         ;; Some spare static symbols.  Useful for adding another static
    
    348 349
         ;; symbol without having to do a cross-compile.  Just rename one
    
    349 350
         ;; of these to the desired name.
    
    350
    -    spare-9
    
    351 351
         spare-8
    
    352 352
         spare-7
    
    353 353
         spare-6
    

  • src/compiler/ppc/parms.lisp
    ... ... @@ -295,9 +295,9 @@
    295 295
         :key-and-value
    
    296 296
         :key-or-value
    
    297 297
         
    
    298
    +    lisp::*lisp-implementation-version*
    
    298 299
         ;; Spare symbols.  Rename these when you need to add some static
    
    299 300
         ;; symbols and don't want to do a cross-compile.
    
    300
    -    sparc-9
    
    301 301
         spare-8
    
    302 302
         spare-7
    
    303 303
         spare-6
    

  • src/compiler/sparc/parms.lisp
    ... ... @@ -358,11 +358,11 @@
    358 358
         *fp-constant-0f0*
    
    359 359
     
    
    360 360
         lisp::*unidata-path*
    
    361
    +    lisp::*lisp-implementation-version*
    
    361 362
         
    
    362 363
         ;; Some spare static symbols.  Useful for adding another static
    
    363 364
         ;; symbol without having to do a cross-compile.  Just rename one
    
    364 365
         ;; of these to the desired name.
    
    365
    -    spare-9
    
    366 366
         spare-8
    
    367 367
         spare-7
    
    368 368
         spare-6
    

  • src/compiler/x86/parms.lisp
    ... ... @@ -380,9 +380,9 @@
    380 380
           :key-or-value
    
    381 381
     
    
    382 382
           lisp::*unidata-path*
    
    383
    +      lisp::*lisp-implementation-version*
    
    383 384
           ;; Spare symbols.  Rename these when you need to add some static
    
    384 385
           ;; symbols and don't want to do a cross-compile.
    
    385
    -      spare-9
    
    386 386
           spare-8
    
    387 387
           spare-7
    
    388 388
           spare-6
    

  • src/general-info/release-21f.md
    ... ... @@ -27,6 +27,8 @@ public domain.
    27 27
         * The RNG has changed from an old version of xoroshiro128+ to
    
    28 28
           xoroshiro128**.  This means sequences of random numbers will be
    
    29 29
           different from before.  See ~~#276~~.
    
    30
    +    * The layout of the distribution has changed.  Version numbers are
    
    31
    +      added to files and directories.  For the exact layout, see !261.
    
    30 32
       * ANSI compliance fixes:
    
    31 33
       * Bug fixes:
    
    32 34
       * Gitlab tickets:
    
    ... ... @@ -112,6 +114,8 @@ public domain.
    112 114
         * ~~#360~~ Adding site-init file
    
    113 115
         * ~~#361~~ Add herald item to mention where to report issues
    
    114 116
         * ~~#362~~ Simplify "library:" search-list
    
    117
    +    * ~~#363~~ Version numbers added to files and directories.  The
    
    118
    +      distribution layout has changed.
    
    115 119
         * ~~#364~~ Add interface to `mkdtemp` and `mkstemp`
    
    116 120
         * ~~#367~~ Add stream:string-count-octets to count octets in a string
    
    117 121
         * ~~#369~~ Improve docstring for `unix::unix-setlocale`
    

  • src/i18n/locale/cmucl-bsd-os.pot
    ... ... @@ -15,10 +15,6 @@ msgstr ""
    15 15
     "Content-Type: text/plain; charset=UTF-8\n"
    
    16 16
     "Content-Transfer-Encoding: 8bit\n"
    
    17 17
     
    
    18
    -#: src/code/bsd-os.lisp
    
    19
    -msgid "Unix system call getrusage failed: ~A."
    
    20
    -msgstr ""
    
    21
    -
    
    22 18
     #: src/code/signal.lisp
    
    23 19
     msgid "Emt instruction"
    
    24 20
     msgstr ""
    

  • src/i18n/locale/cmucl-unix.pot
    ... ... @@ -1419,8 +1419,8 @@ msgstr ""
    1419 1419
     
    
    1420 1420
     #: src/code/unix.lisp
    
    1421 1421
     msgid ""
    
    1422
    -"Set all the categories of the locale from the values of the\n"
    
    1423
    -"  environment variables using setlocale(LC_ALL, \"\").\n"
    
    1422
    +"Set all the categories of the locale according to the values of\n"
    
    1423
    +"  the environment variables by calling setlocale(LC_ALL, \"\").\n"
    
    1424 1424
     "\n"
    
    1425 1425
     "  Returns 0 on success and -1 if setlocale failed."
    
    1426 1426
     msgstr ""
    
    ... ... @@ -1436,3 +1436,20 @@ msgstr ""
    1436 1436
     msgid "Get the codeset from the locale"
    
    1437 1437
     msgstr ""
    
    1438 1438
     
    
    1439
    +#: src/code/unix.lisp
    
    1440
    +msgid ""
    
    1441
    +"Generates a unique temporary file name from TEMPLATE, and creates\n"
    
    1442
    +"  and opens the file.  On success, the corresponding file descriptor\n"
    
    1443
    +"  and name of the file is returned.\n"
    
    1444
    +"\n"
    
    1445
    +" The last six characters of the template must be \"XXXXXX\"."
    
    1446
    +msgstr ""
    
    1447
    +
    
    1448
    +#: src/code/unix.lisp
    
    1449
    +msgid ""
    
    1450
    +"Generate a uniquely named temporary directory from Template,\n"
    
    1451
    +"  which must have \"XXXXXX\" as the last six characters.  The\n"
    
    1452
    +"  directory is created with permissions 0700.  The name of the\n"
    
    1453
    +"  directory is returned."
    
    1454
    +msgstr ""
    
    1455
    +

  • src/i18n/locale/cmucl.pot
    ... ... @@ -6060,7 +6060,7 @@ msgstr ""
    6060 6060
     #: src/code/commandline.lisp
    
    6061 6061
     msgid ""
    
    6062 6062
     "Evaluate the specified Lisp expression during the start up\n"
    
    6063
    -"  sequence.  the value of the form will not be printed unless it is\n"
    
    6063
    +"  sequence.  The value of the form will not be printed unless it is\n"
    
    6064 6064
     "  wrapped in a form that does output."
    
    6065 6065
     msgstr ""
    
    6066 6066
     
    
    ... ... @@ -6182,7 +6182,7 @@ msgstr ""
    6182 6182
     #: src/code/commandline.lisp
    
    6183 6183
     msgid ""
    
    6184 6184
     "Causes Lisp to start up silently, disabling printing of the herald\n"
    
    6185
    -"  and causing most unnecessary noise, like GC messages,load messages,\n"
    
    6185
    +"  and causing most unnecessary noise, like GC messages, load messages,\n"
    
    6186 6186
     "  etc. to be suppressed."
    
    6187 6187
     msgstr ""
    
    6188 6188
     
    
    ... ... @@ -6197,7 +6197,7 @@ msgid "Specify the unidata.bin file to be used."
    6197 6197
     msgstr ""
    
    6198 6198
     
    
    6199 6199
     #: src/code/commandline.lisp
    
    6200
    -msgid "~&Usage: ~A <options>~2%"
    
    6200
    +msgid "~&Usage: ~A <options> [-- [app-args]*]~2%"
    
    6201 6201
     msgstr ""
    
    6202 6202
     
    
    6203 6203
     #: src/code/commandline.lisp
    
    ... ... @@ -6205,7 +6205,7 @@ msgid "Print out the command line options and exit"
    6205 6205
     msgstr ""
    
    6206 6206
     
    
    6207 6207
     #: src/code/commandline.lisp
    
    6208
    -msgid "Prints the cmucl version and exits"
    
    6208
    +msgid "Prints the cmucl version and exits, without loading the lisp core."
    
    6209 6209
     msgstr ""
    
    6210 6210
     
    
    6211 6211
     #: src/code/env-access.lisp
    

  • src/lisp/lisp.c
    ... ... @@ -42,6 +42,12 @@
    42 42
     #include <time.h>
    
    43 43
     #endif
    
    44 44
     
    
    45
    +#include "cmucl-version.h"
    
    46
    +
    
    47
    +#ifndef CMUCL_VERSION
    
    48
    +#error CMUCL_VERSION not defined!
    
    49
    +#endif
    
    50
    +
    
    45 51
     
    
    46 52
     
    
    47 53
     /* SIGINT handler that invokes the monitor. */
    
    ... ... @@ -89,10 +95,11 @@ alloc_str_list(const char *list[])
    89 95
     }
    
    90 96
     
    
    91 97
     /* Default paths for CMUCLLIB */
    
    98
    +
    
    99
    +static char cmucl_version[] = CMUCL_VERSION;
    
    100
    +
    
    92 101
     static char *cmucllib_search_list[] = {
    
    93
    -    "./.",
    
    94
    -    "./../lib/cmucl/lib",
    
    95
    -    "./../lib",
    
    102
    +    "./../lib/cmucl/" CMUCL_VERSION "/lib",
    
    96 103
         NULL
    
    97 104
     };
    
    98 105
     
    
    ... ... @@ -335,7 +342,7 @@ search_core(const char *lib, const char *default_core)
    335 342
     	    return buf;
    
    336 343
     	} else {
    
    337 344
     	    if (debug_lisp_search) {
    
    338
    -		fprintf(stderr, "Found it, but we can't read it!\n");
    
    345
    +		fprintf(stderr, "Does not exist, or can't read it if it does!\n");
    
    339 346
     	    }
    
    340 347
     	}
    
    341 348
         } while (*lib++ == ':');
    
    ... ... @@ -719,7 +726,15 @@ main(int argc, const char *argv[], const char *envp[])
    719 726
     	    debug_lisp_search = TRUE;
    
    720 727
             } else if (match_option(arg, "unidata")) {
    
    721 728
               unidata = *++argptr;
    
    722
    -        }
    
    729
    +        } else if ((strcmp(arg, "-version") == 0) ||
    
    730
    +		   (strcmp(arg, "--version") == 0)) {
    
    731
    +	    /*
    
    732
    +	     * Print the version and exit; we don't want to do
    
    733
    +	     * anything else!
    
    734
    +	     */
    
    735
    +	    printf("%s\n", cmucl_version);
    
    736
    +	    return 0;
    
    737
    +	}
    
    723 738
         }
    
    724 739
     
    
    725 740
         default_core = arch_init(fpu_mode);
    
    ... ... @@ -946,6 +961,10 @@ main(int argc, const char *argv[], const char *envp[])
    946 961
         }
    
    947 962
     #endif
    
    948 963
         
    
    964
    +#ifdef LISP_IMPLEMENTATION_VERSION
    
    965
    +    SetSymbolValue(LISP_IMPLEMENTATION_VERSION, alloc_string(cmucl_version));
    
    966
    +#endif
    
    967
    +
    
    949 968
         /*
    
    950 969
          * Pick off sigint until the lisp system gets far enough along to
    
    951 970
          * install it's own.
    

  • src/tools/worldload.lisp
    ... ... @@ -31,12 +31,6 @@
    31 31
     ;(setf lisp::*enable-dynamic-space-code* t)
    
    32 32
     
    
    33 33
     
    
    34
    -;;; Get some data on this core.
    
    35
    -;;;
    
    36
    -(write-string "What is the current lisp-implementation-version? ")
    
    37
    -(force-output)
    
    38
    -(set '*lisp-implementation-version* (read-line))
    
    39
    -
    
    40 34
     ;;; Load the rest of the reader (maybe byte-compiled.)
    
    41 35
     (maybe-byte-load "target:code/sharpm")
    
    42 36
     (maybe-byte-load "target:code/backq")