guile-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

guile/guile-core guile-readline/readline.c libg...


From: Thien-Thi Nguyen
Subject: guile/guile-core guile-readline/readline.c libg...
Date: Mon, 09 Jul 2001 00:31:06 -0700

CVSROOT:        /cvs
Module name:    guile
Branch:         branch_release-1-6
Changes by:     Thien-Thi Nguyen <address@hidden>       01/07/09 00:31:05

Modified files:
        guile-core/guile-readline: readline.c 
        guile-core/libguile: alist.c alloca.c arbiters.c async.c async.h 
                             backtrace.c boolean.c chars.c 
                             continuations.c coop-defs.h coop-threads.c 
                             debug-malloc.h debug.c debug.h dynl.c 
                             dynwind.c eq.c error.c eval.c evalext.c 
                             feature.c feature.h filesys.c filesys.h 
                             fluids.c fluids.h fports.c fports.h gc.c 
                             gc.h gdbint.c gsubr.c guardians.c hash.c 
                             hashtab.c hooks.c hooks.h inet_aton.c 
                             init.c ioext.c keywords.c keywords.h lang.c 
                             list.c load.c macros.c mallocs.c memmove.c 
                             modules.c net_db.c numbers.c numbers.h 
                             objects.c objprop.c options.c pairs.c 
                             pairs.h ports.c ports.h posix.c print.c 
                             print.h procprop.c procs.c procs.h 
                             properties.c putenv.c ramap.c random.c 
                             random.h read.c regex-posix.c regex-posix.h 
                             root.c root.h scmsigs.c script.c simpos.c 
                             smob.c snarf.h socket.c sort.c srcprop.c 
                             srcprop.h stackchk.c stacks.c stacks.h 
                             stime.c strerror.c strings.c strings.h 
                             strop.c strorder.c strports.c struct.c 
                             struct.h symbols.c symbols.h tags.h 
                             threads.c threads.h throw.c unif.c unif.h 
                             variable.c variable.h vectors.c vectors.h 
                             version.c vports.c weaks.c weaks.h 
                             symbols-deprecated.c 

Log message:
        Remove "face-lift" comment.

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/guile-readline/readline.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.38&tr2=1.38.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/alist.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.33&tr2=1.33.4.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/alloca.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.9&tr2=1.9.4.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/arbiters.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.28&tr2=1.28.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/async.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.58&tr2=1.58.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/async.h.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.18&tr2=1.18.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/backtrace.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.70&tr2=1.70.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/boolean.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.18&tr2=1.18.4.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/chars.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.28&tr2=1.28.4.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/continuations.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.38&tr2=1.38.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/coop-defs.h.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.21&tr2=1.21.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/coop-threads.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.31&tr2=1.31.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/debug-malloc.h.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.1&tr2=1.1.6.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/debug.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.92&tr2=1.92.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/debug.h.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.41&tr2=1.41.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/dynl.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.63&tr2=1.63.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/dynwind.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.41&tr2=1.41.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/eq.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.34&tr2=1.34.4.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/error.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.63&tr2=1.63.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/eval.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.234&tr2=1.234.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/evalext.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.35&tr2=1.35.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/feature.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.46&tr2=1.46.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/feature.h.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.23&tr2=1.23.6.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/filesys.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.104&tr2=1.104.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/filesys.h.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.31&tr2=1.31.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/fluids.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.42&tr2=1.42.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/fluids.h.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.14&tr2=1.14.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/fports.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.100&tr2=1.100.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/fports.h.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.29&tr2=1.29.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/gc.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.208&tr2=1.208.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/gc.h.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.79&tr2=1.79.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/gdbint.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.42&tr2=1.42.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/gsubr.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.40&tr2=1.40.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/guardians.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.36&tr2=1.36.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/hash.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.44&tr2=1.44.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/hashtab.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.41&tr2=1.41.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/hooks.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.21&tr2=1.21.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/hooks.h.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.7&tr2=1.7.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/inet_aton.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.7&tr2=1.7.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/init.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.128&tr2=1.128.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/ioext.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.85&tr2=1.85.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/keywords.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.44&tr2=1.44.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/keywords.h.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.11&tr2=1.11.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/lang.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.21&tr2=1.21.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/list.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.58&tr2=1.58.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/load.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.65&tr2=1.65.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/macros.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.30&tr2=1.30.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/mallocs.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.27&tr2=1.27.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/memmove.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.3&tr2=1.3.6.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/modules.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.31&tr2=1.31.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/net_db.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.62&tr2=1.62.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/numbers.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.135&tr2=1.135.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/numbers.h.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.53&tr2=1.53.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/objects.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.63&tr2=1.63.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/objprop.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.18&tr2=1.18.4.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/options.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.34&tr2=1.34.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/pairs.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.25&tr2=1.25.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/pairs.h.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.28&tr2=1.28.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/ports.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.153&tr2=1.153.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/ports.h.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.77&tr2=1.77.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/posix.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.92&tr2=1.92.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/print.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.128&tr2=1.128.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/print.h.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.37&tr2=1.37.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/procprop.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.37&tr2=1.37.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/procs.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.60&tr2=1.60.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/procs.h.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.43&tr2=1.43.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/properties.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.5&tr2=1.5.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/putenv.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.8&tr2=1.8.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/ramap.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.77&tr2=1.77.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/random.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.44&tr2=1.44.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/random.h.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.10&tr2=1.10.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/read.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.74&tr2=1.74.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/regex-posix.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.53&tr2=1.53.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/regex-posix.h.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.13&tr2=1.13.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/root.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.54&tr2=1.54.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/root.h.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.36&tr2=1.36.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/scmsigs.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.60&tr2=1.60.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/script.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.44&tr2=1.44.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/simpos.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.43&tr2=1.43.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/smob.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.47&tr2=1.47.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/snarf.h.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.50&tr2=1.50.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/socket.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.80&tr2=1.80.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/sort.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.36&tr2=1.36.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/srcprop.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.50&tr2=1.50.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/srcprop.h.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.25&tr2=1.25.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/stackchk.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.20&tr2=1.20.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/stacks.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.64&tr2=1.64.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/stacks.h.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.23&tr2=1.23.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/stime.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.69&tr2=1.69.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/strerror.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.6&tr2=1.6.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/strings.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.60&tr2=1.60.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/strings.h.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.32&tr2=1.32.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/strop.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.62&tr2=1.62.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/strorder.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.25&tr2=1.25.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/strports.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.83&tr2=1.83.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/struct.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.81&tr2=1.81.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/struct.h.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.39&tr2=1.39.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/symbols.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.92&tr2=1.92.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/symbols.h.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.56&tr2=1.56.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/tags.h.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.82&tr2=1.82.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/threads.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.21&tr2=1.21.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/threads.h.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.16&tr2=1.16.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/throw.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.87&tr2=1.87.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/unif.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.120&tr2=1.120.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/unif.h.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.41&tr2=1.41.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/variable.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.37&tr2=1.37.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/variable.h.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.19&tr2=1.19.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/vectors.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.53&tr2=1.53.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/vectors.h.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.34&tr2=1.34.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/version.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.20&tr2=1.20.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/vports.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.48&tr2=1.48.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/weaks.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.42&tr2=1.42.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/weaks.h.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.16&tr2=1.16.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/guile/guile-core/libguile/symbols-deprecated.c.diff?cvsroot=OldCVS&only_with_tag=branch_release-1-6&tr1=1.4&tr2=1.4.2.1&r1=text&r2=text

Patches:
Index: guile/guile-core/guile-readline/readline.c
diff -u guile/guile-core/guile-readline/readline.c:1.37 
guile/guile-core/guile-readline/readline.c:1.38
--- guile/guile-core/guile-readline/readline.c:1.37     Thu Jun 14 12:51:54 2001
+++ guile/guile-core/guile-readline/readline.c  Sat Jun 30 12:28:26 2001
@@ -410,7 +410,7 @@
     {
       SCM t = scm_makfrom0str (text);
       SCM c = continuep ? SCM_BOOL_T : SCM_BOOL_F;
-      res = scm_apply (compfunc, SCM_LIST2 (t, c), SCM_EOL);
+      res = scm_apply (compfunc, scm_list_2 (t, c), SCM_EOL);
   
       if (SCM_FALSEP (res))
        return NULL;
@@ -418,7 +418,7 @@
       if (!SCM_STRINGP (res))
        scm_misc_error (s_scm_readline,
                        "Completion function returned bogus value: %S",
-                       SCM_LIST1 (res));
+                       scm_list_1 (res));
       SCM_STRING_COERCE_0TERMINATION_X (res);
       return strdup (SCM_STRING_CHARS (res));
     }
Index: guile/guile-core/libguile/alist.c
diff -u guile/guile-core/libguile/alist.c:1.32 
guile/guile-core/libguile/alist.c:1.33
--- guile/guile-core/libguile/alist.c:1.32      Fri Nov 17 08:25:03 2000
+++ guile/guile-core/libguile/alist.c   Fri Mar  9 15:33:37 2001
@@ -43,7 +43,6 @@
    address@hidden, http://www.cs.washington.edu/homes/gjb */
 
 
-#include <stdio.h>
 #include "libguile/_scm.h"
 #include "libguile/eq.h"
 #include "libguile/list.h"
Index: guile/guile-core/libguile/alloca.c
diff -u guile/guile-core/libguile/alloca.c:1.8 
guile/guile-core/libguile/alloca.c:1.9
--- guile/guile-core/libguile/alloca.c:1.8      Fri Apr 21 07:16:30 2000
+++ guile/guile-core/libguile/alloca.c  Thu Oct 12 00:59:02 2000
@@ -25,7 +25,7 @@
    address@hidden, http://www.cs.washington.edu/homes/gjb */
 
 #ifdef HAVE_CONFIG_H
-#include <scmconfig.h>
+#include "libguile/scmconfig.h"
 #endif
 
 #ifdef HAVE_STRING_H
Index: guile/guile-core/libguile/arbiters.c
diff -u guile/guile-core/libguile/arbiters.c:1.27 
guile/guile-core/libguile/arbiters.c:1.28
--- guile/guile-core/libguile/arbiters.c:1.27   Fri Mar  9 15:33:37 2001
+++ guile/guile-core/libguile/arbiters.c        Thu Jun 14 12:50:43 2001
@@ -59,7 +59,7 @@
  * SCM_DEFER_INTS). 
  */
 
-static scm_bits_t scm_tc16_arbiter;
+static scm_t_bits scm_tc16_arbiter;
 
 
 #define SCM_ARB_LOCKED(arb)  ((SCM_CELL_WORD_0 (arb)) & (1L << 16))
Index: guile/guile-core/libguile/async.c
diff -u guile/guile-core/libguile/async.c:1.57 
guile/guile-core/libguile/async.c:1.58
--- guile/guile-core/libguile/async.c:1.57      Thu Jun 14 12:50:43 2001
+++ guile/guile-core/libguile/async.c   Tue Jun 26 08:46:40 2001
@@ -363,7 +363,7 @@
       if (ASYNC_GOT_IT (a))
        {
          SET_ASYNC_GOT_IT (a, 0);
-         scm_apply (ASYNC_THUNK (a), SCM_EOL, SCM_EOL);
+         scm_call_0 (ASYNC_THUNK (a));
        }
       scm_mask_ints = 0;
       list_of_a = SCM_CDR (list_of_a);
Index: guile/guile-core/libguile/async.h
diff -u guile/guile-core/libguile/async.h:1.17 
guile/guile-core/libguile/async.h:1.18
--- guile/guile-core/libguile/async.h:1.17      Wed Jun 28 03:26:52 2000
+++ guile/guile-core/libguile/async.h   Tue Jun 26 10:53:09 2001
@@ -1,7 +1,7 @@
 /* classes: h_files */
 
-#ifndef ASYNCH
-#define ASYNCH
+#ifndef SCM_ASYNC_H
+#define SCM_ASYNC_H
 /* Copyright (C) 1995, 96, 97, 98, 2000 Free Software Foundation, Inc.
  *
  * This program is free software; you can redistribute it and/or modify
@@ -70,7 +70,7 @@
 extern SCM scm_mask_signals (void);
 extern void scm_init_async (void);
 
-#endif  /* ASYNCH */
+#endif  /* SCM_ASYNC_H */
 
 /*
   Local Variables:
Index: guile/guile-core/libguile/backtrace.c
diff -u guile/guile-core/libguile/backtrace.c:1.69 
guile/guile-core/libguile/backtrace.c:1.70
--- guile/guile-core/libguile/backtrace.c:1.69  Tue Jun 26 10:53:09 2001
+++ guile/guile-core/libguile/backtrace.c       Tue Jul  3 08:27:56 2001
@@ -47,6 +47,7 @@
    address@hidden, http://www.cs.washington.edu/homes/gjb */
 
 
+#include <stdio.h>
 #include <ctype.h>
 
 #include "libguile/_scm.h"
Index: guile/guile-core/libguile/boolean.c
diff -u guile/guile-core/libguile/boolean.c:1.17 
guile/guile-core/libguile/boolean.c:1.18
--- guile/guile-core/libguile/boolean.c:1.17    Fri Nov 17 08:25:03 2000
+++ guile/guile-core/libguile/boolean.c Fri Mar  9 15:33:37 2001
@@ -44,7 +44,6 @@
 
 
 
-#include <stdio.h>
 #include "libguile/_scm.h"
 
 #include "libguile/validate.h"
Index: guile/guile-core/libguile/chars.c
diff -u guile/guile-core/libguile/chars.c:1.27 
guile/guile-core/libguile/chars.c:1.28
--- guile/guile-core/libguile/chars.c:1.27      Mon Dec  4 09:19:35 2000
+++ guile/guile-core/libguile/chars.c   Fri Mar  9 15:33:37 2001
@@ -44,7 +44,6 @@
 
 
 
-#include <stdio.h>
 #include <ctype.h>
 #include "libguile/_scm.h"
 #include "libguile/validate.h"
Index: guile/guile-core/libguile/continuations.c
diff -u guile/guile-core/libguile/continuations.c:1.37 
guile/guile-core/libguile/continuations.c:1.38
--- guile/guile-core/libguile/continuations.c:1.37      Thu Jun 14 12:50:43 2001
+++ guile/guile-core/libguile/continuations.c   Wed Jun 27 18:11:58 2001
@@ -232,7 +232,7 @@
       || continuation->base != rootcont->base)
     {
       SCM_MISC_ERROR ("continuation from wrong top level: ~S", 
-                     SCM_LIST1 (cont));
+                     scm_list_1 (cont));
     }
   
   scm_dowinds (continuation->dynenv,
Index: guile/guile-core/libguile/coop-defs.h
diff -u guile/guile-core/libguile/coop-defs.h:1.20 
guile/guile-core/libguile/coop-defs.h:1.21
--- guile/guile-core/libguile/coop-defs.h:1.20  Thu Jun 14 12:50:43 2001
+++ guile/guile-core/libguile/coop-defs.h       Sun Jun 24 17:56:41 2001
@@ -153,7 +153,7 @@
 extern int coop_mutex_destroy (coop_m*);
 #define scm_mutex_init coop_mutex_init
 #define scm_mutex_lock coop_mutex_lock
-#define scm_t_mutexrylock coop_mutex_lock
+#define scm_mutex_trylock coop_mutex_lock
 #define scm_mutex_unlock coop_mutex_unlock
 #define scm_mutex_destroy coop_mutex_destroy
 
@@ -188,7 +188,7 @@
 extern int coop_condition_variable_destroy (coop_c*);
 #define scm_cond_init coop_new_condition_variable_init
 #define scm_cond_wait coop_condition_variable_wait_mutex
-#define scm_t_condimedwait coop_condition_variable_timed_wait_mutex
+#define scm_cond_timedwait coop_condition_variable_timed_wait_mutex
 #define scm_cond_signal coop_condition_variable_signal
 #define scm_cond_broadcast coop_condition_variable_signal /* yes */
 #define scm_cond_destroy coop_condition_variable_destroy
Index: guile/guile-core/libguile/coop-threads.c
diff -u guile/guile-core/libguile/coop-threads.c:1.30 
guile/guile-core/libguile/coop-threads.c:1.31
--- guile/guile-core/libguile/coop-threads.c:1.30       Thu Jun 14 12:50:43 2001
+++ guile/guile-core/libguile/coop-threads.c    Tue Jun 26 08:46:40 2001
@@ -180,21 +180,19 @@
   SCM handler;
 } scheme_launch_data;
 
-extern SCM scm_apply (SCM, SCM, SCM);
-
 static SCM
 scheme_body_bootstrip (scheme_launch_data* data)
 {
   /* First save the new root continuation */
   data->rootcont = scm_root->rootcont;
-  return scm_apply (data->body, SCM_EOL, SCM_EOL);
+  return scm_call_0 (data->body);
 }
 
 static SCM
 scheme_handler_bootstrip (scheme_launch_data* data, SCM tag, SCM throw_args)
 {
   scm_root->rootcont = data->rootcont;
-  return scm_apply (data->handler, scm_cons (tag, throw_args), SCM_EOL);
+  return scm_apply_1 (data->handler, tag, throw_args);
 }
 
 static void
Index: guile/guile-core/libguile/debug.c
diff -u guile/guile-core/libguile/debug.c:1.91 
guile/guile-core/libguile/debug.c:1.92
--- guile/guile-core/libguile/debug.c:1.91      Thu Jun 14 12:50:43 2001
+++ guile/guile-core/libguile/debug.c   Tue Jun 26 08:46:40 2001
@@ -120,7 +120,7 @@
 with_traps_inner (void *data)
 {
   SCM thunk = SCM_PACK (data);
-  return scm_apply (thunk, SCM_EOL, SCM_EOL);
+  return scm_call_0 (thunk);
 }
 
 SCM_DEFINE (scm_with_traps, "with-traps", 1, 0, 0, 
Index: guile/guile-core/libguile/debug.h
diff -u guile/guile-core/libguile/debug.h:1.40 
guile/guile-core/libguile/debug.h:1.41
--- guile/guile-core/libguile/debug.h:1.40      Mon Jun 25 04:06:33 2001
+++ guile/guile-core/libguile/debug.h   Tue Jun 26 14:55:45 2001
@@ -98,13 +98,15 @@
 
 #define SCM_RESET_DEBUG_MODE \
 do {\
-  CHECK_ENTRY = SCM_ENTER_FRAME_P || SCM_BREAKPOINTS_P;\
-  CHECK_APPLY = SCM_APPLY_FRAME_P || SCM_TRACE_P;\
-  CHECK_EXIT = SCM_EXIT_FRAME_P || SCM_TRACE_P;\
+  CHECK_ENTRY = (SCM_ENTER_FRAME_P || SCM_BREAKPOINTS_P)\
+    && SCM_NFALSEP (SCM_ENTER_FRAME_HDLR);\
+  CHECK_APPLY = (SCM_APPLY_FRAME_P || SCM_TRACE_P)\
+    && SCM_NFALSEP (SCM_APPLY_FRAME_HDLR);\
+  CHECK_EXIT = (SCM_EXIT_FRAME_P || SCM_TRACE_P)\
+    && SCM_NFALSEP (SCM_EXIT_FRAME_HDLR);\
   scm_debug_mode = SCM_DEVAL_P || CHECK_ENTRY || CHECK_APPLY || CHECK_EXIT;\
   scm_ceval_ptr = scm_debug_mode ? scm_deval : scm_ceval;\
 } while (0)
-
 
 /* {Evaluator}
  */
Index: guile/guile-core/libguile/dynl.c
diff -u guile/guile-core/libguile/dynl.c:1.62 
guile/guile-core/libguile/dynl.c:1.63
--- guile/guile-core/libguile/dynl.c:1.62       Thu Jun 14 12:50:43 2001
+++ guile/guile-core/libguile/dynl.c    Wed Jun 27 18:11:58 2001
@@ -254,7 +254,7 @@
       SCM_ALLOW_INTS;
       fn = scm_makfrom0str (fname);
       msg = scm_makfrom0str (lt_dlerror ());
-      scm_misc_error (subr, "file: ~S, message: ~S", SCM_LIST2 (fn, msg));
+      scm_misc_error (subr, "file: ~S, message: ~S", scm_list_2 (fn, msg));
     }
   return (void *) handle;
 }
Index: guile/guile-core/libguile/dynwind.c
diff -u guile/guile-core/libguile/dynwind.c:1.40 
guile/guile-core/libguile/dynwind.c:1.41
--- guile/guile-core/libguile/dynwind.c:1.40    Thu Jun 14 12:50:43 2001
+++ guile/guile-core/libguile/dynwind.c Tue Jun 26 08:46:40 2001
@@ -125,11 +125,11 @@
   SCM_ASSERT (SCM_NFALSEP (scm_thunk_p (out_guard)),
              out_guard,
              SCM_ARG3, FUNC_NAME);
-  scm_apply (in_guard, SCM_EOL, SCM_EOL);
+  scm_call_0 (in_guard);
   scm_dynwinds = scm_acons (in_guard, out_guard, scm_dynwinds);
-  ans = scm_apply (thunk, SCM_EOL, SCM_EOL);
+  ans = scm_call_0 (thunk);
   scm_dynwinds = SCM_CDR (scm_dynwinds);
-  scm_apply (out_guard, SCM_EOL, SCM_EOL);
+  scm_call_0 (out_guard);
   return ans;
 }
 #undef FUNC_NAME
@@ -231,7 +231,7 @@
              else if (SCM_GUARDSP (wind_key))
                SCM_BEFORE_GUARD (wind_key) (SCM_GUARD_DATA (wind_key));
              else if (SCM_TYP3 (wind_key) == scm_tc3_closure)
-               scm_apply (wind_key, SCM_EOL, SCM_EOL);
+               scm_call_0 (wind_key);
            }
        }
       scm_dynwinds = to;
@@ -263,7 +263,7 @@
              else if (SCM_GUARDSP (wind_key))
                SCM_AFTER_GUARD (wind_key) (SCM_GUARD_DATA (wind_key));
              else if (SCM_TYP3 (wind_key) == scm_tc3_closure)
-               scm_apply (from, SCM_EOL, SCM_EOL);
+               scm_call_0 (from);
            }
        }
       delta--;
Index: guile/guile-core/libguile/eq.c
diff -u guile/guile-core/libguile/eq.c:1.33 guile/guile-core/libguile/eq.c:1.34
--- guile/guile-core/libguile/eq.c:1.33 Fri Mar 30 07:03:22 2001
+++ guile/guile-core/libguile/eq.c      Sat Apr 21 14:50:08 2001
@@ -188,7 +188,7 @@
     case scm_tc7_llvect:
 #endif
     case scm_tc7_byvect:
-      if (scm_tc16_array && scm_smobs[0x0ff & (scm_tc16_array >> 8)].equalp)
+      if (scm_tc16_array && scm_smobs[SCM_TC2SMOBNUM (scm_tc16_array)].equalp)
        return scm_array_equal_p (x, y);
 #endif
     }
Index: guile/guile-core/libguile/error.c
diff -u guile/guile-core/libguile/error.c:1.62 
guile/guile-core/libguile/error.c:1.63
--- guile/guile-core/libguile/error.c:1.62      Wed Jun 27 18:11:58 2001
+++ guile/guile-core/libguile/error.c   Tue Jul  3 08:27:56 2001
@@ -61,6 +61,11 @@
 #ifdef HAVE_UNISTD_H
 #include <unistd.h>
 #endif
+
+/* For Windows... */
+#ifdef HAVE_IO_H
+#include <io.h>
+#endif
 
 
 
Index: guile/guile-core/libguile/eval.c
diff -u guile/guile-core/libguile/eval.c:1.233 
guile/guile-core/libguile/eval.c:1.234
--- guile/guile-core/libguile/eval.c:1.233      Tue Jun 26 14:55:45 2001
+++ guile/guile-core/libguile/eval.c    Wed Jun 27 18:11:58 2001
@@ -2523,7 +2523,7 @@
       proc = x;
     badfun:
       /* scm_everr (x, env,...) */
-      scm_misc_error (NULL, "Wrong type to apply: ~S", SCM_LIST1 (proc));
+      scm_misc_error (NULL, "Wrong type to apply: ~S", scm_list_1 (proc));
     case scm_tc7_vector:
     case scm_tc7_wvect:
 #ifdef HAVE_ARRAYS
Index: guile/guile-core/libguile/evalext.c
diff -u guile/guile-core/libguile/evalext.c:1.34 
guile/guile-core/libguile/evalext.c:1.35
--- guile/guile-core/libguile/evalext.c:1.34    Thu Jun  7 14:12:19 2001
+++ guile/guile-core/libguile/evalext.c Wed Jun 27 18:11:58 2001
@@ -63,8 +63,8 @@
   if (SCM_SYMBOLP (SCM_CAR (x)))
     return scm_cons (SCM_IM_SET_X, x);
   else if (SCM_CONSP (SCM_CAR (x)))
-    return scm_cons (SCM_LIST2 (scm_sym_setter, SCM_CAAR (x)),
-                    scm_append (SCM_LIST2 (SCM_CDAR (x), SCM_CDR (x))));
+    return scm_cons (scm_list_2 (scm_sym_setter, SCM_CAAR (x)),
+                    scm_append (scm_list_2 (SCM_CDAR (x), SCM_CDR (x))));
   else
     scm_misc_error (scm_s_set_x, scm_s_variable, SCM_EOL);
 }
Index: guile/guile-core/libguile/feature.c
diff -u guile/guile-core/libguile/feature.c:1.45 
guile/guile-core/libguile/feature.c:1.46
--- guile/guile-core/libguile/feature.c:1.45    Fri Mar  9 15:33:38 2001
+++ guile/guile-core/libguile/feature.c Tue May 15 07:57:21 2001
@@ -57,15 +57,15 @@
 
 
 
