diff --git ChangeLog ChangeLog
index fd8cece..b78f133 100644
--- ChangeLog
+++ ChangeLog
@@ -1,9 +1,64 @@
 Update this by inserting the output of 
-	rcs2log -u "pazsan	Bernd Paysan	bernd.paysan@gmx.de" -h mips.complang.tuwien.ac.at
-with possibly additional -u clauses for other authors.  Check the authors with
-	rcs2log -u "pazsan	Bernd Paysan	bernd.paysan@gmx.de" -h mips.complang.tuwien.ac.at|grep '^200' |sed s/200.-..-..//|sort |uniq
+	LC_ALL=en_US.UTF-8 git log --stat --pretty=format:"%ai%x09%aN%x09<%aE>%n %h...%x09%s%n" <last tag>..HEAD
+
+2013-02-20 22:05:12 +0100       Bernd Paysan    <bernd.paysan@gmx.de>
+ 63708ef...     Bumped version to 0.7.1, added changelog stuff
+
+ ChangeLog    |   55 +++++++++++++++++++++++++++++++++++++++++++++++++++----
+ NEWS         |    9 ++++++++-
+ configure.in |    4 ++--
+ 3 files changed, 61 insertions(+), 7 deletions(-)
+
+2013-02-20 01:58:00 +0100	Bernd Paysan	<bernd.paysan@gmx.de>
+ 2ad4355...	spec for RedHat, too
+
+ gforth.spec |   19 +++++++++++++++++--
+ 1 file changed, 17 insertions(+), 2 deletions(-)
+
+2013-02-20 00:24:58 +0100	Bernd Paysan	<bernd.paysan@gmx.de>
+ 91f7f3b...	Added spec file for RPM build (SuSE)
+
+ gforth.spec |  264 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 264 insertions(+)
+
+2013-02-20 00:10:57 +0100	Bernd Paysan	<bernd.paysan@gmx.de>
+ f89c1b5...	Backported superinst fix
+
+ prims2x.fs |   15 +++++++++++++--
+ 1 file changed, 13 insertions(+), 2 deletions(-)
+
+2013-02-19 21:15:35 +0100	Bernd Paysan	<bernd.paysan@gmx.de>
+ 2ab48f2...	Ported check disabling
+
+ Makefile.in  |    6 +++---
+ configure.in |    9 +++++++++
+ 2 files changed, 12 insertions(+), 3 deletions(-)
+
+2013-02-18 15:20:51 +0100	Bernd Paysan	<bernd.paysan@gmx.de>
+ 6d9d6ac...	Added --tag option to libtool invocation, GDB bug fix backported
+
+ dis-gdb.fs |   24 ++++++++++++++++++++++--
+ libcc.fs   |    4 ++--
+ 2 files changed, 24 insertions(+), 4 deletions(-)
+
+2013-02-15 20:39:29 +0100	Bernd Paysan	<bernd.paysan@gmx.de>
+ e771567...	Remove CVS stuff
+
+ Makefile.in |   12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+2013-02-15 18:56:14 +0100	Bernd Paysan	<bernd.paysan@gmx.de>
+ 8f89a52...	Added necessary patches to build Gforth 0.7.0 now
+
+ Makefile.in        |    3 ---
+ configure.in       |    2 +-
+ cross.fs           |    6 +++++-
+ engine/Makefile.in |    2 +-
+ engine/main.c      |    4 ++--
+ gforth.el          |    5 +----
+ prim               |    2 +-
+ 7 files changed, 11 insertions(+), 13 deletions(-)
 
-	
 2008-11-01  Anton Ertl  <anton@mips.complang.tuwien.ac.at>
 
 	* Benchres, ChangeLog, INSTALL, NEWS, NEWS.vmgen, README, arch/4stack/asm.fs, arch/4stack/mach.fs, arch/4stack/prim-new.fs, arch/4stack/prim.fs, arch/4stack/relocate.fs, arch/generic/machine.h, arch/misc/prim.fs, arch/sparc/machine.h, dis-gdb.fs, doc/vmgen.texi, engine/io.c, engine/libcc.h.in, engine/support.c, engine/threaded.h, kernel/comp.fs, machpc.fs.in, prims2x0.6.2.fs, regexp.fs, update-copyright, vmgen-ex/Makefile, vmgen-ex2/Makefile, vmgen.in:
diff --git Makefile.in Makefile.in
index 79df651..4fe305f 100644
--- Makefile.in
+++ Makefile.in
@@ -150,7 +150,7 @@ CVSDIRS = CVS engine/CVS kernel/CVS doc/CVS asm/CVS ec/CVS test/CVS \
 	arch/alpha/CVS arch/4stack/CVS arch/misc/CVS arch/6502/CVS \
 	arch/8086/CVS arch/avr/CVS arch/c165/CVS arch/h8/CVS \
 	arch/shboom/CVS arch/sharc/CVS arch/ia64/CVS arch/amd64/CVS \
