1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-02-22 07:51:17 -08:00

Removing tool/robot, as it's no use to anyone else.

Copied from Perforce
 Change: 30237
 ServerID: perforce.ravenbrook.com
This commit is contained in:
Richard Brooksby 2002-06-18 12:49:41 +01:00
parent 72bd1af90e
commit ec19cb2a6d
24 changed files with 0 additions and 1335 deletions

View file

@ -1,13 +0,0 @@
MEMORY MANAGEMENT ROBOT
$HopeName$
The Memory Management Robot is a pseudo-user who performs tedious
tasks on behalf of the MM group and reports any problems found. The
crontab files used to perform these automatic actions can be found in
HOMEmm!etc:*.cron.
For information about the Adaptive Memory Management group, see the
web page <URL:http://webhost/~mm/> or the MM Information database in
Spring.

View file

@ -1,65 +0,0 @@
#!/bin/sh
#
# Build and test MM/Dylan product at tip of branch MM_dylan_dove
#
# $HopeName$
script="`basename $0`"
platform=$1
varieties="ci hi he"
msg () {
echo "$script $platform: $*" 1>&2
}
die () {
msg "$@"
exit 1
}
test -d $HOME/Builds || mkdir $HOME/Builds ||
die "Unable to create Builds directory"
cd $HOME/Builds &&
rm -rf MM_dylan_dove &&
mkdir MM_dylan_dove &&
cd MM_dylan_dove ||
die "Unable to get to Builds/MM_dylan_dove directory"
hope co -compound MMsrc -branch MM_dylan_dove -recursive \
-writable-files quit -missing-dir create -extra-files skip ||
die "Unable to check out MMsrc(MM_dylan_dove) from HOPE"
## Build a library
build_lib () {
for variety in $varieties
do
date
gnumake -rf ${platform}.gmk VARIETY=$variety $1 ||
die "Unable to build library $1 of MM_dylan_dove"
done
}
## Build and run a test
do_tests () {
for variety in $varieties
do
gnumake -rf ${platform}.gmk VARIETY=$variety $1 ||
die "$1 failed for variety $variety of MM_dylan_dove"
rm mpsio.log
done
}
cd src
build_lib mpsplan.a
do_tests testrun
# If the tests succeeded, delete the junk
cd $HOME/Builds &&
rm -rf MM_dylan_dove

View file

@ -1,66 +0,0 @@
#!/bin/sh
#
# Build and test MM/Dylan product at tip of branch MM_dylan_jackdaw
#
# $HopeName: HOMEmm!bin:build:MM_dylan_jackdaw(trunk.1) $
script="`basename $0`"
platform=$1
varieties="ci hi he"
msg () {
echo "$script $platform: $*" 1>&2
}
die () {
msg "$@"
exit 1
}
test -d $HOME/Builds || mkdir $HOME/Builds ||
die "Unable to create Builds directory"
cd $HOME/Builds &&
rm -rf MM_dylan_jackdaw &&
mkdir MM_dylan_jackdaw &&
cd MM_dylan_jackdaw ||
die "Unable to get to Builds/MM_dylan_jackdaw directory"
hope co -compound MMsrc -branch MM_dylan_jackdaw -recursive \
-writable-files quit -missing-dir create -extra-files skip ||
die "Unable to check out MMsrc(MM_dylan_jackdaw) from HOPE"
## Build a library
build_lib () {
for variety in $varieties
do
date
gnumake -rf ${platform}.gmk VARIETY=$variety $1 ||
die "Unable to build library $1 of MM_dylan_jackdaw"
done
}
## Build and run a test
do_tests () {
for variety in $varieties
do
gnumake -rf ${platform}.gmk VARIETY=$variety $1 ||
die "$1 failed for variety $variety of MM_dylan_jackdaw"
rm mpsio.log
done
}
cd src
build_lib mpsplan.a
build_lib mmdw.a
do_tests testrun
# If the tests succeeded, delete the junk
cd $HOME/Builds &&
rm -rf MM_dylan_jackdaw

View file

@ -1,68 +0,0 @@
#!/bin/sh
#
# Build and test MM/Dylan product at tip of branch MM_dylan_kinglet
#
# $HopeName$
script="`basename $0`"
platform=$1
varieties="ci hi he"
msg () {
echo "$script $platform: $*" 1>&2
}
die () {
msg "$@"
exit 1
}
test -d $HOME/Builds || mkdir $HOME/Builds ||
die "Unable to create Builds directory"
cd $HOME/Builds &&
rm -rf MM_dylan_kinglet &&
mkdir MM_dylan_kinglet &&
cd MM_dylan_kinglet ||
die "Unable to get to Builds/MM_dylan_kinglet directory"
hope co -compound MMsrc -branch MM_dylan_kinglet -recursive \
-writable-files quit -missing-dir create -extra-files skip ||
die "Unable to check out MMsrc(MM_dylan_kinglet) from HOPE"
## Build a library
build_lib () {
for variety in $varieties
do
date
gnumake -rf ${platform}.gmk VARIETY=$variety $1 ||
die "Unable to build library $1 of MM_dylan_kinglet"
done
}
## Build and run a test
do_tests () {
for variety in $varieties
do
gnumake -rf ${platform}.gmk VARIETY=$variety $1 ||
die "$1 failed for variety $variety of MM_dylan_kinglet"
rm mpsio.log
done
}
cd src
build_lib mpsplan.a
build_lib mmdw.a
do_tests testrun
# If the tests succeeded, delete the junk
cd $HOME/Builds &&
rm -rf MM_dylan_kinglet