-static SCM features;
+static SCM features_var;
 
 
 void
 scm_add_feature (const char *str)
 {
-  SCM old = SCM_CDR (features);
+  SCM old = SCM_VARIABLE_REF (features_var);
   SCM new = scm_cons (scm_str2symbol (str), old);
-  SCM_SETCDR (features, new);
+  SCM_VARIABLE_SET (features_var, new);
 }
 
 
@@ -103,7 +103,7 @@
 void
 scm_init_feature()
 {
-  features = scm_sysintern ("*features*", SCM_EOL);
+  features_var = scm_c_define ("*features*", SCM_EOL);
 #ifdef SCM_RECKLESS
   scm_add_feature("reckless");
 #endif
@@ -126,7 +126,7 @@
   scm_add_feature ("threads");
 #endif
   
-  scm_sysintern ("char-code-limit", SCM_MAKINUM (SCM_CHAR_CODE_LIMIT));
+  scm_c_define ("char-code-limit", SCM_MAKINUM (SCM_CHAR_CODE_LIMIT));
 
 #ifndef SCM_MAGIC_SNARFER
 #include "libguile/feature.x"
Index: guile/guile-core/libguile/feature.h
diff -u guile/guile-core/libguile/feature.h:1.22 
guile/guile-core/libguile/feature.h:1.23
--- guile/guile-core/libguile/feature.h:1.22    Sun Mar 19 11:01:11 2000
+++ guile/guile-core/libguile/feature.h Fri Apr 21 16:11:05 2000
@@ -2,7 +2,7 @@
 
 #ifndef FEATUREH
 #define FEATUREH
-/*     Copyright (C) 1995, 1996, 1999 Free Software Foundation, Inc.
+/*     Copyright (C) 1995, 1996, 1999, 2000 Free Software Foundation, Inc.
  * 
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -49,30 +49,9 @@
 
 #include "libguile/__scm.h"
 
-#define SCM_HOOKP(x) (SCM_NIMP(x) && (SCM_TYP16 (x) == scm_tc16_hook))
-#define SCM_HOOK_ARITY(hook) (SCM_UNPACK_CAR (hook) >> 16)
-#define SCM_HOOK_NAME(hook) SCM_CADR (hook)
-#define SCM_HOOK_PROCEDURES(hook) SCM_CDDR (hook)
-#define SCM_SET_HOOK_PROCEDURES(hook, procs) SCM_SETCDR (SCM_CDR (hook), procs)
-
-extern long scm_tc16_hook;
-
 extern void scm_add_feature (const char* str);
 extern SCM scm_program_arguments (void);
 extern void scm_set_program_arguments (int argc, char **argv, char *first);
-extern SCM scm_make_hook (SCM n_args);
-extern SCM scm_make_hook_with_name (SCM name, SCM n_args);
-extern SCM scm_create_hook (const char* name, int n_args);
-extern void scm_free_hook (SCM hook);
-extern SCM scm_make_named_hook (const char* name, int n_args);
-extern SCM scm_hook_p (SCM x);
-extern SCM scm_hook_empty_p (SCM hook);
-extern SCM scm_add_hook_x (SCM hook, SCM thunk, SCM appendp);
-extern SCM scm_remove_hook_x (SCM hook, SCM thunk);
-extern SCM scm_reset_hook_x (SCM hook);
-extern SCM scm_run_hook (SCM hook, SCM args);
-extern void scm_c_run_hook (SCM hook, SCM args);
-extern SCM scm_hook_to_list (SCM hook);
 extern void scm_init_feature (void);
 
 #endif  /* FEATUREH */
Index: guile/guile-core/libguile/filesys.c
diff -u guile/guile-core/libguile/filesys.c:1.103 
guile/guile-core/libguile/filesys.c:1.104
--- guile/guile-core/libguile/filesys.c:1.103   Tue Jun 26 10:53:09 2001
+++ guile/guile-core/libguile/filesys.c Wed Jun 27 18:11:58 2001
@@ -574,7 +574,8 @@
       int en = errno;
 
       SCM_SYSERROR_MSG ("~A: ~S",
-                       SCM_LIST2 (scm_makfrom0str (strerror (errno)), object),
+                       scm_list_2 (scm_makfrom0str (strerror (errno)),
+                                   object),
                        en);
     }
   return scm_stat2scm (&stat_temp);
@@ -753,7 +754,7 @@
 
   SCM_VALIDATE_DIR (1, port);
   if (!SCM_DIR_OPEN_P (port))
-    SCM_MISC_ERROR ("Directory ~S is not open.", SCM_LIST1 (port));
+    SCM_MISC_ERROR ("Directory ~S is not open.", scm_list_1 (port));
 
   errno = 0;
   SCM_SYSCALL (rdent = readdir ((DIR *) SCM_CELL_WORD_1 (port)));
@@ -774,7 +775,7 @@
 {
   SCM_VALIDATE_DIR (1, port);
   if (!SCM_DIR_OPEN_P (port))
-    SCM_MISC_ERROR ("Directory ~S is not open.", SCM_LIST1 (port));
+    SCM_MISC_ERROR ("Directory ~S is not open.", scm_list_1 (port));
 
   rewinddir ((DIR *) SCM_CELL_WORD_1 (port));
 
@@ -1162,9 +1163,9 @@
     if (rv < 0)
       SCM_SYSERROR;
   }
-  return SCM_LIST3 (retrieve_select_type (&read_set, read_ports_ready, reads),
-                   retrieve_select_type (&write_set, write_ports_ready, 
writes),
-                   retrieve_select_type (&except_set, SCM_EOL, excepts));
+  return scm_list_3 (retrieve_select_type (&read_set, read_ports_ready, reads),
+                    retrieve_select_type (&write_set, write_ports_ready, 
writes),
+                    retrieve_select_type (&except_set, SCM_EOL, excepts));
 }
 #undef FUNC_NAME
 #endif /* HAVE_SELECT */
@@ -1325,7 +1326,7 @@
       int en = errno;
 
       SCM_SYSERROR_MSG ("~A: ~S",
-                       SCM_LIST2 (scm_makfrom0str (strerror (errno)), str),
+                       scm_list_2 (scm_makfrom0str (strerror (errno)), str),
                        en);
     }
   return scm_stat2scm(&stat_temp);
Index: guile/guile-core/libguile/filesys.h
diff -u guile/guile-core/libguile/filesys.h:1.30 
guile/guile-core/libguile/filesys.h:1.31
--- guile/guile-core/libguile/filesys.h:1.30    Fri Mar  9 15:33:39 2001
+++ guile/guile-core/libguile/filesys.h Thu Jun 14 12:50:43 2001
@@ -51,7 +51,7 @@
 
 
 
-extern scm_bits_t scm_tc16_dir;
+extern scm_t_bits scm_tc16_dir;
 
 #define SCM_DIR_FLAG_OPEN (1L << 16)
 
Index: guile/guile-core/libguile/fluids.c
diff -u guile/guile-core/libguile/fluids.c:1.41 
guile/guile-core/libguile/fluids.c:1.42
--- guile/guile-core/libguile/fluids.c:1.41     Wed Jun 27 18:11:58 2001
+++ guile/guile-core/libguile/fluids.c  Thu Jun 28 09:37:19 2001
@@ -253,7 +253,7 @@
 scm_c_with_fluid (SCM fluid, SCM value, SCM (*cproc) (), void *cdata)
 #define FUNC_NAME "scm_c_with_fluid"
 {
-  return scm_c_with_fluids (scm_list_1 (fluid), SCM_LIST1 (value),
+  return scm_c_with_fluids (scm_list_1 (fluid), scm_list_1 (value),
                            cproc, cdata);
 }
 #undef FUNC_NAME
Index: guile/guile-core/libguile/fluids.h
diff -u guile/guile-core/libguile/fluids.h:1.13 
guile/guile-core/libguile/fluids.h:1.14
--- guile/guile-core/libguile/fluids.h:1.13     Fri May 18 17:36:22 2001
+++ guile/guile-core/libguile/fluids.h  Thu Jun 14 12:50:43 2001
@@ -73,7 +73,7 @@
    implement a more lightweight version of fluids on top of this basic
    mechanism. */
 
-extern scm_bits_t scm_tc16_fluid;
+extern scm_t_bits scm_tc16_fluid;
 
 #define SCM_FLUIDP(x)    (!SCM_IMP (x) && (SCM_CELL_TYPE (x) == 
scm_tc16_fluid))
 #define SCM_FLUID_NUM(x) (SCM_CELL_WORD_1 (x))
Index: guile/guile-core/libguile/fports.c
diff -u guile/guile-core/libguile/fports.c:1.99 
guile/guile-core/libguile/fports.c:1.100
--- guile/guile-core/libguile/fports.c:1.99     Thu Jun 14 12:50:43 2001
+++ guile/guile-core/libguile/fports.c  Tue Jun 26 10:53:09 2001
@@ -68,6 +68,12 @@
 #include <errno.h>
 
 #include "libguile/iselect.h"
+/* Some defines for Windows. */
+#ifdef __MINGW32__
+# include <sys/stat.h>
+# include <winsock2.h>
+# define ftruncate(fd, size) chsize (fd, size)
+#endif /* __MINGW32__ */
 
 
 scm_t_bits scm_tc16_fport;
@@ -349,6 +355,46 @@
 #undef FUNC_NAME
 
 
+#ifdef __MINGW32__
+/*
+ * Try getting the appropiate file flags for a given file descriptor
+ * under Windows. This incorporates some fancy operations because Windows
+ * differentiates between file, pipe and socket descriptors.
+ */
+#ifndef O_ACCMODE
+# define O_ACCMODE 0x0003
+#endif
+
+static int getflags (int fdes)
+{
+  int flags = 0;
+  struct stat buf;
+  int error, optlen = sizeof (int);
+
+  /* Is this a socket ? */
+  if (getsockopt (fdes, SOL_SOCKET, SO_ERROR, (void *) &error, &optlen) >= 0)
+    flags = O_RDWR;
+  /* Maybe a regular file ? */
+  else if (fstat (fdes, &buf) < 0)
+    flags = -1;
+  else
+    {
+      /* Or an anonymous pipe handle ? */
+      if (buf.st_mode & 0x1000 /* _O_SHORT_LIVED */)
+       flags = O_RDWR;
+      /* stdin ? */
+      else if (fdes == 0 && isatty (fdes))
+       flags = O_RDONLY;
+      /* stdout / stderr ? */
+      else if ((fdes == 1 || fdes == 2) && isatty (fdes))
+       flags = O_WRONLY;
+      else
+       flags = buf.st_mode;
+    }
+  return flags;
+}
+#endif /* __MINGW32__ */
+
 /* Building Guile ports from a file descriptor.  */
 
 /* Build a Scheme port from an open file descriptor `fdes'.
@@ -366,7 +412,11 @@
   int flags;
 
   /* test that fdes is valid.  */
+#ifdef __MINGW32__
+  flags = getflags (fdes);
+#else
   flags = fcntl (fdes, F_GETFL, 0);
+#endif
   if (flags == -1)
     SCM_SYSERROR;
   flags &= O_ACCMODE;
@@ -456,9 +506,11 @@
       scm_putc (' ', port);
       fdes = (SCM_FSTREAM (exp))->fdes;
       
+#ifdef HAVE_TTYNAME
       if (isatty (fdes))
        scm_puts (ttyname (fdes), port);
       else
+#endif /* HAVE_TTYNAME */
        scm_intprint (fdes, 10, port);
     }
   else