-	arch/arm/CVS arch/r8c/CVS
+	arch/arm/CVS arch/r8c/CVS vmgen-ex/CVS
 
 INCLUDES = engine/forth.h engine/threaded.h engine/io.h engine/longlong.h
 
@@ -380,7 +380,7 @@ ARCHS_NO_DIST = \
 	arch/r8c/tt.fs \
 	arch/sharc/unistd.h
 
-VMGEN_EX = vmgen-ex/CVS vmgen-ex/Makefile vmgen-ex/README vmgen-ex/disasm.c \
+VMGEN_EX = vmgen-ex/Makefile vmgen-ex/README vmgen-ex/disasm.c \
 	vmgen-ex/engine.c vmgen-ex/fib.mini \
 	vmgen-ex/mini-inst.vmg vmgen-ex/mini-super.vmg vmgen-ex/mini.h \
 	vmgen-ex/mini.l vmgen-ex/mini.y vmgen-ex/peephole-blacklist \
@@ -403,7 +403,7 @@ ENGINE_SOURCES = engine/Makefile.in engine/config.h.in \
 	engine/fnmatch.h engine/fnmatch.c \
 	engine/makefile.dos engine/makefile.os2
 
-SOURCES	= $(CVSDIRS) $(ENGINE_SOURCES) compat Makefile.in Makedist.in \
+SOURCES	= $(ENGINE_SOURCES) compat Makefile.in Makedist.in \
 	gforthmi.in vmgen.in preforth.in gfgen README.vmgen NEWS.vmgen \
 	autogen.sh configure.in configure config.sub config.guess \
 	elisp-comp missing stamp-h.in envos.fs.in \
@@ -473,7 +473,7 @@ GEN_PRECIOUS = $(FORTH_GEN) $(KERNLS) \
 .SUFFIXES:
 .SUFFIXES: .c .o
 
-all: kernel/version.fs more check
+all: kernel/version.fs more @NO_CHECK@check
 
 # use this dependency for phony targets just as mostlyclean,...
 FORCE: ;
@@ -619,11 +619,8 @@ install:	gforth$(EC)$(EXE) $(FORTH_SRC) $(kernel_fi) gforth.fi gforthmi vmgen do
 		else \
 			echo '>>>>>Please install gforth.{el,elc} in your .../emacs/site-lisp directory'; \
 		fi
-		-$(RM) gforth.fi
-		GFORTHD="./gforth-ditc -p $(DESTDIR)$(libdir)/gforth/site-forth$(PATHSEP)$(DESTDIR)$(siteforthdir)$(PATHSEP)$(DESTDIR)$(datadir)/gforth/$(VERSION) -i $(kernel_fi)" GFORTH="./gforth-ditc -p $(DESTDIR)$(libdir)/gforth/site-forth$(PATHSEP)$(DESTDIR)$(siteforthdir)$(PATHSEP)$(DESTDIR)$(datadir)/gforth/$(VERSION) --die-on-signal -i $(kernel_fi) $(STARTUP)" includedir=$(includedir) bindir=$(bindir) libccdir=$(libccdir) GFORTHPATH=.:"$$GFORTHPATH" GFORTHDESTDIR="$(DESTDIR)" ./gforthmi gforth.fi $(FORTHSIZES) $(STARTUP)
 		$(INSTALL_DATA) gforth.fi $(DESTDIR)$(libdir)/gforth/$(VERSION)
 		$(INSTALL_DATA) install.TAGS $(DESTDIR)$(datadir)/gforth/$(VERSION)/TAGS