View file

@ -1,81 +0,0 @@
#!/bin/sh
#
# Build and test MM (the MMsrc compound) at tip of branch MM_epcore_anchovy
#
# $HopeName: HOMEmm!bin:build:MM_epcore_anchovy(trunk.1) $
script="`basename $0`"
platform=$1
varieties="ti hi we"
msg () {
echo "$script $platform: $*" 1>&2
}
die () {
msg "$@"
exit 1
}
test -d $HOME/Builds || mkdir $HOME/Builds ||
die "Unable to create Builds directory"
cd $HOME/Builds &&
rm -rf MM_epcore_anchovy &&
mkdir MM_epcore_anchovy &&
cd MM_epcore_anchovy ||
die "Unable to get to Builds/MM_epcore_anchovy directory"
hope co -compound MMsrc -branch MM_epcore_anchovy -recursive \
-writable-files quit -missing-dir create -extra-files skip ||
die "Unable to check out MMsrc(MM_epcore_anchovy) from HOPE"
## Build a library
build_lib () {
for variety in $varieties
do
date
gnumake -rf ${platform}.gmk VARIETY=$variety $1 ||
die "Unable to build library $1 of MM_epcore_anchovy"
done
}
## Build and run a test
do_tests () {
for variety in $varieties
do
gnumake -rf ${platform}.gmk VARIETY=$variety $1 ||
die "$1 failed for variety $variety of MM_epcore_anchovy"
rm mpsio.log
done
}
cd src
### Turn telemetry on
export MPS_TELEMETRY_CONTROL
MPS_TELEMETRY_CONTROL=-1
### SW builds have different compilation options, so they ought to be
### done separately. Do them first.
build_lib mmsw.a
do_tests testrunep
### Then clean up and do the others.
gnumake -rf $platform.gmk clean ||
die "Unable to clean up trunk"
do_tests testrun
# If the tests succeeded, delete the junk
cd $HOME/Builds &&
rm -rf MM_epcore_anchovy

View file

@ -1,81 +0,0 @@
#!/bin/sh
#
# Build and test MM (the MMsrc compound) at tip of branch MM_epcore_brisling
#
# $HopeName$
script="`basename $0`"
platform=$1
varieties="ti hi we"
msg () {
echo "$script $platform: $*" 1>&2
}
die () {
msg "$@"
exit 1
}
test -d $HOME/Builds || mkdir $HOME/Builds ||
die "Unable to create Builds directory"
cd $HOME/Builds &&
rm -rf MM_epcore_brisling &&
mkdir MM_epcore_brisling &&
cd MM_epcore_brisling ||
die "Unable to get to Builds/MM_epcore_brisling directory"
hope co -compound MMsrc -branch MM_epcore_brisling -recursive \
-writable-files quit -missing-dir create -extra-files skip ||
die "Unable to check out MMsrc(MM_epcore_brisling) from HOPE"
## Build a library
build_lib () {
for variety in $varieties
do
date
gnumake -rf ${platform}.gmk VARIETY=$variety $1 ||
die "Unable to build library $1 of MM_epcore_brisling"
done
}
## Build and run a test
do_tests () {
for variety in $varieties
do
gnumake -rf ${platform}.gmk VARIETY=$variety $1 ||
die "$1 failed for variety $variety of MM_epcore_brisling"
rm mpsio.log
done
}
cd src
### Turn telemetry on
export MPS_TELEMETRY_CONTROL
MPS_TELEMETRY_CONTROL=-1
### SW builds have different compilation options, so they ought to be
### done separately. Do them first.
build_lib mmsw.a
do_tests testrunep
### Then clean up and do the others.
gnumake -rf $platform.gmk clean ||
die "Unable to clean up trunk"
do_tests testrun
# If the tests succeeded, delete the junk
cd $HOME/Builds &&
rm -rf MM_epcore_brisling

View file