@@ -595,7 +647,7 @@
 
   while (remaining > 0)
     {
-      ssize_t done;
+      size_t done;
 
       SCM_SYSCALL (done = write (fdes, data, remaining));
 
Index: guile/guile-core/libguile/fports.h
diff -u guile/guile-core/libguile/fports.h:1.28 
guile/guile-core/libguile/fports.h:1.29
--- guile/guile-core/libguile/fports.h:1.28     Wed May 23 17:50:44 2001
+++ guile/guile-core/libguile/fports.h  Thu Jun 14 12:50:43 2001
@@ -54,17 +54,17 @@
 
 
 /* struct allocated for each buffered FPORT.  */
-typedef struct scm_fport_t {
+typedef struct scm_t_fport {
   int fdes;                    /* file descriptor.  */
-} scm_fport_t;
+} scm_t_fport;
 
 #if (SCM_DEBUG_DEPRECATED == 0)
-# define scm_fport scm_fport_t
+# define scm_fport scm_t_fport
 #endif
 
-extern scm_bits_t scm_tc16_fport;
+extern scm_t_bits scm_tc16_fport;
 
-#define SCM_FSTREAM(x) ((scm_fport_t *) SCM_STREAM (x))
+#define SCM_FSTREAM(x) ((scm_t_fport *) SCM_STREAM (x))
 #define SCM_FPORT_FDES(x) (SCM_FSTREAM (x)->fdes)
 
 #define SCM_FPORTP(x) (!SCM_IMP (x) && (SCM_TYP16 (x) == scm_tc16_fport))
Index: guile/guile-core/libguile/gc.c
diff -u guile/guile-core/libguile/gc.c:1.207 
guile/guile-core/libguile/gc.c:1.208
--- guile/guile-core/libguile/gc.c:1.207        Wed Jun 27 18:11:58 2001
+++ guile/guile-core/libguile/gc.c      Sat Jun 30 12:50:10 2001
@@ -114,6 +114,19 @@
 static unsigned int debug_cells_gc_interval = 0;
 
 
+/* If an allocated cell is detected during garbage collection, this means that
+ * some code has just obtained the object but was preempted before the
+ * initialization of the object was completed.  This meanst that some entries
+ * of the allocated cell may already contain SCM objects.  Therefore,
+ * allocated cells are scanned conservatively.  */
+static SCM
+allocated_mark (SCM allocated)
+{
+  scm_gc_mark_cell_conservatively (allocated);
+  return SCM_BOOL_F;
+}
+
+
 /* Assert that the given object is a valid reference to a valid cell.  This
  * test involves to determine whether the object is a cell pointer, whether
  * this pointer actually points into a heap segment and whether the cell
@@ -517,22 +530,6 @@
 
 #if defined (GUILE_DEBUG) || defined (GUILE_DEBUG_FREELIST)
 
-/* Return the number of the heap segment containing CELL.  */
-static long
-which_seg (SCM cell)
-{
-  long i;
-
-  for (i = 0; i < scm_n_heap_segs; i++)
-    if (SCM_PTR_LE (scm_heap_table[i].bounds[0], SCM2PTR (cell))
-       && SCM_PTR_GT (scm_heap_table[i].bounds[1], SCM2PTR (cell)))
-      return i;
-  fprintf (stderr, "which_seg: can't find segment containing cell %lux\n",
-          (unsigned long) SCM_UNPACK (cell));
-  abort ();
-}
-
-
 static void
 map_free_list (scm_t_freelist *master, SCM freelist)
 {
@@ -541,10 +538,17 @@
 
   for (f = freelist; !SCM_NULLP (f); f = SCM_FREE_CELL_CDR (f))
     {
-      long this_seg = which_seg (f);
+      long int this_seg = heap_segment (f);
 
-      if (this_seg != last_seg)
+      if (this_seg == -1)
        {
+         fprintf (stderr, 
+                  "map_free_list: can't find segment containing cell %lux\n",
+                  (unsigned long int) SCM_UNPACK (cell));
+         abort ();
+       }
+      else if (this_seg != last_seg)
+       {
          if (last_seg != -1)
            fprintf (stderr, "  %5ld %d-cells in segment %ld\n",
                     (long) count, master->span, (long) last_seg);
@@ -565,12 +569,14 @@
            "@code{--enable-guile-debug} builds of Guile.")
 #define FUNC_NAME s_scm_map_free_list
 {
-  long i;
+  size_t i;
+
   fprintf (stderr, "%ld segments total (%d:%ld",
           (long) scm_n_heap_segs,
           scm_heap_table[0].span,
           (long) (scm_heap_table[0].bounds[1] - scm_heap_table[0].bounds[0]));
-  for (i = 1; i < scm_n_heap_segs; i++)
+
+  for (i = 1; i != scm_n_heap_segs; i++)
     fprintf (stderr, ", %d:%ld",
             scm_heap_table[i].span,
             (long) (scm_heap_table[i].bounds[1] - 
scm_heap_table[i].bounds[0]));
@@ -1120,10 +1126,10 @@
 
   /* mark the registered roots */
   {
-    long i;
+    size_t i;
     for (i = 0; i < SCM_VECTOR_LENGTH (scm_gc_registered_roots); ++i) {
       SCM l = SCM_VELTS (scm_gc_registered_roots)[i];
-      for (; ! SCM_NULLP (l); l = SCM_CDR (l)) {
+      for (; !SCM_NULLP (l); l = SCM_CDR (l)) {
         SCM *p = (SCM *) (scm_num2long (SCM_CAAR (l), 0, NULL));
         scm_gc_mark (*p);
       }
@@ -1366,7 +1372,7 @@
       goto_gc_mark_loop;
 
     case scm_tc7_wvect:
-      SCM_WVECT_GC_CHAIN (ptr) = scm_weak_vectors;
+      SCM_SET_WVECT_GC_CHAIN (ptr, scm_weak_vectors);
       scm_weak_vectors = ptr;
       if (SCM_IS_WHVEC_ANY (ptr))
        {
@@ -1449,7 +1455,27 @@
       switch (SCM_TYP16 (ptr))
        { /* should be faster than going through scm_smobs */
        case scm_tc_free_cell:
-         /* printf("found free_cell %X ", ptr); fflush(stdout); */
+         /* We have detected a free cell.  This can happen if non-object data
+          * on the C stack points into guile's heap and is scanned during
+          * conservative marking.  */
+#if (SCM_DEBUG_CELL_ACCESSES == 0)
+         /* If cell debugging is disabled, there is a second situation in
+          * which a free cell can be encountered, namely if with preemptive
+          * threading one thread has just obtained a fresh cell and was
+          * preempted before the cell initialization was completed.  In this
+          * case, some entries of the cell may already contain objects.
+          * Thus, if cell debugging is disabled, free cells are scanned
+          * conservatively.  */
+         scm_gc_mark_cell_conservatively (ptr);
+#else /* SCM_DEBUG_CELL_ACCESSES == 1 */
+         /* With cell debugging enabled, a freshly obtained but not fully
+          * initialized cell is guaranteed to be of type scm_tc16_allocated.
+          * Thus, no conservative scanning for free cells is necessary, but
+          * instead cells of type scm_tc16_allocated have to be scanned
+          * conservatively.  This is done in the mark function of the
+          * scm_tc16_allocated smob type.  */ 
+#endif
+         break;
        case scm_tc16_big:
        case scm_tc16_real:
        case scm_tc16_complex:
@@ -1493,109 +1519,120 @@
 #undef FNAME
 
 
-/* Mark a Region Conservatively
- */
-
-void
-scm_mark_locations (SCM_STACKITEM x[], unsigned long n)
+/* Determine whether the given value does actually represent a cell in some
+ * heap segment.  If this is the case, the number of the heap segment is
+ * returned.  Otherwise, -1 is returned.  Binary search is used in order to
+ * determine the heap segment that contains the cell.*/
+/* FIXME:  To be used within scm_gc_mark_cell_conservatively,
+ * scm_mark_locations and scm_cellp this function should be an inline
+ * function.  */
+static long int
+heap_segment (SCM obj)
 {
-  unsigned long m;
-
-  for (m = 0; m < n; ++m)
+  if (!SCM_CELLP (obj))
+    return -1;
+  else
     {
-      SCM obj = * (SCM *) &x[m];
-      if (SCM_CELLP (obj))
+      SCM_CELLPTR ptr = SCM2PTR (obj);
+      unsigned long int i = 0;
+      unsigned long int j = scm_n_heap_segs - 1;
+
+      if (SCM_PTR_LT (ptr, scm_heap_table[i].bounds[0]))
+       return -1;
+      else if (SCM_PTR_LE (scm_heap_table[j].bounds[1], ptr))
+       return -1;
+      else
        {
-         SCM_CELLPTR ptr = SCM2PTR (obj);
-         long i = 0;
-         long j = scm_n_heap_segs - 1;
-         if (SCM_PTR_LE (scm_heap_table[i].bounds[0], ptr)
-             && SCM_PTR_GT (scm_heap_table[j].bounds[1], ptr))
+         while (i < j)
            {
-             while (i <= j)
+             if (SCM_PTR_LT (ptr, scm_heap_table[i].bounds[1]))
+               {
+                 break;
+               }
+             else if (SCM_PTR_LE (scm_heap_table[j].bounds[0], ptr))
+               {
+                 i = j;
+                 break;
+               }
+             else
                {
-                 long seg_id;
-                 seg_id = -1;
-                 if ((i == j)
-                     || SCM_PTR_GT (scm_heap_table[i].bounds[1], ptr))
-                   seg_id = i;
-                 else if (SCM_PTR_LE (scm_heap_table[j].bounds[0], ptr))
-                   seg_id = j;
-                 else
+                 unsigned long int k = (i + j) / 2;
+
+                 if (k == i)
+                   return -1;
+                 else if (SCM_PTR_LT (ptr, scm_heap_table[k].bounds[1]))
                    {
-                     long k;
-                     k = (i + j) / 2;
-                     if (k == i)
-                       break;
-                     if (SCM_PTR_GT (scm_heap_table[k].bounds[1], ptr))
-                       {
-                         j = k;
-                         ++i;
-                         if (SCM_PTR_LE (scm_heap_table[i].bounds[0], ptr))
-                           continue;
-                         else
-                           break;
-                       }
-                     else if (SCM_PTR_LE (scm_heap_table[k].bounds[0], ptr))
-                       {
-                         i = k;
-                         --j;
-                         if (SCM_PTR_GT (scm_heap_table[j].bounds[1], ptr))
-                           continue;
-                         else
-                           break;
-                       }
+                     j = k;
+                     ++i;
+                     if (SCM_PTR_LT (ptr, scm_heap_table[i].bounds[0]))
+                       return -1;
                    }
-
-                  if (SCM_GC_IN_CARD_HEADERP (ptr))
-                    break;
-
-                 if (scm_heap_table[seg_id].span == 1
-                     || DOUBLECELL_ALIGNED_P (obj))
-                    scm_gc_mark (obj);
-                  
-                 break;
+                 else if (SCM_PTR_LE (scm_heap_table[k].bounds[0], ptr))
+                   {
+                     i = k;
+                     --j;
+                     if (SCM_PTR_LE (scm_heap_table[j].bounds[1], ptr))
+                       return -1;
+                   }
                }
            }
+
+         if (!DOUBLECELL_ALIGNED_P (obj) && scm_heap_table[i].span == 2)
+           return -1;
+         else if (SCM_GC_IN_CARD_HEADERP (ptr))
+           return -1;
+         else
+           return i;
        }
     }
 }
 
 
+/* Mark the entries of a cell conservatively.  The given cell is known to be
+ * on the heap.  Still we have to determine its heap segment in order to
+ * figure out whether it is a single or a double cell.  Then, each of the cell
+ * elements itself is checked and potentially marked. */
+void
+scm_gc_mark_cell_conservatively (SCM cell)
+{
+  unsigned long int cell_segment = heap_segment (cell);
+  unsigned int span = scm_heap_table[cell_segment].span;
+  unsigned int i;
+
+  for (i = 1; i != span * 2; ++i)
+    {
+      SCM obj = SCM_CELL_OBJECT (cell, i);
+      long int obj_segment = heap_segment (obj);
+      if (obj_segment >= 0)
+       scm_gc_mark (obj);
+    }
+}
+
+
+/* Mark a region conservatively */
+void
+scm_mark_locations (SCM_STACKITEM x[], unsigned long n)
+{
+  unsigned long m;
+
+  for (m = 0; m < n; ++m)
+    {
+      SCM obj = * (SCM *) &x[m];
+      long int segment = heap_segment (obj);
+      if (segment >= 0)
+       scm_gc_mark (obj);
+    }
+}
+
+
 /* The function scm_cellp determines whether an SCM value can be regarded as a
- * pointer to a cell on the heap.  Binary search is used in order to determine
- * the heap segment that contains the cell.
+ * pointer to a cell on the heap.
  */
 int
 scm_cellp (SCM value)
 {
-  if (SCM_CELLP (value)) {
-    scm_cell * ptr = SCM2PTR (value);
-    unsigned long i = 0;
-    unsigned long j = scm_n_heap_segs - 1;
-
-    if (SCM_GC_IN_CARD_HEADERP (ptr))
-      return 0;
-
-    while (i < j) {
-      long k = (i + j) / 2;
-      if (SCM_PTR_GT (scm_heap_table[k].bounds[1], ptr)) {
-       j = k;
-      } else if (SCM_PTR_LE (scm_heap_table[k].bounds[0], ptr)) {
-       i = k + 1;
-      }
-    }
-
-    if (SCM_PTR_LE (scm_heap_table[i].bounds[0], ptr)
-       && SCM_PTR_GT (scm_heap_table[i].bounds[1], ptr)
-       && (scm_heap_table[i].span == 1 || DOUBLECELL_ALIGNED_P (value))
-        && !SCM_GC_IN_CARD_HEADERP (ptr)
-        )
-      return 1;
-    else
-      return 0;
-  } else
-    return 0;
+  long int segment = heap_segment (value);
+  return (segment >= 0);
 }
 
 
@@ -1654,7 +1691,7 @@
   register scm_t_freelist *freelist;
   register unsigned long m;
   register int span;
-  long i;
+  size_t i;
   size_t seg_size;
 
   m = 0;
@@ -1738,9 +1775,6 @@
            case scm_tc7_pws:
              break;
            case scm_tc7_wvect:
-              m += (2 + SCM_VECTOR_LENGTH (scmptr)) * sizeof (SCM);
-              scm_must_free (SCM_VECTOR_BASE (scmptr) - 2);
-              break;
            case scm_tc7_vector:
              {
                unsigned long int length = SCM_VECTOR_LENGTH (scmptr);
@@ -2222,7 +2256,7 @@
 {
   register SCM_CELLPTR ptr;
   SCM_CELLPTR seg_end;
-  long new_seg_index;
+  size_t new_seg_index;
   ptrdiff_t n_new_cells;
   int span = freelist->span;
 
@@ -2238,13 +2272,11 @@
   seg_end = SCM_GC_CARD_DOWN ((char *)seg_org + size);
 
   /* Find the right place and insert the segment record.
-   *
    */
-  for (new_seg_index = 0;
-       (   (new_seg_index < scm_n_heap_segs)
-       && SCM_PTR_LE (scm_heap_table[new_seg_index].bounds[0], seg_org));
-       new_seg_index++)
-    ;
+  new_seg_index = 0;
+  while (new_seg_index < scm_n_heap_segs 
+        && SCM_PTR_LE (scm_heap_table[new_seg_index].bounds[0], seg_org))
+    new_seg_index++;
 
   {
     int i;
@@ -2468,7 +2500,7 @@
  * parameters.  Therefore, you can be sure that the compiler will keep those
  * scheme values alive (on the stack or in a register) up to the point where
  * scm_remember_upto_here* is called.  In other words, place the call to
- * scm_remember_upt_here* _behind_ the last code in your function, that
+ * scm_remember_upto_here* _behind_ the last code in your function, that
  * depends on the scheme object to exist.
  *
  * Example: We want to make sure, that the string object str does not get
@@ -2778,6 +2810,7 @@
 
 #if (SCM_DEBUG_CELL_ACCESSES == 1)
   scm_tc16_allocated = scm_make_smob_type ("allocated cell", 0);
+  scm_set_smob_mark (scm_tc16_allocated, allocated_mark);
 #endif  /* SCM_DEBUG_CELL_ACCESSES == 1 */
 
   j = SCM_NUM_PROTECTS;
Index: guile/guile-core/libguile/gc.h
diff -u guile/guile-core/libguile/gc.h:1.78 guile/guile-core/libguile/gc.h:1.79
--- guile/guile-core/libguile/gc.h:1.78 Thu Jun 14 12:50:43 2001
+++ guile/guile-core/libguile/gc.h      Sat Jun 30 12:50:10 2001
@@ -363,6 +363,7 @@
 extern void scm_igc (const char *what);
 extern void scm_gc_mark (SCM p);
 extern void scm_gc_mark_dependencies (SCM p);
+extern void scm_gc_mark_cell_conservatively (SCM cell);
 extern void scm_mark_locations (SCM_STACKITEM x[], unsigned long n);
 extern int scm_cellp (SCM value);
 extern void scm_gc_sweep (void);
Index: guile/guile-core/libguile/gdbint.c
diff -u guile/guile-core/libguile/gdbint.c:1.41 
guile/guile-core/libguile/gdbint.c:1.42
--- guile/guile-core/libguile/gdbint.c:1.41     Thu Jun 14 12:50:43 2001
+++ guile/guile-core/libguile/gdbint.c  Wed Jun 20 11:18:00 2001
@@ -55,7 +55,6 @@
 #include <unistd.h>
 #endif
 
-#include "libguile/tag.h"
 #include "libguile/strports.h"
 #include "libguile/read.h"
 #include "libguile/eval.h"
Index: guile/guile-core/libguile/gsubr.c
diff -u guile/guile-core/libguile/gsubr.c:1.39 
guile/guile-core/libguile/gsubr.c:1.40
--- guile/guile-core/libguile/gsubr.c:1.39      Sat May 26 13:51:20 2001
+++ guile/guile-core/libguile/gsubr.c   Wed Jun 27 18:11:58 2001
@@ -220,7 +220,7 @@
   if (n > SCM_GSUBR_MAX)
     scm_misc_error (FUNC_NAME, 
                    "Function ~S has illegal arity ~S.", 
-                   SCM_LIST2 (self, SCM_MAKINUM (n)));
+                   scm_list_2 (self, SCM_MAKINUM (n)));
 #endif
   args = SCM_CDR (args);
   for (i = 0; i < SCM_GSUBR_REQ (typ); i++) {
Index: guile/guile-core/libguile/guardians.c
diff -u guile/guile-core/libguile/guardians.c:1.35 
guile/guile-core/libguile/guardians.c:1.36
--- guile/guile-core/libguile/guardians.c:1.35  Thu Jun 14 12:50:43 2001
+++ guile/guile-core/libguile/guardians.c       Wed Jun 27 18:11:58 2001
@@ -230,7 +230,7 @@
 {
   if (DESTROYED_P (GUARDIAN (guardian)))
     scm_misc_error ("guard", "attempted use of destroyed guardian: ~A",
-                    SCM_LIST1 (guardian));
+                    scm_list_1 (guardian));
   
   if (!SCM_UNBNDP (obj))
     return scm_guard (guardian, obj,
@@ -266,7 +266,7 @@
               if (throw_p)
                 scm_misc_error ("guard",
                                 "object is already greedily guarded: ~A",
-                                SCM_LIST1 (obj));
+                                scm_list_1 (obj));
               else
                 return SCM_BOOL_F;
             }
@@ -401,7 +401,8 @@
   if (DESTROYED_P (g))
     {
       SCM_ALLOW_INTS;
-      SCM_MISC_ERROR ("guardian is already destroyed: ~A", SCM_LIST1 
(guardian));
+      SCM_MISC_ERROR ("guardian is already destroyed: ~A",
+                     scm_list_1 (guardian));
     }
 
   if (GREEDY_P (g))
Index: guile/guile-core/libguile/hash.c
diff -u guile/guile-core/libguile/hash.c:1.43 
guile/guile-core/libguile/hash.c:1.44
--- guile/guile-core/libguile/hash.c:1.43       Sat May 26 13:51:20 2001
+++ guile/guile-core/libguile/hash.c    Mon Jun  4 15:16:43 2001
@@ -98,17 +98,17 @@
       return (unsigned)(scm_downcase(SCM_CHAR(obj))) % n;
     switch (SCM_UNPACK (obj)) {
 #ifndef SICP
-    case SCM_EOL: 
+    case SCM_UNPACK(SCM_EOL):
       d = 256; 
       break;
 #endif
-    case SCM_BOOL_T: 
+    case SCM_UNPACK(SCM_BOOL_T):
       d = 257; 
       break;
-    case SCM_BOOL_F: 
+    case SCM_UNPACK(SCM_BOOL_F):
       d = 258; 
       break;
-    case SCM_EOF_VAL: 
+    case SCM_UNPACK(SCM_EOF_VAL):
       d = 259; 
       break;
     default: 
Index: guile/guile-core/libguile/hashtab.c
diff -u guile/guile-core/libguile/hashtab.c:1.40 
guile/guile-core/libguile/hashtab.c:1.41
--- guile/guile-core/libguile/hashtab.c:1.40    Thu Jun 14 12:50:43 2001
+++ guile/guile-core/libguile/hashtab.c Tue Jun 26 08:46:40 2001
@@ -48,6 +48,7 @@
 #include "libguile/alist.h"
 #include "libguile/hash.h"
 #include "libguile/eval.h"
+#include "libguile/root.h"
 #include "libguile/vectors.h"
 
 #include "libguile/validate.h"
@@ -380,9 +381,7 @@
 {
   SCM answer;
   SCM_DEFER_INTS;
-  answer = scm_apply (closure->hash,
-                     SCM_LIST2 (obj, scm_ulong2num ((unsigned long)n)),
-                     SCM_EOL);
+  answer = scm_call_2 (closure->hash, obj, scm_ulong2num ((unsigned long) n));
   SCM_ALLOW_INTS;
   return SCM_INUM (answer);
 }
@@ -394,9 +393,7 @@
 {
   SCM answer;
   SCM_DEFER_INTS;
-  answer = scm_apply (closure->assoc,
-                     SCM_LIST2 (obj, alist),
-                     SCM_EOL);
+  answer = scm_call_2 (closure->assoc, obj, alist);
   SCM_ALLOW_INTS;
   return answer;
 }
@@ -409,9 +406,7 @@
 {
   SCM answer;
   SCM_DEFER_INTS;
-  answer = scm_apply (closure->delete,
-                     SCM_LIST2 (obj, alist),
-                     SCM_EOL);
+  answer = scm_call_2 (closure->delete, obj, alist);
   SCM_ALLOW_INTS;
   return answer;
 }
@@ -519,7 +514,7 @@
 static SCM
 fold_proc (void *proc, SCM key, SCM data, SCM value)
 {
-  return scm_apply (SCM_PACK (proc), SCM_LIST3 (key, data, value), SCM_EOL);
+  return scm_call_3 (SCM_PACK (proc), key, data, value);
 }
 
 SCM_DEFINE (scm_hash_fold, "hash-fold", 3, 0, 0, 
Index: guile/guile-core/libguile/hooks.c
diff -u guile/guile-core/libguile/hooks.c:1.20 
guile/guile-core/libguile/hooks.c:1.21
--- guile/guile-core/libguile/hooks.c:1.20      Wed Jun 27 18:11:58 2001
+++ guile/guile-core/libguile/hooks.c   Tue Jul  3 23:13:10 2001
@@ -187,8 +187,9 @@
 
 SCM_DEFINE (scm_make_hook, "make-hook", 0, 1, 0, 
             (SCM n_args),
-           "Create a hook for storing procedure of arity\n"
-           "@var{n_args}.  @var{n_args} defaults to zero.")
+           "Create a hook for storing procedure of arity @var{n_args}.\n"
+           "@var{n_args} defaults to zero.  The returned value is a hook\n"
+           "object to be used with the other hook procedures.")
 #define FUNC_NAME s_scm_make_hook
 {
   int n;
@@ -235,7 +236,8 @@
             (SCM hook, SCM proc, SCM append_p),
            "Add the procedure @var{proc} to the hook @var{hook}. The\n"
            "procedure is added to the end if @var{append_p} is true,\n"
-           "otherwise it is added to the front.")
+           "otherwise it is added to the front.  The return value of this\n"
+           "procedure is not specified.")
 #define FUNC_NAME s_scm_add_hook_x
 {
   SCM arity, rest;
@@ -261,7 +263,8 @@
 
 SCM_DEFINE (scm_remove_hook_x, "remove-hook!", 2, 0, 0, 
             (SCM hook, SCM proc),
-           "Remove the procedure @var{proc} from the hook @var{hook}.")
+           "Remove the procedure @var{proc} from the hook @var{hook}.  The\n"
+           "return value of this procedure is not specified.")
 #define FUNC_NAME s_scm_remove_hook_x
 {
   SCM_VALIDATE_HOOK (1, hook);
@@ -274,7 +277,8 @@
 
 SCM_DEFINE (scm_reset_hook_x, "reset-hook!", 1, 0, 0, 
             (SCM hook),
-           "Remove all procedures from the hook @var{hook}.")
+           "Remove all procedures from the hook @var{hook}.  The return\n"
+           "value of this procedure is not specified.")
 #define FUNC_NAME s_scm_reset_hook_x
 {
   SCM_VALIDATE_HOOK (1,hook);
@@ -288,7 +292,7 @@
             (SCM hook, SCM args),
            "Apply all procedures from the hook @var{hook} to the arguments\n"
            "@var{args}.  The order of the procedure application is first to\n"
-           "last.")
+           "last.  The return value of this procedure is not specified.")
 #define FUNC_NAME s_scm_run_hook
 {
   SCM_VALIDATE_HOOK (1,hook);
Index: guile/guile-core/libguile/hooks.h
diff -u guile/guile-core/libguile/hooks.h:1.6 
guile/guile-core/libguile/hooks.h:1.7
--- guile/guile-core/libguile/hooks.h:1.6       Mon May 28 07:18:35 2001
+++ guile/guile-core/libguile/hooks.h   Thu Jun 14 12:50:43 2001
@@ -58,45 +58,45 @@
  * both may want to indicate success/failure and return a result.
  */
 
-typedef enum scm_c_hook_type_t {
+typedef enum scm_t_c_hookype_t {
   SCM_C_HOOK_NORMAL,
   SCM_C_HOOK_OR,
   SCM_C_HOOK_AND
-} scm_c_hook_type_t;
+} scm_t_c_hookype_t;
 
-typedef void  *(*scm_c_hook_function_t) (void *hook_data,
+typedef void  *(*scm_t_c_hook_function) (void *hook_data,
                                         void *func_data,
                                         void *data);
 
-typedef struct scm_c_hook_entry_t {
-  struct scm_c_hook_entry_t *next;
-  scm_c_hook_function_t func;
+typedef struct scm_t_c_hook_entry {
+  struct scm_t_c_hook_entry *next;
+  scm_t_c_hook_function func;
   void *data;
-} scm_c_hook_entry_t;
+} scm_t_c_hook_entry;
 
-typedef struct scm_c_hook_t {
-  scm_c_hook_entry_t *first;
-  scm_c_hook_type_t type;
+typedef struct scm_t_c_hook {
+  scm_t_c_hook_entry *first;
+  scm_t_c_hookype_t type;
   void *data;
-} scm_c_hook_t;
+} scm_t_c_hook;
 
-extern void scm_c_hook_init (scm_c_hook_t *hook,
+extern void scm_c_hook_init (scm_t_c_hook *hook,
                             void *hook_data,
-                            scm_c_hook_type_t type);
-extern void scm_c_hook_add (scm_c_hook_t *hook,
-                           scm_c_hook_function_t func,
+                            scm_t_c_hookype_t type);
+extern void scm_c_hook_add (scm_t_c_hook *hook,
+                           scm_t_c_hook_function func,
                            void *func_data, 
                            int appendp);
-extern void scm_c_hook_remove (scm_c_hook_t *hook,
-                              scm_c_hook_function_t func,
+extern void scm_c_hook_remove (scm_t_c_hook *hook,
+                              scm_t_c_hook_function func,
                               void *func_data);
-extern void *scm_c_hook_run (scm_c_hook_t *hook, void *data);
+extern void *scm_c_hook_run (scm_t_c_hook *hook, void *data);
 
 /*
  * Scheme level hooks
  */
 
-extern scm_bits_t scm_tc16_hook;
+extern scm_t_bits scm_tc16_hook;
 
 #define SCM_HOOKP(x)                   SCM_TYP16_PREDICATE (scm_tc16_hook, x)
 #define SCM_HOOK_ARITY(hook)           (SCM_CELL_WORD_0 (hook) >> 16)
Index: guile/guile-core/libguile/inet_aton.c
diff -u guile/guile-core/libguile/inet_aton.c:1.6 
guile/guile-core/libguile/inet_aton.c:1.7
--- guile/guile-core/libguile/inet_aton.c:1.6   Mon Jun 12 14:24:29 2000
+++ guile/guile-core/libguile/inet_aton.c       Tue Jun 26 10:53:09 2001
@@ -40,9 +40,13 @@
 
 #include <ctype.h>
 
+#ifdef __MINGW32__
+#include <winsock2.h>
+#else
 #include <sys/param.h>
 #include <netinet/in.h>
 #include <arpa/inet.h>
+#endif
 
 #if 0
 
Index: guile/guile-core/libguile/init.c
diff -u guile/guile-core/libguile/init.c:1.127 
guile/guile-core/libguile/init.c:1.128
--- guile/guile-core/libguile/init.c:1.127      Thu Jun 14 12:50:43 2001
+++ guile/guile-core/libguile/init.c    Wed Jun 20 11:18:00 2001
@@ -132,7 +132,6 @@
 #include "libguile/strports.h"
 #include "libguile/struct.h"
 #include "libguile/symbols.h"
-#include "libguile/tag.h"
 #include "libguile/throw.h"
 #include "libguile/unif.h"
 #include "libguile/values.h"
@@ -548,7 +547,6 @@
   scm_init_struct ();   /* Requires strings */
   scm_init_stacks ();   /* Requires strings, struct */
   scm_init_symbols ();
-  scm_init_tag ();
   scm_init_values ();   /* Requires struct */
   scm_init_load ();     /* Requires strings */
   scm_init_objects (); /* Requires struct */
Index: guile/guile-core/libguile/ioext.c
diff -u guile/guile-core/libguile/ioext.c:1.84 
guile/guile-core/libguile/ioext.c:1.85
--- guile/guile-core/libguile/ioext.c:1.84      Thu Jun 14 12:50:43 2001
+++ guile/guile-core/libguile/ioext.c   Tue Jul  3 08:27:56 2001
@@ -44,6 +44,7 @@
 
 
 
+#include <stdio.h>
 #include <errno.h>
 
 #include "libguile/_scm.h"
Index: guile/guile-core/libguile/keywords.c
diff -u guile/guile-core/libguile/keywords.c:1.43 
guile/guile-core/libguile/keywords.c:1.44
--- guile/guile-core/libguile/keywords.c:1.43   Fri Jun  8 03:02:33 2001
+++ guile/guile-core/libguile/keywords.c        Thu Jun 14 12:50:43 2001
@@ -56,7 +56,7 @@
 #include "libguile/keywords.h"
 
 
-scm_bits_t scm_tc16_keyword;
+scm_t_bits scm_tc16_keyword;
 
 static int
 keyword_print (SCM exp, SCM port, scm_print_state *pstate SCM_UNUSED)
Index: guile/guile-core/libguile/keywords.h
diff -u guile/guile-core/libguile/keywords.h:1.10 
guile/guile-core/libguile/keywords.h:1.11
--- guile/guile-core/libguile/keywords.h:1.10   Fri Dec  8 09:32:56 2000
+++ guile/guile-core/libguile/keywords.h        Thu Jun 14 12:50:43 2001
@@ -51,7 +51,7 @@
 
 
 
-extern scm_bits_t scm_tc16_keyword;
+extern scm_t_bits scm_tc16_keyword;
 
 #define SCM_KEYWORDP(X)                (!SCM_IMP (X) && (SCM_CELL_TYPE (X) == 
scm_tc16_keyword))
 #define SCM_KEYWORDSYM(X)      (SCM_CELL_OBJECT_1 (X))
Index: guile/guile-core/libguile/lang.c
diff -u guile/guile-core/libguile/lang.c:1.20 
guile/guile-core/libguile/lang.c:1.21
--- guile/guile-core/libguile/lang.c:1.20       Thu Jun 14 12:50:43 2001
+++ guile/guile-core/libguile/lang.c    Thu Jun 14 13:14:09 2001
@@ -114,7 +114,7 @@
            "return LISP's nil otherwise.")
 #define FUNC_NAME s_scm_null
 {
-  return (SCM_NILP (x) || SCM_NULLP (x) || SCM_FALSEP (x)) ? scm_t_lisp : 
scm_lisp_nil;
+  return (SCM_NILP (x) || SCM_NULLP (x) || SCM_FALSEP (x)) ? scm_lisp_t : 
scm_lisp_nil;
 }
 #undef FUNC_NAME
 
@@ -146,7 +146,7 @@
   return ((SCM_EQ_P (x, y)
           || (SCM_NILP (x) && (SCM_NULLP (y) || SCM_FALSEP (y)))
           || (SCM_NILP (y) && (SCM_NULLP (x) || SCM_FALSEP (x))))
-         ? scm_t_lisp
+         ? scm_lisp_t
          : scm_lisp_nil);
 }
 #undef FUNC_NAME
Index: guile/guile-core/libguile/list.c
diff -u guile/guile-core/libguile/list.c:1.57 
guile/guile-core/libguile/list.c:1.58
--- guile/guile-core/libguile/list.c:1.57       Wed Jun 27 18:11:58 2001
+++ guile/guile-core/libguile/list.c    Sat Jun 30 12:50:10 2001
@@ -1,4 +1,4 @@
-/*     Copyright (C) 1995,1996,1997, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1995,1996,1997,2000,2001 Free Software Foundation, Inc.
  * 
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -63,8 +63,8 @@
 #define SCM_I_CONS(cell,x,y)                   \
 do {                                           \
   SCM_NEWCELL (cell);                          \
-  SCM_SET_CELL_OBJECT_0 (cell, x);             \
   SCM_SET_CELL_OBJECT_1 (cell, y);             \
+  SCM_SET_CELL_OBJECT_0 (cell, x);             \
 } while (0)
 
 SCM
Index: guile/guile-core/libguile/load.c
diff -u guile/guile-core/libguile/load.c:1.64 
guile/guile-core/libguile/load.c:1.65
--- guile/guile-core/libguile/load.c:1.64       Wed Jun 27 18:11:58 2001
+++ guile/guile-core/libguile/load.c    Fri Jun 29 16:13:43 2001
@@ -136,6 +136,12 @@
 }
 #undef FUNC_NAME
 
+SCM
+scm_c_primitive_load (const char *filename)
+{
+  return scm_primitive_load (scm_makfrom0str (filename));
+}
+
 
 /* Builtin path to scheme library files. */
 #ifdef SCM_PKGDATA_DIR
@@ -459,6 +465,12 @@
   return scm_primitive_load (full_filename);
 }
 #undef FUNC_NAME
+
+SCM
+scm_c_primitive_load_path (const char *filename)
+{
+  return scm_primitive_load_path (scm_makfrom0str (filename));
+}
 
 #if SCM_DEBUG_DEPRECATED == 0
 
Index: guile/guile-core/libguile/macros.c
diff -u guile/guile-core/libguile/macros.c:1.29 
guile/guile-core/libguile/macros.c:1.30
--- guile/guile-core/libguile/macros.c:1.29     Sat May 19 17:35:42 2001
+++ guile/guile-core/libguile/macros.c  Thu Jun 14 12:50:43 2001
@@ -55,7 +55,7 @@
 #include "libguile/validate.h"
 #include "libguile/macros.h"
 
-scm_bits_t scm_tc16_macro;
+scm_t_bits scm_tc16_macro;
 
 
 static int
Index: guile/guile-core/libguile/mallocs.c
diff -u guile/guile-core/libguile/mallocs.c:1.26 
guile/guile-core/libguile/mallocs.c:1.27
--- guile/guile-core/libguile/mallocs.c:1.26    Thu Jun  7 14:12:19 2001
+++ guile/guile-core/libguile/mallocs.c Thu Jun 14 12:50:43 2001
@@ -61,7 +61,7 @@
 
 
 
-scm_bits_t scm_tc16_malloc;
+scm_t_bits scm_tc16_malloc;
 
 
 static size_t
@@ -86,7 +86,7 @@
 SCM
 scm_malloc_obj (size_t n)
 {
-  scm_bits_t mem = n ? (scm_bits_t) malloc (n) : 0;
+  scm_t_bits mem = n ? (scm_t_bits) malloc (n) : 0;
   if (n && !mem)
     return SCM_BOOL_F;
   SCM_RETURN_NEWSMOB (scm_tc16_malloc, mem);
Index: guile/guile-core/libguile/memmove.c
diff -u guile/guile-core/libguile/memmove.c:1.2 
guile/guile-core/libguile/memmove.c:1.3
--- guile/guile-core/libguile/memmove.c:1.2     Sun Dec 12 12:35:02 1999
+++ guile/guile-core/libguile/memmove.c Sun Mar 19 11:01:12 2000
@@ -22,3 +22,9 @@
   bcopy (s2, s1, n);
   return s1;
 }
+
+/*
+  Local Variables:
+  c-file-style: "gnu"
+  End:
+*/
Index: guile/guile-core/libguile/modules.c
diff -u guile/guile-core/libguile/modules.c:1.30 
guile/guile-core/libguile/modules.c:1.31
--- guile/guile-core/libguile/modules.c:1.30    Tue Jun 26 08:46:40 2001
+++ guile/guile-core/libguile/modules.c Wed Jun 27 18:11:58 2001
@@ -170,7 +170,7 @@
                     void (*init)(void *), void *data)
 {
   SCM module = scm_call_1 (SCM_VARIABLE_REF (process_define_module_var),
-                          SCM_LIST1 (convert_module_name (name)));
+                          scm_list_1 (convert_module_name (name)));
   if (init)
     scm_c_call_with_current_module (module, (SCM (*)(void*))init, data);
   return module;
@@ -180,7 +180,7 @@
 scm_c_use_module (const char *name)
 {
   scm_call_1 (SCM_VARIABLE_REF (process_use_modules_var),
-             SCM_LIST1 (convert_module_name (name)));
+             scm_list_1 (convert_module_name (name)));
 }
 
 static SCM module_export_x_var;
@@ -440,7 +440,7 @@
     }
 
   if (var != SCM_BOOL_F && !SCM_VARIABLEP (var))
-    SCM_MISC_ERROR ("~S is not bound to a variable", SCM_LIST1 (sym));
+    SCM_MISC_ERROR ("~S is not bound to a variable", scm_list_1 (sym));
 
   return var;
 }
@@ -461,7 +461,7 @@
 
   var = scm_sym2var (sym, scm_module_lookup_closure (module), SCM_BOOL_F);
   if (SCM_FALSEP (var))
-    SCM_MISC_ERROR ("unbound variable: ~S", SCM_LIST1 (sym));
+    SCM_MISC_ERROR ("unbound variable: ~S", scm_list_1 (sym));
   return var;
 }
 #undef FUNC_NAME
@@ -478,7 +478,7 @@
   SCM var = 
     scm_sym2var (sym, scm_current_module_lookup_closure (), SCM_BOOL_F);
   if (SCM_FALSEP (var))
-    scm_misc_error ("scm_lookup", "unbound variable: ~S", SCM_LIST1 (sym));
+    scm_misc_error ("scm_lookup", "unbound variable: ~S", scm_list_1 (sym));
   return var;
 }
 
@@ -639,7 +639,7 @@
 
 #if SCM_DEBUG_DEPRECATED == 0
 
-  module_prefix = PERM (SCM_LIST2 (scm_sym_app, scm_sym_modules));
+  module_prefix = PERM (scm_list_2 (scm_sym_app, scm_sym_modules));
   make_modules_in_var = PERM (scm_c_lookup ("make-modules-in"));
   root_module_lookup_closure =
     PERM (scm_module_lookup_closure (SCM_VARIABLE_REF (the_root_module_var)));
@@ -669,7 +669,7 @@
   if (SCM_EQ_P (SCM_CAR (name), scm_sym_app))
     return name;
   else
-    return scm_append (SCM_LIST2 (module_prefix, name));
+    return scm_append (scm_list_2 (module_prefix, name));
 }
 
 SCM
Index: guile/guile-core/libguile/net_db.c
diff -u guile/guile-core/libguile/net_db.c:1.61 
guile/guile-core/libguile/net_db.c:1.62
--- guile/guile-core/libguile/net_db.c:1.61     Tue Jun 26 10:53:09 2001
+++ guile/guile-core/libguile/net_db.c  Wed Jun 27 18:11:58 2001
@@ -260,7 +260,7 @@
       entry = getnetbyaddr (netnum, AF_INET);
     }
   if (!entry)
-    SCM_SYSERROR_MSG ("no such network ~A", SCM_LIST1 (net), errno);
+    SCM_SYSERROR_MSG ("no such network ~A", scm_list_1 (net), errno);
   ve[0] = scm_mem2string (entry->n_name, strlen (entry->n_name));
   ve[1] = scm_makfromstrs (-1, entry->n_aliases);
   ve[2] = SCM_MAKINUM (entry->n_addrtype + 0L);
@@ -310,7 +310,7 @@
       entry = getprotobynumber (protonum);
     }
   if (!entry)