-		$(RM) gforth.fi install.TAGS
 		$(INSTALL_DATA) include/gforth/$(VERSION)/* $(DESTDIR)$(includedir)/gforth/$(VERSION)
 		if test -n "$(LIBTOOL)"; then for i in $(LIBCC_BUILD_SRC); do \
 		   $(LIBTOOL) --silent --mode=install $(INSTALL) lib/gforth/$(VERSION)/libcc-named/`basename $$i .fs`.la $(DESTDIR)$(libccdir)`basename $$i .fs`.la; \
@@ -639,9 +636,9 @@ installdirs:	mkinstalldirs
 		for i in $(bindir) $(man1dir) $(infodir) $(libdir)/gforth/$(VERSION) $(datadir)/gforth/$(VERSION) $(libdir)/gforth/site-forth $(siteforthdir) $(includedir)/gforth/$(VERSION) $(libccdir); do \
 			$(srcdir)/mkinstalldirs $(DESTDIR)$$i; \
 		done
-		for i in $(CVSDIRS); do \
-			$(srcdir)/mkinstalldirs $(DESTDIR)$(datadir)/gforth/$(VERSION)/`dirname $$i`; \
-		done
+		#for i in $(CVSDIRS); do \
+		#	$(srcdir)/mkinstalldirs $(DESTDIR)$(datadir)/gforth/$(VERSION)/`dirname $$i`; \
+		#done
 		$(RM) -rf $(DESTDIR)$(datadir)/gforth/$(VERSION)/engine
 
 #deinstall all files specific to this version of gforth
@@ -819,7 +816,7 @@ gforth$(OPT)$(EC)$(EXE): $(ENGINE_SOURCES) $(FORTH_GEN_ENGINE) engine/config.h @
 		$(CP) engine/$@ $@ && \
 		$(MASSAGE_EXE) $@; \
 		@GFORTH_EXE@; \
-		$(MAKE) checkone check-nofast ENGINE=./engine/$@; \
+		@NO_CHECK@$(MAKE) checkone check-nofast ENGINE=./engine/$@; \
 	fi
 
 optgforth:
@@ -833,7 +830,7 @@ gforth-fast$(OPT)$(EC)$(EXE): $(ENGINE_SOURCES) $(FORTH_GEN_ENGINE_FAST) engine/
 		$(CP) engine/$@ $@ && \
 		$(MASSAGE_EXE) $@; \
 		@GFORTHFAST_EXE@; \
-		$(MAKE) checkone ENGINE=./engine/$@; \
+		@NO_CHECK@$(MAKE) checkone ENGINE=./engine/$@; \
 	fi
 
 optgforth-fast:
diff --git NEWS NEWS
index 55bcb80..d092989 100644
--- NEWS
+++ NEWS
@@ -1,3 +1,10 @@
+User-visible changes between 0.7.0 and 0.7.1:
+Bug fixes
+  amd64 gdb disassembler works with syntax change (autodetected)
+  workaround for gcc 4.6 and 4.7 problems (newline and superinstructions)
+Miscellaneous
+  changed repository from CVS to git
+
 User-visible changes between 0.6.2 and 0.7.0:
 
 Requirements:
@@ -335,7 +342,7 @@ $?)  added (SYSTEM) ( c_addr u -- wretval wior ).
 ' and ['] now give an error for compile-only words.
 
 -----
-Copyright (C) 1995,1996,1997,1998,2000,2003,2006,2007,2008 Free Software Foundation, Inc.
+Copyright (C) 1995,1996,1997,1998,2000,2003,2006,2007,2008,2013 Free Software Foundation, Inc.
 
 This file is part of Gforth.
 
diff --git configure.in configure.in
index 5e5b537..82b4262 100644
--- configure.in
+++ configure.in
@@ -20,12 +20,12 @@ dnl Process this file with autoconf to produce a configure script.
 
 dnl We use some automake macros here,
 dnl but don't use automake for creating Makefile.in
-AC_INIT([gforth],[0.7.0],[https://savannah.gnu.org/bugs/?func=addbug&group=gforth])
+AC_INIT([gforth],[0.7.1],[https://savannah.gnu.org/bugs/?func=addbug&group=gforth])
 AC_PREREQ(2.54)
 #snapshots have numbers major.minor.release-YYYYMMDD
 #note that lexicographic ordering must be heeded.
 #I.e., 0.4.1-YYYYMMDD must not exist before 0.4.1!
-UPDATED="November 2, 2008"
+UPDATED="February 20, 2013"
 AC_SUBST(UPDATED)
 AC_CONFIG_HEADERS(engine/config.h)
 
@@ -68,6 +68,14 @@ AC_ARG_WITH(debug,
 			  debugging informations.],
 if test "$withval" = "yes"; then DEBUGFLAG=-g; fi)
 
+NO_CHECK=""
+COMMENT="#"
+
+AC_ARG_WITH(check,
+[  --with-check		  enables sanity check during build (default)
+  --without-check	  disables sanity check during build],
+if test "$withval" = "no"; then NO_CHECK="$COMMENT"; fi)
+
 GCC_LD="\$(GCC)"
 EC_MODE="false"
 EC=""
@@ -165,6 +173,7 @@ AC_SUBST(CC)
 AC_SUBST(GCC_LD)
 AC_SUBST(DEBUGFLAG)
 AC_SUBST(EC)
+AC_SUBST(NO_CHECK)
 AC_SUBST(EC_MODE)
 AC_SUBST(engine2)
 AC_SUBST(engine_fast2)
@@ -236,7 +245,7 @@ case "$host_cpu" in
 		;;
 	i486)
 		machine=386
-		CFLAGS="$CFLAGS -fomit-frame-pointer -fforce-addr -m486"
+		CFLAGS="$CFLAGS -fomit-frame-pointer -fforce-addr"
 		;;
 	i*86)
 		machine=386
diff --git cross.fs cross.fs
index a42e027..59d12f3 100644
--- cross.fs
+++ cross.fs
@@ -205,6 +205,7 @@ Create bases   10 ,   2 ,   A , 100 ,
     THEN ;
 
 [THEN]
+[IFDEF] (number?)  : number? (number?) ; [THEN]
 
 \ this provides assert( and struct stuff
 \GFORTH [IFUNDEF] assert1(
@@ -689,6 +690,9 @@ Variable comp-state
   ['] pi-undefined , \ action
   ['] pi-undefined , \ target plugin action
   8765 ,     \ plugin magic
+[IFDEF] value!
+  ['] value! !to
+[THEN]
   DOES> perform ;
 
 Plugin DummyPlugin
@@ -3040,7 +3044,7 @@ compile: does-resolved ;compile
 \ : ?struc      ( flag -- )       ABORT" CROSS: unstructured " ;
 \ : sys?        ( sys -- sys )    dup 0= ?struc ;
 
-: >mark       ( -- sys )        T here  ( dup ." M" hex. ) 0 , H ;
+: >mark       ( -- sys )        T here H ( dup ." M" hex. ) T 0 , H ;
 
 X has? abranch [IF]
     : branchoffset ( src dest -- )  drop ;
diff --git dis-gdb.fs dis-gdb.fs
index 67e3f9b..e1c3846 100644
--- dis-gdb.fs
+++ dis-gdb.fs
@@ -1,6 +1,6 @@
 \ dis-gdb.fs	disassembler using gdb
 \
-\ Copyright (C) 2004,2007,2008 Free Software Foundation, Inc.
+\ Copyright (C) 2004,2007,2008,2010,2011 Free Software Foundation, Inc.
 
 \ This file is part of Gforth.
 
@@ -22,10 +22,30 @@
     swap >r dup >r extend-mem ( to addr3 u1+u2 r: addr2 u2 )
     rot r> r> rot rot chars move ;
 
+defer gdb-addr-sep-char ( -- c )
+
+',' constant #comma
+
+: check-gdb-syntax ( -- c )
+    \ gdb-7.0 and earlier do what we want with "disassemble addr1 addr2"
+    \ gdb-7.1 and later only work with         "disaesemble addr1,addr2"
+    \ try the old syntax to see if it works
+    s" gdb -ex 'disassemble 0 1' -ex 'quit' 2>/dev/null" r/o open-pipe throw
+    dup slurp-fid rot close-pipe throw drop
+    s" Dump of assembler code from" search nip nip if
+        ['] bl
+    else
+        ['] #comma
+    then
+    dup is gdb-addr-sep-char
+    execute ;
+
+' check-gdb-syntax is gdb-addr-sep-char
+
 : disasm-gdb { addr u -- }
     base @ >r hex
     s\" type mktemp >/dev/null && type gdb >/dev/null && file=`mktemp -t gforthdis.XXXXXXXXXX` && file2=`mktemp -t gforthdis.XXXXXXXXXX` && echo \"set verbose off\nset logging file $file\nset logging on\ndisas " save-mem ( addr u addr1 u1 )
-    addr 0 <<# bl hold # #s 'x hold # #> append-extend-string #>>
+    addr 0 <<# gdb-addr-sep-char hold # #s 'x hold # #> append-extend-string #>>
     addr u + 0 <<# # #s 'x hold # #> append-extend-string #>>
     r> base ! cr
     s\" \nset logging off\nquit\n\" >$file2 && gdb -nx -q -p `ps -p $$ -o ppid=` -x $file2 2>/dev/null >/dev/null && rm $file2 && grep -v \"of assembler\" $file && rm $file" append-extend-string
diff --git engine/Makefile.in engine/Makefile.in
index bdff3a6..b5b5d14 100644
--- engine/Makefile.in
+++ engine/Makefile.in
@@ -89,7 +89,7 @@ XCFLAGS	= @CFLAGS@
 XDEFINES = @DEFS@
 SWITCHES = $(XCFLAGS) $(XDEFINES) $(OPTDEFINES)
 #use -fno-inline to avoid register problems with asinh, atanh on gcc-3.3 on 386
-ENGINE_FLAGS = @ENGINE_FLAGS@ -fno-defer-pop -fcaller-saves -fno-inline
+ENGINE_FLAGS = @ENGINE_FLAGS@ -fno-defer-pop -fcaller-saves -fno-inline -fno-reorder-blocks
 DEBUGFLAG = @DEBUGFLAG@
 CFLAGS	= $(DEBUGFLAG) -I$(srcdir)/../arch/$(machine) -I. -Wall $(SWITCHES) -DDEFAULTPATH='"$(FORTHPATH)"' $(LTDLINCL)
 CFLAGS2	= $(DEBUGFLAG) -I$(srcdir)/../arch/$(machine) -I. -Wall $(SWITCHES) -DDEFAULTPATH='"$(FORTHPATH)"' $(LTDLINCL)
diff --git engine/main.c engine/main.c
index e1c02b1..73b7466 100644
--- engine/main.c
+++ engine/main.c
@@ -169,8 +169,8 @@ static UCell lsize=0;
 int offset_image=0;
 int die_on_signal=0;
 int ignore_async_signals=0;
-#ifndef INCLUDE_IMAGE
 static int clear_dictionary=0;
+#ifndef INCLUDE_IMAGE
 UCell pagesize=1;
 char *progname;
 #else
@@ -2270,8 +2270,8 @@ int main(int argc, char **argv, char **env)
 #else
   char *path = DEFAULTPATH;
 #endif
-#ifndef INCLUDE_IMAGE
   char *imagename="gforth.fi";
+#ifndef INCLUDE_IMAGE
   FILE *image_file;
   Address image;
 #endif
diff --git gforth.el gforth.el
index 0497391..d2b2661 100644
--- gforth.el
+++ gforth.el
@@ -1192,7 +1192,7 @@ exceeds 64 characters."
 
 ;;;###autoload
 (defun forth-mode ()
-  "
+  "\
 Major mode for editing Forth code. Tab indents for Forth code. Comments
 are delimited with \\ and newline. Paragraphs are separated by blank lines
 only. Block files are autodetected, when read, and converted to normal 
@@ -1495,8 +1495,6 @@ programmers who tend to fill code won't use emacs anyway:-)."
 
 (eval-and-compile (forth-require 'comint))
 
-(when (memq 'comint features)
-
   (defvar forth-program-name "gforth"
     "*Program invoked by the `run-forth' command, including program arguments")
 
@@ -1692,7 +1690,6 @@ processes.")
 				      forth-process-buffer))))
       (or proc
 	  (error "No current process.  See variable `forth-process-buffer'"))))
-  )  ; (memq 'comint features)
 
 (provide 'forth-mode)
 
diff --git gforth.spec gforth.spec
new file mode 100644
index 0000000..12d2546
--- /dev/null
+++ gforth.spec
@@ -0,0 +1,279 @@
+#
+# spec file for package gforth (Version 0.7.0)
+#
+# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
+#
+# All modifications and additions to the file contributed by third parties
+# remain the property of their copyright owners, unless otherwise agreed
+# upon. The license for this file, and modifications and additions to the
+# file, is the same license as for the pristine package itself (unless the
+# license for the pristine package is not an Open Source License, in which
+# case the license is the MIT License). An "Open Source License" is a
+# license that conforms to the Open Source Definition (Version 1.9)
+# published by the Open Source Initiative.
+
+# Please submit bugfixes or comments via http://bugs.opensuse.org/
+#
+
+
+
+Name:           gforth
+%if 0%{?rhel_version}
+BuildRequires:  emacs-nox automake autoconf libtool libtool-ltdl
+%endif
+%if 0%{?centos_version}
+BuildRequires:  emacs-nox automake autoconf libtool libtool-ltdl libtool-ltdl-devel
+%endif
+%if 0%{?fedora}
+BuildRequires:  emacs-nox automake autoconf libtool libtool-ltdl
+%endif
+%if 0%{?suse_version}
+BuildRequires:  emacs-nox automake autoconf
+%endif
+Url:            http://www.gnu.org/software/gforth/
+License:        GNU Free Documentation License, Version 1.2 (GFDL 1.2); GPL v2 or later; GPL v3 or later
+Group:          Development/Languages/Other
+AutoReqProv:    on
+Version:        0.7.1
+Release:        41.1
+Summary:        GNU Forth
+Source:         gforth-%{version}.tar.gz
+BuildRoot:      %{_tmppath}/%{name}-%{version}-build
+
+%description
+Gforth is a fast and portable implementation of the ANS Forth language.
+
+
+
+Authors:
+--------
+    Anton Ertl <anton@mips.complang.tuwien.ac.at>
+    Bernd Paysan <bernd.paysan@gmx.de>
+    Jens Wilke <jens.wilke@headissue.com>
+
+%prep
+%setup -q
+
+%build
+%{?suse_update_config}
+#autoreconf -fi
+CFLAGS="$RPM_OPT_FLAGS -D_GNU_SOURCE" \
+./configure --prefix=/usr --mandir=%{_mandir} --infodir=%{_infodir} \
+            --build=%{_target_cpu}-suse-linux
+#make stamp-h.in
+# Fixup timestamps. Can't rebuild them without working gforth
+#touch prim*.b
+#sleep 1
+#touch engine/*.i
+make
+emacs --batch --no-site-file -f batch-byte-compile gforth.el
+echo > gforth-autoloads.el
+emacs --batch -l autoload --eval "(setq generated-autoload-file \"$PWD/gforth-autoloads.el\")" -f batch-update-autoloads .
+{
+  printf ';;; suse-start-gforth.el
+;;
+;;; Code:\n
+(add-to-list '\''auto-mode-alist '\''("\\\\.fs\\\\'\''" . forth-mode))\n\n'
+  sed -n '/^;;; Generated/,/^;;;\*\*\*/p' gforth-autoloads.el
+  printf '\n;;; suse-start-gforth.el ends here\n'
+} > suse-start-gforth.el
+make install.TAGS gforth.fi
+
+%check
+make check
+
+%install
+make install prefix=$RPM_BUILD_ROOT/usr mandir=$RPM_BUILD_ROOT%{_mandir} \
+	     infodir=$RPM_BUILD_ROOT%{_infodir}
+install -d $RPM_BUILD_ROOT/usr/share/emacs/site-lisp
+install -m 644 gforth.el gforth.elc suse-start-gforth.el $RPM_BUILD_ROOT/usr/share/emacs/site-lisp
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%post
+%install_info --info-dir=%{_infodir} %{_infodir}/gforth.info.gz
+
+%postun
+%install_info_delete --info-dir=%{_infodir} %{_infodir}/gforth.info.gz
+
+%files
+%defattr(-,root,root)
+%doc README BUGS NEWS
+/usr/bin/*
+/usr/include/gforth
+/usr/lib/gforth
+/usr/share/emacs/site-lisp/*.el*
+/usr/share/gforth
+%dir /usr/share/gforth/site-forth
+%config /usr/share/gforth/site-forth/siteinit.fs
+%doc %{_infodir}/*.gz
+%if 0%{?suse_version}
+%else
+%doc %{_infodir}/dir
+%endif
+%doc %{_mandir}/man?/*
+
+%changelog
+* Thu Nov 06 2008 schwab@suse.de
+- Update to gforth 0.7.0.
+  Requirements:
+  At run-time requires libtool and gcc (for the libcc C interface) and
+  gdb (for the disassembler (SEE)) on some platforms.
+  Installation:
+  support for DESTDIR, POST_INSTALL, INSTALL_SCRIPT
+  automatic performance tuning on building (--enable-force-reg unnecessary)
+  report performance and functionality problems at end of "make"
+  autogen.sh now exists
+  License:
+  Changed to GPLv3
+  Bug fixes
+  Now works with address-space randomization.
+  The single-step debugger works again in some engines.
+  Many others.
+  Ports:
+  AMD64, ARM, IA-64 (Itanium): better performance
+  PPC, PPC64: disassembler and assembler
+  Gforth EC: R8C, 4stack, misc, 8086 work
+  MacOS X: better support
+  Invocation:
+  New flags --ignore-async-signals, --vm-commit (default overcommit)
+	      --print-sequences
+  Forth 200x:
+  X:extension-query: produce true for all implemented extensions
+  X:required REQUIRED etc. (not new)
+  X:defined: [DEFINED] and [UNDEFINED]
+  X:parse-name: PARSE-NAME (new name)
+  X:deferred: deferred words (new: DEFER@ DEFER! ACTION-OF)
+  X:structures: +FIELD FIELD: FFIELD: CFIELD: etc.
+  X:ekeys: new: EKEY>FKEY K-SHIFT-MASK K-CTRL-MASK K-ALT-MASK K-F1...K-F12
+  X:fp-stack (not new)
+  X:number-prefixes (partially new, see below)
+  Number prefixes:
+  0x is a hex prefix: 0xff and 0XfF now produces (decimal) 255
+  [#] is a decimal prefix: #10 now produces (decimal) 10
+  Signs after the number prefix are now accepted, e.g, #-50.
+  ' now only handles a single (x)char: 'ab is no longer accepted,
+  'a' now produces (decimal) 97
+  Unicode support (currently supports only uniform encoding):
+  added xchars words for dealing with variable-width multi-byte characters
+  provide 8bit (ISO Latin 1) and UTF-8 support for xchars
+  New words:
+  \C C-FUNCTION C-LIBRARY END-C-LIBRARY C-LIBRARY-NAME (libcc C interface)
+  LIB-ERROR (complements OPEN-LIB)
+  OUTFILE-EXECUTE INFILE-EXECUTE BASE-EXECUTE (limited change of global state)
+  16-bit and 32-bit memory acces: UW@ UL@ SW@ SL@ W! L! W@ L@ /W /L
+  NEXT-ARG SHIFT-ARGS (OS command-line argument processing)
+  NOTHROW (for backtrace control)
+  FTRUNC FMOD (undocumented)
+  SEE-CODE SEE-CODE-RANGE (show generated dynamic native code)
+  Improvements/changes of existing words:
+  S\", .\" now support \l, \m, \z, and limits hex and octal character specs.
+  OPEN-FILE with W/O no longer creates or truncates files (no compat. file)
+  OPEN-LIB now understands ~ at the start, like OPEN-FILE.
+  TRY...ENDTRY changed significantly, compatibility files available (see docs).
+  The disassembler (DISCODE) can now use gdb to disassemble code
+  Uninitialized defered words now give a warning when executed
+  Division is floored (disable with "configure --enable-force-cdiv")
+  Gforth (not gforth-fast) reports division by zero and overflow on division
+  on all platforms.
+  Newly documented words:
+  S>NUMBER? S>UNUMBER?
+  EKEY keypress names: K-LEFT  K-RIGHT K-UP K-DOWN K-HOME K-END K-PRIOR
+  K-NEXT K-INSERT K-DELETE
+  CLEARSTACKS
+  FORM
+  Environment variable GFORTHSYSTEMPREFIX (used by word SYSTEM and friends)
+  C interface:
+  exported symbols now start with "gforth_" (for referencing them from C code)
+  libcc C function call interface (requires libtool and gcc at run-time)
+  alternative: undocumented libffi-based interface
+  Libraries:
+  depth-changes.fs: report stack depth changes during interpretation
+  ans-report.fs now reports CfV extensions
+  fsl-util.4th: FSL support files (undocumented)
+  regexp.fs for regular expressions (undocumented)
+  complex.fs for complex numbers (undocumented)
+  fft.fs for Fast Fourier Transform (undocumented)
+  wf.fs, a Wiki implementation (undocumented)
+  httpd.fs, a web server (undocumented)
+  status.fs, show interpreter status in separate xterm (undocumented)
+  profile.fs for profiling (undocumented, incomplete)
+  endtry-iferror.fs, recover-endtry.fs to ease the TRY change transition
+  test/tester.fs: Now works with FP numbers (undocumented)
+  test/ttester.fs: Version of tester.fs with improved interface (T{...}T).
+  compat library:
+  compat/execute-parsing.fs
+  Speed improvements:
+  automatic performance tuning on building
+  static stack caching (good speedup on PPC)
+  mixed-precision division is now faster
+  support for int128 types on AMD64
+  workarounds for gcc performance bugs (in particular, PR 15242)
+  branch target alignment (good speedup on Alpha).
+* Wed Jul 09 2008 schwab@suse.de
+- Fix last change.
+* Sat Jul 05 2008 schwab@suse.de
+- Fix use of undocumented autoconf variable.
+* Thu Oct 11 2007 schwab@suse.de
+- Remove obsolete options.
+* Wed Jan 25 2006 mls@suse.de
+- converted neededforbuild to BuildRequires
+* Thu Jan 19 2006 schwab@suse.de
+- Don't strip binaries.
+* Tue Dec 20 2005 dmueller@suse.de
+- fix file list
+* Wed Jan 21 2004 schwab@suse.de
+- Workaround gcc 3.3 bug.
+* Fri Jan 09 2004 schwab@suse.de
+- Update to gforth 0.6.2.
+* Tue Oct 28 2003 schwab@suse.de
+- Fix quoting in configure script.
+* Wed Jul 02 2003 schwab@suse.de
+- Fix references to build root.
+* Tue May 13 2003 schwab@suse.de
+- Fix filelist.
+* Thu Apr 24 2003 ro@suse.de
+- fix install_info --delete call and move from preun to postun
+* Wed Apr 23 2003 schwab@suse.de
+- Enable use of long long on ppc.
+- Fix and compile gforth.el.
+- Add suse-start-gforth.el.
+- Include all gforth variants.
+* Tue Apr 22 2003 schwab@suse.de
+- Use BuildRoot.
+* Mon Apr 07 2003 schwab@suse.de
+- Only delete info entries when removing last version.
+* Thu Mar 27 2003 schwab@suse.de
+- Update to gforth 0.6.1.
+* Thu Feb 06 2003 schwab@suse.de
+- Use %%install_info.
+* Tue Sep 17 2002 ro@suse.de
+- removed bogus self-provides
+* Thu Apr 18 2002 schwab@suse.de
+- Fix alpha port for gcc3.
+* Thu Apr 18 2002 schwab@suse.de
+- Fix i386 port for gcc3.
+* Mon Feb 25 2002 schwab@suse.de
+- Fix permissions.
+* Tue May 08 2001 mfabian@suse.de
+- bzip2 sources
+* Sun Apr 15 2001 schwab@suse.de
+- Fix pointer <-> int clash.
+* Fri Oct 06 2000 schwab@suse.de
+- Update to version 0.5.0.
+* Thu Aug 17 2000 schwab@suse.de
+- Fix ia64 configuration.
+* Thu Aug 17 2000 schwab@suse.de
+- Basic support for ia64.
+* Tue Jan 18 2000 schwab@suse.de
+- /usr/{info,man} -> /usr/share/{info,man}
+* Mon Sep 13 1999 bs@suse.de
+- ran old prepare_spec on spec file to switch to new prepare_spec.
+* Mon Aug 30 1999 schwab@suse.de
+- specfile cleanup
+- fix prims2x.fs:read-whole-file for make check
+* Fri May 21 1999 ro@suse.de
+- update to 0.4.0
+* Sat Jun 07 1997 florian@suse.de
+- first version of GNU forth 0.3 for S.u.S.E.
diff --git libcc.fs libcc.fs
index 89a6288..2ceab19 100644
--- libcc.fs
+++ libcc.fs
@@ -556,14 +556,14 @@ DEFER compile-wrapper-function ( -- )
     lib-handle 0= if
 	c-source-file close-file throw
 	0 c-source-file-id !
-	[ libtool-command s"  --silent --mode=compile " s+
+	[ libtool-command s"  --silent --tag=CC --mode=compile " s+
 	  libtool-cc append s"  -I " append
 	  s" includedir" getenv append ] sliteral
 	s"  -O -c " s+ lib-filename 2@ append s" .c -o " append
 	lib-filename 2@ append s" .lo" append ( c-addr u )
 	\    2dup type cr
 	2dup system drop free throw $? abort" libtool compile failed"
-	[ libtool-command s"  --silent --mode=link " s+
+	[ libtool-command s"  --silent --tag=CC --mode=link " s+
 	  libtool-cc append libtool-flags append s"  -module -rpath " s+ ] sliteral
 	lib-filename 2@ dirname replace-rpath s+ s"  " append
 	lib-filename 2@ append s" .lo -o " append
diff --git prim prim
index 5fb77c6..9c0e77b 100644
--- prim
+++ prim
@@ -1950,7 +1950,7 @@ wior = IOR(mkdir(tilde_cstr(c_addr,u,1),wmode));
 
 newline	( -- c_addr u )	gforth
 ""String containing the newline sequence of the host OS""
-char newline[] = {
+static const char newline[] = {
 #if DIRSEP=='/'
 /* Unix */
 '\n'