@ -1,82 +0,0 @@
#!/usr/local/bin/bash
#
# Build and test MM/EP-core at tip of branch MM_epcore_minnow
#
# $HopeName$
#
script="`basename $0`"
platform=$1
msg () {
echo "$script $platform: $*" 1>&2
}
die () {
msg "$@"
exit 1
}
test -d $HOME/Builds || mkdir $HOME/Builds ||
die "Unable to create Builds directory"
cd $HOME/Builds &&
rm -rf MM_epcore_minnow &&
mkdir MM_epcore_minnow &&
cd MM_epcore_minnow ||
die "Unable to get to Builds/MM_epcore_minnow directory"
hope co -compound MMsrc -branch MM_epcore_minnow -recursive \
-writable-files quit -missing-dir create -extra-files skip ||
die "Unable to check out MMsrc(MM_epcore_minnow) from HOPE"
## Build a library
function build-lib {
for variety in ci he
do
date
gnumake -r -f ${platform}.gmk VARIETY=$variety $1 ||
die "Unable to build library $1 of MM_epcore_minnow"
done
}
## Build and run a test
function do-test {
for variety in ci he
do
date
gnumake -r -f ${platform}.gmk VARIETY=$variety $1 ||
die "Unable to build test $variety/$1 of MM_epcore_minnow"
./$platform/$variety/$1 ||
die "Failed test $variety/$1 of MM_epcore_minnow"
rm mpsio.log
done
}
cd src
### SW builds have different compilation options, so they ought to be
### done separately. Do them first.
build-lib mmsw.a
do-test epvmss
### Then clean up and do the others.
gnumake -r -f $platform.gmk clean ||
die "Unable to clean up MM_epcore_minnow"
for test in lockcov locv mpmss mpsicv poolncv \
qs finalcv arenacv amsss
## Don't run amcss, because we don't need it on this branch
## Don't run awlut, because we don't need it on this branch
do
do-test $test
done
# If the tests succeeded, delete the junk
cd $HOME/Builds &&
rm -rf MM_epcore_minnow

View file

@ -1,83 +0,0 @@
#!/usr/local/bin/bash
#
# Build and test MM/EP-core at tip of branch MM_epcore_sardine
#
# $HopeName$
#
script="`basename $0`"
platform=$1
msg () {
echo "$script $platform: $*" 1>&2
}
die () {
msg "$@"
exit 1
}
test -d $HOME/Builds || mkdir $HOME/Builds ||
die "Unable to create Builds directory"
cd $HOME/Builds &&
rm -rf MM_epcore_sardine &&
mkdir MM_epcore_sardine &&
cd MM_epcore_sardine ||
die "Unable to get to Builds/MM_epcore_sardine directory"
hope co -compound MMsrc -branch MM_epcore_sardine -recursive \
-writable-files quit -missing-dir create -extra-files skip ||
die "Unable to check out MMsrc(MM_epcore_sardine) from HOPE"
## Build a library
function build-lib {
for variety in ci he
do
date
gnumake -r -f ${platform}.gmk VARIETY=$variety $1 ||
die "Unable to build library $1 of MM_epcore_sardine"
done
}
## Build and run a test
function do-test {
for variety in ci he
do
date
gnumake -r -f ${platform}.gmk VARIETY=$variety $1 ||
die "Unable to build test $variety/$1 of MM_epcore_sardine"
./$platform/$variety/$1 ||
die "Failed test $variety/$1 of MM_epcore_sardine"
rm mpsio.log
done
}
cd src
### SW builds have different compilation options, so they ought to be
### done separately. Do them first.
build-lib mmsw.a
do-test epvmss
### Then clean up and do the others.
gnumake -r -f $platform.gmk clean ||
die "Unable to clean up MM_epcore_sardine"
for test in lockcov locv mpmss mpsicv poolncv \
qs finalcv arenacv
## Don't run amcss, because we don't need it on this branch
## Don't run awlut, because we don't need it on this branch
## Don't run amsss, because it takes too long
do
do-test $test
done
# If the tests succeeded, delete the junk
cd $HOME/Builds &&
rm -rf MM_epcore_sardine

View file

@ -1,81 +0,0 @@
#!/bin/sh
#
# Build and test MM (the MM_src compound) at tip of the trunk
#
# $HopeName: HOMEmm!bin:build:MM_src_trunk(trunk.31) $
script="`basename $0`"
platform=$1
varieties="ti ci hi wi ce he we"
msg () {
echo "$script $platform: $*" 1>&2
}
die () {
msg "$@"
exit 1
}
test -d $HOME/Builds || mkdir $HOME/Builds ||
die "Unable to create Builds directory"
cd $HOME/Builds &&
rm -rf MM_src_trunk &&
mkdir MM_src_trunk &&
cd MM_src_trunk ||
die "Unable to get to Builds/MM_src_trunk directory"
hope co -compound MMsrc -branch trunk -recursive \
-writable-files quit -missing-dir create -extra-files skip ||
die "Unable to check out MMsrc(trunk) from HOPE"
## Build a library
build_lib () {
for variety in $varieties
do
date
gnumake -rf ${platform}.gmk VARIETY=$variety $1 ||
die "Unable to build library $1 of trunk"
done
}
## Build and run a test
do_tests () {
for variety in $varieties
do
gnumake -rf ${platform}.gmk VARIETY=$variety $1 ||
die "$1 failed for variety $variety of trunk"
rm mpsio.log
done
}
cd src
### Turn telemetry on
export MPS_TELEMETRY_CONTROL
MPS_TELEMETRY_CONTROL=-1
### SW builds have different compilation options, so they ought to be
### done separately. Do them first.
build_lib mmsw.a
do_tests testrunep
### Then clean up and do the others.
gnumake -rf $platform.gmk clean ||
die "Unable to clean up trunk"
build_lib mps.a
do_tests testrun
gnumake -rf $platform.gmk clean ||
die "Unable to clean up trunk"

View file

