Commit ff6fe7a1 by Jeff Sturm

This commit was generated by cvs2svn to compensate for changes in r69874,

which included commits to RCS files with non-trunk default branches.

From-SVN: r69875
parent 6991c6c9
...@@ -307,6 +307,7 @@ static void add_back_edges(ptr_t p, word n_words, word gc_descr) ...@@ -307,6 +307,7 @@ static void add_back_edges(ptr_t p, word n_words, word gc_descr)
} }
while (currentp < (word *)(p + gc_descr)) { while (currentp < (word *)(p + gc_descr)) {
word current = *currentp++; word current = *currentp++;
FIXUP_POINTER(current);
if (current >= (word)GC_least_plausible_heap_addr && if (current >= (word)GC_least_plausible_heap_addr &&
current <= (word)GC_greatest_plausible_heap_addr) { current <= (word)GC_greatest_plausible_heap_addr) {
ptr_t target = GC_base((GC_PTR)current); ptr_t target = GC_base((GC_PTR)current);
......
...@@ -73,3 +73,9 @@ GC on EWS4800 ...@@ -73,3 +73,9 @@ GC on EWS4800
-- --
Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
When using the new "configure; make" build process, please
run configure with the --disable-shared option. "Make check" does not
yet pass with dynamic libraries. Ther reasons for that are not yet
understood. (HB, paraphrasing message from Hironori SAKAMOTO.)
...@@ -51,7 +51,18 @@ _DLL Defined by Visual C++ if dynamic libraries are being built ...@@ -51,7 +51,18 @@ _DLL Defined by Visual C++ if dynamic libraries are being built
__declspec(dllexport) needs to be added to declarations __declspec(dllexport) needs to be added to declarations
to support the case in which the collector is in a dll. to support the case in which the collector is in a dll.
GC_DLL User-settable macro that forces the effect of _DLL. GC_DLL User-settable macro that forces the effect of _DLL. Set
by gc.h if _DLL is defined and GC_NOT_DLL is undefined.
This is the macro that is tested internally to determine
whether the GC is in its own dynamic library. May need
to be set by clients before including gc.h. Note that
inside the GC implementation it indicates that the
collector is in its own dynamic library, should export
its symbols, etc. But in clients it indicates that the
GC resides in a different DLL, its entry points should
be referenced accordingly, and precautions may need to
be taken to properly deal with statically allocated
variables in the main program. Used only for MS Windows.
GC_NOT_DLL User-settable macro that overrides _DLL, e.g. if dynamic GC_NOT_DLL User-settable macro that overrides _DLL, e.g. if dynamic
libraries are used, but the collector is in a static library. libraries are used, but the collector is in a static library.
......
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE> Two-Level Tree Structure for Fast Pointer Lookup</TITLE> <TITLE> Two-Level Tree Structure for Fast Pointer Lookup</TITLE>
<AUTHOR> Hans-J. Boehm, Silicon Graphics</author> <AUTHOR> Hans-J. Boehm, Silicon Graphics (now at HP)</author>
</HEAD> </HEAD>
<BODY> <BODY>
<H1>Two-Level Tree Structure for Fast Pointer Lookup</h1> <H1>Two-Level Tree Structure for Fast Pointer Lookup</h1>
<P> <P>
The conservative garbage collector described The conservative garbage collector described
<A HREF="gc.html">here</a> uses a 2-level tree <A HREF="http://www.hpl.hp.com/personal/Hans_Boehm/gc/">here</a>
uses a 2-level tree
data structure to aid in fast pointer identification. data structure to aid in fast pointer identification.
This data structure is described in a bit more detail here, since This data structure is described in a bit more detail here, since
<OL> <OL>
......
...@@ -109,7 +109,7 @@ then ...@@ -109,7 +109,7 @@ then
echo "install: no input file specified" echo "install: no input file specified"
exit 1 exit 1
else else
true :
fi fi
if [ x"$dir_arg" != x ]; then if [ x"$dir_arg" != x ]; then
...@@ -120,7 +120,7 @@ if [ x"$dir_arg" != x ]; then ...@@ -120,7 +120,7 @@ if [ x"$dir_arg" != x ]; then
instcmd=: instcmd=:
chmodcmd="" chmodcmd=""
else else
instcmd=mkdir instcmd=$mkdirprog
fi fi
else else
...@@ -130,7 +130,7 @@ else ...@@ -130,7 +130,7 @@ else
if [ -f $src -o -d $src ] if [ -f $src -o -d $src ]
then then
true :
else else
echo "install: $src does not exist" echo "install: $src does not exist"
exit 1 exit 1
...@@ -141,7 +141,7 @@ else ...@@ -141,7 +141,7 @@ else
echo "install: no destination specified" echo "install: no destination specified"
exit 1 exit 1
else else
true :
fi fi
# If destination is a directory, append the input filename; if your system # If destination is a directory, append the input filename; if your system
...@@ -151,7 +151,7 @@ else ...@@ -151,7 +151,7 @@ else
then then
dst="$dst"/`basename $src` dst="$dst"/`basename $src`
else else
true :
fi fi
fi fi
...@@ -164,7 +164,7 @@ dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` ...@@ -164,7 +164,7 @@ dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
# Skip lots of stat calls in the usual case. # Skip lots of stat calls in the usual case.
if [ ! -d "$dstdir" ]; then if [ ! -d "$dstdir" ]; then
defaultIFS=' defaultIFS='
' '
IFS="${IFS-${defaultIFS}}" IFS="${IFS-${defaultIFS}}"
oIFS="${IFS}" oIFS="${IFS}"
...@@ -183,7 +183,7 @@ while [ $# -ne 0 ] ; do ...@@ -183,7 +183,7 @@ while [ $# -ne 0 ] ; do
then then
$mkdirprog "${pathcomp}" $mkdirprog "${pathcomp}"
else else
true :
fi fi
pathcomp="${pathcomp}/" pathcomp="${pathcomp}/"
...@@ -194,10 +194,10 @@ if [ x"$dir_arg" != x ] ...@@ -194,10 +194,10 @@ if [ x"$dir_arg" != x ]
then then
$doit $instcmd $dst && $doit $instcmd $dst &&
if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else : ; fi &&
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else : ; fi &&
if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else : ; fi &&
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else : ; fi
else else
# If we're going to rename the final executable, determine the name now. # If we're going to rename the final executable, determine the name now.
...@@ -216,7 +216,7 @@ else ...@@ -216,7 +216,7 @@ else
then then
dstfile=`basename $dst` dstfile=`basename $dst`
else else
true :
fi fi
# Make a temp file name in the proper directory. # Make a temp file name in the proper directory.
...@@ -235,10 +235,10 @@ else ...@@ -235,10 +235,10 @@ else
# ignore errors from any of these, just make sure not to ignore # ignore errors from any of these, just make sure not to ignore
# errors from the above "$doit $instcmd $src $dsttmp" command. # errors from the above "$doit $instcmd $src $dsttmp" command.
if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else :;fi &&
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else :;fi &&
if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else :;fi &&
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else :;fi &&
# Now rename the file to the real destination. # Now rename the file to the real destination.
......
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -2,29 +2,90 @@ ...@@ -2,29 +2,90 @@
# mkinstalldirs --- make directory hierarchy # mkinstalldirs --- make directory hierarchy
# Author: Noah Friedman <friedman@prep.ai.mit.edu> # Author: Noah Friedman <friedman@prep.ai.mit.edu>
# Created: 1993-05-16 # Created: 1993-05-16
# Last modified: 1994-03-25
# Public domain # Public domain
# $Id: mkinstalldirs,v 1.13 1999/01/05 03:18:55 bje Exp $
errstatus=0 errstatus=0
dirmode=""
usage="\
Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..."
# process command line arguments
while test $# -gt 0 ; do
case "${1}" in
-h | --help | --h* ) # -h for help
echo "${usage}" 1>&2; exit 0 ;;
-m ) # -m PERM arg
shift
test $# -eq 0 && { echo "${usage}" 1>&2; exit 1; }
dirmode="${1}"
shift ;;
-- ) shift; break ;; # stop option processing
-* ) echo "${usage}" 1>&2; exit 1 ;; # unknown option
* ) break ;; # first non-opt arg
esac
done
for file
do
if test -d "$file"; then
shift
else
break
fi
done
for file in ${1+"$@"} ; do case $# in
0) exit 0 ;;
esac
case $dirmode in
'')
if mkdir -p -- . 2>/dev/null; then
echo "mkdir -p -- $*"
exec mkdir -p -- "$@"
fi ;;
*)
if mkdir -m "$dirmode" -p -- . 2>/dev/null; then
echo "mkdir -m $dirmode -p -- $*"
exec mkdir -m "$dirmode" -p -- "$@"
fi ;;
esac
for file
do
set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
shift shift
pathcomp= pathcomp=
for d in ${1+"$@"} ; do for d
do
pathcomp="$pathcomp$d" pathcomp="$pathcomp$d"
case "$pathcomp" in case "$pathcomp" in
-* ) pathcomp=./$pathcomp ;; -* ) pathcomp=./$pathcomp ;;
esac esac
if test ! -d "$pathcomp"; then if test ! -d "$pathcomp"; then
echo "mkdir $pathcomp" 1>&2 echo "mkdir $pathcomp"
mkdir "$pathcomp" > /dev/null 2>&1 || lasterr=$?
fi mkdir "$pathcomp" || lasterr=$?
if test ! -d "$pathcomp"; then if test ! -d "$pathcomp"; then
errstatus=$lasterr errstatus=$lasterr
else
if test ! -z "$dirmode"; then
echo "chmod $dirmode $pathcomp"
lasterr=""
chmod "$dirmode" "$pathcomp" || lasterr=$?
if test ! -z "$lasterr"; then
errstatus=$lasterr
fi
fi
fi
fi fi
pathcomp="$pathcomp/" pathcomp="$pathcomp/"
...@@ -33,4 +94,8 @@ done ...@@ -33,4 +94,8 @@ done
exit $errstatus exit $errstatus
# Local Variables:
# mode: shell-script
# sh-indentation: 3
# End:
# mkinstalldirs ends here # mkinstalldirs ends here
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment