Date: Tuesday, February 7, 2017 @ 09:39:58 Author: arojas Revision: 210724
Use upstream tarball Modified: libgap/trunk/PKGBUILD Deleted: libgap/trunk/libgap-4.8.6.patch --------------------+ PKGBUILD | 20 libgap-4.8.6.patch | 1861 --------------------------------------------------- 2 files changed, 9 insertions(+), 1872 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2017-02-07 09:15:26 UTC (rev 210723) +++ PKGBUILD 2017-02-07 09:39:58 UTC (rev 210724) @@ -4,7 +4,7 @@ pkgname=libgap pkgver=4.8.6 -pkgrel=1 +pkgrel=2 pkgdesc="A C library version of the GAP kernel" arch=(i686 x86_64) url="https://bitbucket.org/vbraun/libgap" @@ -12,20 +12,18 @@ depends=(gap) makedepends=(git python2-ply) #source=("https://bitbucket.org/vbraun/$pkgname/downloads/$pkgname-$pkgver.tar.gz") -source=("git+https://bitbucket.org/vbraun/libgap/src#commit=6f4bb7e" - libgap-4.8.6.patch) -md5sums=('SKIP' - '11c0a2657c77af80ae41b38c2bb0ba50') +source=(http://mirrors.mit.edu/sage/spkg/upstream/libgap/libgap-$pkgver.tar.gz) +md5sums=('dd5e20228a136a5fa8e86ad3f4bcf81a') prepare() { - cd src - patch -p1 -i ../libgap-4.8.6.patch - python2 scripts/libGAPify.py --modify src - autoreconf -vi + cd $pkgname-$pkgver +# patch -p1 -i ../libgap-4.8.6.patch +# python2 scripts/libGAPify.py --modify src +# autoreconf -vi } build() { - cd src + cd $pkgname-$pkgver ./configure --prefix=/usr make @@ -32,6 +30,6 @@ } package() { - cd src + cd $pkgname-$pkgver make install DESTDIR="$pkgdir" } Deleted: libgap-4.8.6.patch =================================================================== --- libgap-4.8.6.patch 2017-02-07 09:15:26 UTC (rev 210723) +++ libgap-4.8.6.patch 2017-02-07 09:39:58 UTC (rev 210724) @@ -1,1861 +0,0 @@ -From 55035e11db706d4dea0c8834d3059c33f77c1d42 Mon Sep 17 00:00:00 2001 -From: Lukas Fleischer <[email protected]> -Date: Fri, 25 Nov 2016 13:59:22 +0100 -Subject: [PATCH] Update to 4.8.6 - ---- - Makefile.in | 19 +- - aclocal.m4 | 1 + - config.guess | 6 +- - config.sub | 10 +- - configure | 123 ++++++++- - configure.ac | 2 +- - m4/libtool.m4 | 5 +- - patches/gap-4.8.6.patch | 684 ++++++++++++++++++++++++++++++++++++++++++++++++ - src/Makefile.in | 18 +- - src/bool.c | 2 +- - src/code.c | 40 ++- - src/gap.c | 1 + - src/intfuncs.c | 33 --- - src/listfunc.c | 7 +- - src/pperm.c | 4 +- - src/profile.c | 75 +++++- - src/profile.h | 3 +- - src/read.c | 10 +- - src/streams.c | 74 ++---- - src/sysfiles.c | 93 ++++++- - src/sysfiles.h | 15 +- - src/system.c | 4 +- - src/trans.c | 4 +- - test/Makefile.in | 9 +- - 24 files changed, 1076 insertions(+), 166 deletions(-) - create mode 100644 patches/gap-4.8.6.patch - -diff --git a/Makefile.in b/Makefile.in -index 44732ab..c5f0384 100644 ---- a/Makefile.in -+++ b/Makefile.in -@@ -97,10 +97,10 @@ host_triplet = @host@ - target_triplet = @target@ - subdir = . - ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 --am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ -- $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ -- $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ -- $(top_srcdir)/configure.ac -+am__aclocal_m4_deps = $(top_srcdir)/m4/ld-version-script.m4 \ -+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ -+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ -+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac - am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) - DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \ -@@ -169,7 +169,7 @@ CSCOPE = cscope - DIST_SUBDIRS = $(SUBDIRS) - am__DIST_COMMON = $(srcdir)/Makefile.in AUTHORS COPYING ChangeLog \ - INSTALL NEWS README TODO compile config.guess config.sub \ -- install-sh ltmain.sh missing -+ depcomp install-sh ltmain.sh missing - DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) - distdir = $(PACKAGE)-$(VERSION) - top_distdir = $(distdir) -@@ -250,6 +250,7 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ - INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ - LD = @LD@ - LDFLAGS = @LDFLAGS@ -+LIBGAP_LT_VERSION = @LIBGAP_LT_VERSION@ - LIBOBJS = @LIBOBJS@ - LIBS = @LIBS@ - LIBTOOL = @LIBTOOL@ -@@ -558,7 +559,7 @@ distdir: $(DISTFILES) - ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ - || chmod -R a+r "$(distdir)" - dist-gzip: distdir -- tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz -+ tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz - $(am__post_remove_distdir) - - dist-bzip2: distdir -@@ -584,7 +585,7 @@ dist-shar: distdir - @echo WARNING: "Support for shar distribution archives is" \ - "deprecated." >&2 - @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 -- shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz -+ shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz - $(am__post_remove_distdir) - - dist-zip: distdir -@@ -602,7 +603,7 @@ dist dist-all: - distcheck: dist - case '$(DIST_ARCHIVES)' in \ - *.tar.gz*) \ -- GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ -+ eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\ - *.tar.bz2*) \ - bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ - *.tar.lz*) \ -@@ -612,7 +613,7 @@ distcheck: dist - *.tar.Z*) \ - uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ - *.shar.gz*) \ -- GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ -+ eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\ - *.zip*) \ - unzip $(distdir).zip ;;\ - esac -diff --git a/aclocal.m4 b/aclocal.m4 -index e62b4ad..b839773 100644 ---- a/aclocal.m4 -+++ b/aclocal.m4 -@@ -1170,6 +1170,7 @@ AC_SUBST([am__tar]) - AC_SUBST([am__untar]) - ]) # _AM_PROG_TAR - -+m4_include([m4/ld-version-script.m4]) - m4_include([m4/libtool.m4]) - m4_include([m4/ltoptions.m4]) - m4_include([m4/ltsugar.m4]) -diff --git a/config.guess b/config.guess -index dbfb978..6c32c86 100755 ---- a/config.guess -+++ b/config.guess -@@ -1,8 +1,8 @@ - #! /bin/sh - # Attempt to guess a canonical system name. --# Copyright 1992-2015 Free Software Foundation, Inc. -+# Copyright 1992-2014 Free Software Foundation, Inc. - --timestamp='2015-01-01' -+timestamp='2014-11-04' - - # This file is free software; you can redistribute it and/or modify it - # under the terms of the GNU General Public License as published by -@@ -50,7 +50,7 @@ version="\ - GNU config.guess ($timestamp) - - Originally written by Per Bothner. --Copyright 1992-2015 Free Software Foundation, Inc. -+Copyright 1992-2014 Free Software Foundation, Inc. - - This is free software; see the source for copying conditions. There is NO - warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." -diff --git a/config.sub b/config.sub -index 6467c95..7ffe373 100755 ---- a/config.sub -+++ b/config.sub -@@ -1,8 +1,8 @@ - #! /bin/sh - # Configuration validation subroutine script. --# Copyright 1992-2015 Free Software Foundation, Inc. -+# Copyright 1992-2014 Free Software Foundation, Inc. - --timestamp='2015-01-01' -+timestamp='2014-12-03' - - # This file is free software; you can redistribute it and/or modify it - # under the terms of the GNU General Public License as published by -@@ -68,7 +68,7 @@ Report bugs and patches to <[email protected]>." - version="\ - GNU config.sub ($timestamp) - --Copyright 1992-2015 Free Software Foundation, Inc. -+Copyright 1992-2014 Free Software Foundation, Inc. - - This is free software; see the source for copying conditions. There is NO - warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." -@@ -260,7 +260,7 @@ case $basic_machine in - | c4x | c8051 | clipper \ - | d10v | d30v | dlx | dsp16xx \ - | epiphany \ -- | fido | fr30 | frv | ft32 \ -+ | fido | fr30 | frv \ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ - | hexagon \ - | i370 | i860 | i960 | ia64 \ -@@ -1025,7 +1025,7 @@ case $basic_machine in - ;; - ppc64) basic_machine=powerpc64-unknown - ;; -- ppc64-* | ppc64p7-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppc64le | powerpc64little | ppc64-le | powerpc64-little) - basic_machine=powerpc64le-unknown -diff --git a/configure b/configure -index e3c0c61..b9f24ba 100755 ---- a/configure -+++ b/configure -@@ -1,6 +1,6 @@ - #! /bin/sh - # Guess values for system-dependent variables and create Makefiles. --# Generated by GNU Autoconf 2.69 for libGAP 4.8.3. -+# Generated by GNU Autoconf 2.69 for libGAP 4.8.6. - # - # Report bugs to <[email protected]>. - # -@@ -590,8 +590,8 @@ MAKEFLAGS= - # Identity of this package. - PACKAGE_NAME='libGAP' - PACKAGE_TARNAME='libgap' --PACKAGE_VERSION='4.8.3' --PACKAGE_STRING='libGAP 4.8.3' -+PACKAGE_VERSION='4.8.6' -+PACKAGE_STRING='libGAP 4.8.6' - PACKAGE_BUGREPORT='[email protected]' - PACKAGE_URL='' - -@@ -635,6 +635,9 @@ ac_includes_default="\ - ac_subst_vars='am__EXEEXT_FALSE - am__EXEEXT_TRUE - LTLIBOBJS -+HAVE_LD_VERSION_SCRIPT_FALSE -+HAVE_LD_VERSION_SCRIPT_TRUE -+LIBGAP_LT_VERSION - NEED_ITANIUMOBJ_FALSE - NEED_ITANIUMOBJ_TRUE - LIBOBJS -@@ -779,6 +782,7 @@ with_aix_soname - with_gnu_ld - with_sysroot - enable_libtool_lock -+enable_ld_version_script - ' - ac_precious_vars='build_alias - host_alias -@@ -1332,7 +1336,7 @@ if test "$ac_init_help" = "long"; then - # Omit some internal or obsolete options to make the list less imposing. - # This message is too long to be a string in the A/UX 3.1 sh. - cat <<_ACEOF --\`configure' configures libGAP 4.8.3 to adapt to many kinds of systems. -+\`configure' configures libGAP 4.8.6 to adapt to many kinds of systems. - - Usage: $0 [OPTION]... [VAR=VALUE]... - -@@ -1403,7 +1407,7 @@ fi - - if test -n "$ac_init_help"; then - case $ac_init_help in -- short | recursive ) echo "Configuration of libGAP 4.8.3:";; -+ short | recursive ) echo "Configuration of libGAP 4.8.6:";; - esac - cat <<\_ACEOF - -@@ -1422,6 +1426,9 @@ Optional Features: - --enable-fast-install[=PKGS] - optimize for fast installation [default=yes] - --disable-libtool-lock avoid locking (might break parallel builds) -+ --enable-ld-version-script -+ enable linker version script (default is enabled -+ when possible) - - Optional Packages: - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] -@@ -1520,7 +1527,7 @@ fi - test -n "$ac_init_help" && exit $ac_status - if $ac_init_version; then - cat <<\_ACEOF --libGAP configure 4.8.3 -+libGAP configure 4.8.6 - generated by GNU Autoconf 2.69 - - Copyright (C) 2012 Free Software Foundation, Inc. -@@ -2183,7 +2190,7 @@ cat >config.log <<_ACEOF - This file contains any messages produced by compilers while - running configure, to aid debugging if configure makes a mistake. - --It was created by libGAP $as_me 4.8.3, which was -+It was created by libGAP $as_me 4.8.6, which was - generated by GNU Autoconf 2.69. Invocation command line was - - $ $0 $@ -@@ -3157,7 +3164,7 @@ fi - - # Define the identity of the package. - PACKAGE='libgap' -- VERSION='4.8.3' -+ VERSION='4.8.6' - - - cat >>confdefs.h <<_ACEOF -@@ -11936,9 +11943,6 @@ fi - # before this can be enabled. - hardcode_into_libs=yes - -- # Add ABI-specific directories to the system library path. -- sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" -- - # Ideally, we could use ldconfig to report *all* directores which are - # searched for libraries, however this is still not possible. Aside from not - # being certain /sbin/ldconfig is available, command -@@ -11947,7 +11951,7 @@ fi - # appending ld.so.conf contents (and includes) to the search path. - if test -f /etc/ld.so.conf; then - lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` -- sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra" -+ sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" - fi - - # We used to test for /lib/ld.so.1 and disable shared libraries on -@@ -14448,6 +14452,93 @@ $as_echo "#define SYS_IS_CYGWIN32 0" >>confdefs.h - - fi - -+LIBGAP_RELEASE_MAJOR=${PACKAGE_VERSION%.*} -+LIBGAP_VERSION_MAJOR=${PACKAGE_VERSION%%.*} -+LIBGAP_VERSION_MINOR=${LIBGAP_RELEASE_MAJOR#*.} -+LIBGAP_VERSION_MICRO=${PACKAGE_VERSION##*.} -+LIBGAP_VERSION_MICRO=${LIBGAP_VERSION_MICRO%-*} -+LIBGAP_LT_VERSION="$(expr ${LIBGAP_VERSION_MAJOR} + ${LIBGAP_VERSION_MINOR}):${LIBGAP_VERSION_MICRO}:${LIBGAP_VERSION_MINOR}" -+ -+ -+ -+# Checks for linker script support: -+ -+ # Check whether --enable-ld-version-script was given. -+if test "${enable_ld_version_script+set}" = set; then : -+ enableval=$enable_ld_version_script; have_ld_version_script=$enableval -+fi -+ -+ if test -z "$have_ld_version_script"; then -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if LD -Wl,--version-script works" >&5 -+$as_echo_n "checking if LD -Wl,--version-script works... " >&6; } -+ save_LDFLAGS="$LDFLAGS" -+ LDFLAGS="$LDFLAGS -Wl,--version-script=conftest.map" -+ cat > conftest.map <<EOF -+foo -+EOF -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ -+ -+int -+main () -+{ -+ -+ ; -+ return 0; -+} -+_ACEOF -+if ac_fn_c_try_link "$LINENO"; then : -+ accepts_syntax_errors=yes -+else -+ accepts_syntax_errors=no -+fi -+rm -f core conftest.err conftest.$ac_objext \ -+ conftest$ac_exeext conftest.$ac_ext -+ if test "$accepts_syntax_errors" = no; then -+ cat > conftest.map <<EOF -+VERS_1 { -+ global: sym; -+}; -+ -+VERS_2 { -+ global: sym; -+} VERS_1; -+EOF -+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext -+/* end confdefs.h. */ -+ -+int -+main () -+{ -+ -+ ; -+ return 0; -+} -+_ACEOF -+if ac_fn_c_try_link "$LINENO"; then : -+ have_ld_version_script=yes -+else -+ have_ld_version_script=no -+fi -+rm -f core conftest.err conftest.$ac_objext \ -+ conftest$ac_exeext conftest.$ac_ext -+ else -+ have_ld_version_script=no -+ fi -+ rm -f conftest.map -+ LDFLAGS="$save_LDFLAGS" -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_ld_version_script" >&5 -+$as_echo "$have_ld_version_script" >&6; } -+ fi -+ if test "$have_ld_version_script" = "yes"; then -+ HAVE_LD_VERSION_SCRIPT_TRUE= -+ HAVE_LD_VERSION_SCRIPT_FALSE='#' -+else -+ HAVE_LD_VERSION_SCRIPT_TRUE='#' -+ HAVE_LD_VERSION_SCRIPT_FALSE= -+fi -+ -+ - - #OUTPUT - cat >confcache <<\_ACEOF -@@ -14592,6 +14683,10 @@ if test -z "${NEED_ITANIUMOBJ_TRUE}" && test -z "${NEED_ITANIUMOBJ_FALSE}"; then - as_fn_error $? "conditional \"NEED_ITANIUMOBJ\" was never defined. - Usually this means the macro was only invoked conditionally." "$LINENO" 5 - fi -+if test -z "${HAVE_LD_VERSION_SCRIPT_TRUE}" && test -z "${HAVE_LD_VERSION_SCRIPT_FALSE}"; then -+ as_fn_error $? "conditional \"HAVE_LD_VERSION_SCRIPT\" was never defined. -+Usually this means the macro was only invoked conditionally." "$LINENO" 5 -+fi - - : "${CONFIG_STATUS=./config.status}" - ac_write_fail=0 -@@ -14989,7 +15084,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - # report actual input values of CONFIG_FILES etc. instead of their - # values after options handling. - ac_log=" --This file was extended by libGAP $as_me 4.8.3, which was -+This file was extended by libGAP $as_me 4.8.6, which was - generated by GNU Autoconf 2.69. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES -@@ -15055,7 +15150,7 @@ _ACEOF - cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" - ac_cs_version="\\ --libGAP config.status 4.8.3 -+libGAP config.status 4.8.6 - configured by $0, generated by GNU Autoconf 2.69, - with options \\"\$ac_cs_config\\" - -diff --git a/configure.ac b/configure.ac -index 695caee..7355821 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1,7 +1,7 @@ - AC_PREREQ([2.66]) - - # Note: the version number must match the GAP version number --AC_INIT([libGAP], [4.8.3], [[email protected]]) -+AC_INIT([libGAP], [4.8.6], [[email protected]]) - - AC_CANONICAL_TARGET - AM_INIT_AUTOMAKE -diff --git a/m4/libtool.m4 b/m4/libtool.m4 -index a644432..a3bc337 100644 ---- a/m4/libtool.m4 -+++ b/m4/libtool.m4 -@@ -2867,9 +2867,6 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) - # before this can be enabled. - hardcode_into_libs=yes - -- # Add ABI-specific directories to the system library path. -- sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib" -- - # Ideally, we could use ldconfig to report *all* directores which are - # searched for libraries, however this is still not possible. Aside from not - # being certain /sbin/ldconfig is available, command -@@ -2878,7 +2875,7 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) - # appending ld.so.conf contents (and includes) to the search path. - if test -f /etc/ld.so.conf; then - lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` -- sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra" -+ sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" - fi - - # We used to test for /lib/ld.so.1 and disable shared libraries on -diff --git a/patches/gap-4.8.6.patch b/patches/gap-4.8.6.patch -new file mode 100644 -index 0000000..71b4ee5 ---- /dev/null -+++ b/patches/gap-4.8.6.patch -@@ -0,0 +1,684 @@ -+diff -urd upstream-gap-4.8.6/src/c_filt1.c src/c_filt1.c -+--- upstream-gap-4.8.6/src/c_filt1.c 2016-11-12 15:42:10.000000000 +0100 -++++ src/c_filt1.c 2016-11-25 13:39:28.975513235 +0100 -+@@ -1,6 +1,6 @@ -+ #ifndef AVOID_PRECOMPILED -+ /* C file produced by GAC */ -+-#include "src/compiled.h" -++#include "compiled.h" -+ -+ /* global variables used in handlers */ -+ static GVar G_IS__FUNCTION; -+diff -urd upstream-gap-4.8.6/src/c_meths1.c src/c_meths1.c -+--- upstream-gap-4.8.6/src/c_meths1.c 2016-11-12 15:42:10.000000000 +0100 -++++ src/c_meths1.c 2016-11-25 13:39:28.982179816 +0100 -+@@ -1,6 +1,6 @@ -+ #ifndef AVOID_PRECOMPILED -+ /* C file produced by GAC */ -+-#include "src/compiled.h" -++#include "compiled.h" -+ -+ /* global variables used in handlers */ -+ static GVar G_METHOD__0ARGS; -+Only in src: config.h -+Only in src: config.h.in -+Only in src: config.h.in~ -+diff -urd upstream-gap-4.8.6/src/c_oper1.c src/c_oper1.c -+--- upstream-gap-4.8.6/src/c_oper1.c 2016-11-12 15:42:10.000000000 +0100 -++++ src/c_oper1.c 2016-11-25 13:39:28.982179816 +0100 -+@@ -1,6 +1,6 @@ -+ #ifndef AVOID_PRECOMPILED -+ /* C file produced by GAC */ -+-#include "src/compiled.h" -++#include "compiled.h" -+ -+ /* global variables used in handlers */ -+ static GVar G_REREADING; -+diff -urd upstream-gap-4.8.6/src/c_random.c src/c_random.c -+--- upstream-gap-4.8.6/src/c_random.c 2016-11-12 15:42:10.000000000 +0100 -++++ src/c_random.c 2016-11-25 13:39:28.985513106 +0100 -+@@ -1,6 +1,6 @@ -+ #ifndef AVOID_PRECOMPILED -+ /* C file produced by GAC */ -+-#include "src/compiled.h" -++#include "compiled.h" -+ -+ /* global variables used in handlers */ -+ static GVar G_QUO__INT; -+diff -urd upstream-gap-4.8.6/src/c_type1.c src/c_type1.c -+--- upstream-gap-4.8.6/src/c_type1.c 2016-11-12 15:42:10.000000000 +0100 -++++ src/c_type1.c 2016-11-25 13:39:28.985513106 +0100 -+@@ -1,6 +1,6 @@ -+ #ifndef AVOID_PRECOMPILED -+ /* C file produced by GAC */ -+-#include "src/compiled.h" -++#include "compiled.h" -+ -+ /* global variables used in handlers */ -+ static GVar G_NAME__FUNC; -+Only in src: .deps -+diff -urd upstream-gap-4.8.6/src/gap.c src/gap.c -+--- upstream-gap-4.8.6/src/gap.c 2016-11-12 15:42:10.000000000 +0100 -++++ src/gap.c 2016-11-25 13:39:29.105511560 +0100 -+@@ -212,14 +212,14 @@ -+ #endif -+ -+ static StructImportedGVars ImportedGVars[MAX_IMPORTED_GVARS]; -+-static Int NrImportedGVars; -++Int NrImportedGVars; -+ -+ static StructImportedGVars ImportedFuncs[MAX_IMPORTED_GVARS]; -+-static Int NrImportedFuncs; -++Int NrImportedFuncs; -+ -+ char *original_argv0; -+ static char **sysargv; -+-static char **sysenviron; -++char **sysenviron; -+ -+ Obj ShellContext = 0; -+ Obj BaseShellContext = 0; -+@@ -730,11 +730,7 @@ -+ } -+ #endif -+ -+-#ifdef COMPILECYGWINDLL -+-#define main realmain -+-#endif -+- -+-int main ( -++int gap_main_loop ( -+ int argc, -+ char * argv [], -+ char * environ [] ) -+@@ -1311,6 +1307,7 @@ -+ -+ Obj FuncJUMP_TO_CATCH( Obj self, Obj payload) -+ { -++ libgap_call_error_handler(); -+ TLS(ThrownObject) = payload; -+ syLongjmp(TLS(ReadJmpError), 1); -+ return 0; -+Only in src: gap_version.h -+diff -urd upstream-gap-4.8.6/src/gasman.c src/gasman.c -+--- upstream-gap-4.8.6/src/gasman.c 2016-11-12 15:42:10.000000000 +0100 -++++ src/gasman.c 2016-11-25 13:39:29.108844850 +0100 -+@@ -137,6 +137,7 @@ -+ -+ #include "objects.h" /* objects */ -+ #include "scanner.h" /* scanner */ -++#include "libgap_internal.h" /* gasman callback */ -+ -+ #include "code.h" /* coder */ -+ #include "thread.h" /* threads */ -+@@ -2210,6 +2211,9 @@ -+ /* prepare the list of marked bags for the future */ -+ MarkedBags = 0; -+ -++ /* call the libgap callback so library users can mark their own bags */ -++ libgap_call_gasman_callback(); -++ -+ /* mark from the static area */ -+ for ( i = 0; i < GlobalBags.nr; i++ ) -+ MARK_BAG( *GlobalBags.addr[i] ); -+diff -urd upstream-gap-4.8.6/src/iostream.c src/iostream.c -+--- upstream-gap-4.8.6/src/iostream.c 2016-11-12 15:42:10.000000000 +0100 -++++ src/iostream.c 2016-11-25 13:39:29.108844850 +0100 -+@@ -48,6 +48,8 @@ -+ #include "thread.h" /* threads */ -+ #include "tls.h" /* thread-local storage */ -+ -++#include "libgap_internal.h" /* GAP shared library */ -++ -+ #include <stdio.h> /* standard input/output functions */ -+ #include <stdlib.h> -+ #include <string.h> -+@@ -886,8 +888,9 @@ -+ InitHdlrFuncsFromTable( GVarFuncs ); -+ -+ /* Set up the trap to detect future dying children */ -++#ifdef LIBGAP_SIGNALS -+ signal( SIGCHLD, ChildStatusChanged ); -+- -++#endif -+ return 0; -+ } -+ -+Only in src: libgap.c -+Only in src: libgap.h -+Only in src: libgap_internal.h -+Only in src: libgap.la -+Only in src: libgap_la-ariths.lo -+Only in src: libgap_la-ariths.o -+Only in src: libgap_la-blister.lo -+Only in src: libgap_la-blister.o -+Only in src: libgap_la-bool.lo -+Only in src: libgap_la-bool.o -+Only in src: libgap_la-calls.lo -+Only in src: libgap_la-calls.o -+Only in src: libgap_la-c_filt1.lo -+Only in src: libgap_la-c_filt1.o -+Only in src: libgap_la-c_meths1.lo -+Only in src: libgap_la-c_meths1.o -+Only in src: libgap_la-code.lo -+Only in src: libgap_la-code.o -+Only in src: libgap_la-compiler.lo -+Only in src: libgap_la-compiler.o -+Only in src: libgap_la-compstat.lo -+Only in src: libgap_la-compstat.o -+Only in src: libgap_la-c_oper1.lo -+Only in src: libgap_la-c_oper1.o -+Only in src: libgap_la-costab.lo -+Only in src: libgap_la-costab.o -+Only in src: libgap_la-c_random.lo -+Only in src: libgap_la-c_random.o -+Only in src: libgap_la-c_type1.lo -+Only in src: libgap_la-c_type1.o -+Only in src: libgap_la-cyclotom.lo -+Only in src: libgap_la-cyclotom.o -+Only in src: libgap_la-dteval.lo -+Only in src: libgap_la-dteval.o -+Only in src: libgap_la-dt.lo -+Only in src: libgap_la-dt.o -+Only in src: libgap_la-exprs.lo -+Only in src: libgap_la-exprs.o -+Only in src: libgap_la-finfield.lo -+Only in src: libgap_la-finfield.o -+Only in src: libgap_la-funcs.lo -+Only in src: libgap_la-funcs.o -+Only in src: libgap_la-gap.lo -+Only in src: libgap_la-gap.o -+Only in src: libgap_la-gasman.lo -+Only in src: libgap_la-gasman.o -+Only in src: libgap_la-gmpints.lo -+Only in src: libgap_la-gmpints.o -+Only in src: libgap_la-gvars.lo -+Only in src: libgap_la-gvars.o -+Only in src: libgap_la-integer.lo -+Only in src: libgap_la-integer.o -+Only in src: libgap_la-intfuncs.lo -+Only in src: libgap_la-intfuncs.o -+Only in src: libgap_la-intrprtr.lo -+Only in src: libgap_la-intrprtr.o -+Only in src: libgap_la-iostream.lo -+Only in src: libgap_la-iostream.o -+Only in src: libgap_la-libgap.lo -+Only in src: libgap_la-libgap.o -+Only in src: libgap_la-listfunc.lo -+Only in src: libgap_la-listfunc.o -+Only in src: libgap_la-listoper.lo -+Only in src: libgap_la-listoper.o -+Only in src: libgap_la-lists.lo -+Only in src: libgap_la-lists.o -+Only in src: libgap_la-macfloat.lo -+Only in src: libgap_la-macfloat.o -+Only in src: libgap_la-objccoll.lo -+Only in src: libgap_la-objccoll.o -+Only in src: libgap_la-objcftl.lo -+Only in src: libgap_la-objcftl.o -+Only in src: libgap_la-objects.lo -+Only in src: libgap_la-objects.o -+Only in src: libgap_la-objfgelm.lo -+Only in src: libgap_la-objfgelm.o -+Only in src: libgap_la-objpcgel.lo -+Only in src: libgap_la-objpcgel.o -+Only in src: libgap_la-objscoll.lo -+Only in src: libgap_la-objscoll.o -+Only in src: libgap_la-opers.lo -+Only in src: libgap_la-opers.o -+Only in src: libgap_la-permutat.lo -+Only in src: libgap_la-permutat.o -+Only in src: libgap_la-plist.lo -+Only in src: libgap_la-plist.o -+Only in src: libgap_la-pperm.lo -+Only in src: libgap_la-pperm.o -+Only in src: libgap_la-precord.lo -+Only in src: libgap_la-precord.o -+Only in src: libgap_la-profile.lo -+Only in src: libgap_la-profile.o -+Only in src: libgap_la-range.lo -+Only in src: libgap_la-range.o -+Only in src: libgap_la-rational.lo -+Only in src: libgap_la-rational.o -+Only in src: libgap_la-read.lo -+Only in src: libgap_la-read.o -+Only in src: libgap_la-records.lo -+Only in src: libgap_la-records.o -+Only in src: libgap_la-saveload.lo -+Only in src: libgap_la-saveload.o -+Only in src: libgap_la-scanner.lo -+Only in src: libgap_la-scanner.o -+Only in src: libgap_la-sctable.lo -+Only in src: libgap_la-sctable.o -+Only in src: libgap_la-set.lo -+Only in src: libgap_la-set.o -+Only in src: libgap_la-stats.lo -+Only in src: libgap_la-stats.o -+Only in src: libgap_la-streams.lo -+Only in src: libgap_la-streams.o -+Only in src: libgap_la-string.lo -+Only in src: libgap_la-string.o -+Only in src: libgap_la-sysfiles.lo -+Only in src: libgap_la-sysfiles.o -+Only in src: libgap_la-system.lo -+Only in src: libgap_la-system.o -+Only in src: libgap_la-tietze.lo -+Only in src: libgap_la-tietze.o -+Only in src: libgap_la-trans.lo -+Only in src: libgap_la-trans.o -+Only in src: libgap_la-vars.lo -+Only in src: libgap_la-vars.o -+Only in src: libgap_la-vec8bit.lo -+Only in src: libgap_la-vec8bit.o -+Only in src: libgap_la-vecffe.lo -+Only in src: libgap_la-vecffe.o -+Only in src: libgap_la-vecgf2.lo -+Only in src: libgap_la-vecgf2.o -+Only in src: libgap_la-vector.lo -+Only in src: libgap_la-vector.o -+Only in src: libgap_la-weakptr.lo -+Only in src: libgap_la-weakptr.o -+Only in src: libgap.map -+Only in src: .libs -+diff -urd upstream-gap-4.8.6/src/lists.c src/lists.c -+--- upstream-gap-4.8.6/src/lists.c 2016-11-12 15:42:10.000000000 +0100 -++++ src/lists.c 2016-11-25 13:39:29.108844850 +0100 -+@@ -1976,7 +1976,7 @@ -+ } -+ if ( LEN_LIST( poss ) != LEN_LIST( obj ) ) { -+ obj = ErrorReturnObj( -+- "List Assigments: <objs> must have the same length as <positions> (%d)", -++ "List Assignments: <objs> must have the same length as <positions> (%d)", -+ LEN_LIST( poss ), 0L, -+ "you can replace <objs> via 'return <objs>;'" ); -+ } -+Only in src: Makefile -+Only in src: Makefile.am -+Only in src: Makefile.in -+diff -urd upstream-gap-4.8.6/src/objscoll.c src/objscoll.c -+--- upstream-gap-4.8.6/src/objscoll.c 2016-11-12 15:42:10.000000000 +0100 -++++ src/objscoll.c 2016-11-25 13:39:29.112178140 +0100 -+@@ -103,7 +103,7 @@ -+ #define SingleCollectWord C8Bits_SingleCollectWord -+ #define Solution C8Bits_Solution -+ #define UIntN UInt1 -+-#include "src/objscoll-impl.h" -++#include "objscoll-impl.h" -+ -+ /**************************************************************************** -+ ** -+@@ -125,7 +125,7 @@ -+ #define SingleCollectWord C16Bits_SingleCollectWord -+ #define Solution C16Bits_Solution -+ #define UIntN UInt2 -+-#include "src/objscoll-impl.h" -++#include "objscoll-impl.h" -+ -+ /**************************************************************************** -+ ** -+@@ -147,7 +147,7 @@ -+ #define SingleCollectWord C32Bits_SingleCollectWord -+ #define Solution C32Bits_Solution -+ #define UIntN UInt4 -+-#include "src/objscoll-impl.h" -++#include "objscoll-impl.h" -+ -+ /**************************************************************************** -+ ** -+diff -urd upstream-gap-4.8.6/src/saveload.c src/saveload.c -+--- upstream-gap-4.8.6/src/saveload.c 2016-11-12 15:42:10.000000000 +0100 -++++ src/saveload.c 2016-11-25 13:39:29.112178140 +0100 -+@@ -924,7 +924,7 @@ -+ if ((x & 3) == 1) -+ Pr("Immediate integer %d\n", INT_INTOBJ((Obj)x),0L); -+ else if ((x & 3) == 2) -+- Pr("Immedate FFE %d %d\n", VAL_FFE(x), SIZE_FF(FLD_FFE(x))); -++ Pr("Immediate FFE %d %d\n", VAL_FFE(x), SIZE_FF(FLD_FFE(x))); -+ else -+ Pr("Reference to bag number %d\n",x>>2,0L); -+ } -+diff -urd upstream-gap-4.8.6/src/scanner.c src/scanner.c -+--- upstream-gap-4.8.6/src/scanner.c 2016-11-12 15:42:10.000000000 +0100 -++++ src/scanner.c 2016-11-25 13:39:29.112178140 +0100 -+@@ -64,6 +64,8 @@ -+ #include "tls.h" -+ #include "thread.h" -+ -++#include "libgap_internal.h" /* GAP shared library */ -++ -+ #include <assert.h> -+ #include <limits.h> -+ #include <stdlib.h> -+@@ -2453,150 +2455,25 @@ -+ KOutputStream stream, -+ Char ch ) -+ { -+- Int i, hint, spos; -+- Char str [MAXLENOUTPUTLINE]; -+- -+- -+- /* '\01', increment indentation level */ -+- if ( ch == '\01' ) { -+- -+- if (!stream->format) -+- return; -+- -+- /* add hint to break line */ -+- addLineBreakHint(stream, stream->pos, 16*stream->indent, 1); -+- } -+- -+- /* '\02', decrement indentation level */ -+- else if ( ch == '\02' ) { -+- -+- if (!stream -> format) -+- return; -+- -+- /* if this is a better place to split the line remember it */ -+- addLineBreakHint(stream, stream->pos, 16*stream->indent, -1); -+- } -+- -+- /* '\03', print line */ -+- else if ( ch == '\03' ) { -+- -+- /* print the line */ -+- if (stream->pos != 0) -+- { -+- stream->line[ stream->pos ] = '\0'; -+- PutLineTo(stream, stream->pos ); -+- -+- /* start the next line */ -+- stream->pos = 0; -+- } -+- /* reset line break hints */ -+- stream->hints[0] = -1; -+- -+- } -+- -+- /* <newline> or <return>, print line, indent next */ -+- else if ( ch == '\n' || ch == '\r' ) { -+- -+- /* put the character on the line and terminate it */ -+- stream->line[ stream->pos++ ] = ch; -+- stream->line[ stream->pos ] = '\0'; -+- -+- /* print the line */ -+- PutLineTo( stream, stream->pos ); -+- -+- /* and dump it from the buffer */ -+- stream->pos = 0; -+- if (stream -> format) -+- { -+- /* indent for next line */ -+- for ( i = 0; i < stream->indent; i++ ) -+- stream->line[ stream->pos++ ] = ' '; -+- } -+- /* reset line break hints */ -+- stream->hints[0] = -1; -+- -+- } -+- -+- /* normal character, room on the current line */ -+- else if ( stream->pos < SyNrCols-2-TLS(NoSplitLine) ) { -+- -+- /* put the character on this line */ -+- stream->line[ stream->pos++ ] = ch; -+- -+- } -+- -+- else -+- { -+- /* position to split */ -+- if ( (hint = nrLineBreak(stream)) != -1 ) -+- spos = stream->hints[3*hint]; -+- else -+- spos = 0; -+- -+- /* if we are going to split at the end of the line, and we are -+- formatting discard blanks */ -+- if ( stream->format && spos == stream->pos && ch == ' ' ) { -+- ; -+- } -+- -+- /* full line, acceptable split position */ -+- else if ( stream->format && spos != 0 ) { -+- -+- /* add character to the line, terminate it */ -+- stream->line[ stream->pos++ ] = ch; -+- stream->line[ stream->pos++ ] = '\0'; -+- -+- /* copy the rest after the best split position to a safe place */ -+- for ( i = spos; i < stream->pos; i++ ) -+- str[ i-spos ] = stream->line[ i ]; -+- str[ i-spos] = '\0'; -+- -+- /* print line up to the best split position */ -+- stream->line[ spos++ ] = '\n'; -+- stream->line[ spos ] = '\0'; -+- PutLineTo( stream, spos ); -+- spos--; -+- -+- /* indent for the rest */ -+- stream->pos = 0; -+- for ( i = 0; i < stream->hints[3*hint+2]; i++ ) -+- stream->line[ stream->pos++ ] = ' '; -+- spos -= stream->hints[3*hint+2]; -+- -+- /* copy the rest onto the next line */ -+- for ( i = 0; str[ i ] != '\0'; i++ ) -+- stream->line[ stream->pos++ ] = str[ i ]; -+- /* recover line break hints for copied rest */ -+- for ( i = hint+1; stream->hints[3*i] != -1; i++ ) -+- { -+- stream->hints[3*(i-hint-1)] = stream->hints[3*i]-spos; -+- stream->hints[3*(i-hint-1)+1] = stream->hints[3*i+1]; -+- stream->hints[3*(i-hint-1)+2] = stream->hints[3*i+2]; -+- } -+- stream->hints[3*(i-hint-1)] = -1; -+- } -+- -+- /* full line, no split position */ -+- else { -+- -+- if (stream->format) -+- { -+- /* append a '\',*/ -+- stream->line[ stream->pos++ ] = '\\'; -+- stream->line[ stream->pos++ ] = '\n'; -+- } -+- /* and print the line */ -+- stream->line[ stream->pos ] = '\0'; -+- PutLineTo( stream, stream->pos ); -+- -+- /* add the character to the next line */ -+- stream->pos = 0; -+- stream->line[ stream->pos++ ] = ch; -+- -+- if (stream->format) -+- stream->hints[0] = -1; -+- } -+- -++ // printf("PutChrTo %i %i %c %hhx\n", stream->file, stream->isstream, ch, ch); -++ if (ch <= 3) // GAP control characters -++ return; -++ // Magic constants are defined in SyFopen -++ if (stream->file == 0) { // negative number indicates an error -++ assert(False); -++ } else if (stream->file == 0) { // 0 identifies the standard input file "*stdin*" -++ assert(False); -++ } else if (stream->file == 1) { // 1 identifies the standard outpt file "*stdout*" -++ libgap_append_stdout(ch); -++ } else if (stream->file == 2) { // 2 identifies the brk loop input file "*errin*" -++ assert(False); -++ } else if (stream->file == 3) { // 3 identifies the error messages file "*errout*" -++ libgap_append_stderr(ch); -++ } else { // anything else is a real file descriptor -++ stream->line[stream->pos++] = ch; -++ stream->line[stream->pos++] = '\0'; -++ PutLineTo(stream, stream->pos); -++ stream->pos = 0; -+ } -+ } -+ -+Only in src: stamp-h1 -+diff -urd upstream-gap-4.8.6/src/sysfiles.c src/sysfiles.c -+--- upstream-gap-4.8.6/src/sysfiles.c 2016-11-12 15:42:10.000000000 +0100 -++++ src/sysfiles.c 2016-11-25 13:39:29.115511430 +0100 -+@@ -42,6 +42,8 @@ -+ #include "thread.h" /* threads */ -+ #include "tls.h" /* thread-local storage */ -+ -++#include "libgap_internal.h" /* GAP shared library */ -++ -+ #include <assert.h> -+ #include <fcntl.h> -+ -+@@ -1135,16 +1137,20 @@ -+ -+ void syAnswerCont ( int signr ) -+ { -++#ifdef LIBGAP_SIGNALS -+ syStartraw( syFid ); -+ signal( SIGCONT, SIG_DFL ); -+ kill( getpid(), SIGCONT ); -++#endif -+ } -+ -+ void syAnswerTstp ( int signr ) -+ { -++#ifdef LIBGAP_SIGNALS -+ syStopraw( syFid ); -+ signal( SIGCONT, syAnswerCont ); -+ kill( getpid(), SIGTSTP ); -++#endif -+ } -+ -+ #endif -+@@ -1217,12 +1223,13 @@ -+ -+ #endif -+ -+- -++#ifdef LIBGAP_SIGNALS -+ #ifdef SIGTSTP -+ /* install signal handler for stop */ -+ syFid = fid; -+ signal( SIGTSTP, syAnswerTstp ); -+ #endif -++#endif -+ -+ /* indicate success */ -+ return 1; -+@@ -1245,10 +1252,12 @@ -+ if ( SyWindow ) -+ return; -+ -++#ifdef LIBGAP_SIGNALS -+ #ifdef SIGTSTP -+ /* remove signal handler for stop */ -+ signal( SIGTSTP, SIG_DFL ); -+ #endif -++#endif -+ -+ #if HAVE_TERMIOS_H -+ -+@@ -1342,11 +1351,13 @@ -+ -+ void SyInstallAnswerIntr ( void ) -+ { -++#ifdef LIBGAP_SIGNALS -+ if ( signal( SIGINT, SIG_IGN ) != SIG_IGN ) -+ { -+ signal( SIGINT, syAnswerIntr ); -+ siginterrupt( SIGINT, 0 ); -+ } -++#endif -+ } -+ -+ -+@@ -1625,7 +1636,9 @@ -+ if (CO <= 0) -+ CO = win.ws_col; -+ } -++#ifdef LIBGAP_SIGNALS -+ (void) signal(SIGWINCH, syWindowChangeIntr); -++#endif -+ } -+ #endif /* TIOCGWINSZ */ -+ -+@@ -3256,7 +3269,13 @@ -+ UInt length, -+ Int fid) -+ { -+- return syFgets( line, length, fid, 1); -++ if(fid!=0 && fid!=2) { -++ // not stdin/stderr; probably file IO. Do the standard thing. -++ // printf("SyFgets fid=%i\n", fid); -++ return syFgets( line, length, fid, 1); -++ } -++ return libgap_get_input(line, length); -++ // return syFgets( line, length, fid, 1); -+ } -+ -+ -+@@ -3380,7 +3399,7 @@ -+ # endif -+ #endif -+ -+-extern char ** environ; -++#include "libgap_internal.h" -+ -+ void NullSignalHandler(int scratch) {} -+ -+@@ -3495,6 +3514,7 @@ -+ `After that, we call the old signal handler, in case any other children have died in the -+ meantime. This resets the handler */ -+ -++#ifdef LIBGAP_SIGNALS -+ func2 = signal( SIGCHLD, SIG_DFL ); -+ -+ /* This may return SIG_DFL (0x0) or SIG_IGN (0x1) if the previous handler -+@@ -3503,6 +3523,7 @@ -+ * is to do nothing */ -+ if(func2 == SIG_ERR || func2 == SIG_DFL || func2 == SIG_IGN) -+ func2 = &NullSignalHandler; -++#endif -+ -+ /* clone the process */ -+ pid = vfork(); -+@@ -3514,8 +3535,9 @@ -+ if ( pid != 0 ) { -+ -+ /* ignore a CTRL-C */ -++#ifdef LIBGAP_SIGNALS -+ func = signal( SIGINT, SIG_IGN ); -+- -++#endif -+ /* wait for some action */ -+ #if HAVE_WAITPID -+ wait_pid = waitpid( pid, &status, 0 ); -+@@ -3523,18 +3545,24 @@ -+ wait_pid = wait4( pid, &status, 0, &usage ); -+ #endif -+ if ( wait_pid == -1 ) { -++#ifdef LIBGAP_SIGNALS -+ signal( SIGINT, func ); -+ (*func2)(SIGCHLD); -++#endif -+ return -1; -+ } -+ -+ if ( WIFSIGNALED(status) ) { -++#ifdef LIBGAP_SIGNALS -+ signal( SIGINT, func ); -+ (*func2)(SIGCHLD); -++#endif -+ return -1; -+ } -++#ifdef LIBGAP_SIGNALS -+ signal( SIGINT, func ); -+ (*func2)(SIGCHLD); -++#endif -+ return WEXITSTATUS(status); -+ } -+ -+Only in src: sysfiles.c.orig -diff --git a/src/Makefile.in b/src/Makefile.in -index 3ccedf9..13263fe 100644 ---- a/src/Makefile.in -+++ b/src/Makefile.in -@@ -90,13 +90,14 @@ POST_UNINSTALL = : - build_triplet = @build@ - host_triplet = @host@ - target_triplet = @target@ --@NEED_ITANIUMOBJ_TRUE@am__append_1 = itanium.s -+@HAVE_LD_VERSION_SCRIPT_TRUE@am__append_1 = -Wl,--version-script=$(top_srcdir)/src/libgap.map -+@NEED_ITANIUMOBJ_TRUE@am__append_2 = itanium.s - subdir = src - ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 --am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ -- $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ -- $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ -- $(top_srcdir)/configure.ac -+am__aclocal_m4_deps = $(top_srcdir)/m4/ld-version-script.m4 \ -+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ -+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ -+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac - am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) - DIST_COMMON = $(srcdir)/Makefile.am $(libgapinclude_HEADERS) \ -@@ -290,6 +291,7 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ - INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ - LD = @LD@ - LDFLAGS = @LDFLAGS@ -+LIBGAP_LT_VERSION = @LIBGAP_LT_VERSION@ - LIBOBJS = @LIBOBJS@ - LIBS = @LIBS@ - LIBTOOL = @LIBTOOL@ -@@ -379,6 +381,8 @@ top_builddir = @top_builddir@ - top_srcdir = @top_srcdir@ - DEFAULT_INCLUDES = -I@top_builddir@ - lib_LTLIBRARIES = libgap.la -+libgap_la_LT_INFO = -version-info @LIBGAP_LT_VERSION@ -+libgap_la_LD_VERSION_SCRIPT = $(am__append_1) - libgap_la_SOURCES = ariths.c c_random.c gmpints.c objccoll.c \ - rational.c system.c blister.c c_type1.c gvars.c objcftl.c \ - read.c tietze.c bool.c cyclotom.c integer.c objects.c \ -@@ -389,7 +393,7 @@ libgap_la_SOURCES = ariths.c c_random.c gmpints.c objccoll.c \ - compiler.c funcs.c listfunc.c permutat.c stats.c weakptr.c \ - compstat.c gap.c listoper.c plist.c streams.c c_oper1.c \ - lists.c precord.c string.c costab.c gasman.c macfloat.c \ -- range.c sysfiles.c pperm.c trans.c profile.c $(am__append_1) -+ range.c sysfiles.c pperm.c trans.c profile.c $(am__append_2) - libgapincludedir = @includedir@/gap - libgapinclude_HEADERS = \ - ariths.h cyclotom.h integer.h objcftl.h rational.h sysfiles.h \ -@@ -413,7 +417,7 @@ libgap_la_CFLAGS = $(AM_CFLAGS) \ - - - # the no-undefined is necessary for Cygwin --libgap_la_LDFLAGS = -lm @GMP_LIBS@ -no-undefined -+libgap_la_LDFLAGS = $(libgap_la_LT_INFO) $(libgap_la_LD_VERSION_SCRIPT) @GMP_LIBS@ -lm -no-undefined - all: config.h - $(MAKE) $(AM_MAKEFLAGS) all-am - -diff --git a/src/bool.c b/src/bool.c -index 1fa9d5a..5d64437 100644 ---- a/src/bool.c -+++ b/src/bool.c -@@ -373,7 +373,7 @@ static Int InitKernel ( - StructInitInfo * module ) - { - /* install the marking functions for boolean values */ -- InfoBags[ T_BOOL ].name = "boolean"; -+ InfoBags[ T_BOOL ].name = "boolean or fail"; - InitMarkFuncBags( T_BOOL, MarkNoSubBags ); - - /* init filters and functions */ -diff --git a/src/code.c b/src/code.c -index 6bcdf21..e0e2e8f 100644 ---- a/src/code.c -+++ b/src/code.c -@@ -135,8 +135,33 @@ Obj FILENAME_STAT(Stat stat) - filename = ELM_PLIST(FilenameCache, filenameid); - return filename; - } -- -- -+ -+ -+/**************************************************************************** -+** -+** Fill in filename and line of a statement, checking we do not overflow -+** the space we have for storing information -+*/ -+Stat fillFilenameLine(Int fileid, Int line, Int size, Int type) -+{ -+ Stat stat; -+ if(fileid < 0 || fileid >= (1 << 16)) -+ { -+ fileid = (1 << 16) - 1; -+ RegisterProfilingFileOverflowOccured(); -+ } -+ if(line < 0 || line >= (1 << 16)) -+ { -+ line = (1 << 16) - 1; -+ RegisterProfilingLineOverflowOccured(); -+ } -+ -+ stat = ((Stat)fileid << 48) + ((Stat)line << 32) + -+ ((Stat)size << 8) + (Stat)type; -+ -+ return stat; -+} -+ - /**************************************************************************** - ** - *F NewStat( <type>, <size> ) . . . . . . . . . . . allocate a new statement -@@ -173,8 +198,7 @@ Stat NewStatWithLine ( - setup_gapname(TLS(Input)); - - /* enter type and size */ -- ADDR_STAT(stat)[-1] = ((Stat)TLS(Input)->gapnameid << 48) + ((Stat)line << 32) + -- ((Stat)size << 8) + (Stat)type; -+ ADDR_STAT(stat)[-1] = fillFilenameLine(TLS(Input)->gapnameid, line, size, type); - RegisterStatWithProfiling(stat); - /* return the new statement */ - return stat; -@@ -218,9 +242,8 @@ Expr NewExpr ( - } - - /* enter type and size */ -- ADDR_EXPR(expr)[-1] = ((Stat)TLS(Input)->gapnameid << 48) + -- ((Stat)TLS(Input)->number << 32) + -- ((Stat)size << 8) + type; -+ ADDR_EXPR(expr)[-1] = fillFilenameLine(TLS(Input)->gapnameid, -+ TLS(Input)->number, size, type); - RegisterStatWithProfiling(expr); - /* return the new expression */ - return expr; -@@ -3510,6 +3533,3 @@ StructInitInfo * InitInfoCode ( void ) - - *E code.c . . . . . . . . . . . . . . . . . . . . . . . . . . . . ends here - */ -- -- -- -diff --git a/src/gap.c b/src/gap.c -index 58528c9..68b5eff 100644 ---- a/src/gap.c -+++ b/src/gap.c -@@ -3091,6 +3091,7 @@ static Int PostRestore ( - Last2 = GVarName( "last2" ); - Last3 = GVarName( "last3" ); - Time = GVarName( "time" ); -+ AssGVar(Time, INTOBJ_INT(0)); - QUITTINGGVar = GVarName( "QUITTING" ); - - /* return success */ -diff --git a/src/intfuncs.c b/src/intfuncs.c -index 51a542b..1614c3c 100644 ---- a/src/intfuncs.c -+++ b/src/intfuncs.c -@@ -202,36 +202,6 @@ UInt4 nextrandMT_int32(UInt4* mt) - return y; - } - -- --Obj FuncRandomListMT(Obj self, Obj mtstr, Obj list) --{ -- Int len, a, lg; -- UInt4 *mt; -- while ((! IsStringConv(mtstr)) || GET_LEN_STRING(mtstr) < 2500) { -- mtstr = ErrorReturnObj( -- "<mtstr> must be a string with at least 2500 characters, ", -- 0L, 0L, -- "you can replace <mtstr> via 'return <mtstr>;'" ); -- } -- while (! IS_LIST(list)) { -- list = ErrorReturnObj( -- "<list> must be a list, not a %s", -- (Int)TNAM_OBJ(list), 0L, -- "you can replace <list> via 'return <list>;'" ); -- } -- len = LEN_LIST(list); -- if (len == 0) return Fail; -- mt = (UInt4*) CHARS_STRING(mtstr); -- lg = 31 - CLog2Int(len); -- for (a = nextrandMT_int32(mt) >> lg; -- a >= len; -- a = nextrandMT_int32(mt) >> lg -- ); -- return ELM_LIST(list, a+1); --} -- -- -- - /**************************************************************************** - ** - *F FuncHASHKEY_BAG(<self>,<obj>,<seed>,<offset>,<maxlen>) -@@ -678,9 +648,6 @@ static StructGVarFunc GVarFuncs [] = { - { "InitRandomMT", 1, "initstr", - FuncInitRandomMT, "src/integer.c:InitRandomMT" }, - -- { "RandomListMT", 2, "mtstr, list", -- FuncRandomListMT, "src/integer.c:RandomListMT" }, -- - { 0 } - - }; -diff --git a/src/listfunc.c b/src/listfunc.c -index 7d04525..4b92f01 100644 ---- a/src/listfunc.c -+++ b/src/listfunc.c -@@ -232,8 +232,10 @@ Obj RemPlist ( - } - removed = ELM_PLIST(list, pos); - SET_ELM_PLIST(list, pos, (Obj)0L); -- SET_LEN_PLIST(list, pos-1); -- if ( pos == 1 ) { -+ pos--; -+ while ( 1 <= pos && ELM_PLIST( list, pos ) == 0 ) { pos--; } -+ SET_LEN_PLIST(list, pos); -+ if ( pos == 0 ) { - RetypeBag(list, T_PLIST_EMPTY); - } - if (4*pos*sizeof(Obj) < 3*SIZE_BAG(list)) -@@ -302,6 +304,7 @@ Obj FuncAPPEND_LIST_INTR ( - len2 = GET_LEN_STRING(list2); - GROW_STRING(list1, len1 + len2); - SET_LEN_STRING(list1, len1 + len2); -+ CLEAR_FILTS_LIST(list1); - memmove( (void *)(CHARS_STRING(list1) + len1), - (void *)CHARS_STRING(list2), len2 + 1); - /* ensure trailing zero */ -diff --git a/src/pperm.c b/src/pperm.c -index 5965767..45a536b 100644 ---- a/src/pperm.c -+++ b/src/pperm.c -@@ -2246,7 +2246,7 @@ Obj PrintPPerm4(Obj self, Obj f){ - - deg=DEG_PPERM4(f); - if(deg==0) Pr("<empty partial perm>", 0L, 0L); -- n=MAX(deg, CODEG_PPERM2(f)); -+ n=MAX(deg, CODEG_PPERM4(f)); - ResizeTmpPPerm(n); - ptseen=(UInt4*)(ADDR_OBJ(TmpPPerm)); - for(i=0;i<n;i++) ptseen[i]=0; -@@ -4451,7 +4451,7 @@ Obj QuoPPerm22(Obj f, Obj g){ - } - } - } -- CODEG_PPERM2(quo)=codeg; -+ CODEG_PPERM4(quo)=codeg; - return quo; - } - -diff --git a/src/profile.c b/src/profile.c -index 6e5d22e..c2f82d3 100644 ---- a/src/profile.c -+++ b/src/profile.c -@@ -509,6 +509,73 @@ Obj ProfileEvalBoolPassthrough(Expr stat) - } - - -+/**************************************************************************** -+** -+** This functions check if we overflow either 2^16 lines, or files. -+** In this case profiling will "give up". We print a warning to tell users -+** that this happens. -+**/ -+ -+Int HaveReportedLineProfileOverflow; -+Int ShouldReportLineProfileOverflow; -+ -+Int HaveReportedFileProfileOverflow; -+Int ShouldReportFileProfileOverflow; -+ -+// This function only exists to allow testing of these overflow checks -+Obj FuncCLEAR_PROFILE_OVERFLOW_CHECKS(Obj self) { -+ HaveReportedLineProfileOverflow = 0; -+ ShouldReportLineProfileOverflow = 0; -+ -+ HaveReportedFileProfileOverflow = 0; -+ ShouldReportFileProfileOverflow = 0; -+ -+ return 0; -+} -+ -+void CheckPrintOverflowWarnings() { -+ if(!HaveReportedLineProfileOverflow && ShouldReportLineProfileOverflow) -+ { -+ HaveReportedLineProfileOverflow = 1; -+ Pr("#I Profiling only works on the first 65,535 lines of each file\n" -+ "#I (this warning will only appear once).\n", -+ 0L, 0L); -+ } -+ -+ if(!HaveReportedFileProfileOverflow && ShouldReportFileProfileOverflow) -+ { -+ HaveReportedFileProfileOverflow = 1; -+ Pr("#I Profiling only works for the first 65,535 read files\n" -+ "#I (this warning will only appear once).\n", -+ 0L, 0L ); -+ } -+} -+ -+void RegisterProfilingLineOverflowOccured() -+{ -+ Int active; -+ HashLock(&profileState); -+ active = profileState_Active; -+ HashUnlock(&profileState); -+ ShouldReportLineProfileOverflow = 1; -+ if(active) -+ { -+ CheckPrintOverflowWarnings(); -+ } -+} -+ -+void RegisterProfilingFileOverflowOccured() -+{ -+ Int active; -+ HashLock(&profileState); -+ active = profileState_Active; -+ HashUnlock(&profileState); -+ ShouldReportFileProfileOverflow = 1; -+ if(active) -+ { -+ CheckPrintOverflowWarnings(); -+ } -+} - - /**************************************************************************** - ** -@@ -603,7 +670,7 @@ Obj FuncACTIVATE_PROFILING ( - if(profileState_Active) { - return Fail; - } -- -+ - if(profileState.profiledPreviously && - coverage == True) { - ErrorMayQuit("Code coverage can only be started once per" -@@ -611,6 +678,8 @@ Obj FuncACTIVATE_PROFILING ( - return Fail; - } - -+ CheckPrintOverflowWarnings(); -+ - OutputtedFilenameList = NEW_PLIST(T_PLIST, 0); - - if ( ! IsStringConv( filename ) ) { -@@ -897,6 +966,8 @@ void RegisterStatWithProfiling(Stat stat) - } - - -+ -+ - /**************************************************************************** - ** - -@@ -913,6 +984,8 @@ static StructGVarFunc GVarFuncs [] = { - FuncACTIVATE_PROFILING, "src/profile.c:ACTIVATE_PROFILING" }, - { "DEACTIVATE_PROFILING", 0, "", - FuncDEACTIVATE_PROFILING, "src/profile.c:DEACTIVATE_PROFILING" }, -+ { "CLEAR_PROFILE_OVERFLOW_CHECKS", 0, "", -+ FuncCLEAR_PROFILE_OVERFLOW_CHECKS, "src/profile.c:CLEAR_PROFILE_OVERFLOW_CHECKS" }, - { "IsLineByLineProfileActive", 0, "", - FuncIS_PROFILE_ACTIVE, "src/profile.c:IsLineByLineProfileActive" }, - { "ACTIVATE_COLOR_PROFILING", 1, "bool", -diff --git a/src/profile.h b/src/profile.h -index d6f4fa7..27bbd6f 100644 ---- a/src/profile.h -+++ b/src/profile.h -@@ -28,7 +28,8 @@ - StructInitInfo * InitInfoProfile ( void ); - - void RegisterStatWithProfiling(Stat); -- -+void RegisterProfilingLineOverflowOccured(); -+void RegisterProfilingFileOverflowOccured(); - - void InstallEvalBoolFunc( Int, Obj(*)(Expr)); - void InstallEvalExprFunc( Int, Obj(*)(Expr)); -diff --git a/src/read.c b/src/read.c -index f69d149..a8f6601 100644 ---- a/src/read.c -+++ b/src/read.c -@@ -551,13 +551,19 @@ void ReadCallVarAss ( - } - } - -+#ifdef HPCGAP -+#define ASSIGN_ERROR_MESSAGE ":= or ::=" -+#else -+#define ASSIGN_ERROR_MESSAGE ":=" -+#endif -+ - /* if we need a statement */ - else if ( mode == 's' || (mode == 'x' && IS_IN(TLS(Symbol), S_ASSIGN)) ) { - if ( type != 'c' && type != 'C') { - if (TLS(Symbol) != S_ASSIGN) -- Match( S_INCORPORATE, ":= or ::=", follow); -+ Match( S_INCORPORATE, ASSIGN_ERROR_MESSAGE, follow); - else -- Match( S_ASSIGN, ":= or ::=", follow ); -+ Match( S_ASSIGN, ASSIGN_ERROR_MESSAGE, follow ); - if ( TLS(CountNams) == 0 || !TLS(IntrCoding) ) { TLS(CurrLHSGVar) = (type == 'g' ? var : 0); } - ReadExpr( follow, 'r' ); - } -diff --git a/src/streams.c b/src/streams.c -index 7738672..93fbe07 100644 ---- a/src/streams.c -+++ b/src/streams.c -@@ -1947,25 +1947,30 @@ Obj FuncWRITE_STRING_FILE_NC ( - Obj fid, - Obj str ) - { -- Int len = 0, ret; -+ Int len = 0, l, ret; -+ char *ptr; - - /* don't check the argument */ - - len = GET_LEN_STRING(str); -- ret = write( syBuf[INT_INTOBJ(fid)].echo, CHARS_STRING(str), len); -- return (ret == len)?True : Fail; -+ ptr = CSTR_STRING(str); -+ while (len > 0) { -+ l = (len > 1048576) ? 1048576 : len; -+ ret = write( syBuf[INT_INTOBJ(fid)].echo, ptr, l); -+ if (ret == -1) { -+ SySetErrorNo(); -+ return Fail; -+ } -+ len -= ret; -+ ptr += ret; -+ } -+ return True; - } - -- - Obj FuncREAD_STRING_FILE ( - Obj self, - Obj fid ) - { -- Char buf[20001]; -- Int ret, len; -- UInt lstr; -- Obj str; -- - /* check the argument */ - while ( ! IS_INTOBJ(fid) ) { - fid = ErrorReturnObj( -@@ -1973,56 +1978,7 @@ Obj FuncREAD_STRING_FILE ( - (Int)TNAM_OBJ(fid), 0L, - "you can replace <fid> via 'return <fid>;'" ); - } -- --#if ! SYS_IS_CYGWIN32 -- /* fstat seems completely broken under CYGWIN */ --#if HAVE_STAT -- /* first try to get the whole file as one chunk, this avoids garbage -- collections because of the GROW_STRING calls below */ -- { -- struct stat fstatbuf; -- if ( syBuf[INT_INTOBJ(fid)].pipe == 0 && -- fstat( syBuf[INT_INTOBJ(fid)].fp, &fstatbuf) == 0 ) { -- if((off_t)(Int)fstatbuf.st_size != fstatbuf.st_size) { -- ErrorMayQuit( -- "The file is too big to fit the current workspace", -- (Int)0, (Int)0); -- } -- len = (Int) fstatbuf.st_size; -- str = NEW_STRING( len ); -- ret = read( syBuf[INT_INTOBJ(fid)].fp, -- CHARS_STRING(str), len); -- CHARS_STRING(str)[ret] = '\0'; -- SET_LEN_STRING(str, ret); -- if ( (off_t) ret == fstatbuf.st_size ) { -- return str; -- } -- } -- } --#endif --#endif -- /* read <fid> until we see eof (in 20kB pieces) */ -- str = NEW_STRING(0); -- len = 0; -- while (1) { -- if ( (ret = read( syBuf[INT_INTOBJ(fid)].fp , buf, 20000)) <= 0 ) -- break; -- len += ret; -- GROW_STRING( str, len ); -- lstr = GET_LEN_STRING(str); -- memcpy( CHARS_STRING(str)+lstr, buf, ret ); -- *(CHARS_STRING(str)+lstr+ret) = '\0'; -- SET_LEN_STRING(str, lstr+ret); -- } -- -- /* fix the length of <str> */ -- len = GET_LEN_STRING(str); -- ResizeBag( str, SIZEBAG_STRINGLEN(len) ); -- -- /* and return */ -- -- syBuf[INT_INTOBJ(fid)].ateof = 1; -- return len == 0 ? Fail : str; -+ return SyReadStringFid(INT_INTOBJ(fid)); - } - - /**************************************************************************** -diff --git a/src/sysfiles.c b/src/sysfiles.c -index 99e7974..fd46d1a 100644 ---- a/src/sysfiles.c -+++ b/src/sysfiles.c -@@ -1424,9 +1424,6 @@ static void syAnswerAlarm ( int signr, siginfo_t * si, void *context) - Later we might want to do something cleverer with throwing an - exception or dealing better if this isn't our timer */ - assert( signr == TIMER_SIGNAL); -- assert( si->si_signo == TIMER_SIGNAL); -- assert( si->si_code == SI_TIMER); -- assert( si->si_value.sival_int == 0x12345678 ); - SyAlarmRunning = 0; - SyAlarmHasGoneOff = 1; - InterruptExecStat(); -@@ -4055,6 +4052,96 @@ Char * SyTmpdir ( const Char * hint ) - #endif - #endif - -+Obj SyReadStringFile(Int fid) -+{ -+ Char buf[32769]; -+ Int ret, len; -+ UInt lstr; -+ Obj str; -+ -+ /* read <fid> until we see eof (in 32kB pieces) */ -+ str = NEW_STRING(0); -+ len = 0; -+ do { -+ ret = read( syBuf[fid].fp , buf, 32768); -+ if (ret < 0) { -+ SySetErrorNo(); -+ return Fail; -+ } -+ len += ret; -+ GROW_STRING( str, len ); -+ lstr = GET_LEN_STRING(str); -+ memcpy( CHARS_STRING(str)+lstr, buf, ret ); -+ *(CHARS_STRING(str)+lstr+ret) = '\0'; -+ SET_LEN_STRING(str, lstr+ret); -+ } while(ret > 0); -+ -+ /* fix the length of <str> */ -+ len = GET_LEN_STRING(str); -+ ResizeBag( str, SIZEBAG_STRINGLEN(len) ); -+ -+ syBuf[fid].ateof = 1; -+ return str; -+} -+ -+#if !defined(SYS_IS_CYGWIN32) && defined(HAVE_STAT) -+/* fstat seems completely broken under CYGWIN */ -+/* first try to get the whole file as one chunk, this avoids garbage -+ collections because of the GROW_STRING calls below */ -+Obj SyReadStringFileStat(Int fid) -+{ -+ Int ret, len; -+ Obj str; -+ Int l; -+ char *ptr; -+ struct stat fstatbuf; -+ -+ if( fstat( syBuf[fid].fp, &fstatbuf) == 0 ) { -+ if((off_t)(Int)fstatbuf.st_size != fstatbuf.st_size) { -+ ErrorMayQuit( -+ "The file is too big to fit the current workspace", -+ (Int)0, (Int)0); -+ } -+ len = (Int) fstatbuf.st_size; -+ str = NEW_STRING( len ); -+ CHARS_STRING(str)[len] = '\0'; -+ SET_LEN_STRING(str, len); -+ ptr = CSTR_STRING(str); -+ while (len > 0) { -+ l = (len > 1048576) ? 1048576 : len; -+ ret = read( syBuf[fid].fp, ptr, l); -+ if (ret == -1) { -+ SySetErrorNo(); -+ return Fail; -+ } -+ len -= ret; -+ ptr += ret; -+ } -+ syBuf[fid].ateof = 1; -+ return str; -+ } else { -+ SySetErrorNo(); -+ return Fail; -+ } -+} -+ -+Obj SyReadStringFid(Int fid) -+{ -+ if(syBuf[fid].pipe == 1) { -+ return SyReadStringFile(fid); -+ } else { -+ return SyReadStringFileStat(fid); -+ } -+} -+ -+#else -+ -+Obj SyReadStringFid(Int fid) { -+ return SyReadStringFile(fid); -+} -+ -+#endif -+ - - - /**************************************************************************** -diff --git a/src/sysfiles.h b/src/sysfiles.h -index 497acca..dbf6b19 100644 ---- a/src/sysfiles.h -+++ b/src/sysfiles.h -@@ -630,8 +630,21 @@ extern void syWinPut ( - const Char * cmd, - const Char * str ); - -+/*************************************************************************** -+ ** -+ *F SyReadStringFid( <fid> ) -+ ** - read file given by <fid> into a string -+ *F SyReadStringFile( <fid> ) -+ ** - read file given by <fid> into a string, only rely on read() -+ *F SyReadStringFileStat( <fid> ) -+ ** - read file given by <fid> into a string, use stat() to determine -+ ** size of file before reading. This does not work for pipes -+ */ -+ -+extern Obj SyReadStringFid(Int fid); -+extern Obj SyReadStringFile(Int fid); -+extern Obj SyReadStringFileGeneric(Int fid); - -- - /**************************************************************************** - ** - -diff --git a/src/system.c b/src/system.c -index 8548293..e34b898 100644 ---- a/src/system.c -+++ b/src/system.c -@@ -78,10 +78,10 @@ Int enableCodeCoverageAtStartup( Char **argv, void * dummy); - /**************************************************************************** - ** - *V SyKernelVersion . . . . . . . . . . . . . . . hard coded kernel version --** do not edit the following line. Occurences of `4.8.3' and `today' -+** do not edit the following line. Occurences of `4.8.6' and `today' - ** will be replaced by string matching by distribution wrapping scripts. - */ --const Char * SyKernelVersion = "4.8.3"; -+const Char * SyKernelVersion = "4.8.6"; - - /**************************************************************************** - ** -diff --git a/src/trans.c b/src/trans.c -index f7ec508..8699166 100644 ---- a/src/trans.c -+++ b/src/trans.c -@@ -421,7 +421,7 @@ Obj FuncRANK_TRANS_LIST(Obj self, Obj f, Obj list){ - rank=0; - for(i=1;i<=len;i++){ - pt=ELM_LIST(list, i); -- if(!TNUM_OBJ(pt)==T_INT||INT_INTOBJ(pt)<1){ -+ if(TNUM_OBJ(pt)!=T_INT||INT_INTOBJ(pt)<1){ - ErrorQuit("usage: the second argument <list> must be a list of positive\n integers (not a %s)", (Int)TNAM_OBJ(pt), 0L); - } - j=INT_INTOBJ(pt)-1; -@@ -439,7 +439,7 @@ Obj FuncRANK_TRANS_LIST(Obj self, Obj f, Obj list){ - rank=0; - for(i=1;i<=len;i++){ - pt=ELM_LIST(list, i); -- if(!TNUM_OBJ(pt)==T_INT||INT_INTOBJ(pt)<1){ -+ if(TNUM_OBJ(pt)!=T_INT||INT_INTOBJ(pt)<1){ - ErrorQuit("usage: the second argument <list> must be a list of positive\n integers (not a %s)", (Int)TNAM_OBJ(pt), 0L); - } - j=INT_INTOBJ(pt)-1; -diff --git a/test/Makefile.in b/test/Makefile.in -index 013b127..6de463f 100644 ---- a/test/Makefile.in -+++ b/test/Makefile.in -@@ -92,10 +92,10 @@ TESTS = test$(EXEEXT) shell$(EXEEXT) error_handler$(EXEEXT) - check_PROGRAMS = test$(EXEEXT) shell$(EXEEXT) error_handler$(EXEEXT) - subdir = test - ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 --am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ -- $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ -- $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ -- $(top_srcdir)/configure.ac -+am__aclocal_m4_deps = $(top_srcdir)/m4/ld-version-script.m4 \ -+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ -+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ -+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac - am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) - DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) -@@ -430,6 +430,7 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ - INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ - LD = @LD@ - LDFLAGS = @LDFLAGS@ -+LIBGAP_LT_VERSION = @LIBGAP_LT_VERSION@ - LIBOBJS = @LIBOBJS@ - LIBS = @LIBS@ - LIBTOOL = @LIBTOOL@ --- -2.7.4.1.g5468f9e -