@ -1,84 +0,0 @@
#!/usr/local/bin/bash
#
# Build and test MM/EP-core at tip of branch MMdevel_sw_eq
#
# $HopeName$
#
script="`basename $0`"
platform=$1
msg () {
echo "$script $platform: $*" 1>&2
}
die () {
msg "$@"
exit 1
}
test -d $HOME/Builds || mkdir $HOME/Builds ||
die "Unable to create Builds directory"
cd $HOME/Builds &&
rm -rf MMdevel_sw_eq &&
mkdir MMdevel_sw_eq &&
cd MMdevel_sw_eq ||
die "Unable to get to Builds/MMdevel_sw_eq directory"
hope co -compound MMsrc -branch MMdevel_sw_eq -recursive \
-writable-files quit -missing-dir create -extra-files skip ||
die "Unable to check out MMsrc(MMdevel_sw_eq) from HOPE"
## Build a library
function build-lib {
for variety in dp ro
do
date
gnumake -r -f ${platform}.gmk VARIETY=$variety $1 ||
die "Unable to build library $1 of MMdevel_sw_eq"
done
}
## Build and run a test
function do-test {
for variety in dp ro
do
date
gnumake -r -f ${platform}.gmk VARIETY=$variety $1 ||
die "Unable to build test $variety/$1 of MMdevel_sw_eq"
./$platform/$variety/$1 ||
die "Failed test $variety/$1 of MMdevel_sw_eq"
rm mpsio.log
done
}
cd src
### SW builds have different compilation options, so they ought to be
### done separately. Do them first.
build-lib mmsw.a
do-test mpmss
# no tests for epdl
### Then clean up and do the others.
gnumake -r -f $platform.gmk clean ||
die "Unable to clean up MMdevel_sw_eq"
for test in lockcov locv mpsicv poolncv qs
## Don't run amcss, because we don't need it on this branch
## Don't run dwstress, because we don't need it on this branch
## Don't run protcv, because we don't need it on this branch
## Don't run weakcv, because we don't need it on this branch
do
do-test $test
done
# If the tests succeeded, delete the junk
cd $HOME/Builds &&
rm -rf MMdevel_sw_eq

View file

@ -1,16 +0,0 @@
#!/usr/local/bin/bash
# impl.sh.checkout: ROBOT CHECKOUT SCRIPT
#
# $HopeName: HOMEmm!bin:checkout(trunk.9) $
#
# This script is run in the MM Project Robot's home directory (~mm) as
# the user `mm'. It checks out the HOMEmm compound and updates the
# crontab, in order be sure that the robot's files are up to date
# before the other overnight scripts run.
hostname=`hostname`; hostname=${hostname%%.*}
cd $HOME &&
hope checkout -compound HOMEmm -recursive -writable-files skip \
-extra-files delete -missing-dir create &&
crontab $HOME/etc/$hostname.cron

View file

@ -1,89 +0,0 @@
#!/bin/sh
#
# Build the MMsrc compound at tip of branch MM_dylan_jackdaw, and run QA tests
#
# $HopeName: HOMEmm!bin:mmqa:MMQA_dylan_jackdaw(trunk.4) $
script="`basename $0`"
platform=$1
shift
varieties=$*
msg () {
echo "$script $platform: $*" 1>&2
}
die () {
msg "$@"
exit 1
}
test -d $HOME/Builds || mkdir $HOME/Builds ||
die "Unable to create Builds directory"
cd $HOME/Builds &&
rm -rf MMQA_dylan_jackdaw &&
mkdir MMQA_dylan_jackdaw &&
cd MMQA_dylan_jackdaw ||
die "Unable to get to Builds/MMQA_dylan_jackdaw directory"
hope co -compound MMsrc -branch MM_dylan_jackdaw -recursive \
-writable-files quit -missing-dir create -extra-files skip ||
die "Unable to check out MMsrc(MM_dylan_jackdaw) from HOPE"
build=`pwd`
mmsrc=$build/src
mmqa=$build/MMQA
## Build a library
build_lib () {
for variety in $varieties
do
date
gnumake -rf ${platform}.gmk VARIETY=$variety $1 ||
die "Unable to build library $1 of MM_dylan_jackdaw"
done
}
## Build and run MMQA test suites
mmqa_tests () {
MMQA_MPS_INCLUDE_DIR=$mmsrc export MMQA_MPS_INCLUDE_DIR
MMQA_LOG_DIR=./log export MMQA_LOG_DIR
for variety in $varieties
do
MMQA_MPS_LINK_OBJ="$mmsrc/$platform/$variety/mmdw.a \
$mmsrc/$platform/$variety/mpsplan.a" \
export MMQA_MPS_LINK_OBJ
MMQA_MAIL_SUBJECT="MMQA $1 for variety $variety of MM_dylan_jackdaw:" \
export MMQA_MAIL_SUBJECT
perl5 ./test/qa clib || die "Unable to compile MMQA library"
perl5 ./test/qa runset $1 || die "Failed to run MMQA testset"
done
}
cd $build &&
mkdir MMQA &&
cd $mmqa ||
die "Unable to get to MMQA directory"
hope co -compound MMQA -branch trunk -recursive -missing-dir create ||
die "Unable to check out MMQA(trunk) from HOPE"
cd $mmsrc
build_lib mmdw.a
build_lib mpsplan.a
cd $mmqa &&
mmqa_tests testsets/dailydw
# If the tests succeeded, delete the junk
cd $HOME/Builds &&
rm -rf MMQA_dylan_jackdaw