-    SCM_SYSERROR_MSG ("no such protocol ~A", SCM_LIST1 (protocol), errno);
+    SCM_SYSERROR_MSG ("no such protocol ~A", scm_list_1 (protocol), errno);
   ve[0] = scm_mem2string (entry->p_name, strlen (entry->p_name));
   ve[1] = scm_makfromstrs (-1, entry->p_aliases);
   ve[2] = SCM_MAKINUM (entry->p_proto + 0L);
@@ -374,7 +374,7 @@
       entry = getservbyport (htons (SCM_INUM (name)), SCM_STRING_CHARS 
(protocol));
     }
   if (!entry)
-    SCM_SYSERROR_MSG("no such service ~A", SCM_LIST1 (name), errno);
+    SCM_SYSERROR_MSG("no such service ~A", scm_list_1 (name), errno);
   return scm_return_entry (entry);
 }
 #undef FUNC_NAME
Index: guile/guile-core/libguile/numbers.c
diff -u guile/guile-core/libguile/numbers.c:1.134 
guile/guile-core/libguile/numbers.c:1.135
--- guile/guile-core/libguile/numbers.c:1.134   Sun Jun 24 17:57:59 2001
+++ guile/guile-core/libguile/numbers.c Tue Jun 26 03:59:34 2001
@@ -2188,12 +2188,12 @@
   if (SCM_INUMP (n)) {
     char num_buf [SCM_INTBUFLEN];
     size_t length = scm_iint2str (SCM_INUM (n), base, num_buf);
-    return scm_makfromstr (num_buf, length, 0);
+    return scm_mem2string (num_buf, length);
   } else if (SCM_BIGP (n)) {
     return big2str (n, (unsigned int) base);
   } else if (SCM_INEXACTP (n)) {
     char num_buf [FLOBUFLEN];
-    return scm_makfromstr (num_buf, iflo2str (n, num_buf), 0);
+    return scm_mem2string (num_buf, iflo2str (n, num_buf));
   } else {
     SCM_WRONG_TYPE_ARG (1, n);
   }
Index: guile/guile-core/libguile/numbers.h
diff -u guile/guile-core/libguile/numbers.h:1.52 
guile/guile-core/libguile/numbers.h:1.53
--- guile/guile-core/libguile/numbers.h:1.52    Thu Jun 14 10:41:21 2001
+++ guile/guile-core/libguile/numbers.h Thu Jun 14 12:50:43 2001
@@ -69,7 +69,7 @@
 
 /* SCM_SRS is signed right shift */
 #if (-1 == (((-1) << 2) + 2) >> 2)
-# define SCM_SRS(x, y) ((scm_signed_bits_t)(x) >> (y))
+# define SCM_SRS(x, y) ((scm_t_signed_bits)(x) >> (y))
 #else
 # define SCM_SRS(x, y) ((SCM_UNPACK (x) < 0) ? ~((~SCM_UNPACK (x)) >> (y)) : 
(SCM_UNPACK (x) >> (y)))
 #endif /* (-1 == (((-1) << 2) + 2) >> 2) */
@@ -78,7 +78,7 @@
 #define SCM_INUMP(x)   (2 & SCM_UNPACK (x))
 #define SCM_NINUMP(x)  (!SCM_INUMP (x))
 #define SCM_MAKINUM(x)  (SCM_PACK (((x) << 2) + 2L))
-#define SCM_INUM(x)     ((scm_signed_bits_t)(SCM_SRS (SCM_UNPACK (x), 2)))
+#define SCM_INUM(x)     ((scm_t_signed_bits)(SCM_SRS (SCM_UNPACK (x), 2)))
 
 
 /* SCM_FIXABLE is true if its long argument can be encoded in an SCM_INUM. */
@@ -129,8 +129,8 @@
 #define SCM_REALP(x) (SCM_NIMP (x) && SCM_TYP16 (x) == scm_tc16_real)
 #define SCM_COMPLEXP(x) (SCM_NIMP (x) && SCM_TYP16 (x) == scm_tc16_complex)
 
-#define SCM_REAL_VALUE(x) (((scm_double_t *) SCM2PTR (x))->real)
-#define SCM_COMPLEX_MEM(x) ((scm_complex_t *) SCM_CELL_WORD_1 (x))
+#define SCM_REAL_VALUE(x) (((scm_t_double *) SCM2PTR (x))->real)
+#define SCM_COMPLEX_MEM(x) ((scm_t_complex *) SCM_CELL_WORD_1 (x))
 #define SCM_COMPLEX_REAL(x) (SCM_COMPLEX_MEM (x)->real)
 #define SCM_COMPLEX_IMAG(x) (SCM_COMPLEX_MEM (x)->imag)
 
@@ -186,18 +186,18 @@
 
 
 
-typedef struct scm_double_t
+typedef struct scm_t_double
 {
   SCM type;
   SCM pad;
   double real;
-} scm_double_t;
+} scm_t_double;
 
-typedef struct scm_complex_t
+typedef struct scm_t_complex
 {
   double real;
   double imag;
-} scm_complex_t;
+} scm_t_complex;
 
 
 
Index: guile/guile-core/libguile/objects.c
diff -u guile/guile-core/libguile/objects.c:1.62 
guile/guile-core/libguile/objects.c:1.63
--- guile/guile-core/libguile/objects.c:1.62    Tue Jun 26 03:59:34 2001
+++ guile/guile-core/libguile/objects.c Wed Jun 27 18:11:59 2001
@@ -344,19 +344,19 @@
 SCM
 scm_call_generic_1 (SCM gf, SCM a1)
 {
-  return scm_apply_generic (gf, SCM_LIST1 (a1));
+  return scm_apply_generic (gf, scm_list_1 (a1));
 }
 
 SCM
 scm_call_generic_2 (SCM gf, SCM a1, SCM a2)
 {
-  return scm_apply_generic (gf, SCM_LIST2 (a1, a2));
+  return scm_apply_generic (gf, scm_list_2 (a1, a2));
 }
 
 SCM
 scm_call_generic_3 (SCM gf, SCM a1, SCM a2, SCM a3)
 {
-  return scm_apply_generic (gf, SCM_LIST3 (a1, a2, a3));
+  return scm_apply_generic (gf, scm_list_3 (a1, a2, a3));
 }
 
 SCM_DEFINE (scm_entity_p, "entity?", 1, 0, 0, 
@@ -460,7 +460,7 @@
   SCM layout = scm_make_struct_layout (layout_string);
   c = scm_make_struct (meta,
                       SCM_INUM0,
-                      SCM_LIST4 (layout, SCM_BOOL_F, SCM_EOL, SCM_EOL));
+                      scm_list_4 (layout, SCM_BOOL_F, SCM_EOL, SCM_EOL));
   SCM_SET_CLASS_FLAGS (c, flags);
   return c;
 }
@@ -493,7 +493,7 @@
   /* Convert symbol->string */
   pl = scm_mem2string (SCM_SYMBOL_CHARS (pl), SCM_SYMBOL_LENGTH (pl));
   return scm_i_make_class_object (SCM_STRUCT_VTABLE (class),
-                                 scm_string_append (SCM_LIST2 (pl, layout)),
+                                 scm_string_append (scm_list_2 (pl, layout)),
                                  SCM_CLASS_FLAGS (class));
 }
 #undef FUNC_NAME
@@ -503,16 +503,16 @@
 {
   SCM ms = scm_makfrom0str (SCM_METACLASS_STANDARD_LAYOUT);
   SCM mt = scm_make_vtable_vtable (ms, SCM_INUM0,
-                                  SCM_LIST3 (SCM_BOOL_F, SCM_EOL, SCM_EOL));
+                                  scm_list_3 (SCM_BOOL_F, SCM_EOL, SCM_EOL));
   
   SCM os = scm_makfrom0str (SCM_METACLASS_OPERATOR_LAYOUT);
   SCM ot = scm_make_vtable_vtable (os, SCM_INUM0,
-                                  SCM_LIST3 (SCM_BOOL_F, SCM_EOL, SCM_EOL));
+                                  scm_list_3 (SCM_BOOL_F, SCM_EOL, SCM_EOL));
   
   SCM es = scm_makfrom0str (SCM_ENTITY_LAYOUT);
   SCM el = scm_make_struct_layout (es);
   SCM et = scm_make_struct (mt, SCM_INUM0,
-                           SCM_LIST4 (el, SCM_BOOL_F, SCM_EOL, SCM_EOL));
+                           scm_list_4 (el, SCM_BOOL_F, SCM_EOL, SCM_EOL));
 
   scm_c_define ("<class>", mt);
   scm_metaclass_standard = mt;
Index: guile/guile-core/libguile/objprop.c
diff -u guile/guile-core/libguile/objprop.c:1.17 
guile/guile-core/libguile/objprop.c:1.18
--- guile/guile-core/libguile/objprop.c:1.17    Fri Mar  9 15:33:40 2001
+++ guile/guile-core/libguile/objprop.c Tue Apr  3 06:19:04 2001
@@ -68,14 +68,14 @@
 
 
 SCM_DEFINE (scm_set_object_properties_x, "set-object-properties!", 2, 0, 0,
-           (SCM obj, SCM plist),
+           (SCM obj, SCM alist),
            "@deffnx primitive set-procedure-properties! obj alist\n"
            "Set @var{obj}'s property list to @var{alist}.")
 #define FUNC_NAME s_scm_set_object_properties_x
 {
-  SCM handle = scm_hashq_create_handle_x (scm_object_whash, obj, plist);
-  SCM_SETCDR (handle, plist);
-  return plist;
+  SCM handle = scm_hashq_create_handle_x (scm_object_whash, obj, alist);
+  SCM_SETCDR (handle, alist);
+  return alist;
 }
 #undef FUNC_NAME
 
@@ -92,10 +92,10 @@
 #undef FUNC_NAME
 
 SCM_DEFINE (scm_set_object_property_x, "set-object-property!", 3, 0, 0,
-           (SCM obj, SCM key, SCM val),
+           (SCM obj, SCM key, SCM value),
            "@deffnx primitive set-procedure-property! obj key value\n"
-           "In @var{obj}'s property list, set the property named @var{key} 
to\n"
-           "@var{value}.")
+           "In @var{obj}'s property list, set the property named @var{key}\n"
+           "to @var{value}.")
 #define FUNC_NAME s_scm_set_object_property_x
 {
   SCM h;
@@ -104,14 +104,14 @@
   SCM_DEFER_INTS;
   assoc = scm_assq (key, SCM_CDR (h));
   if (SCM_NIMP (assoc))
-    SCM_SETCDR (assoc, val);
+    SCM_SETCDR (assoc, value);
   else
     {
-      assoc = scm_acons (key, val, SCM_CDR (h));
+      assoc = scm_acons (key, value, SCM_CDR (h));
       SCM_SETCDR (h, assoc);
     }
   SCM_ALLOW_INTS;
-  return val;
+  return value;
 }
 #undef FUNC_NAME
 
Index: guile/guile-core/libguile/options.c
diff -u guile/guile-core/libguile/options.c:1.33 
guile/guile-core/libguile/options.c:1.34
--- guile/guile-core/libguile/options.c:1.33    Thu Jun 14 12:50:43 2001
+++ guile/guile-core/libguile/options.c Wed Jun 27 18:11:59 2001
@@ -190,7 +190,7 @@
 #ifndef SCM_RECKLESS
          scm_must_free ((char *) flags);
          scm_misc_error (s, "Unknown mode flag: ~S", 
-                         SCM_LIST1 (SCM_CAR (new_mode)));
+                         scm_list_1 (SCM_CAR (new_mode)));
 #endif
        cont:
          new_mode = SCM_CDR (new_mode);
Index: guile/guile-core/libguile/pairs.c
diff -u guile/guile-core/libguile/pairs.c:1.24 
guile/guile-core/libguile/pairs.c:1.25
--- guile/guile-core/libguile/pairs.c:1.24      Fri Jun  8 03:02:33 2001
+++ guile/guile-core/libguile/pairs.c   Wed Jun 27 18:11:59 2001
@@ -68,7 +68,7 @@
     {
       running = 1;
       scm_simple_format (scm_current_error_port (),
-                        message, SCM_LIST1 (non_pair));
+                        message, scm_list_1 (non_pair));
       abort ();
     }
 }
Index: guile/guile-core/libguile/pairs.h
diff -u guile/guile-core/libguile/pairs.h:1.27 
guile/guile-core/libguile/pairs.h:1.28
--- guile/guile-core/libguile/pairs.h:1.27      Thu Jun  7 14:12:19 2001
+++ guile/guile-core/libguile/pairs.h   Sat Jun 23 08:25:57 2001
@@ -103,7 +103,7 @@
 
 
 #if (SCM_DEBUG_PAIR_ACCESSES == 1)
-extern void scm_error_pair_access (SCM) SCM_NORETURN;
+extern void scm_error_pair_access (SCM);
 #endif
 extern SCM scm_cons (SCM x, SCM y);
 extern SCM scm_cons2 (SCM w, SCM x, SCM y);
Index: guile/guile-core/libguile/ports.c
diff -u guile/guile-core/libguile/ports.c:1.152 
guile/guile-core/libguile/ports.c:1.153
--- guile/guile-core/libguile/ports.c:1.152     Tue Jun 26 10:53:09 2001
+++ guile/guile-core/libguile/ports.c   Wed Jun 27 18:11:59 2001
@@ -483,7 +483,7 @@
   long i = p->entry;
 
   if (i >= scm_t_portable_size)
-    SCM_MISC_ERROR ("Port not in table: ~S", SCM_LIST1 (port));
+    SCM_MISC_ERROR ("Port not in table: ~S", scm_list_1 (port));
   if (p->putback_buf)
     scm_must_free (p->putback_buf);
   scm_must_free (p);
Index: guile/guile-core/libguile/ports.h
diff -u guile/guile-core/libguile/ports.h:1.76 
guile/guile-core/libguile/ports.h:1.77
--- guile/guile-core/libguile/ports.h:1.76      Sat May 26 13:51:21 2001
+++ guile/guile-core/libguile/ports.h   Thu Jun 14 12:50:43 2001
@@ -59,11 +59,11 @@
 #define SCM_INITIAL_PUTBACK_BUF_SIZE 4
 
 /* values for the rw_active flag.  */
-typedef enum scm_port_rw_active_t {
+typedef enum scm_t_port_rw_active {
   SCM_PORT_NEITHER = 0,
   SCM_PORT_READ = 1,
   SCM_PORT_WRITE = 2
-} scm_port_rw_active_t;
+} scm_t_port_rw_active;
 
 /* C representation of a Scheme port.  */
 
@@ -75,7 +75,7 @@
                                 * Revealed ports do not get GC'd.
                                 */
   /* data for the underlying port implementation as a raw C value. */
-  scm_bits_t stream;
+  scm_t_bits stream;
 
   SCM file_name;               /* debugging support.  */
   long line_number;            /* debugging support.  */
@@ -120,7 +120,7 @@
                                   flushed before switching between
                                   reading and writing, seeking, etc.  */
 
-  scm_port_rw_active_t rw_active; /* for random access ports,
+  scm_t_port_rw_active rw_active; /* for random access ports,
                                      indicates which of the buffers
                                      is currently in use.  can be
                                      SCM_PORT_WRITE, SCM_PORT_READ,
@@ -130,10 +130,10 @@
   /* a buffer for un-read chars and strings.  */
   unsigned char *putback_buf;
   size_t putback_buf_size;        /* allocated size of putback_buf.  */
-} scm_port_t;
+} scm_t_port;
 
-extern scm_port_t **scm_port_table;
-extern long scm_port_table_size; /* Number of ports in scm_port_table.  */
+extern scm_t_port **scm_t_portable;
+extern long scm_t_portable_size; /* Number of ports in scm_t_portable.  */
 
 #define SCM_READ_BUFFER_EMPTY_P(c_port) (c_port->read_pos >= c_port->read_end)
 
@@ -167,10 +167,10 @@
 #define SCM_CLR_PORT_OPEN_FLAG(p) \
   SCM_SET_CELL_WORD_0 ((p), SCM_CELL_WORD_0 (p) & ~SCM_OPN)
 
-#define SCM_PTAB_ENTRY(x)         ((scm_port_t *) SCM_CELL_WORD_1 (x))
-#define SCM_SETPTAB_ENTRY(x,ent)  (SCM_SET_CELL_WORD_1 ((x), (scm_bits_t) 
(ent)))
+#define SCM_PTAB_ENTRY(x)         ((scm_t_port *) SCM_CELL_WORD_1 (x))
+#define SCM_SETPTAB_ENTRY(x,ent)  (SCM_SET_CELL_WORD_1 ((x), (scm_t_bits) 
(ent)))
 #define SCM_STREAM(x)             (SCM_PTAB_ENTRY(x)->stream)
-#define SCM_SETSTREAM(x,s)        (SCM_PTAB_ENTRY(x)->stream = (scm_bits_t) 
(s))
+#define SCM_SETSTREAM(x,s)        (SCM_PTAB_ENTRY(x)->stream = (scm_t_bits) 
(s))
 #define SCM_FILENAME(x)           (SCM_PTAB_ENTRY(x)->file_name)
 #define SCM_SET_FILENAME(x, n)    (SCM_PTAB_ENTRY(x)->file_name = (n))
 #define SCM_LINUM(x)              (SCM_PTAB_ENTRY(x)->line_number)
@@ -185,7 +185,7 @@
 
 
 /* port-type description.  */
-typedef struct scm_ptob_descriptor_t
+typedef struct scm_t_ptob_descriptor
 {
   char *name;
   SCM (*mark) (SCM);
@@ -204,12 +204,12 @@
   off_t (*seek) (SCM port, off_t OFFSET, int WHENCE);
   void (*truncate) (SCM port, off_t length);
 
-} scm_ptob_descriptor_t;
+} scm_t_ptob_descriptor;
 
 #if (SCM_DEBUG_DEPRECATED == 0)
-# define scm_port scm_port_t
-# define scm_ptob_descriptor scm_ptob_descriptor_t
-# define scm_port_rw_active scm_port_rw_active_t
+# define scm_port scm_t_port
+# define scm_ptob_descriptor scm_t_ptob_descriptor
+# define scm_port_rw_active scm_t_port_rw_active
 #endif
 
 #define SCM_TC2PTOBNUM(x) (0x0ff & ((x) >> 8))
@@ -219,14 +219,14 @@
 
 
 
-extern scm_ptob_descriptor_t *scm_ptobs;
+extern scm_t_ptob_descriptor *scm_ptobs;
 extern long scm_numptob;
-extern long scm_port_table_room;
+extern long scm_t_portable_room;
 
 
 
 extern SCM scm_markstream (SCM ptr);
-extern scm_bits_t scm_make_port_type (char *name,
+extern scm_t_bits scm_make_port_type (char *name,
                                      int (*fill_input) (SCM port),
                                      void (*write) (SCM port, 
                                                     const void *data,
@@ -263,12 +263,12 @@
 extern SCM scm_set_current_input_port (SCM port);
 extern SCM scm_set_current_output_port (SCM port);
 extern SCM scm_set_current_error_port (SCM port);
-extern scm_port_t * scm_add_to_port_table (SCM port);
+extern scm_t_port * scm_add_to_port_table (SCM port);
 extern void scm_remove_from_port_table (SCM port);
 extern void scm_grow_port_cbuf (SCM port, size_t requested);
 extern SCM scm_pt_size (void);
 extern SCM scm_pt_member (SCM member);
-extern void scm_port_non_buffer (scm_port_t *pt);
+extern void scm_port_non_buffer (scm_t_port *pt);
 extern int scm_revealed_count (SCM port);
 extern SCM scm_port_revealed (SCM port);
 extern SCM scm_set_port_revealed_x (SCM port, SCM rcount);
Index: guile/guile-core/libguile/posix.c
diff -u guile/guile-core/libguile/posix.c:1.91 
guile/guile-core/libguile/posix.c:1.92
--- guile/guile-core/libguile/posix.c:1.91      Tue Jun 26 10:53:09 2001
+++ guile/guile-core/libguile/posix.c   Tue Jul  3 08:27:56 2001
@@ -103,6 +103,7 @@
 
 #ifdef __MINGW32__
 /* Some defines for Windows here. */
+# include <process.h>
 # define pipe(fd) _pipe (fd, 256, O_BINARY)
 #endif /* __MINGW32__ */
 
@@ -576,7 +577,6 @@
   return SCM_MAKINUM (0L + getuid ());
 }
 #undef FUNC_NAME
-#endif /* __MINGW32__ */
 
 
 
@@ -675,7 +675,9 @@
   return SCM_UNSPECIFIED;
 }
 #undef FUNC_NAME
+#endif /* __MINGW32__ */
 
+
 #ifdef HAVE_SETEGID
 SCM_DEFINE (scm_setegid, "setegid", 1, 0, 0, 
             (SCM id),
@@ -1382,6 +1384,21 @@
 }
 #undef FUNC_NAME
 #endif /* HAVE_CHROOT */
+
+
+#ifdef __MINGW32__
+/* Wrapper function to supplying `getlogin()' under Windows.  */
+static char * getlogin (void)
+{
+  static char user[256];
+  static unsigned long len = 256;
+
+  if (!GetUserName (user, &len))
+    return NULL;
+  return user;
+}
+#endif /* __MINGW32__ */
+
 
 #if HAVE_GETLOGIN
 SCM_DEFINE (scm_getlogin, "getlogin", 0, 0, 0, 
Index: guile/guile-core/libguile/print.c
diff -u guile/guile-core/libguile/print.c:1.127 
guile/guile-core/libguile/print.c:1.128
--- guile/guile-core/libguile/print.c:1.127     Tue Jun 26 08:46:40 2001
+++ guile/guile-core/libguile/print.c   Wed Jun 27 18:11:59 2001
@@ -973,16 +973,15 @@
            start = p + 1;
            continue;
          default:
-           scm_misc_error (s_scm_simple_format, 
-               "FORMAT: Unsupported format option ~~~A - use (ice-9 format) 
instead",
-               SCM_LIST1 (SCM_MAKE_CHAR (*p)));
+           SCM_MISC_ERROR ("FORMAT: Unsupported format option ~~~A - use 
(ice-9 format) instead",
+                           scm_list_1 (SCM_MAKE_CHAR (*p)));
            
          }
 
 
        if (!SCM_CONSP (args))
-         scm_misc_error (s_scm_simple_format, "FORMAT: Missing argument for 
~~~A",
-                         SCM_LIST1 (SCM_MAKE_CHAR (*p)));
+         SCM_MISC_ERROR ("FORMAT: Missing argument for ~~~A",
+                         scm_list_1 (SCM_MAKE_CHAR (*p)));
                                        
        scm_lfwrite (start, p - start - 1, destination);
        scm_prin1 (SCM_CAR (args), destination, writingp);
@@ -992,8 +991,8 @@
 
   scm_lfwrite (start, p - start, destination);
   if (args != SCM_EOL)
-    scm_misc_error (s_scm_simple_format, 
-                   "FORMAT: ~A superfluous arguments", SCM_LIST1 (scm_length 
(args)));
+    SCM_MISC_ERROR ("FORMAT: ~A superfluous arguments",
+                   scm_list_1 (scm_length (args)));
 
   if (fReturnString)
     answer = scm_strport_to_string (destination);
@@ -1110,7 +1109,7 @@
   scm_init_opts (scm_print_options, scm_print_opts, SCM_N_PRINT_OPTIONS);
   vtable = scm_make_vtable_vtable (scm_nullstr, SCM_INUM0, SCM_EOL);
   layout = scm_make_struct_layout (scm_makfrom0str (SCM_PRINT_STATE_LAYOUT));
-  type = scm_make_struct (vtable, SCM_INUM0, SCM_LIST1 (layout));
+  type = scm_make_struct (vtable, SCM_INUM0, scm_list_1 (layout));
   scm_set_struct_vtable_name_x (type, scm_str2symbol ("print-state"));
   print_state_pool = scm_permanent_object (scm_cons (type, SCM_EOL));
 
Index: guile/guile-core/libguile/print.h
diff -u guile/guile-core/libguile/print.h:1.36 
guile/guile-core/libguile/print.h:1.37
--- guile/guile-core/libguile/print.h:1.36      Wed May 30 16:47:49 2001
+++ guile/guile-core/libguile/print.h   Thu Jun 14 12:50:43 2001
@@ -51,7 +51,7 @@
 
 #include "libguile/options.h"
 
-extern scm_option_t scm_print_opts[];
+extern scm_t_option scm_print_opts[];
 
 #define SCM_PRINT_CLOSURE      (SCM_PACK (scm_print_opts[0].val))
 #define SCM_PRINT_SOURCE_P     ((int) scm_print_opts[1].val)
@@ -99,7 +99,7 @@
 
 extern SCM scm_print_state_vtable;
 
-extern scm_bits_t scm_tc16_port_with_ps;
+extern scm_t_bits scm_tc16_port_with_ps;
 
 extern SCM scm_print_options (SCM setting);
 SCM scm_make_print_state (void);
Index: guile/guile-core/libguile/procprop.c
diff -u guile/guile-core/libguile/procprop.c:1.36 
guile/guile-core/libguile/procprop.c:1.37
--- guile/guile-core/libguile/procprop.c:1.36   Thu Apr 19 07:46:01 2001
+++ guile/guile-core/libguile/procprop.c        Wed Jun 27 18:11:59 2001
@@ -155,9 +155,7 @@
     default:
       return SCM_BOOL_F;
     }