diff --git prims2x.fs prims2x.fs
index 1afa45f..baeeaf2 100644
--- prims2x.fs
+++ prims2x.fs
@@ -1,6 +1,6 @@
 \ converts primitives to, e.g., C code 
 
-\ Copyright (C) 1995,1996,1997,1998,2000,2003,2004,2005,2006,2007 Free Software Foundation, Inc.
+\ Copyright (C) 1995,1996,1997,1998,2000,2003,2004,2005,2006,2007,2009,2010,2011 Free Software Foundation, Inc.
 
 \ This file is part of Gforth.
 
@@ -645,14 +645,19 @@ does> ( item -- )
  prim prim-effect-in prim prim-effect-in-end @ declaration-list
  prim prim-effect-out prim prim-effect-out-end @ declaration-list ;
 
+Variable maybe-unused
+
 : print-declaration { item -- }
     item item-first @ if
+	maybe-unused @ IF  ." MAYBE_UNUSED "  THEN
 	item item-type @ type-c-name 2@ type space
 	item item-name 2@ type ." ;" cr
     endif ;
 
 : print-declarations ( -- )
+    maybe-unused on
     prim prim-effect-in  prim prim-effect-in-end  @ ['] print-declaration map-items
+    maybe-unused off
     prim prim-effect-out prim prim-effect-out-end @ ['] print-declaration map-items ;
     
 : stack-prefix ( stack "prefix" -- )
@@ -921,11 +926,14 @@ stack inst-stream IP Cell
 : stack-pointer-update { stack -- }
     \ and moves
     \ stacks grow downwards
+\    ." /* stack pointer update " stack stack-pointer 2@ type ."  */" cr
     stack stack-prim-stacks-sync @ if
+\	." /* synced "  stack stack-in ? stack stack-out ? stack state-in  stack-offset . ." */" cr
 	stack stack-in @
 	stack state-in  stack-offset -
 	stack swap update-stack-pointer
     else
+\	." /* unsynced "  stack stack-in ? stack stack-out ? ." */" cr
 	stack stack-diff ( in-out )
 	stack state-in  stack-offset -
 	stack state-out stack-offset + ( [in-in_offset]-[out-out_offset] )
@@ -937,6 +945,7 @@ stack inst-stream IP Cell
     ['] stack-pointer-update map-stacks ;
 
 : stack-pointer-update2 { stack -- }
+\    ." /* stack pointer update2 " stack stack-pointer 2@ type ."  */" cr
     stack stack-prim-stacks-sync @ if
 	stack state-out stack-offset
 	stack stack-out @ -
@@ -1053,6 +1062,7 @@ variable tail-nextp2 \ xt to execute for printing NEXT_P2 in INST_TAIL
     tail-nextp2 @ output-c-tail1-no-stores ;
 
 : output-c-tail2-no-stores ( -- )
+    prim prim-c-code 2@ s" VM_JUMP(" search nip nip abort" Currently VM_JUMP is not supported in static superinstructions"
     ['] output-label2 output-c-tail1-no-stores ;
 
 : type-c-code ( c-addr u xt -- )
@@ -1348,6 +1358,7 @@ is output-c-prim-num
 \  NEXT_P2;
 
 : init-combined ( -- )
+    ['] clear-prim-stacks-sync map-stacks
     prim to combined
     0 num-combined !
     current-depth max-stacks cells erase
@@ -1555,8 +1566,8 @@ variable reprocessed-num 0 reprocessed-num !
     stores ;
 
 : output-combined-tail ( -- )
-    part-output-c-tail
     in-part @ >r in-part off
+    part-output-c-tail
     combined ['] output-c-tail-no-stores prim-context
     r> in-part ! ;
 