View file

@ -1,89 +0,0 @@
#!/bin/sh
#
# Build the MMsrc compound at tip of branch MM_dylan_kinglet, and run QA tests
#
# $HopeName$
script="`basename $0`"
platform=$1
shift
varieties=$*
msg () {
echo "$script $platform: $*" 1>&2
}
die () {
msg "$@"
exit 1
}
test -d $HOME/Builds || mkdir $HOME/Builds ||
die "Unable to create Builds directory"
cd $HOME/Builds &&
rm -rf MMQA_dylan_kinglet &&
mkdir MMQA_dylan_kinglet &&
cd MMQA_dylan_kinglet ||
die "Unable to get to Builds/MMQA_dylan_kinglet directory"
hope co -compound MMsrc -branch MM_dylan_kinglet -recursive \
-writable-files quit -missing-dir create -extra-files skip ||
die "Unable to check out MMsrc(MM_dylan_kinglet) from HOPE"
build=`pwd`
mmsrc=$build/src
mmqa=$build/MMQA
## Build a library
build_lib () {
for variety in $varieties
do
date
gnumake -rf ${platform}.gmk VARIETY=$variety $1 ||
die "Unable to build library $1 of MM_dylan_kinglet"
done
}
## Build and run MMQA test suites
mmqa_tests () {
MMQA_MPS_INCLUDE_DIR=$mmsrc export MMQA_MPS_INCLUDE_DIR
MMQA_LOG_DIR=./log export MMQA_LOG_DIR
for variety in $varieties
do
MMQA_MPS_LINK_OBJ="$mmsrc/$platform/$variety/mmdw.a \
$mmsrc/$platform/$variety/mpsplan.a" \
export MMQA_MPS_LINK_OBJ
MMQA_MAIL_SUBJECT="MMQA $1 for variety $variety of MM_dylan_kinglet:" \
export MMQA_MAIL_SUBJECT
perl5 ./test/qa clib || die "Unable to compile MMQA library"
perl5 ./test/qa runset $1 || die "Failed to run MMQA testset"
done
}
cd $build &&
mkdir MMQA &&
cd $mmqa ||
die "Unable to get to MMQA directory"
hope co -compound MMQA -branch trunk -recursive -missing-dir create ||
die "Unable to check out MMQA(trunk) from HOPE"
cd $mmsrc
build_lib mmdw.a
build_lib mpsplan.a
cd $mmqa &&
mmqa_tests testsets/dailydw
# If the tests succeeded, delete the junk
cd $HOME/Builds &&
rm -rf MMQA_dylan_kinglet

View file

@ -1,88 +0,0 @@
#!/bin/sh
#
# Build the MMsrc compound at tip of branch MM_epcore_brisling, and run QA tests
#
# $HopeName: HOMEmm!bin:mmqa:MMQA_epcore_brisling(trunk.4) $
script="`basename $0`"
platform=$1
shift
varieties=$*
msg () {
echo "$script $platform: $*" 1>&2
}
die () {
msg "$@"
exit 1
}
test -d $HOME/Builds || mkdir $HOME/Builds ||
die "Unable to create Builds directory"
cd $HOME/Builds &&
rm -rf MMQA_epcore_brisling &&
mkdir MMQA_epcore_brisling &&
cd MMQA_epcore_brisling ||
die "Unable to get to Builds/MMQA_epcore_brisling directory"
build=`pwd`
mmsrc=$build/src
mmqa=$build/mmqa
hope co -compound MMsrc -branch MM_epcore_brisling -recursive \
-missing-dir create ||
die "Unable to check out MMsrc(MM_epcore_brisling) from HOPE"
hope co -compound MMQA -branch trunk -recursive -missing-dir create ||
die "Unable to check out MMQA(trunk) from HOPE"
## Build a library
build_lib () {
for variety in $varieties
do
date
gnumake -rf ${platform}.gmk VARIETY=$variety $1 ||
die "Unable to build library $1 of MM_epcore_brisling"
done
}
## Build and run MMQA test suites
mmqa_tests () {
MMQA_MPS_INCLUDE_DIR=$mmsrc export MMQA_MPS_INCLUDE_DIR
MMQA_LOG_DIR=./log export MMQA_LOG_DIR
for variety in $varieties
do
if [ "$variety" != "$2" ]
then
MMQA_MPS_LINK_OBJ="$mmsrc/$platform/$variety/mmsw.a \
$mmsrc/$platform/$variety/mpsplan.a" \
export MMQA_MPS_LINK_OBJ
MMQA_MAIL_SUBJECT="MMQA $1 for variety $variety of MM_epcore_brisling:" \
export MMQA_MAIL_SUBJECT
perl5 ./test/qa clib || die "Unable to compile MMQA library"
perl5 ./test/qa runset $1 || die "Failed to run MMQA testset"
fi
done
}
cd $mmsrc
build_lib mmsw.a
build_lib mpsplan.a
cd $mmqa &&
mmqa_tests testsets/dailysw &&
mmqa_tests testsets/dailyswa we
# If the tests succeeded, delete the junk
cd $HOME/Builds &&
rm -rf MMQA_epcore_brisling