-  return SCM_LIST3 (SCM_MAKINUM (a),
-                   SCM_MAKINUM (o),
-                   SCM_BOOL(r));
+  return scm_list_3 (SCM_MAKINUM (a), SCM_MAKINUM (o), SCM_BOOL(r));
 }
 
 static SCM
@@ -167,7 +165,7 @@
   answer = scm_assoc (proc, scm_stand_in_procs);
   if (SCM_FALSEP (answer))
     {
-      answer = scm_closure (SCM_LIST2 (SCM_EOL, SCM_BOOL_F), SCM_EOL);
+      answer = scm_closure (scm_list_2 (SCM_EOL, SCM_BOOL_F), SCM_EOL);
       scm_stand_in_procs = scm_acons (proc, answer, scm_stand_in_procs);
     }
   else
Index: guile/guile-core/libguile/procs.c
diff -u guile/guile-core/libguile/procs.c:1.59 
guile/guile-core/libguile/procs.c:1.60
--- guile/guile-core/libguile/procs.c:1.59      Sat May 26 13:51:21 2001
+++ guile/guile-core/libguile/procs.c   Thu Jun 14 12:50:43 2001
@@ -60,7 +60,7 @@
 /* {Procedures}
  */
 
-scm_subr_entry_t *scm_subr_table;
+scm_t_subr_entry *scm_subr_table;
 
 /* libguile contained approx. 700 primitive procedures on 24 Aug 1999. */
 
@@ -81,8 +81,8 @@
       long new_size = scm_subr_table_room * 3 / 2;
       void *new_table
        = scm_must_realloc ((char *) scm_subr_table,
-                           sizeof (scm_subr_entry_t) * scm_subr_table_room,
-                           sizeof (scm_subr_entry_t) * new_size, 
+                           sizeof (scm_t_subr_entry) * scm_subr_table_room,
+                           sizeof (scm_t_subr_entry) * new_size, 
                            "scm_subr_table");
       scm_subr_table = new_table;
       scm_subr_table_room = new_size;
@@ -160,7 +160,7 @@
 SCM 
 scm_makcclo (SCM proc, size_t len)
 {
-  scm_bits_t *base = scm_must_malloc (len * sizeof (scm_bits_t), 
"compiled-closure");
+  scm_t_bits *base = scm_must_malloc (len * sizeof (scm_t_bits), 
"compiled-closure");
   unsigned long i;
   SCM s;
 
@@ -390,8 +390,8 @@
 scm_init_subr_table ()
 {
   scm_subr_table
-    = ((scm_subr_entry_t *)
-       scm_must_malloc (sizeof (scm_subr_entry_t) * scm_subr_table_room,
+    = ((scm_t_subr_entry *)
+       scm_must_malloc (sizeof (scm_t_subr_entry) * scm_subr_table_room,
                        "scm_subr_table"));
 }
 
Index: guile/guile-core/libguile/procs.h
diff -u guile/guile-core/libguile/procs.h:1.42 
guile/guile-core/libguile/procs.h:1.43
--- guile/guile-core/libguile/procs.h:1.42      Sat May 26 13:51:21 2001
+++ guile/guile-core/libguile/procs.h   Thu Jun 14 12:50:43 2001
@@ -63,10 +63,10 @@
                                 * *generic == 0 until first method
                                 */
   SCM properties;              /* procedure properties */
-} scm_subr_entry_t;
+} scm_t_subr_entry;
 
 #if (SCM_DEBUG_DEPRECATED == 0)
-# define scm_subr_entry scm_subr_entry_t
+# define scm_subr_entry scm_t_subr_entry
 #endif
 
 #define SCM_SUBRNUM(subr) (SCM_CELL_WORD_0 (subr) >> 8)
@@ -82,7 +82,7 @@
 
 #define SCM_CCLO_LENGTH(x) (SCM_CELL_WORD_0 (x) >> 8)
 #define SCM_SET_CCLO_LENGTH(x, v) (SCM_SET_CELL_WORD_0 ((x), ((v) << 8) + 
scm_tc7_cclo))
-#define SCM_CCLO_BASE(x) ((scm_bits_t *) SCM_CELL_WORD_1 (x))
+#define SCM_CCLO_BASE(x) ((scm_t_bits *) SCM_CELL_WORD_1 (x))
 #define SCM_SET_CCLO_BASE(x, v) (SCM_SET_CELL_WORD_1 ((x), (v)))
 
 #define SCM_CCLO_REF(x, i) (SCM_PACK (SCM_CCLO_BASE (x) [i]))
@@ -157,7 +157,7 @@
 #define SCM_PROCEDURE(obj) SCM_CELL_OBJECT_1 (obj)
 #define SCM_SETTER(obj) SCM_CELL_OBJECT_2 (obj)
 
-extern scm_subr_entry_t *scm_subr_table;
+extern scm_t_subr_entry *scm_subr_table;
 extern long scm_subr_table_size;
 extern long scm_subr_table_room;
 
Index: guile/guile-core/libguile/properties.c
diff -u guile/guile-core/libguile/properties.c:1.4 
guile/guile-core/libguile/properties.c:1.5
--- guile/guile-core/libguile/properties.c:1.4  Fri Mar 30 07:03:22 2001
+++ guile/guile-core/libguile/properties.c      Tue Jun 26 08:46:40 2001
@@ -100,7 +100,7 @@
     return SCM_BOOL_F;
   else
     {
-      SCM val = scm_apply (SCM_CAR (prop), SCM_LIST2 (prop, obj), SCM_EOL);
+      SCM val = scm_call_2 (SCM_CAR (prop), prop, obj);
       if (SCM_FALSEP (h))
        h = scm_hashq_create_handle_x (scm_properties_whash, obj, SCM_EOL);
       SCM_SETCDR (h, scm_acons (prop, val, SCM_CDR (h)));
Index: guile/guile-core/libguile/putenv.c
diff -u guile/guile-core/libguile/putenv.c:1.7 
guile/guile-core/libguile/putenv.c:1.8
--- guile/guile-core/libguile/putenv.c:1.7      Sat Mar 10 08:56:06 2001
+++ guile/guile-core/libguile/putenv.c  Sun Jun  3 16:32:27 2001
@@ -13,7 +13,31 @@
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
-   USA */
+   USA
+
+   As a special exception, the Free Software Foundation gives permission
+   for additional uses of the text contained in its release of GUILE.
+
+   The exception is that, if you link the GUILE library with other files
+   to produce an executable, this does not by itself cause the
+   resulting executable to be covered by the GNU General Public License.
+   Your use of that executable is in no way restricted on account of
+   linking the GUILE library code into it.
+
+   This exception does not however invalidate any other reasons why
+   the executable file might be covered by the GNU General Public License.
+
+   This exception applies only to the code released by the
+   Free Software Foundation under the name GUILE.  If you copy
+   code from other Free Software Foundation releases into a copy of
+   GUILE, as the General Public License permits, the exception does
+   not apply to the code that you add in this way.  To avoid misleading
+   anyone as to the status of such modified files, you must delete
+   this exception notice from them.
+
+   If you write modifications of your own for GUILE, it is your choice
+   whether to permit this exception to apply to your modifications.
+   If you do not wish that, delete this exception notice.  */
 
 /* Software engineering face-lift by Greg J. Badros, 11-Dec-1999,
    address@hidden, http://www.cs.washington.edu/homes/gjb */
Index: guile/guile-core/libguile/ramap.c
diff -u guile/guile-core/libguile/ramap.c:1.76 
guile/guile-core/libguile/ramap.c:1.77
--- guile/guile-core/libguile/ramap.c:1.76      Thu Jun 14 12:50:43 2001
+++ guile/guile-core/libguile/ramap.c   Tue Jun 26 08:46:40 2001
@@ -1241,7 +1241,7 @@
   ra0 = SCM_ARRAY_V (ra0);
   if (SCM_NULLP (ras))
     for (; i <= n; i++)
-      scm_array_set_x (ra0, scm_apply (proc, SCM_EOL, SCM_EOL), SCM_MAKINUM (i 
* inc + base));
+      scm_array_set_x (ra0, scm_call_0 (proc), SCM_MAKINUM (i * inc + base));
   else
     {
       SCM ra1 = SCM_CAR (ras);
@@ -1263,7 +1263,7 @@
          for (k = SCM_INUM (scm_uniform_vector_length (ras)); k--;)
            args = scm_cons (scm_uniform_vector_ref (ve[k], SCM_MAKINUM (i)), 
args);
          args = scm_cons (scm_cvref (ra1, i1, SCM_UNDEFINED), args);
-         scm_array_set_x (ra0, scm_apply (proc, args, SCM_EOL), SCM_MAKINUM (i 
* inc + base));
+         scm_array_set_x (ra0, scm_apply_0 (proc, args), SCM_MAKINUM (i * inc 
+ base));
        }
     }
   return 1;
@@ -1285,7 +1285,7 @@
     default:
     gencase:
  for (; n-- > 0; i0 += inc0, i1 += inc1)
-   scm_array_set_x (ra0, scm_apply (proc, RVREF (ra1, i1, e1), 
scm_listofnull), SCM_MAKINUM (i0));
+   scm_array_set_x (ra0, scm_call_1 (proc, RVREF (ra1, i1, e1)), SCM_MAKINUM 
(i0));
  break;
     case scm_tc7_fvect:
       {
@@ -1635,7 +1635,7 @@
   ra0 = SCM_ARRAY_V (ra0);
   if (SCM_NULLP (ras))
     for (; i <= n; i++, i0 += inc0)
-      scm_apply (proc, scm_cvref (ra0, i0, SCM_UNDEFINED), scm_listofnull);
+      scm_call_1 (proc, scm_cvref (ra0, i0, SCM_UNDEFINED));
   else
     {
       SCM ra1 = SCM_CAR (ras);
@@ -1657,7 +1657,7 @@
          for (k = SCM_INUM (scm_uniform_vector_length (ras)); k--;)
            args = scm_cons (scm_uniform_vector_ref (ve[k], SCM_MAKINUM (i)), 
args);
          args = scm_cons2 (scm_cvref (ra0, i0, SCM_UNDEFINED), scm_cvref (ra1, 
i1, SCM_UNDEFINED), args);
-         scm_apply (proc, args, SCM_EOL);
+         scm_apply_0 (proc, args);
        }
     }
   return 1;
@@ -1710,7 +1710,7 @@
       {
        SCM *ve = SCM_VELTS (ra);
        for (i = 0; i < SCM_VECTOR_LENGTH (ra); i++)
-         ve[i] = scm_apply (proc, SCM_MAKINUM (i), scm_listofnull);
+         ve[i] = scm_call_1 (proc, SCM_MAKINUM (i));
        return SCM_UNSPECIFIED;
       }
     case scm_tc7_string:
@@ -1728,7 +1728,7 @@
       {
        unsigned long int length = SCM_INUM (scm_uniform_vector_length (ra));
        for (i = 0; i < length; i++)
-         scm_array_set_x (ra, scm_apply (proc, SCM_MAKINUM (i), 
scm_listofnull),
+         scm_array_set_x (ra, scm_call_1 (proc, SCM_MAKINUM (i)),
                           SCM_MAKINUM (i));
        return SCM_UNSPECIFIED;
       }
@@ -1740,8 +1740,7 @@
        long *vinds = (long *) SCM_VELTS (inds);
        int j, k, kmax = SCM_ARRAY_NDIM (ra) - 1;
        if (kmax < 0)
-         return scm_array_set_x (ra, scm_apply(proc, SCM_EOL, SCM_EOL),
-                                 SCM_EOL);
+         return scm_array_set_x (ra, scm_call_0 (proc), SCM_EOL);
        for (k = 0; k <= kmax; k++)
          vinds[k] = SCM_ARRAY_DIMS (ra)[k].lbnd;
        k = kmax;
@@ -1756,7 +1755,7 @@
                    for (j = kmax + 1, args = SCM_EOL; j--;)
                      args = scm_cons (SCM_MAKINUM (vinds[j]), args);
                    scm_array_set_x (SCM_ARRAY_V (ra),
-                                    scm_apply (proc, args, SCM_EOL),
+                                    scm_apply_0 (proc, args),
                                     SCM_MAKINUM (i));
                    i += SCM_ARRAY_DIMS (ra)[k].inc;
                  }
Index: guile/guile-core/libguile/random.c
diff -u guile/guile-core/libguile/random.c:1.43 
guile/guile-core/libguile/random.c:1.44
--- guile/guile-core/libguile/random.c:1.43     Thu Jun 14 12:50:43 2001
+++ guile/guile-core/libguile/random.c  Tue Jun 26 10:53:09 2001
@@ -91,6 +91,10 @@
 
 #define A 2131995753UL
 
+#ifndef M_PI
+#define M_PI 3.14159265359
+#endif
+
 #if SIZEOF_LONG > 4
 #if SIZEOF_INT > 4
 #define LONG32 unsigned short
@@ -100,7 +104,11 @@
 #define LONG64 unsigned long
 #else
 #define LONG32 unsigned long
+#ifdef __MINGW32__
+#define LONG64 unsigned __int64
+#else
 #define LONG64 unsigned long long
+#endif
 #endif
 
 #if SIZEOF_LONG > 4 || defined (HAVE_LONG_LONGS)
Index: guile/guile-core/libguile/random.h
diff -u guile/guile-core/libguile/random.h:1.9 
guile/guile-core/libguile/random.h:1.10
--- guile/guile-core/libguile/random.h:1.9      Wed May 23 17:50:48 2001
+++ guile/guile-core/libguile/random.h  Thu Jun 14 12:50:43 2001
@@ -62,61 +62,61 @@
  * Look how the default generator is "plugged in" in scm_init_random().
  */
 
-typedef struct scm_rstate_t {
+typedef struct scm_t_rstate {
   int reserved0;
   double reserved1;
   /* Custom fields follow here */
-} scm_rstate_t;
+} scm_t_rstate;
 
-typedef struct scm_rng_t {
+typedef struct scm_t_rng {
   size_t rstate_size;                              /* size of random state */
-  unsigned long (*random_bits) (scm_rstate_t *state); /* gives 32 random bits 
*/
-  void (*init_rstate) (scm_rstate_t *state, char *seed, int n);
-  scm_rstate_t *(*copy_rstate) (scm_rstate_t *state);
-} scm_rng_t;
+  unsigned long (*random_bits) (scm_t_rstate *state); /* gives 32 random bits 
*/
+  void (*init_rstate) (scm_t_rstate *state, char *seed, int n);
+  scm_t_rstate *(*copy_rstate) (scm_t_rstate *state);
+} scm_t_rng;
 
-extern scm_rng_t scm_the_rng;
+extern scm_t_rng scm_the_rng;
 
 
 /*
  * Default RNG
  */
-typedef struct scm_i_rstate_t {
-  scm_rstate_t rstate;
+typedef struct scm_t_i_rstate {
+  scm_t_rstate rstate;
   unsigned long w;
   unsigned long c;
-} scm_i_rstate_t;
+} scm_t_i_rstate;
 
 #if (SCM_DEBUG_DEPRECATED == 0)
-# define scm_rstate scm_rstate_t
-# define scm_rng scm_rng_t
-# define scm_i_rstate scm_i_rstate_t
+# define scm_rstate scm_t_rstate
+# define scm_rng scm_t_rng
+# define scm_i_rstate scm_t_i_rstate
 #endif
 
-extern unsigned long scm_i_uniform32 (scm_i_rstate_t *);
-extern void scm_i_init_rstate (scm_i_rstate_t *, char *seed, int n);
-extern scm_i_rstate_t *scm_i_copy_rstate (scm_i_rstate_t *);
+extern unsigned long scm_i_uniform32 (scm_t_i_rstate *);
+extern void scm_i_init_rstate (scm_t_i_rstate *, char *seed, int n);
+extern scm_t_i_rstate *scm_i_copy_rstate (scm_t_i_rstate *);
 
 
 /*
  * Random number library functions
  */
-extern scm_rstate_t *scm_c_make_rstate (char *, int);
-extern scm_rstate_t *scm_c_default_rstate (void);
+extern scm_t_rstate *scm_c_make_rstate (char *, int);
+extern scm_t_rstate *scm_c_default_rstate (void);
 #define scm_c_uniform32(RSTATE) scm_the_rng.random_bits (RSTATE)
-extern double scm_c_uniform01 (scm_rstate_t *);
-extern double scm_c_normal01 (scm_rstate_t *);
-extern double scm_c_exp1 (scm_rstate_t *);
-extern unsigned long scm_c_random (scm_rstate_t *, unsigned long m);
-extern SCM scm_c_random_bignum (scm_rstate_t *, SCM m);
+extern double scm_c_uniform01 (scm_t_rstate *);
+extern double scm_c_normal01 (scm_t_rstate *);
+extern double scm_c_exp1 (scm_t_rstate *);
+extern unsigned long scm_c_random (scm_t_rstate *, unsigned long m);
+extern SCM scm_c_random_bignum (scm_t_rstate *, SCM m);
 
 
 /*
  * Scheme level interface
  */
-extern scm_bits_t scm_tc16_rstate;
+extern scm_t_bits scm_tc16_rstate;
 #define SCM_RSTATEP(obj) SCM_TYP16_PREDICATE (scm_tc16_rstate, obj)
-#define SCM_RSTATE(obj)  ((scm_rstate_t *) SCM_CELL_WORD_1 (obj))
+#define SCM_RSTATE(obj)  ((scm_t_rstate *) SCM_CELL_WORD_1 (obj))
 
 extern unsigned char scm_masktab[256];
 
Index: guile/guile-core/libguile/read.c
diff -u guile/guile-core/libguile/read.c:1.73 
guile/guile-core/libguile/read.c:1.74
--- guile/guile-core/libguile/read.c:1.73       Wed Jun 27 06:15:20 2001
+++ guile/guile-core/libguile/read.c    Wed Jun 27 18:11:59 2001
@@ -153,7 +153,7 @@
            if (!SCM_FALSEP (SCM_FILENAME (port)))
              scm_misc_error (eoferr,
                              "end of file in ~A",
-                             SCM_LIST1 (SCM_FILENAME (port)));
+                             scm_list_1 (SCM_FILENAME (port)));
            else
              scm_misc_error (eoferr, "end of file", SCM_EOL);
          }
@@ -457,7 +457,7 @@
          }
        unkshrp:
        scm_misc_error (s_scm_read, "Unknown # object: ~S",
-                       SCM_LIST1 (SCM_MAKE_CHAR (c)));
+                       scm_list_1 (SCM_MAKE_CHAR (c)));
        }
 
     case '"':
Index: guile/guile-core/libguile/regex-posix.c
diff -u guile/guile-core/libguile/regex-posix.c:1.52 
guile/guile-core/libguile/regex-posix.c:1.53
--- guile/guile-core/libguile/regex-posix.c:1.52        Wed May 23 17:50:48 2001
+++ guile/guile-core/libguile/regex-posix.c     Thu Jun 14 12:50:43 2001
@@ -91,7 +91,7 @@
 #define REG_BASIC 0
 #endif
 
-scm_bits_t scm_tc16_regex;
+scm_t_bits scm_tc16_regex;
 
 static size_t
 regex_free (SCM obj)
Index: guile/guile-core/libguile/regex-posix.h
diff -u guile/guile-core/libguile/regex-posix.h:1.12 
guile/guile-core/libguile/regex-posix.h:1.13
--- guile/guile-core/libguile/regex-posix.h:1.12        Fri Dec  8 09:32:56 2000
+++ guile/guile-core/libguile/regex-posix.h     Thu Jun 14 12:50:43 2001
@@ -50,7 +50,7 @@
 
 #include "libguile/__scm.h"
 
-extern scm_bits_t scm_tc16_regex;
+extern scm_t_bits scm_tc16_regex;
 #define SCM_RGX(X)     ((regex_t *) SCM_CELL_WORD_1 (X))
 #define SCM_RGXP(X)    (SCM_NIMP (X) && (SCM_CELL_TYPE (X) == scm_tc16_regex))
 
Index: guile/guile-core/libguile/root.c
diff -u guile/guile-core/libguile/root.c:1.53 
guile/guile-core/libguile/root.c:1.54
--- guile/guile-core/libguile/root.c:1.53       Thu Jun  7 14:12:19 2001
+++ guile/guile-core/libguile/root.c    Thu Jun 14 12:50:43 2001
@@ -60,7 +60,7 @@
 
 SCM scm_sys_protects[SCM_NUM_PROTECTS];
 
-scm_bits_t scm_tc16_root;
+scm_t_bits scm_tc16_root;
 
 #ifndef USE_THREADS
 struct scm_root_state *scm_root;
@@ -238,8 +238,8 @@
  * in a messed up state.  */
 
 SCM 