View file

@ -1,101 +0,0 @@
#!/bin/sh
#
# Build the MMsrc compound at tip of the trunk, and run QA tests
#
# $HopeName: HOMEmm!bin:mmqa:MMQA_src_trunk(trunk.6) $
prog="`basename $0`"
platform=$1
shift
varieties=$*
msg () {
echo "$prog $platform: $*" 1>&2
}
die () {
msg "$@"
exit 1
}
test -d $HOME/Builds || mkdir $HOME/Builds ||
die "Unable to create Builds directory"
cd $HOME/Builds &&
rm -rf MMQA_src_trunk &&
mkdir MMQA_src_trunk &&
cd MMQA_src_trunk ||
die "Unable to get to Builds/MMQA_src_trunk directory"
build=`pwd`
mmsrc=$build/src
mmqa=$build/mmqa
hope co -compound MMsrc -branch trunk -recursive -missing-dir create ||
die "Unable to check out MMsrc(trunk) from HOPE"
hope co -compound MMQA -branch trunk -recursive -missing-dir create ||
die "Unable to check out MMQA(trunk) from HOPE"
## Build a library
build_lib () {
for variety in $varieties
do
date
gnumake -rf ${platform}.gmk VARIETY=$variety $1 ||
die "Unable to build library $1 of trunk"
done
}
## Build and run MMQA test suites
mmqa_tests () {
MMQA_MPS_INCLUDE_DIR=$mmsrc export MMQA_MPS_INCLUDE_DIR
MMQA_LOG_DIR=./log export MMQA_LOG_DIR
for variety in $varieties
do
if [ "$variety" != "$3" ]
then
MMQA_MPS_LINK_OBJ="$mmsrc/$platform/$variety/$2 \
$mmsrc/$platform/$variety/mpsplan.a" \
export MMQA_MPS_LINK_OBJ
MMQA_MAIL_SUBJECT="MMQA $1 for variety $variety of trunk:" \
export MMQA_MAIL_SUBJECT
perl5 ./test/qa clib || die "Unable to compile MMQA library"
perl5 ./test/qa runset $1 || die "Failed to run MMQA testset"
fi
done
}
### SW builds have different compilation options, so they ought to be
### done separately. Do them first.
cd $mmsrc
build_lib mmsw.a
build_lib mpsplan.a
cd $mmqa &&
mmqa_tests testsets/dailysw mmsw.a &&
mmqa_tests testsets/dailyswa mmsw.a we ci
### Then clean up and do the others.
cd $mmsrc
gnumake -rf $platform.gmk clean ||
die "Unable to clean up trunk"
build_lib mmdw.a
build_lib mpsplan.a
cd $mmqa &&
mmqa_tests testsets/dailydw mmdw.a
# If the tests succeeded, delete the junk
cd $HOME/Builds &&
rm -rf MMQA_src_trunk

View file

@ -1,70 +0,0 @@
#!/bin/sh
# impl.sh.overnight: RUN A SCRIPT "OVERNIGHT"
#
# $HopeName: HOMEmm!bin:overnight(trunk.3) $
#
# SYNOPSIS
#
# overnight command args...
#
# DESCRIPTION
#
# This is a general wrapper for a command that you want to run
# unattended. The command output is appended to $HOME/var/log/<name>
# where the name is the basename of the command. If the command exits
# with non-zero status then a mail message is sent to $USER containing
# the tail of the log file, otherwise no action is taken.
#
# This script is more useful than simply using cron, which will mail
# you if the command produces _any_ output, whether or not it is
# successful. Often, you don't want to know if your script succeeds,
# only if it fails.
#
script="`basename $0`"
msg () {
echo "$script: $*" 1>&2
}
die () {
msg "$@"
exit 1
}
# Create log directories if they don't already exist.
test -d $HOME/var || mkdir $HOME/var ||
die "Couldn't create var directory"
test -d $HOME/var/log || mkdir $HOME/var/log ||
die "Couldn't create log directory"
logfile="$HOME/var/log/`basename \"$1\"`"
# truncate log
mv "$logfile" "$logfile~" &&
tail -1048576c < "$logfile~" > "$logfile" &&
rm -f "$logfile~"
(
date "+$script %Y-%m-%d %H:%M:%S started \"$*\""
"$@"
status="$?"
date "+$script %Y-%m-%d %H:%M:%S exited with status $status"
exit "$status"
) >> "$logfile" 2>&1 ||
{
status=$?
hostname="`hostname`"
{
echo "To: $USER"
echo "Subject: Overnight script \"$1\" failed on $hostname"
echo
echo "The overnight script failed with exit code $status on $hostname."
echo "The end of the log reads:"
echo
tail -50 "$logfile" | sed -e 's/^/> /'
} | /usr/lib/sendmail -t
}
exit 0

View file

@ -1,23 +0,0 @@
#!/bin/sh
# ==== TIDY UP ROBOT HOME DIRECTORY ====
#
# This script is run overnight by the Memory Management robot.
# It does various housekeeping tasks and checks on the home directory
# to keep things in order.
script="`basename $0`"
# Clear tmp directory
rm -rf $HOME/tmp
# Truncate log files
cd $HOME/var/log &&
find $HOME/var/log -type f -size +1048576c -print |
while read log
do
mv "$log" "$log~" &&
tail -1048576c < "$log~" > "$log" &&
rm -f "$log~"
done
exit 0

View file

@ -1,7 +0,0 @@
# $HopeName: HOMEmm!etc:deja-vu.cron(trunk.11) $
# minutes hours day-of-month month day-of-week command
10 21 * * * sh -c ". etc/shenv && overnight checkout"
20 21 * * * sh -c "./bin/tidy"
30 21 * * * sh -c ". etc/shenv && overnight ./bin/build/MM_src_trunk sus8gc"
0 1 * * * sh -c ". etc/shenv && overnight ./bin/build/MM_dylan_honeybee sus8gc"
30 4 * * * sh -c ". etc/shenv && overnight ./bin/build/MM_dylan_sunflower sus8gc"

View file

@ -1,4 +0,0 @@
# $HopeName$
# minutes hours day-of-month month day-of-week command
00 01 * * * sh -c ". etc/shenv && overnight checkout"
05 01 * * * sh -c "./bin/tidy"

View file

@ -1,8 +0,0 @@
# $HopeName: HOMEmm!etc:ocoee.cron(trunk.1) $
# minutes hours day-of-month month day-of-week command
53 20 * * * sh -c ". etc/shenv && overnight checkout"
45 22 * * 1-5 sh -c ". etc/shenv && overnight ./bin/build/MM_src_trunk lii4gc"
#30 01 * * 2-5 sh -c ". etc/shenv && overnight ./bin/build/MM_dylan_kinglet lii4gc"
30 02 * * 2-3 sh -c ". etc/shenv && overnight ./bin/mmqa/MMQA_src_trunk lii4gc hi"
#55 20 * * 6 sh -c ". etc/shenv && overnight ./bin/mmqa/MMQA_dylan_kinglet lii4gc ci he"
30 02 * * 4 sh -c ". etc/shenv && overnight ./bin/mmqa/MMQA_src_trunk lii4gc ci wi"

View file

@ -1,11 +0,0 @@
# -*- Mode: Shell-script -*-
# impl.sh.shenv: MM project robot environment setup
# $HopeName: HOMEmm!etc:shenv(trunk.5) $
PATH="$HOME/bin:/usr/local/bin:/usr/ucb:/usr/bin:/bin:/usr/ccs/bin" export PATH
USER=`whoami` export USER
umask 002
# stop HOPE complaining about TZ
HOPETZ=`date | cut -c21-23` export HOPETZ

View file

@ -1,8 +0,0 @@
# $HopeName: HOMEmm!etc:trillian.cron(trunk.31) $
# minutes hours day-of-month month day-of-week command
00 23 * * * sh -c ". etc/shenv && overnight checkout"
05 23 * * * sh -c "./bin/tidy"
30 23 * * * sh -c ". etc/shenv && overnight ./bin/build/MM_src_trunk sos8gc"
50 23 * * * sh -c ". etc/shenv && overnight ./bin/build/MMdevel_sw_eq sospgc"
40 00 * * * sh -c ". etc/shenv && overnight ./bin/build/MM_epcore_anchovy sos8gc"
20 02 * * * sh -c ". etc/shenv && overnight ./bin/build/MM_dylan_jackdaw sos8gc"

View file

@ -1,9 +0,0 @@
# $HopeName: HOMEmm!etc:zaphod.cron(trunk.15) $
# minutes hours day-of-month month day-of-week command
50 20 * * * sh -c ". etc/shenv && overnight checkout"
55 22 * * 1-4 sh -c ". etc/shenv && overnight ./bin/build/MM_src_trunk sos8gc"
#30 01 * * 3 sh -c ". etc/shenv && overnight ./bin/build/MM_epcore_anchovy sos8gc"
00 02 * * 2-5 sh -c ". etc/shenv && overnight ./bin/build/MM_epcore_brisling sos8gc"
40 02 * * 2-5 sh -c ". etc/shenv && overnight ./bin/mmqa/MMQA_src_trunk sos8gc hi we"
55 20 * * 5 sh -c ". etc/shenv && overnight ./bin/mmqa/MMQA_src_trunk sos8gc ci"
00 20 * * 0 sh -c ". etc/shenv && overnight ./bin/mmqa/MMQA_epcore_brisling sos8gc hi we ci"

View file