-scm_internal_cwdr (scm_catch_body_t body, void *body_data,
-                  scm_catch_handler_t handler, void *handler_data,
+scm_internal_cwdr (scm_t_catch_body body, void *body_data,
+                  scm_t_catch_handler handler, void *handler_data,
                   SCM_STACKITEM *stack_start)
 {
   int old_ints_disabled = scm_ints_disabled;
@@ -253,7 +253,7 @@
 
     SCM_REDEFER_INTS;
     {
-      scm_contregs_t *contregs = scm_must_malloc (sizeof (scm_contregs_t),
+      scm_t_contregs *contregs = scm_must_malloc (sizeof (scm_t_contregs),
                                                "inferior root continuation");
 
       contregs->num_stack_items = 0;
Index: guile/guile-core/libguile/root.h
diff -u guile/guile-core/libguile/root.h:1.35 
guile/guile-core/libguile/root.h:1.36
--- guile/guile-core/libguile/root.h:1.35       Sat May 26 15:10:58 2001
+++ guile/guile-core/libguile/root.h    Thu Jun 14 12:50:43 2001
@@ -80,7 +80,7 @@
 
 
 
-extern scm_bits_t scm_tc16_root;
+extern scm_t_bits scm_tc16_root;
 
 #define SCM_ROOTP(obj)       SCM_TYP16_PREDICATE (scm_tc16_root, obj)
 #define SCM_ROOT_STATE(root) ((scm_root_state *) SCM_CELL_WORD_1 (root))
@@ -97,7 +97,7 @@
   SCM continuation_stack_ptr;
 #ifdef DEBUG_EXTENSIONS
   /* It is very inefficient to have this variable in the root state. */
-  scm_debug_frame_t *last_debug_frame;
+  scm_t_debug_frame *last_debug_frame;
 #endif
 
   SCM progargs;                        /* vestigial */
@@ -149,9 +149,9 @@
 
 
 extern SCM scm_make_root (SCM parent);
-extern SCM scm_internal_cwdr (scm_catch_body_t body,
+extern SCM scm_internal_cwdr (scm_t_catch_body body,
                               void *body_data,
-                              scm_catch_handler_t handler,
+                              scm_t_catch_handler handler,
                               void *handler_data,
                               SCM_STACKITEM *stack_start);
 extern SCM scm_call_with_dynamic_root (SCM thunk, SCM handler);
Index: guile/guile-core/libguile/scmsigs.c
diff -u guile/guile-core/libguile/scmsigs.c:1.59 
guile/guile-core/libguile/scmsigs.c:1.60
--- guile/guile-core/libguile/scmsigs.c:1.59    Tue Jun 26 08:46:40 2001
+++ guile/guile-core/libguile/scmsigs.c Tue Jun 26 10:53:09 2001
@@ -74,6 +74,14 @@
 
 #endif
 
+#ifdef __MINGW32__
+#include <windows.h>
+#define alarm(sec) (0)
+/* This weird comma expression is because Sleep is void under Windows. */
+#define sleep(sec) (Sleep ((sec) * 1000), 0)
+#define kill(pid, sig) raise (sig)
+#endif
+
 
 
 /* SIGRETTYPE is the type that signal handlers return.  See <signal.h> */
@@ -298,12 +306,16 @@
     case SIGFPE:
     case SIGILL:
     case SIGSEGV:
+#ifdef SIGBUS
     case SIGBUS:
+#endif
     case SIGABRT:
 #if defined(SIGIOT) && (SIGIOT != SIGABRT)
     case SIGIOT:
 #endif
+#ifdef SIGTRAP
     case SIGTRAP:
+#endif
 #ifdef SIGEMT
     case SIGEMT:
 #endif
Index: guile/guile-core/libguile/script.c
diff -u guile/guile-core/libguile/script.c:1.43 
guile/guile-core/libguile/script.c:1.44
--- guile/guile-core/libguile/script.c:1.43     Wed Jun 27 18:11:59 2001
+++ guile/guile-core/libguile/script.c  Tue Jul  3 08:27:56 2001
@@ -64,6 +64,10 @@
 #include <unistd.h>            /* for X_OK define */
 #endif
 
+#ifdef HAVE_IO_H
+#include <io.h>
+#endif
+
 /* Concatentate str2 onto str1 at position n and return concatenated
    string if file exists; 0 otherwise. */
 
Index: guile/guile-core/libguile/simpos.c
diff -u guile/guile-core/libguile/simpos.c:1.42 
guile/guile-core/libguile/simpos.c:1.43
--- guile/guile-core/libguile/simpos.c:1.42     Wed May 23 17:50:48 2001
+++ guile/guile-core/libguile/simpos.c  Tue Jun 26 03:59:34 2001
@@ -1,4 +1,4 @@
-/*     Copyright (C) 1995,1996,1997,1998, 2000, 2001 Free Software Foundation, 
Inc.
+/* Copyright (C) 1995,1996,1997,1998,2000,2001 Free Software Foundation, Inc.
  * 
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -110,7 +110,7 @@
   SCM_VALIDATE_STRING (1, nam);
   SCM_STRING_COERCE_0TERMINATION_X (nam);
   val = getenv (SCM_STRING_CHARS (nam));
-  return (val) ? scm_makfromstr(val, (size_t)strlen(val), 0) : SCM_BOOL_F;
+  return val ? scm_mem2string (val, strlen (val)) : SCM_BOOL_F;
 }
 #undef FUNC_NAME
 
Index: guile/guile-core/libguile/smob.c
diff -u guile/guile-core/libguile/smob.c:1.46 
guile/guile-core/libguile/smob.c:1.47
--- guile/guile-core/libguile/smob.c:1.46       Thu Jun 14 12:50:43 2001
+++ guile/guile-core/libguile/smob.c    Wed Jun 27 18:11:59 2001
@@ -200,7 +200,7 @@
 static SCM
 scm_smob_apply_1_001 (SCM smob, SCM a1)
 {
-  return SCM_SMOB_APPLY1 (smob, SCM_LIST1 (a1));
+  return SCM_SMOB_APPLY1 (smob, scm_list_1 (a1));
 }
 
 static SCM
@@ -230,13 +230,13 @@
 static SCM
 scm_smob_apply_2_001 (SCM smob, SCM a1, SCM a2)
 {
-  return SCM_SMOB_APPLY1 (smob, SCM_LIST2 (a1, a2));
+  return SCM_SMOB_APPLY1 (smob, scm_list_2 (a1, a2));
 }
 
 static SCM
 scm_smob_apply_2_011 (SCM smob, SCM a1, SCM a2)
 {
-  return SCM_SMOB_APPLY2 (smob, a1, SCM_LIST1 (a2));
+  return SCM_SMOB_APPLY2 (smob, a1, scm_list_1 (a2));
 }
 
 static SCM
Index: guile/guile-core/libguile/snarf.h
diff -u guile/guile-core/libguile/snarf.h:1.49 
guile/guile-core/libguile/snarf.h:1.50
--- guile/guile-core/libguile/snarf.h:1.49      Fri Jun  8 07:49:05 2001
+++ guile/guile-core/libguile/snarf.h   Sun Jun 24 20:30:02 2001
@@ -85,14 +85,13 @@
 #  define SCM_SNARF_HERE(X)
 #  define SCM_SNARF_INIT(X)
 #  define SCM_SNARF_DOCS(TYPE, FNAME, ARGLIST, REQ, OPT, VAR, DOCSTRING) \
-^^{ \
-^^%fname . FNAME \
-^^%type . TYPE \
-^^%location __FILE__ . __LINE__ \
-^^%arglist . ARGLIST \
-^^%argsig REQ OPT VAR \
-^^(DOCSTRING) \
-^^}
+^^ { \
+fname FNAME ^^ \
+type TYPE ^^ \
+location __FILE__ __LINE__ ^^ \
+arglist ARGLIST ^^ \
+argsig REQ OPT VAR ^^ \
+DOCSTRING ^^ }
 # else
 #  define SCM_SNARF_HERE(X) X
 #  define SCM_SNARF_INIT(X)
@@ -219,7 +218,7 @@
 
 #ifdef SCM_MAGIC_SNARF_DOCS
 #undef SCM_ASSERT
-#define SCM_ASSERT(_cond, _arg, _pos, _subr) ^^[ argpos _arg _pos __LINE__ ]
+#define SCM_ASSERT(_cond, _arg, _pos, _subr) ^^ argpos _arg _pos __LINE__ ^^
 #endif /* SCM_MAGIC_SNARF_DOCS */
 
 #endif /* LIBGUILE_SNARF_H */
Index: guile/guile-core/libguile/socket.c
diff -u guile/guile-core/libguile/socket.c:1.79 
guile/guile-core/libguile/socket.c:1.80
--- guile/guile-core/libguile/socket.c:1.79     Tue Jun 26 10:53:09 2001
+++ guile/guile-core/libguile/socket.c  Wed Jun 27 18:11:59 2001
@@ -970,7 +970,7 @@
 #endif
     default:
       scm_misc_error (proc, "Unrecognised address family: ~A",
-                     SCM_LIST1 (SCM_MAKINUM (fam)));
+                     scm_list_1 (SCM_MAKINUM (fam)));
     }
   return result;
 }
Index: guile/guile-core/libguile/sort.c
diff -u guile/guile-core/libguile/sort.c:1.35 
guile/guile-core/libguile/sort.c:1.36
--- guile/guile-core/libguile/sort.c:1.35       Sun May 27 15:00:03 2001
+++ guile/guile-core/libguile/sort.c    Tue Jun 26 08:46:40 2001
@@ -86,6 +86,7 @@
 #include "libguile/ramap.h"
 #include "libguile/alist.h"
 #include "libguile/feature.h"
+#include "libguile/root.h"
 #include "libguile/vectors.h"
 
 #include "libguile/validate.h"
@@ -385,10 +386,7 @@
 static int 
 applyless (SCM less, const void *a, const void *b)
 {
-  return SCM_NFALSEP (scm_apply (less,
-                                scm_cons (*(SCM *) a,
-                                          scm_cons (*(SCM *) b, SCM_EOL)),
-                                SCM_EOL));
+  return SCM_NFALSEP (scm_call_2 (less, *(SCM *) a, *(SCM *) b));
 }                              /* applyless */
 
 static cmp_fun_t
Index: guile/guile-core/libguile/srcprop.c
diff -u guile/guile-core/libguile/srcprop.c:1.49 
guile/guile-core/libguile/srcprop.c:1.50
--- guile/guile-core/libguile/srcprop.c:1.49    Thu Jun 14 12:50:43 2001
+++ guile/guile-core/libguile/srcprop.c Sun Jun 24 17:55:36 2001
@@ -112,7 +112,7 @@
   int writingp = SCM_WRITINGP (pstate);
   scm_puts ("#<srcprops ", port);
   SCM_SET_WRITINGP (pstate, 1);
-  scm_iprin1 (scm_t_srcpropso_plist (obj), port, pstate);
+  scm_iprin1 (scm_srcprops_to_plist (obj), port, pstate);
   SCM_SET_WRITINGP (pstate, writingp);
   scm_putc ('>', port);
   return 1;
@@ -154,7 +154,7 @@
 
 
 SCM
-scm_t_srcpropso_plist (SCM obj)
+scm_srcprops_to_plist (SCM obj)
 {
   SCM plist = SRCPROPPLIST (obj);
   if (!SCM_UNBNDP (SRCPROPCOPY (obj)))
@@ -182,7 +182,7 @@
 #endif
   p = scm_hashq_ref (scm_source_whash, obj, SCM_BOOL_F);
   if (SRCPROPSP (p))
-    return scm_t_srcpropso_plist (p);
+    return scm_srcprops_to_plist (p);
   return SCM_EOL;
 }
 #undef FUNC_NAME
Index: guile/guile-core/libguile/srcprop.h
diff -u guile/guile-core/libguile/srcprop.h:1.24 
guile/guile-core/libguile/srcprop.h:1.25
--- guile/guile-core/libguile/srcprop.h:1.24    Thu Jun 14 12:50:43 2001
+++ guile/guile-core/libguile/srcprop.h Sun Jun 24 17:55:36 2001
@@ -137,7 +137,7 @@
 
 
 
-extern SCM scm_t_srcpropso_plist (SCM obj);
+extern SCM scm_srcprops_to_plist (SCM obj);
 extern SCM scm_make_srcprops (long line, int col, SCM fname, SCM copy, SCM 
plist);
 extern SCM scm_source_property (SCM obj, SCM key);
 extern SCM scm_set_source_property_x (SCM obj, SCM key, SCM datum);
Index: guile/guile-core/libguile/stackchk.c
diff -u guile/guile-core/libguile/stackchk.c:1.19 
guile/guile-core/libguile/stackchk.c:1.20
--- guile/guile-core/libguile/stackchk.c:1.19   Fri Mar  9 15:33:41 2001
+++ guile/guile-core/libguile/stackchk.c        Wed May 23 17:50:49 2001
@@ -72,7 +72,7 @@
 
 #endif
 
-long 
+long
 scm_stack_size (SCM_STACKITEM *start)
 {
   SCM_STACKITEM stack;
Index: guile/guile-core/libguile/stacks.c
diff -u guile/guile-core/libguile/stacks.c:1.63 
guile/guile-core/libguile/stacks.c:1.64
--- guile/guile-core/libguile/stacks.c:1.63     Thu Jun 14 12:50:43 2001
+++ guile/guile-core/libguile/stacks.c  Mon Jun 25 04:06:33 2001
@@ -1,5 +1,5 @@
 /* Representation of stack frame debug information
- * Copyright (C) 1996,1997, 2000 Free Software Foundation
+ * Copyright (C) 1996,1997,2000,2001 Free Software Foundation
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -230,7 +230,7 @@
 
 #define NEXT_FRAME(iframe, n, quit) \
 do { \
-  if (SCM_NIMP (iframe->source) \
+  if (SCM_MEMOIZEDP (iframe->source) \
       && SCM_EQ_P (SCM_MEMOIZED_EXP (iframe->source), applybody)) \
     { \
       iframe->source = SCM_BOOL_F; \
@@ -280,7 +280,8 @@
          if ((info - dframe->vect) & 1)
            --info;
          /* Data in the apply part of an eval info frame comes from
-            previous stack frame if the scm_t_debug_info vector is overflowed. 
*/
+            previous stack frame if the scm_t_debug_info vector is
+            overflowed. */
          else if (SCM_OVERFLOWP (*dframe)
                   && !SCM_UNBNDP (info[1].a.proc))
            {
@@ -348,28 +349,33 @@
 narrow_stack (SCM stack,long inner,SCM inner_key,long outer,SCM outer_key)
 {
   scm_t_stack *s = SCM_STACK (stack);
-  long i;
+  unsigned long int i;
   long n = s->length;
   
   /* Cut inner part. */
   if (SCM_EQ_P (inner_key, SCM_BOOL_T))
-    /* Cut all frames up to user module code */
     {
+      /* Cut all frames up to user module code */
       for (i = 0; inner; ++i, --inner)
        {
          SCM m = s->frames[i].source;
-         if (   SCM_MEMOIZEDP (m)
-             && SCM_NIMP (SCM_MEMOIZED_ENV (m))
+         if (SCM_MEMOIZEDP (m)
+             && !SCM_IMP (SCM_MEMOIZED_ENV (m))
              && SCM_FALSEP (scm_system_module_env_p (SCM_MEMOIZED_ENV (m))))
            {
              /* Back up in order to include any non-source frames */
-             while (i > 0
-                    && !((m = s->frames[i - 1].source, SCM_MEMOIZEDP (m))
-                         || (SCM_NIMP (m = s->frames[i - 1].proc)
-                             && SCM_NFALSEP (scm_procedure_p (m))
-                             && SCM_NFALSEP (scm_procedure_property
-                                             (m, scm_sym_system_procedure)))))
+             while (i > 0)
                {
+                 m = s->frames[i - 1].source;
+                 if (SCM_MEMOIZEDP (m))
+                   break;
+
+                 m = s->frames[i - 1].proc;
+                 if (!SCM_FALSEP (scm_procedure_p (m))
+                     && !SCM_FALSEP (scm_procedure_property
+                                     (m, scm_sym_system_procedure)))
+                   break;
+
                  --i;
                  ++inner;
                }
@@ -423,7 +429,7 @@
 {
   long n, size;
   int maxp;
-  scm_t_debug_frame *dframe = scm_last_debug_frame;
+  scm_t_debug_frame *dframe;
   scm_t_info_frame *iframe;
   long offset = 0;
   SCM stack, id;
@@ -431,28 +437,28 @@
 
   /* Extract a pointer to the innermost frame of whatever object
      scm_make_stack was given.  */
-  /* just use dframe == scm_last_debug_frame 
-     (from initialization of dframe, above) if obj is #t */
-  if (!SCM_EQ_P (obj, SCM_BOOL_T))
-    {
-      SCM_ASSERT (SCM_NIMP (obj), obj, SCM_ARG1, FUNC_NAME);
-      if (SCM_DEBUGOBJP (obj))
-       dframe = (scm_t_debug_frame *) SCM_DEBUGOBJ_FRAME (obj);
-      else if (SCM_CONTINUATIONP (obj))
-       {
-         offset = ((SCM_STACKITEM *) ((char *) SCM_CONTREGS (obj) + sizeof 
(scm_t_contregs))
-                   - SCM_BASE (obj));
+  if (SCM_EQ_P (obj, SCM_BOOL_T))
+    {
+      dframe = scm_last_debug_frame;
+    }
+  else if (SCM_DEBUGOBJP (obj))
+    {
+      dframe = SCM_DEBUGOBJ_FRAME (obj);
+    }
+  else if (SCM_CONTINUATIONP (obj))
+    {
+      offset = ((SCM_STACKITEM *) ((char *) SCM_CONTREGS (obj) + sizeof 
(scm_t_contregs))
+               - SCM_BASE (obj));
 #ifndef STACK_GROWS_UP
-         offset += SCM_CONTINUATION_LENGTH (obj);
+      offset += SCM_CONTINUATION_LENGTH (obj);
 #endif
-         dframe = RELOC_FRAME (SCM_DFRAME (obj), offset);
-       }
-      else
-       {
-         SCM_WRONG_TYPE_ARG (SCM_ARG1, obj);
-         /* not reached */
-       }
+      dframe = RELOC_FRAME (SCM_DFRAME (obj), offset);
     }
+  else
+    {
+      SCM_WRONG_TYPE_ARG (SCM_ARG1, obj);
+      /* not reached */
+    }
 
   /* Count number of frames.  Also get stack id tag and check whether
      there are more stackframes than we want to record
@@ -480,7 +486,7 @@
       args = SCM_CDR (args);
       if (SCM_NULLP (args)) 
        {
-       outer_cut = SCM_INUM0;
+         outer_cut = SCM_INUM0;
        } 
       else
        {
@@ -516,26 +522,31 @@
   scm_t_debug_frame *dframe;
   long offset = 0;
   if (SCM_EQ_P (stack, SCM_BOOL_T))
-    dframe = scm_last_debug_frame;
-  else
     {
-      SCM_VALIDATE_NIM (1,stack);
-      if (SCM_DEBUGOBJP (stack))
-       dframe = (scm_t_debug_frame *) SCM_DEBUGOBJ_FRAME (stack);
-      else if (SCM_CONTINUATIONP (stack))
-       {
-         offset = ((SCM_STACKITEM *) ((char *) SCM_CONTREGS (stack) + sizeof 
(scm_t_contregs))
-                   - SCM_BASE (stack));
+      dframe = scm_last_debug_frame;
+    }
+  else if (SCM_DEBUGOBJP (stack))
+    {
+      dframe = SCM_DEBUGOBJ_FRAME (stack);
+    }
+  else if (SCM_CONTINUATIONP (stack))
+    {
+      offset = ((SCM_STACKITEM *) ((char *) SCM_CONTREGS (stack) + sizeof 
(scm_t_contregs))
+               - SCM_BASE (stack));
 #ifndef STACK_GROWS_UP
-         offset += SCM_CONTINUATION_LENGTH (stack);
+      offset += SCM_CONTINUATION_LENGTH (stack);
 #endif
-         dframe = RELOC_FRAME (SCM_DFRAME (stack), offset);
-       }
-      else if (SCM_STACKP (stack))
-       return SCM_STACK (stack) -> id;
-      else
-       SCM_WRONG_TYPE_ARG (1, stack);
+      dframe = RELOC_FRAME (SCM_DFRAME (stack), offset);
+    }
+  else if (SCM_STACKP (stack))
+    {
+      return SCM_STACK (stack) -> id;
+    }
+  else
+    {
+      SCM_WRONG_TYPE_ARG (1, stack);
     }
+
   while (dframe && !SCM_VOIDFRAMEP (*dframe))
     dframe = RELOC_FRAME (dframe->prev, offset);
   if (dframe && SCM_VOIDFRAMEP (*dframe))
@@ -545,16 +556,18 @@
 #undef FUNC_NAME
 
 SCM_DEFINE (scm_stack_ref, "stack-ref", 2, 0, 0,
-            (SCM stack, SCM i),
-           "Return the @var{i}'th frame from @var{stack}.")
+            (SCM stack, SCM index),
+           "Return the @var{index}'th frame from @var{stack}.")
 #define FUNC_NAME s_scm_stack_ref
 {
-  SCM_VALIDATE_STACK (1,stack);
-  SCM_VALIDATE_INUM (2,i);
-  SCM_ASSERT_RANGE (1,i,
-                    SCM_INUM (i) >= 0 && 
-                    SCM_INUM (i) < SCM_STACK_LENGTH (stack));
-  return scm_cons (stack, i);
+  unsigned long int c_index;
+
+  SCM_VALIDATE_STACK (1, stack);
+  SCM_VALIDATE_INUM (2, index);
+  SCM_ASSERT_RANGE (1, index, SCM_INUM (index) >= 0);
+  c_index = SCM_INUM (index);
+  SCM_ASSERT_RANGE (1, index, c_index < SCM_STACK_LENGTH (stack));
+  return scm_cons (stack, index);
 }
 #undef FUNC_NAME
 
@@ -591,9 +604,10 @@
   long offset = 0;
   SCM stack;
   
-  SCM_VALIDATE_NIM (1,obj);
   if (SCM_DEBUGOBJP (obj))
-    dframe = (scm_t_debug_frame *) SCM_DEBUGOBJ_FRAME (obj);
+    {
+      dframe = SCM_DEBUGOBJ_FRAME (obj);
+    }
   else if (SCM_CONTINUATIONP (obj))
     {
       offset = ((SCM_STACKITEM *) ((char *) SCM_CONTREGS (obj) + sizeof 
(scm_t_contregs))
@@ -619,7 +633,7 @@
   read_frame (dframe, offset,
              (scm_t_info_frame *) &SCM_STACK (stack) -> frames[0]);
   
-  return scm_cons (stack, SCM_INUM0);;
+  return scm_cons (stack, SCM_INUM0);
 }
 #undef FUNC_NAME
 
@@ -672,8 +686,8 @@
            "@var{frame} is the first frame in its stack.")
 #define FUNC_NAME s_scm_frame_previous
 {
-  long n;
-  SCM_VALIDATE_FRAME (1,frame);
+  unsigned long int n;
+  SCM_VALIDATE_FRAME (1, frame);
   n = SCM_INUM (SCM_CDR (frame)) + 1;
   if (n >= SCM_STACK_LENGTH (SCM_CAR (frame)))
     return SCM_BOOL_F;
@@ -688,13 +702,13 @@
            "@var{frame} is the last frame in its stack.")
 #define FUNC_NAME s_scm_frame_next
 {
-  long n;
-  SCM_VALIDATE_FRAME (1,frame);
-  n = SCM_INUM (SCM_CDR (frame)) - 1;
-  if (n < 0)
+  unsigned long int n;
+  SCM_VALIDATE_FRAME (1, frame);
+  n = SCM_INUM (SCM_CDR (frame));
+  if (n == 0)
     return SCM_BOOL_F;
   else
-    return scm_cons (SCM_CAR (frame), SCM_MAKINUM (n));
+    return scm_cons (SCM_CAR (frame), SCM_MAKINUM (n - 1));
 }
 #undef FUNC_NAME
 
Index: guile/guile-core/libguile/stacks.h
diff -u guile/guile-core/libguile/stacks.h:1.22 
guile/guile-core/libguile/stacks.h:1.23
--- guile/guile-core/libguile/stacks.h:1.22     Thu Jun 14 12:50:43 2001
+++ guile/guile-core/libguile/stacks.h  Mon Jun 25 04:06:33 2001
@@ -1,8 +1,8 @@
 /* classes: h_files */
 
-#ifndef STACKSH
-#define STACKSH
-/*     Copyright (C) 1995,1996, 2000 Free Software Foundation
+#ifndef SCM_STACKS_H
+#define SCM_STACKS_H
+/* Copyright (C) 1995,1996,2000,2001 Free Software Foundation
  * 
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -84,11 +84,12 @@
 #define SCM_STACKP(obj) (SCM_STRUCTP (obj) && SCM_EQ_P (SCM_STRUCT_VTABLE 
(obj), scm_t_stackype))
 #define SCM_STACK_LENGTH(stack) (SCM_STACK (stack) -> length)
 
-#define SCM_FRAMEP(obj) (SCM_CONSP (obj) \
-                        && SCM_STACKP (SCM_CAR (obj)) \
-                        && SCM_INUMP (SCM_CDR (obj))) \
+#define SCM_FRAMEP(obj) \
+  (SCM_CONSP (obj) && SCM_STACKP (SCM_CAR (obj)) \
+   && SCM_INUMP (SCM_CDR (obj)) && SCM_INUM (SCM_CDR (obj)) >= 0 \
+   && ((unsigned long int) SCM_INUM (SCM_CDR (obj)) \
+       < SCM_STACK_LENGTH (SCM_CAR (obj))))
 
-
 #define SCM_FRAME_REF(frame, slot) \
 (SCM_STACK (SCM_CAR (frame)) -> frames[SCM_INUM (SCM_CDR (frame))].slot) \
 
@@ -142,7 +143,7 @@
 
 void scm_init_stacks (void);
 
-#endif /* STACKSH */
+#endif /* SCM_STACKS_H */
 
 /*
   Local Variables:
Index: guile/guile-core/libguile/stime.c
diff -u guile/guile-core/libguile/stime.c:1.68 
guile/guile-core/libguile/stime.c:1.69
--- guile/guile-core/libguile/stime.c:1.68      Tue Jun 26 03:59:34 2001
+++ guile/guile-core/libguile/stime.c   Tue Jun 26 10:53:09 2001
@@ -99,10 +99,10 @@
 
 /* This should be figured out by autoconf.  */
 #if ! defined(CLKTCK) && defined(CLK_TCK)
-#  define CLKTCK CLK_TCK
+#  define CLKTCK ((int) CLK_TCK)
 #endif
 #if ! defined(CLKTCK) && defined(CLOCKS_PER_SEC)
-#  define CLKTCK CLOCKS_PER_SEC
+#  define CLKTCK ((int) CLOCKS_PER_SEC)
 #endif
 #if ! defined(CLKTCK)
 #  define CLKTCK 60
Index: guile/guile-core/libguile/strerror.c
diff -u guile/guile-core/libguile/strerror.c:1.5 
guile/guile-core/libguile/strerror.c:1.6
--- guile/guile-core/libguile/strerror.c:1.5    Mon Jun 12 05:28:24 2000
+++ guile/guile-core/libguile/strerror.c        Sun Jun  3 16:32:27 2001
@@ -16,7 +16,31 @@
 You should have received a copy of the GNU General Public License
 along with GNU Emacs; see the file COPYING.  If not, write to
 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA.  */
+Boston, MA 02111-1307, USA.
+
+As a special exception, the Free Software Foundation gives permission
+for additional uses of the text contained in its release of GUILE.
+
+The exception is that, if you link the GUILE library with other files
+to produce an executable, this does not by itself cause the
+resulting executable to be covered by the GNU General Public License.
+Your use of that executable is in no way restricted on account of
+linking the GUILE library code into it.
+
+This exception does not however invalidate any other reasons why
+the executable file might be covered by the GNU General Public License.
+
+This exception applies only to the code released by the
+Free Software Foundation under the name GUILE.  If you copy
+code from other Free Software Foundation releases into a copy of
+GUILE, as the General Public License permits, the exception does
+not apply to the code that you add in this way.  To avoid misleading
+anyone as to the status of such modified files, you must delete
+this exception notice from them.
+
+If you write modifications of your own for GUILE, it is your choice
+whether to permit this exception to apply to your modifications.
+If you do not wish that, delete this exception notice.  */
 
 /* Software engineering face-lift by Greg J. Badros, 11-Dec-1999,
    address@hidden, http://www.cs.washington.edu/homes/gjb */
Index: guile/guile-core/libguile/strings.c
diff -u guile/guile-core/libguile/strings.c:1.59 
guile/guile-core/libguile/strings.c:1.60
--- guile/guile-core/libguile/strings.c:1.59    Tue Jun 26 03:59:34 2001
+++ guile/guile-core/libguile/strings.c Wed Jun 27 18:11:59 2001
@@ -50,7 +50,9 @@
 #include "libguile/chars.h"
 #include "libguile/root.h"
 #include "libguile/strings.h"
+#include "libguile/deprecation.h"
 #include "libguile/validate.h"
+
 
 
 /* {Strings}
Index: guile/guile-core/libguile/strings.h
diff -u guile/guile-core/libguile/strings.h:1.31 
guile/guile-core/libguile/strings.h:1.32
--- guile/guile-core/libguile/strings.h:1.31    Thu Jun 14 11:26:17 2001
+++ guile/guile-core/libguile/strings.h Tue Jun 26 03:59:34 2001
@@ -1,8 +1,8 @@
 /* classes: h_files */
 
-#ifndef STRINGSH
-#define STRINGSH
-/*     Copyright (C) 1995,1996,1997,1998, 2000 Free Software Foundation, Inc.
+#ifndef SCM_STRINGS_H
+#define SCM_STRINGS_H
+/* Copyright (C) 1995,1996,1997,1998,2000,2001 Free Software Foundation, Inc.
  * 
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -51,7 +51,7 @@
 
 
 
-#define SCM_STRINGP(x) (SCM_NIMP (x) && (SCM_TYP7S (x) == scm_tc7_string))
+#define SCM_STRINGP(x) (!SCM_IMP (x) && (SCM_TYP7S (x) == scm_tc7_string))
 #if (SCM_DEBUG_DEPRECATED == 1)
 #define SCM_STRING_UCHARS(x) ((unsigned char *) (SCM_CELL_WORD_1 (x)))
 #define SCM_STRING_CHARS(x) ((char *) (SCM_CELL_WORD_1 (x)))
@@ -62,8 +62,8 @@
 #define SCM_SET_STRING_LENGTH(s, l) (SCM_SET_CELL_WORD_0 ((s), ((l) << 8) + 
scm_tc7_string))
 
 #define SCM_STRING_COERCE_0TERMINATION_X(x) \
-  { if (SCM_NIMP (x) && (SCM_TYP7 (x) == scm_tc7_substring)) \
-      x = scm_makfromstr (SCM_STRING_CHARS (x), SCM_STRING_LENGTH (x), 0); }
+  { if (!SCM_IMP (x) && (SCM_TYP7 (x) == scm_tc7_substring)) \
+      x = scm_mem2string (SCM_STRING_CHARS (x), SCM_STRING_LENGTH (x)); }
 
 
 
@@ -73,7 +73,7 @@
 extern SCM scm_makfromstrs (int argc, char **argv);
 extern SCM scm_take_str (char *s, size_t len);
 extern SCM scm_take0str (char *s);
-extern SCM scm_makfromstr (const char *src, size_t len, int);
+extern SCM scm_mem2string (const char *src, size_t len);
 extern SCM scm_makfrom0str (const char *src);
 extern SCM scm_makfrom0str_opt (const char *src);
 extern SCM scm_allocate_string (size_t len);
@@ -90,7 +90,7 @@
 #if (SCM_DEBUG_DEPRECATED == 0)
 
 #define SCM_SLOPPY_STRINGP(x) (SCM_STRINGP(x))
-#define SCM_RWSTRINGP(x) (SCM_NIMP (x) && (SCM_TYP7 (x) == scm_tc7_string))
+#define SCM_RWSTRINGP(x) (!SCM_IMP (x) && (SCM_TYP7 (x) == scm_tc7_string))
 #define SCM_STRING_UCHARS(x) \
   ((SCM_TYP7 (x) == scm_tc7_substring) \
      ? (unsigned char *) SCM_CELL_WORD_1 (SCM_CDDR (x)) + SCM_INUM (SCM_CADR 
(x)) \
@@ -101,10 +101,11 @@
      : (char *) SCM_CELL_WORD_1 (x))
 extern SCM scm_make_shared_substring (SCM str, SCM frm, SCM to);
 extern SCM scm_makstr (size_t len, int);
+extern SCM scm_makfromstr (const char *src, size_t len, int);
 
 #endif  /* SCM_DEBUG_DEPRECATED == 0 */
 
-#endif  /* STRINGSH */
+#endif  /* SCM_STRINGS_H */
 
 /*
   Local Variables:
Index: guile/guile-core/libguile/strop.c
diff -u guile/guile-core/libguile/strop.c:1.61 
guile/guile-core/libguile/strop.c:1.62
--- guile/guile-core/libguile/strop.c:1.61      Sun Jun  3 16:32:27 2001
+++ guile/guile-core/libguile/strop.c   Tue Jun 26 03:59:34 2001
@@ -1,6 +1,6 @@
 /* classes: src_files */
 
-/*     Copyright (C) 1994, 1996, 1997, 1999, 2000, 2001 Free Software 
Foundation, Inc.
+/* Copyright (C) 1994,1996,1997,1999,2000,2001 Free Software Foundation, Inc.
 
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
@@ -324,7 +324,7 @@
 #define FUNC_NAME s_scm_string_null_p
 {
   SCM_VALIDATE_STRING (1,str);
-  return SCM_NEGATE_BOOL (SCM_STRING_LENGTH (str));
+  return SCM_BOOL (SCM_STRING_LENGTH (str) == 0);
 }
 #undef FUNC_NAME
 
@@ -353,7 +353,11 @@
 static SCM
 string_copy (SCM str)
 {
-  return scm_makfromstr (SCM_STRING_CHARS (str), SCM_STRING_LENGTH (str), 0);
+  const char* chars = SCM_STRING_CHARS (str);
+  size_t length = SCM_STRING_LENGTH (str);
+  SCM new_string = scm_mem2string (chars, length);
+  scm_remember_upto_here_1 (str);
+  return new_string;
 }
 
 
@@ -487,7 +491,7 @@
   len = SCM_STRING_LENGTH(str);
   sz = SCM_STRING_CHARS (str);
   for(i=0; i<len;  i++) {
-    if(SCM_NFALSEP(scm_char_alphabetic_p(SCM_MAKE_CHAR(sz[i])))) {
+    if (!SCM_FALSEP (scm_char_alphabetic_p (SCM_MAKE_CHAR (sz[i])))) {
       if(!in_word) {
         sz[i] = scm_upcase(sz[i]);
         in_word = 1;
@@ -574,10 +578,11 @@
        idx--;
       if (idx >= 0)
        {
-         res = scm_cons (scm_makfromstr (p + idx, last_idx - idx, 0), res);
+         res = scm_cons (scm_mem2string (p + idx, last_idx - idx), res);
          idx--;
        }
     }
+  scm_remember_upto_here_1 (str);
   return res;
 }
 #undef FUNC_NAME
Index: guile/guile-core/libguile/strorder.c
diff -u guile/guile-core/libguile/strorder.c:1.24 
guile/guile-core/libguile/strorder.c:1.25
--- guile/guile-core/libguile/strorder.c:1.24   Tue Apr  3 06:19:04 2001
+++ guile/guile-core/libguile/strorder.c        Wed May 23 17:50:49 2001
@@ -64,7 +64,7 @@
            "characters.")
 #define FUNC_NAME s_scm_string_equal_p
 {
-  scm_sizet length;
+  size_t length;
 
   SCM_VALIDATE_STRING (1, s1);
   SCM_VALIDATE_STRING (2, s2);
@@ -74,7 +74,7 @@
     {
       unsigned char *c1 = SCM_STRING_UCHARS (s1) + length - 1;
       unsigned char *c2 = SCM_STRING_UCHARS (s2) + length - 1;
-      scm_sizet i;
+      size_t i;
 
       /* comparing from back to front typically finds mismatches faster */
       for (i = 0; i != length; ++i, --c1, --c2)
@@ -99,7 +99,7 @@
            "return @code{#f}.")
 #define FUNC_NAME s_scm_string_ci_equal_p
 {
-  scm_sizet length;
+  size_t length;
 
   SCM_VALIDATE_STRING (1, s1);
   SCM_VALIDATE_STRING (2, s2);
@@ -109,7 +109,7 @@
     {
       unsigned char *c1 = SCM_STRING_UCHARS (s1) + length - 1;
       unsigned char *c2 = SCM_STRING_UCHARS (s2) + length - 1;
-      scm_sizet i;
+      size_t i;
 
       /* comparing from back to front typically finds mismatches faster */
       for (i = 0; i != length; ++i, --c1, --c2)
@@ -131,7 +131,7 @@
 static SCM
 string_less_p (SCM s1, SCM s2)
 {
-  scm_sizet i, length1, length2, lengthm;
+  size_t i, length1, length2, lengthm;
   unsigned char *c1, *c2;
 
   length1 = SCM_STRING_LENGTH (s1);
@@ -211,7 +211,7 @@
 static SCM
 string_ci_less_p (SCM s1, SCM s2)
 {
-  scm_sizet i, length1, length2, lengthm;
+  size_t i, length1, length2, lengthm;
   unsigned char *c1, *c2;
 
   length1 = SCM_STRING_LENGTH (s1);
Index: guile/guile-core/libguile/strports.c
diff -u guile/guile-core/libguile/strports.c:1.82 
guile/guile-core/libguile/strports.c:1.83
--- guile/guile-core/libguile/strports.c:1.82   Fri Jun 29 16:13:14 2001
+++ guile/guile-core/libguile/strports.c        Sun Jul  1 04:57:56 2001
@@ -460,7 +460,7 @@
   scm_c_issue_deprecation_warning 
     ("scm_read_0str is deprecated.  Use scm_c_read_string instead.");
 
-  return scm_read_0str (expr);
+  return scm_c_read_string (expr);
 }
 
 SCM
@@ -469,7 +469,7 @@
   scm_c_issue_deprecation_warning 
     ("scm_eval_0str is deprecated.  Use scm_c_eval_string instead.");
 
-  return scm_eval_0str (expr);
+  return scm_c_eval_string (expr);
 }
 
 #endif
Index: guile/guile-core/libguile/struct.c
diff -u guile/guile-core/libguile/struct.c:1.80 
guile/guile-core/libguile/struct.c:1.81
--- guile/guile-core/libguile/struct.c:1.80     Thu Jun 14 12:50:43 2001
+++ guile/guile-core/libguile/struct.c  Wed Jun 27 18:11:59 2001
@@ -90,7 +90,7 @@
     len = SCM_STRING_LENGTH (fields);
     if (len % 2 == 1)
       SCM_MISC_ERROR ("odd length field specification: ~S", 
-                     SCM_LIST1 (fields));
+                     scm_list_1 (fields));
 
     field_desc = SCM_STRING_CHARS (fields);
 
@@ -108,7 +108,7 @@
            break;
          default:
            SCM_MISC_ERROR ("unrecognized field type: ~S", 
-                           SCM_LIST1 (SCM_MAKE_CHAR (field_desc[x])));
+                           scm_list_1 (SCM_MAKE_CHAR (field_desc[x])));
          }
 
        switch (field_desc[x + 1])
@@ -131,14 +131,14 @@
            break;
          default:
            SCM_MISC_ERROR ("unrecognized ref specification: ~S",
-                           SCM_LIST1 (SCM_MAKE_CHAR (field_desc[x + 1])));
+                           scm_list_1 (SCM_MAKE_CHAR (field_desc[x + 1])));
          }
 #if 0
        if (field_desc[x] == 'd')
          {
            if (field_desc[x + 2] != '-')
              SCM_MISC_ERROR ("missing dash field at position ~A",
-                             SCM_LIST1 (SCM_MAKINUM (x / 2)));
+                             scm_list_1 (SCM_MAKINUM (x / 2)));
            x += 2;
            goto recheck_ref;
          }
@@ -539,7 +539,8 @@
   SCM_VALIDATE_INUM (2, tail_array_size);
   SCM_VALIDATE_REST_ARGUMENT (init);
 
-  fields = scm_string_append (SCM_LIST2 (required_vtable_fields, user_fields));
+  fields = scm_string_append (scm_list_2 (required_vtable_fields,
+                                         user_fields));
   layout = scm_make_struct_layout (fields);
   basic_size = SCM_SYMBOL_LENGTH (layout) / 2;
   tail_elts = SCM_INUM (tail_array_size);
@@ -601,13 +602,13 @@
          if ((ref == 'R') || (ref == 'W'))
            field_type = 'u';
          else
-           SCM_MISC_ERROR ("ref denied for field ~A", SCM_LIST1 (pos));
+           SCM_MISC_ERROR ("ref denied for field ~A", scm_list_1 (pos));
        }
     }
   else if (fields_desc[SCM_SYMBOL_LENGTH (layout) - 1] != 'O')    
     field_type = fields_desc[SCM_SYMBOL_LENGTH (layout) - 2];
   else
-    SCM_MISC_ERROR ("ref denied for field ~A", SCM_LIST1 (pos));
+    SCM_MISC_ERROR ("ref denied for field ~A", scm_list_1 (pos));
   
   switch (field_type)
     {
@@ -633,7 +634,7 @@
 
     default:
       SCM_MISC_ERROR ("unrecognized field type: ~S",
-                     SCM_LIST1 (SCM_MAKE_CHAR (field_type)));
+                     scm_list_1 (SCM_MAKE_CHAR (field_type)));
     }
 
   return answer;
@@ -673,12 +674,12 @@
       field_type = fields_desc[p * 2];
       set_x = fields_desc [p * 2 + 1];
       if (set_x != 'w')
-       SCM_MISC_ERROR ("set! denied for field ~A", SCM_LIST1 (pos));
+       SCM_MISC_ERROR ("set! denied for field ~A", scm_list_1 (pos));
     }
   else if (fields_desc[SCM_SYMBOL_LENGTH (layout) - 1] == 'W')    
     field_type = fields_desc[SCM_SYMBOL_LENGTH (layout) - 2];
   else
-    SCM_MISC_ERROR ("set! denied for field ~A", SCM_LIST1 (pos));
+    SCM_MISC_ERROR ("set! denied for field ~A", scm_list_1 (pos));
   
   switch (field_type)
     {
@@ -705,7 +706,7 @@
 
     default:
       SCM_MISC_ERROR ("unrecognized field type: ~S",
-                     SCM_LIST1 (SCM_MAKE_CHAR (field_type)));
+                     scm_list_1 (SCM_MAKE_CHAR (field_type)));
     }
 
   return val;
Index: guile/guile-core/libguile/struct.h
diff -u guile/guile-core/libguile/struct.h:1.38 
guile/guile-core/libguile/struct.h:1.39
--- guile/guile-core/libguile/struct.h:1.38     Mon Jun 11 01:51:28 2001
+++ guile/guile-core/libguile/struct.h  Thu Jun 14 12:50:43 2001
@@ -70,7 +70,7 @@
 #define scm_vtable_index_printer 3 /* A printer for this struct type. */
 #define scm_vtable_offset_user   4 /* Where do user fields start? */
 
-typedef size_t (*scm_struct_free_t) (scm_bits_t * vtable, scm_bits_t * data);
+typedef size_t (*scm_t_struct_free) (scm_t_bits * vtable, scm_t_bits * data);
 
 #define SCM_STRUCTF_MASK   (0xFFF << 20)
 #define SCM_STRUCTF_ENTITY (1L << 30) /* Indicates presence of proc slots */
@@ -79,8 +79,8 @@
 
 /* Dirk:FIXME:: the SCM_STRUCTP predicate is also fulfilled for glocs */
 #define SCM_STRUCTP(X)                 (SCM_NIMP(X) && (SCM_TYP3(X) == 
scm_tc3_cons_gloc))
-#define SCM_STRUCT_DATA(X)             ((scm_bits_t *) SCM_CELL_WORD_1 (X))
-#define SCM_STRUCT_VTABLE_DATA(X)       ((scm_bits_t *) (SCM_CELL_WORD_0 (X) - 
scm_tc3_cons_gloc))
+#define SCM_STRUCT_DATA(X)             ((scm_t_bits *) SCM_CELL_WORD_1 (X))
+#define SCM_STRUCT_VTABLE_DATA(X)       ((scm_t_bits *) (SCM_CELL_WORD_0 (X) - 
scm_tc3_cons_gloc))
 
 #define SCM_STRUCT_LAYOUT(X)           (SCM_PACK (SCM_STRUCT_VTABLE_DATA (X) 