@ -1,108 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<!-- $HopeName: MMweb_internal!Welcome.html(trunk.10) $-->
<HEAD>
<TITLE>Memory Management</TITLE>
<LINK REV="MADE" HREF="mailto:mm-hackers@harlequin.co.uk">
</HEAD>
<BODY>
<H1>Memory Management</H1>
<P>There used to be an Adaptive Memory Management Group; now there
isn't.</P>
<H2>The Memory Management Reference</H2>
<P>We still maintain <A HREF="http://www.harlequin.com/mm/reference/">The
Memory Management Reference</A> on Harlequin's external web site
(actually Xanalys', but this might change). The latest draft of the
next version is available
<A HREF="http://www-qa.cam.harlequin.co.uk/xanalys/html/software_tools/mm/">on
an internal server</A>; problems in it should be reported to <A
HREF="mailto:mm-web-team">mm-web-team</A>.</P>
<H2>Useful links</H2>
<P>Most useful links can be found in the
<A HREF="http://www.harlequin.com/mm/reference/links.html">The Memory
Management Reference links page</A>; this is just stuff that didn't
make it there, for one reason or another.</P>
<UL>
<LI> <A HREF="http://www.functionalobjects.com/">Functional Objects,
Inc.</A>
<LI> <A HREF="http://www.cs.ukc.ac.uk/events/ISMM2000/">The 2000
International Symposium on Memory Management</A>
<LI> <A HREF="http://www.stairways.com/programming/memorymadness.html">Memory
Madness - Understanding handles and how to use them</A>, article on
Mac memory management
</UL>
<!-- The rest is basically copied from Pekka's bookmarks -->
<H3>Allocators</H3>
<UL>
<LI><A HREF="http://www.cs.colorado.edu/%7Ezorn/Malloc.html">Zorn's list of Malloc/Free Implementations</A>
<LI><A HREF="http://gee.cs.oswego.edu/dl/html/malloc.html">Lea's memory allocator</A>
<LI><A HREF="http://www.cs.utexas.edu/users/emery/hoard/">Hoard: A Fast, Scalable and Memory-Efficient Allocator for SMPs</A>
<LI><A HREF="http://fourmilab.ch/bget/">The BGET Memory Allocator</A>
<LI><A HREF="http://members.tripod.com/%7Eradosoft/UltraHeap/">UltraHeap</A>
<LI><A HREF="http://www.biit.com/">Biit Inc, Home of HeapManager</A>
<LI><A HREF="http://www.ia.pw.edu.pl/Pl-iso/tex-info/libc/libc_27.html">The GNU C Library - Efficiency and Malloc</A>
<LI><A HREF="http://rabi.phys.columbia.edu/%7Ezack/code/malloc.html">Draft API for a Revised Memory Allocator</A>
<LI><A HREF="http://www.surriel.com/zone-alloc.html">Design for the Linux zone-based memory allocator</A>
<LI><A HREF="http://www.dent.med.uni-muenchen.de/%7Ewmglo/malloc-slides.html">Dynamic memory allocator implementations in Linux system libraries</A>
</UL><p>
<H3>Garbage collectors</H3>
<UL>
<LI><A HREF="http://www.hpl.hp.com/personal/Hans_Boehm/gc/">The Boehm garbage collector for C and C++</A>
<LI><A HREF="http://www.yl.is.s.u-tokyo.ac.jp/gc/">Parallel/Distributed Garbage Collectors</A>
<LI><A HREF="http://openresource.com/openres/orgs/DP/P/MALI.shtml">MALI Project</A>
<LI><A HREF="http://www-sor.inria.fr/projects/sspc/">Stub Scion Pair Chains</A>
<LI><A HREF="ftp://ftp.digital.com/pub/DEC/CCgc/">Bartlett's Mostly-Copying GC from DEC WRL</A>
</UL><p>
<H3>Memory debugging tools</H3>
<UL>
<LI><A HREF="http://www.cs.colorado.edu/%7Ezorn/MallocDebug.html">Zorn's list of Debugging Tools</A>
<LI><A HREF="http://www.pascal-central.com/koryn/memory.html">Pascal Flavoured Memory Integrity</A>
<LI><A HREF="ftp://metalab.unc.edu/pub/Linux/devel/lang/c/mpr-2.0.lsm">MPR</A>
</UL>
<H2>Papers</H2>
<P>The versions on webhost are <EM>for distribution within Harlequin
and Xanalys only</EM>. For externally published versions, follow
links to external sites, where provided.</P>
<H3>Pekka P. Pirinen: Barrier techniques for incremental tracing</H3>
<A HREF="http://www.acm.org/pubs/citations/proceedings/plan/286860/p20-pirinen/">
published version</A><BR>
<A HREF="http://webhost.cam.harlequin.co.uk/%7Emm/barrier1.ps">draft, Postscript,
6 pages, 182 KB</A><BR>
<A HREF="http://webhost.cam.harlequin.co.uk/%7Emm/barrier1.pdf">draft, PDF 2.1,
6 pages, 72 dpi, 136 KB</A><BR>
Presented at
<A HREF="http://www.sfu.ca/%7Eburton/ismm98.html">the 1998
International Symposium on Memory Management</A>.
<BLOCKQUOTE>Abstract: This paper presents a classification of barrier
techniques for interleaving tracing with mutator operation during an
incremental garbage collection. The two useful tricolour invariants
are derived from more elementary considerations of graph traversal.
Barrier techniques for maintaining these invariants are classified
according to the action taken at the barrier (such as scanning an
object or changing its colour), and it is shown that the algorithms
described in the literature cover all the possibilities except one.
Unfortunately, the new technique is impractical. Ways of combining
barrier techniques are also discussed.</BLOCKQUOTE>
Comments to <A HREF="mailto:pekka">Pekka</A>, please.
<HR>
<ADDRESS>Contact <A HREF="mailto:mm-hackers">mm-hackers</A></ADDRESS><BR>
Last modified: $Date: 2000/03/13 14:00:19 $
</BODY>
</HTML>