[scm_vtable_index_layout]))
 #define SCM_SET_STRUCT_LAYOUT(X, v)     (SCM_STRUCT_VTABLE_DATA (X) 
[scm_vtable_index_layout] = SCM_UNPACK (v))
@@ -91,7 +91,7 @@
 #define SCM_STRUCT_PRINTER(X)          (SCM_PACK (SCM_STRUCT_VTABLE_DATA (X) 
[scm_vtable_index_printer]))
 #define SCM_SET_STRUCT_PRINTER(x, v)\
    (SCM_STRUCT_VTABLE_DATA (x) [scm_vtable_index_printer] = SCM_UNPACK (v))
-#define SCM_SET_VTABLE_DESTRUCTOR(X, D) (SCM_STRUCT_DATA (X) 
[scm_struct_i_free] = (scm_bits_t) (D))
+#define SCM_SET_VTABLE_DESTRUCTOR(X, D) (SCM_STRUCT_DATA (X) 
[scm_struct_i_free] = (scm_t_bits) (D))
 /* Efficiency is important in the following macro, since it's used in GC */
 #define SCM_LAYOUT_TAILP(X)            (((X) & 32) == 0) /* R, W or O */
 
@@ -107,11 +107,11 @@
 
 
 
-extern scm_bits_t * scm_alloc_struct (int n_words, int n_extra, char * who);
-extern size_t scm_struct_free_0 (scm_bits_t * vtable, scm_bits_t * data);
-extern size_t scm_struct_free_light (scm_bits_t * vtable, scm_bits_t * data);
-extern size_t scm_struct_free_standard (scm_bits_t * vtable, scm_bits_t * 
data);
-extern size_t scm_struct_free_entity (scm_bits_t * vtable, scm_bits_t * data);
+extern scm_t_bits * scm_alloc_struct (int n_words, int n_extra, char * who);
+extern size_t scm_struct_free_0 (scm_t_bits * vtable, scm_t_bits * data);
+extern size_t scm_struct_free_light (scm_t_bits * vtable, scm_t_bits * data);
+extern size_t scm_struct_free_standard (scm_t_bits * vtable, scm_t_bits * 
data);
+extern size_t scm_struct_free_entity (scm_t_bits * vtable, scm_t_bits * data);
 extern SCM scm_make_struct_layout (SCM fields);
 extern SCM scm_struct_p (SCM x);
 extern SCM scm_struct_vtable_p (SCM x);
Index: guile/guile-core/libguile/symbols-deprecated.c
diff -u guile/guile-core/libguile/symbols-deprecated.c:1.3 
guile/guile-core/libguile/symbols-deprecated.c:1.4
--- guile/guile-core/libguile/symbols-deprecated.c:1.3  Wed May 23 17:50:49 2001
+++ guile/guile-core/libguile/symbols-deprecated.c      Wed Jun 27 18:11:59 2001
@@ -112,7 +112,7 @@
   answer = scm_sym2ovcell_soft (sym, obarray);
   if (!SCM_FALSEP (answer))
     return answer;
-  SCM_MISC_ERROR ("uninterned symbol: ~S", SCM_LIST1 (sym));
+  SCM_MISC_ERROR ("uninterned symbol: ~S", scm_list_1 (sym));
   return SCM_UNSPECIFIED;              /* not reached */
 }
 #undef FUNC_NAME
Index: guile/guile-core/libguile/symbols.c
diff -u guile/guile-core/libguile/symbols.c:1.91 
guile/guile-core/libguile/symbols.c:1.92
--- guile/guile-core/libguile/symbols.c:1.91    Thu Jun  7 14:12:19 2001
+++ guile/guile-core/libguile/symbols.c Tue Jun 26 03:59:34 2001
@@ -185,8 +185,11 @@
            "@end lisp")
 #define FUNC_NAME s_scm_symbol_to_string
 {
+  SCM str;
   SCM_VALIDATE_SYMBOL (1, s);
-  return scm_makfromstr (SCM_SYMBOL_CHARS (s), SCM_SYMBOL_LENGTH (s), 0);
+  str = scm_mem2string (SCM_SYMBOL_CHARS (s), SCM_SYMBOL_LENGTH (s));
+  scm_remember_upto_here_1 (s);
+  return str;
 }
 #undef FUNC_NAME
 
Index: guile/guile-core/libguile/symbols.h
diff -u guile/guile-core/libguile/symbols.h:1.55 
guile/guile-core/libguile/symbols.h:1.56
--- guile/guile-core/libguile/symbols.h:1.55    Sun May 27 15:00:03 2001
+++ guile/guile-core/libguile/symbols.h Thu Jun 14 12:50:43 2001
@@ -98,7 +98,7 @@
 
 #define SCM_CHARS(x) ((char *) (SCM_CELL_WORD_1 (x)))
 #define SCM_UCHARS(x) ((unsigned char *) (SCM_CELL_WORD_1 (x)))
-#define SCM_SETCHARS(x, v) (SCM_SET_CELL_WORD_1 ((x), (scm_bits_t) (v)))
+#define SCM_SETCHARS(x, v) (SCM_SET_CELL_WORD_1 ((x), (scm_t_bits) (v)))
 #define SCM_SLOPPY_SUBSTRP(x) (SCM_SUBSTRP (x))
 #define SCM_SUBSTR_STR(x) (SCM_CDDR (x))
 #define SCM_SUBSTR_OFFSET(x) (SCM_CADR (x))
Index: guile/guile-core/libguile/tags.h
diff -u guile/guile-core/libguile/tags.h:1.81 
guile/guile-core/libguile/tags.h:1.82
--- guile/guile-core/libguile/tags.h:1.81       Thu Jun 14 10:39:30 2001
+++ guile/guile-core/libguile/tags.h    Thu Jun 14 12:50:43 2001
@@ -61,36 +61,36 @@
 /* In the beginning was the Word:
  */
 #ifdef HAVE_UINTPTR_T
-typedef uintptr_t scm_bits_t;
-typedef intptr_t scm_signed_bits_t;
+typedef uintptr_t scm_t_bits;
+typedef intptr_t scm_t_signed_bits;
 #else
-typedef unsigned long scm_bits_t;
-typedef signed long scm_signed_bits_t;
+typedef unsigned long scm_t_bits;
+typedef signed long scm_t_signed_bits;
 #endif
 
 /* But as external interface, we use SCM, which may, according to the desired
  * level of type checking, be defined in several ways:
  */
 #if (SCM_DEBUG_TYPING_STRICTNESS == 2)
-    typedef union { struct { scm_bits_t n; } n; } SCM;
-    static SCM scm_pack(scm_bits_t b) { SCM s; s.n.n = b; return s; }
+    typedef union { struct { scm_t_bits n; } n; } SCM;
+    static SCM scm_pack(scm_t_bits b) { SCM s; s.n.n = b; return s; }
 #   define SCM_UNPACK(x) ((x).n.n)
-#   define SCM_PACK(x) (scm_pack ((scm_bits_t) (x)))
+#   define SCM_PACK(x) (scm_pack ((scm_t_bits) (x)))
 #elif (SCM_DEBUG_TYPING_STRICTNESS == 1)
 /* This is the default, which provides an intermediate level of compile time
  * type checking while still resulting in very efficient code.
  */
     typedef struct scm_unused_struct * SCM;
-#   define SCM_UNPACK(x) ((scm_bits_t) (x))
+#   define SCM_UNPACK(x) ((scm_t_bits) (x))
 #   define SCM_PACK(x) ((SCM) (x))
 #else
 /* This should be used as a fall back solution for machines on which casting
  * to a pointer may lead to loss of bit information, e. g. in the three least
  * significant bits.
  */
-    typedef scm_bits_t SCM;
+    typedef scm_t_bits SCM;
 #   define SCM_UNPACK(x) (x)
-#   define SCM_PACK(x) ((scm_bits_t) (x))
+#   define SCM_PACK(x) ((scm_t_bits) (x))
 #endif
 
 
Index: guile/guile-core/libguile/threads.c
diff -u guile/guile-core/libguile/threads.c:1.20 
guile/guile-core/libguile/threads.c:1.21
--- guile/guile-core/libguile/threads.c:1.20    Fri Mar  9 15:33:41 2001
+++ guile/guile-core/libguile/threads.c Thu Jun 14 12:50:43 2001
@@ -70,9 +70,9 @@
 
 
 
-scm_bits_t scm_tc16_thread;
-scm_bits_t scm_tc16_mutex;
-scm_bits_t scm_tc16_condvar;
+scm_t_bits scm_tc16_thread;
+scm_t_bits scm_tc16_mutex;
+scm_t_bits scm_tc16_condvar;
 
 
 /* Scheme-visible thread functions. */
Index: guile/guile-core/libguile/threads.h
diff -u guile/guile-core/libguile/threads.h:1.15 
guile/guile-core/libguile/threads.h:1.16
--- guile/guile-core/libguile/threads.h:1.15    Sun Dec 10 12:34:01 2000
+++ guile/guile-core/libguile/threads.h Thu Jun 14 12:50:43 2001
@@ -55,9 +55,9 @@
 
 
 /* smob tags for the thread datatypes */
-extern scm_bits_t scm_tc16_thread;
-extern scm_bits_t scm_tc16_mutex;
-extern scm_bits_t scm_tc16_condvar;
+extern scm_t_bits scm_tc16_thread;
+extern scm_t_bits scm_tc16_mutex;
+extern scm_t_bits scm_tc16_condvar;
 
 #define SCM_THREADP(x)      SCM_TYP16_PREDICATE (scm_tc16_thread, x)
 #define SCM_THREAD_DATA(x)  ((void *) SCM_CELL_WORD_1 (x))
@@ -79,8 +79,8 @@
 SCM scm_threads_unlock_mutex (SCM);
 SCM scm_threads_monitor (void);
 
-SCM scm_spawn_thread (scm_catch_body_t body, void *body_data,
-                     scm_catch_handler_t handler, void *handler_data);
+SCM scm_spawn_thread (scm_t_catch_body body, void *body_data,
+                     scm_t_catch_handler handler, void *handler_data);
 
 /* These are versions of the ordinary sleep and usleep functions,
    that play nicely with the thread system.  */
Index: guile/guile-core/libguile/throw.c
diff -u guile/guile-core/libguile/throw.c:1.86 
guile/guile-core/libguile/throw.c:1.87
--- guile/guile-core/libguile/throw.c:1.86      Thu Jun 14 12:50:43 2001
+++ guile/guile-core/libguile/throw.c   Tue Jun 26 08:46:40 2001
@@ -348,7 +348,7 @@
 {
   struct scm_body_thunk_data *c = (struct scm_body_thunk_data *) body_data;
 
-  return scm_apply (c->body_proc, SCM_EOL, SCM_EOL);
+  return scm_call_0 (c->body_proc);
 }
 
 
@@ -367,7 +367,7 @@
 {
   SCM *handler_proc_p = (SCM *) handler_data;
 
-  return scm_apply (*handler_proc_p, scm_cons (tag, throw_args), SCM_EOL);
+  return scm_apply_1 (*handler_proc_p, tag, throw_args);
 }
 
 /* SCM_HANDLE_BY_PROC_CATCHING_ALL is like SCM_HANDLE_BY_PROC but
@@ -383,7 +383,7 @@
 hbpca_body (void *body_data)
 {
   struct hbpca_data *data = (struct hbpca_data *)body_data;
-  return scm_apply (data->proc, data->args, SCM_EOL);
+  return scm_apply_0 (data->proc, data->args);
 }
 
 SCM
Index: guile/guile-core/libguile/unif.c
diff -u guile/guile-core/libguile/unif.c:1.119 
guile/guile-core/libguile/unif.c:1.120
--- guile/guile-core/libguile/unif.c:1.119      Sat Jun 30 12:56:57 2001
+++ guile/guile-core/libguile/unif.c    Tue Jul  3 08:27:56 2001
@@ -74,6 +74,10 @@
 #include <unistd.h>
 #endif
 
+#ifdef HAVE_IO_H
+#include <io.h>
+#endif
+
 
 /* The set of uniform scm_vector types is:
  *  Vector of:          Called:
Index: guile/guile-core/libguile/unif.h
diff -u guile/guile-core/libguile/unif.h:1.40 
guile/guile-core/libguile/unif.h:1.41
--- guile/guile-core/libguile/unif.h:1.40       Thu Jun 14 11:26:27 2001
+++ guile/guile-core/libguile/unif.h    Thu Jun 14 12:50:43 2001
@@ -58,28 +58,28 @@
         bit  15 is the SCM_ARRAY_FLAG_CONTIGUOUS flag
         bits 16-31 hold the smob type id: scm_tc16_array
    CDR: pointer to a malloced block containing an scm_array structure
-        followed by an scm_array_dim_t structure for each dimension.
+        followed by an scm_t_array_dim structure for each dimension.
 */
 
-typedef struct scm_array_t
+typedef struct scm_t_array
 {
   SCM v;  /* the contents of the array, e.g., a vector or uniform vector.  */
   unsigned long base;
-} scm_array_t;
+} scm_t_array;
 
-typedef struct scm_array_dim_t
+typedef struct scm_t_array_dim
 {
   long lbnd;
   long ubnd;
   long inc;
-} scm_array_dim_t;
+} scm_t_array_dim;
 
 #if (SCM_DEBUG_DEPRECATED == 0)
-# define scm_array scm_array_t
-# define scm_array_dim scm_array_dim_t
+# define scm_array scm_t_array
+# define scm_array_dim scm_t_array_dim
 #endif
 
-extern scm_bits_t scm_tc16_array;
+extern scm_t_bits scm_tc16_array;
 
 #define SCM_ARRAY_FLAG_CONTIGUOUS (1 << 16)
 
@@ -95,10 +95,10 @@
 #define SCM_CLR_ARRAY_CONTIGUOUS_FLAG(x) \
   (SCM_SET_CELL_WORD_0 ((x), SCM_CELL_WORD_0 (x) & ~SCM_ARRAY_FLAG_CONTIGUOUS))
 
-#define SCM_ARRAY_MEM(a)  ((scm_array_t *) SCM_CELL_WORD_1 (a))
+#define SCM_ARRAY_MEM(a)  ((scm_t_array *) SCM_CELL_WORD_1 (a))
 #define SCM_ARRAY_V(a)           (SCM_ARRAY_MEM (a)->v)
 #define SCM_ARRAY_BASE(a) (SCM_ARRAY_MEM (a)->base)
-#define SCM_ARRAY_DIMS(a) ((scm_array_dim_t *)((char *) SCM_ARRAY_MEM (a) + 
sizeof (scm_array_t))) 
+#define SCM_ARRAY_DIMS(a) ((scm_t_array_dim *)((char *) SCM_ARRAY_MEM (a) + 
sizeof (scm_t_array))) 
 
 #define SCM_I_MAX_LENGTH  ((unsigned long) (-1L) >> 8)
 
@@ -148,7 +148,7 @@
 extern SCM scm_bit_count_star (SCM v, SCM kv, SCM obj);
 extern SCM scm_bit_invert_x (SCM v);
 extern SCM scm_istr2bve (char *str, long len);
-extern SCM scm_array_to_list (SCM v);
+extern SCM scm_t_arrayo_list (SCM v);
 extern SCM scm_list_to_uniform_array (SCM ndim, SCM prot, SCM lst);
 extern int scm_raprin1 (SCM exp, SCM port, scm_print_state *pstate);
 extern SCM scm_array_prototype (SCM ra);
Index: guile/guile-core/libguile/variable.c
diff -u guile/guile-core/libguile/variable.c:1.36 
guile/guile-core/libguile/variable.c:1.37
--- guile/guile-core/libguile/variable.c:1.36   Thu Jun 14 12:50:43 2001
+++ guile/guile-core/libguile/variable.c        Wed Jun 27 18:11:59 2001
@@ -130,7 +130,7 @@
   SCM_VALIDATE_VARIABLE (1, var);
   val = SCM_VARIABLE_REF (var);
   if (val == SCM_UNDEFINED)
-    SCM_MISC_ERROR ("variable is unbound: ~S", SCM_LIST1 (var));
+    SCM_MISC_ERROR ("variable is unbound: ~S", scm_list_1 (var));
   return val;
 }
 #undef FUNC_NAME
Index: guile/guile-core/libguile/variable.h
diff -u guile/guile-core/libguile/variable.h:1.18 
guile/guile-core/libguile/variable.h:1.19
--- guile/guile-core/libguile/variable.h:1.18   Tue May 15 07:57:20 2001
+++ guile/guile-core/libguile/variable.h        Thu Jun 14 12:50:43 2001
@@ -54,7 +54,7 @@
 
 /* Variables 
  */
-extern scm_bits_t scm_tc16_variable;
+extern scm_t_bits scm_tc16_variable;
 
 #define SCM_VARIABLEP(X)       SCM_SMOB_PREDICATE (scm_tc16_variable, X)
 
Index: guile/guile-core/libguile/vectors.c
diff -u guile/guile-core/libguile/vectors.c:1.52 
guile/guile-core/libguile/vectors.c:1.53
--- guile/guile-core/libguile/vectors.c:1.52    Thu Jun 14 12:50:43 2001
+++ guile/guile-core/libguile/vectors.c Wed Jun 27 18:11:59 2001
@@ -244,10 +244,10 @@
 #define FUNC_NAME s_vector_set_x
 {
   SCM_GASSERTn (SCM_VECTORP (v),
-               g_vector_set_x, SCM_LIST3 (v, k, obj),
+               g_vector_set_x, scm_list_3 (v, k, obj),
                SCM_ARG1, s_vector_set_x);
   SCM_GASSERTn (SCM_INUMP (k),
-               g_vector_set_x, SCM_LIST3 (v, k, obj),
+               g_vector_set_x, scm_list_3 (v, k, obj),
                SCM_ARG2, s_vector_set_x);
   SCM_ASSERT_RANGE (2, k, SCM_INUM (k) < SCM_VECTOR_LENGTH (v) && SCM_INUM (k) 
>= 0);
   SCM_VELTS(v)[(long) SCM_INUM(k)] = obj;
Index: guile/guile-core/libguile/vectors.h
diff -u guile/guile-core/libguile/vectors.h:1.33 
guile/guile-core/libguile/vectors.h:1.34
--- guile/guile-core/libguile/vectors.h:1.33    Fri Jun  8 03:02:33 2001
+++ guile/guile-core/libguile/vectors.h Thu Jun 14 12:50:43 2001
@@ -52,7 +52,7 @@
 
 
 #define SCM_VECTORP(x) (SCM_NIMP (x) && (SCM_TYP7S (x) == scm_tc7_vector))
-#define SCM_VECTOR_BASE(x) ((scm_bits_t *) SCM_CELL_WORD_1 (x))
+#define SCM_VECTOR_BASE(x) ((scm_t_bits *) SCM_CELL_WORD_1 (x))
 #define SCM_SET_VECTOR_BASE(v, b) (SCM_SET_CELL_WORD_1 ((v), (b)))
 #define SCM_VECTOR_MAX_LENGTH ((1L << 24) - 1)
 #define SCM_VECTOR_LENGTH(x) (((unsigned long) SCM_CELL_WORD_0 (x)) >> 8)
Index: guile/guile-core/libguile/version.c
diff -u guile/guile-core/libguile/version.c:1.19 
guile/guile-core/libguile/version.c:1.20
--- guile/guile-core/libguile/version.c:1.19    Wed May 16 21:54:27 2001
+++ guile/guile-core/libguile/version.c Fri May 18 18:24:59 2001
@@ -75,13 +75,13 @@
 }
 #undef FUNC_NAME
 
-/* Return a Scheme string containing Guile's minor version number.  */
+/* Return a Scheme string containing Guile's micro version number.  */
 
 SCM_DEFINE (scm_micro_version, "micro-version", 0, 0, 0, 
             (),
             "Return a string containing Guile's micro version number.\n"
             "E.g., the 5 in \"1.6.5\".")
-#define FUNC_NAME s_scm_minor_version
+#define FUNC_NAME s_scm_micro_version
 {
   return scm_makfrom0str (GUILE_MICRO_VERSION);
 }
Index: guile/guile-core/libguile/vports.c
diff -u guile/guile-core/libguile/vports.c:1.47 
guile/guile-core/libguile/vports.c:1.48
--- guile/guile-core/libguile/vports.c:1.47     Tue Jun 26 03:59:34 2001
+++ guile/guile-core/libguile/vports.c  Tue Jun 26 08:46:40 2001
@@ -81,8 +81,7 @@
   if (pt->write_pos > pt->write_buf)
     {
       /* write the byte. */
-      scm_apply (SCM_VELTS (stream)[0], SCM_MAKE_CHAR (*pt->write_buf),
-                scm_listofnull);
+      scm_call_1 (SCM_VELTS (stream)[0], SCM_MAKE_CHAR (*pt->write_buf));
       pt->write_pos = pt->write_buf;
   
       /* flush the output.  */
@@ -90,7 +89,7 @@
        SCM f = SCM_VELTS (stream)[2];
 
        if (!SCM_FALSEP (f))
-         scm_apply (f, SCM_EOL, SCM_EOL);
+         scm_call_0 (f);
       }
     }
 }
@@ -100,9 +99,7 @@
 {
   SCM p = SCM_PACK (SCM_STREAM (port));
 
-  scm_apply (SCM_VELTS (p)[1], 
-            scm_cons (scm_mem2string ((char *) data, size), SCM_EOL),
-            SCM_EOL);
+  scm_call_1 (SCM_VELTS (p)[1], scm_mem2string ((char *) data, size));
 }
 
 /* calling the flush proc (element 2) is in case old code needs it,
@@ -116,7 +113,7 @@
   SCM p = SCM_PACK (SCM_STREAM (port));
   SCM ans;
 
-  ans = scm_apply (SCM_VELTS (p)[3], SCM_EOL, SCM_EOL); /* get char.  */
+  ans = scm_call_0 (SCM_VELTS (p)[3]); /* get char.  */
   if (SCM_FALSEP (ans) || SCM_EOF_OBJECT_P (ans))
     return EOF;
   SCM_ASSERT (SCM_CHARP (ans), ans, SCM_ARG1, "sf_fill_input");
@@ -138,7 +135,7 @@
   SCM f = SCM_VELTS (p)[4];
   if (SCM_FALSEP (f))
     return 0;
-  f = scm_apply (f, SCM_EOL, SCM_EOL);
+  f = scm_call_0 (f);
   errno = 0;
   return SCM_FALSEP (f) ? EOF : 0;
 }
Index: guile/guile-core/libguile/weaks.c
diff -u guile/guile-core/libguile/weaks.c:1.41 
guile/guile-core/libguile/weaks.c:1.42
--- guile/guile-core/libguile/weaks.c:1.41      Thu Jun  7 16:10:33 2001
+++ guile/guile-core/libguile/weaks.c   Sat Jun 30 12:50:10 2001
@@ -43,18 +43,72 @@
    address@hidden, http://www.cs.washington.edu/homes/gjb */
 
 
+
 #include "libguile/_scm.h"
 #include "libguile/vectors.h"
 
 #include "libguile/validate.h"
 #include "libguile/weaks.h"
-
 
+
 
 /* {Weak Vectors}
  */
 
 
+/* Allocate memory for a weak vector on behalf of the caller.  The allocated
+ * vector will be of the given weak vector subtype.  It will contain size
+ * elements which are initialized with the 'fill' object, or, if 'fill' is
+ * undefined, with an unspecified object.
+ */
+static SCM
+allocate_weak_vector (scm_t_bits type, SCM size, SCM fill, const char* caller)
+#define FUNC_NAME caller
+{
+  if (SCM_INUMP (size))
+    {
+      size_t c_size;
+      SCM v;
+
+      SCM_ASSERT_RANGE (1, size, SCM_INUM (size) >= 0);
+      c_size = SCM_INUM (size);
+
+      SCM_NEWCELL2 (v);
+      SCM_SET_WVECT_GC_CHAIN (v, SCM_EOL);
+      SCM_SET_WVECT_TYPE (v, type);
+
+      if (c_size > 0)
+       {
+         scm_t_bits *base;
+         size_t j;
+
+         if (SCM_UNBNDP (fill))
+           fill = SCM_UNSPECIFIED;
+
+         SCM_ASSERT_RANGE (1, size, c_size <= SCM_VECTOR_MAX_LENGTH);
+         base = scm_must_malloc (c_size * sizeof (scm_t_bits), FUNC_NAME);
+         for (j = 0; j != c_size; ++j)
+           base[j] = SCM_UNPACK (fill);
+         SCM_SET_VECTOR_BASE (v, base);
+         SCM_SET_VECTOR_LENGTH (v, c_size, scm_tc7_wvect);
+         scm_remember_upto_here_1 (fill);
+       }
+      else
+       {
+         SCM_SET_VECTOR_BASE (v, NULL);
+         SCM_SET_VECTOR_LENGTH (v, 0, scm_tc7_wvect);
+       }
+
+      return v;
+    }
+  else if (SCM_BIGP (size))
+    SCM_OUT_OF_RANGE (1, size);
+  else
+    SCM_WRONG_TYPE_ARG (1, size);
+}
+#undef FUNC_NAME
+
+
 SCM_DEFINE (scm_make_weak_vector, "make-weak-vector", 1, 1, 0,
            (SCM size, SCM fill),
            "Return a weak vector with @var{size} elements. If the optional\n"
@@ -63,16 +117,7 @@
            "empty list.")
 #define FUNC_NAME s_scm_make_weak_vector
 {
-  /* Dirk:FIXME:: We should probably rather use a double cell for weak 
vectors. */
-  SCM v;
-  v = scm_make_vector (scm_sum (size, SCM_MAKINUM (2)), fill);
-  SCM_DEFER_INTS;
-  SCM_SET_VECTOR_LENGTH (v, SCM_INUM (size), scm_tc7_wvect);
-  SCM_SETVELTS(v, SCM_VELTS(v) + 2);
-  SCM_VELTS(v)[-2] = SCM_EOL;
-  SCM_VECTOR_BASE (v) [-1] = 0;
-  SCM_ALLOW_INTS;
-  return v;
+  return allocate_weak_vector (0, size, fill, FUNC_NAME);
 }
 #undef FUNC_NAME
 
@@ -116,16 +161,12 @@
            "weak hashes are also weak vectors.")
 #define FUNC_NAME s_scm_weak_vector_p
 {
-  return SCM_BOOL(SCM_WVECTP (obj) && !SCM_IS_WHVEC (obj));
+  return SCM_BOOL (SCM_WVECTP (obj) && !SCM_IS_WHVEC (obj));
 }
 #undef FUNC_NAME
 
-
-
 
 
-
-
 SCM_DEFINE (scm_make_weak_key_hash_table, "make-weak-key-hash-table", 1, 0, 0, 
            (SCM size),
            "@deffnx primitive make-weak-value-hash-table size\n"
@@ -138,13 +179,7 @@
            "would modify regular hash tables. (@pxref{Hash Tables})")
 #define FUNC_NAME s_scm_make_weak_key_hash_table
 {
-  SCM v;
-  SCM_VALIDATE_INUM (1, size);
-  v = scm_make_weak_vector (size, SCM_EOL);
-  SCM_DEFER_INTS;
-  SCM_VECTOR_BASE (v) [-1] = 1;
-  SCM_ALLOW_INTS;
-  return v;
+  return allocate_weak_vector (1, size, SCM_EOL, FUNC_NAME);
 }
 #undef FUNC_NAME
 
@@ -155,34 +190,22 @@
            "(@pxref{Hash Tables})")
 #define FUNC_NAME s_scm_make_weak_value_hash_table
 {
-  SCM v;
-  SCM_VALIDATE_INUM (1, size);
-  v = scm_make_weak_vector (size, SCM_EOL);
-  SCM_DEFER_INTS;
-  SCM_VECTOR_BASE (v) [-1] = 2;
-  SCM_ALLOW_INTS;
-  return v;
+  return allocate_weak_vector (2, size, SCM_EOL, FUNC_NAME);
 }
 #undef FUNC_NAME
 
 
-
 SCM_DEFINE (scm_make_doubly_weak_hash_table, "make-doubly-weak-hash-table", 1, 
0, 0, 
             (SCM size),
            "Return a hash table with weak keys and values with @var{size}\n"
            "buckets.  (@pxref{Hash Tables})")
 #define FUNC_NAME s_scm_make_doubly_weak_hash_table
 {
-  SCM v;
-  SCM_VALIDATE_INUM (1, size);
-  v = scm_make_weak_vector (size, SCM_EOL);
-  SCM_DEFER_INTS;
-  SCM_VECTOR_BASE (v) [-1] = 3;
-  SCM_ALLOW_INTS;
-  return v;
+  return allocate_weak_vector (3, size, SCM_EOL, FUNC_NAME);
 }
 #undef FUNC_NAME
 
+
 SCM_DEFINE (scm_weak_key_hash_table_p, "weak-key-hash-table?", 1, 0, 0, 
            (SCM obj),
            "@deffnx primitive weak-value-hash-table? obj\n"
@@ -192,7 +215,7 @@
            "nor a weak value hash table.")
 #define FUNC_NAME s_scm_weak_key_hash_table_p
 {
-  return SCM_BOOL(SCM_WVECTP (obj) && SCM_IS_WHVEC(obj));
+  return SCM_BOOL (SCM_WVECTP (obj) && SCM_IS_WHVEC (obj));
 }
 #undef FUNC_NAME
 
@@ -202,7 +225,7 @@
            "Return @code{#t} if @var{obj} is a weak value hash table.")
 #define FUNC_NAME s_scm_weak_value_hash_table_p
 {
-  return SCM_BOOL(SCM_WVECTP (obj) && SCM_IS_WHVEC_V(obj));
+  return SCM_BOOL (SCM_WVECTP (obj) && SCM_IS_WHVEC_V (obj));
 }
 #undef FUNC_NAME
 
@@ -212,10 +235,11 @@
            "Return @code{#t} if @var{obj} is a doubly weak hash table.")
 #define FUNC_NAME s_scm_doubly_weak_hash_table_p
 {
-  return SCM_BOOL(SCM_WVECTP (obj) && SCM_IS_WHVEC_B (obj));
+  return SCM_BOOL (SCM_WVECTP (obj) && SCM_IS_WHVEC_B (obj));
 }
 #undef FUNC_NAME
 
+
 static void *
 scm_weak_vector_gc_init (void *dummy1 SCM_UNUSED,
                         void *dummy2 SCM_UNUSED,
@@ -226,6 +250,7 @@
   return 0;
 }
 
+
 static void *
 scm_mark_weak_vector_spines (void *dummy1 SCM_UNUSED,
                             void *dummy2 SCM_UNUSED,
@@ -265,6 +290,7 @@
   return 0;
 }
 
+
 static void *
 scm_scan_weak_vectors (void *dummy1 SCM_UNUSED,
                       void *dummy2 SCM_UNUSED,
@@ -325,10 +351,8 @@
   return 0;
 }
 
-
 
 
-
 void
 scm_weaks_prehistory ()
 {
@@ -336,6 +360,7 @@
   scm_c_hook_add (&scm_before_sweep_c_hook, scm_mark_weak_vector_spines, 0, 0);
   scm_c_hook_add (&scm_after_sweep_c_hook, scm_scan_weak_vectors, 0, 0);
 }
+
 
 void
 scm_init_weaks ()
Index: guile/guile-core/libguile/weaks.h
diff -u guile/guile-core/libguile/weaks.h:1.15 
guile/guile-core/libguile/weaks.h:1.16
--- guile/guile-core/libguile/weaks.h:1.15      Fri Apr 21 16:14:19 2000
+++ guile/guile-core/libguile/weaks.h   Sat Jun 30 12:50:10 2001
@@ -1,8 +1,8 @@
 /* classes: h_files */
 
-#ifndef WEAKSH
-#define WEAKSH
-/*     Copyright (C) 1995,1996, 2000 Free Software Foundation, Inc.   
+#ifndef SCM_WEAKS_H
+#define SCM_WEAKS_H
+/* Copyright (C) 1995,1996,2000,2001 Free Software Foundation, Inc.   
  * 
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -51,14 +51,16 @@
 
 
 
+#define SCM_WVECTP(x) (!SCM_IMP (x) && SCM_TYP7 (x) == scm_tc7_wvect)
+#define SCM_WVECT_TYPE(x) (SCM_CELL_WORD_2 (x))
+#define SCM_SET_WVECT_TYPE(x, t) (SCM_SET_CELL_WORD_2 ((x), (t)))
+#define SCM_IS_WHVEC(X) (SCM_WVECT_TYPE (X) == 1)
+#define SCM_IS_WHVEC_V(X) (SCM_WVECT_TYPE (X) == 2)
+#define SCM_IS_WHVEC_B(X) (SCM_WVECT_TYPE (X) == 3)
+#define SCM_IS_WHVEC_ANY(X) (SCM_WVECT_TYPE (X) != 0)
+#define SCM_WVECT_GC_CHAIN(X) (SCM_CELL_OBJECT_3 (X))
+#define SCM_SET_WVECT_GC_CHAIN(X, o) (SCM_SET_CELL_OBJECT_3 ((X), (o)))
 
-#define SCM_WVECTP(x) (SCM_NIMP(x) && (SCM_TYP7(x)==scm_tc7_wvect))
-#define SCM_IS_WHVEC(X) (SCM_UNPACK (SCM_VELTS(X)[-1]) == 1)
-#define SCM_IS_WHVEC_V(X) (SCM_UNPACK (SCM_VELTS(X)[-1]) == 2)
-#define SCM_IS_WHVEC_B(X) (SCM_UNPACK (SCM_VELTS(X)[-1]) == 3)
-#define SCM_IS_WHVEC_ANY(X) (SCM_UNPACK (SCM_VELTS(X)[-1]) != 0)
-#define SCM_WVECT_GC_CHAIN(X) (SCM_VELTS(X)[-2])
-
 extern SCM scm_weak_vectors;
 
 
@@ -75,7 +77,7 @@
 extern void scm_weaks_prehistory (void);
 extern void scm_init_weaks (void);
 
-#endif  /* WEAKSH */
+#endif  /* SCM_WEAKS_H */
 
 /*
   Local Variables:



reply via email to

[Prev in Thread] Current Thread [Next in Thread]