Update lang/ecl to 20.4.24

classic Classic list List threaded Threaded
22 messages Options
12
Reply | Threaded
Open this post in threaded view
|

Update lang/ecl to 20.4.24

Josh Elsasser
Here's a quick update to the new release, minimally tested as a
lang/sbcl build host. The patch removes files, don't forget patch -E

diff -ruN --exclude .git /usr/ports/lang/ecl/Makefile ./Makefile
--- /usr/ports/lang/ecl/Makefile Tue Feb 18 15:29:40 2020
+++ ./Makefile Mon May 18 09:44:49 2020
@@ -5,10 +5,9 @@
 
 BROKEN-mips64 = ecl_min fails
 
-V = 16.1.3
+V = 20.4.24
 DISTNAME = ecl-$V
-SHARED_LIBS += ecl 6.0
-REVISION = 3
+SHARED_LIBS += ecl 7.0
 
 HOMEPAGE = https://common-lisp.net/project/ecl/
 MAINTAINER = Timo Myyra <[hidden email]>
@@ -21,12 +20,14 @@
 
 MASTER_SITES = ${HOMEPAGE}static/files/release/
 
+COMPILER = base-clang ports-gcc
 USE_GMAKE = Yes
 CONFIGURE_STYLE = gnu
 TEST_TARGET = check
 CONFIGURE_ENV += CPPFLAGS=-I${LOCALBASE}/include \
  ECLLIB_VERSION=${LIBecl_VERSION} \
- ecldir=${LOCALBASE}/lib/ecl
+ ecldir=${LOCALBASE}/lib/ecl \
+ MAKEINFO=${PREFIX}/bin/gmakeinfo
 
 CONFIGURE_ARGS += --enable-boehm=system \
  --enable-libatomic=system \
@@ -38,6 +39,8 @@
 CONFIGURE_ENV += ETAGS=/usr/bin/true
 
 WANTLIB += atomic_ops c ffi gc gmp m pthread
+
+BUILD_DEPENDS += print/texinfo
 
 LIB_DEPENDS += devel/gmp \
  devel/boehm-gc,-main \
diff -ruN --exclude .git /usr/ports/lang/ecl/distinfo ./distinfo
--- /usr/ports/lang/ecl/distinfo Mon May 15 13:40:18 2017
+++ ./distinfo Mon May 18 09:44:49 2020
@@ -1,2 +1,2 @@
-SHA256 (ecl-16.1.3.tgz) = dqWFxhbo+oOmtyCTJaMJ2lvAymjgZY85b0mVVjgRElQ=
-SIZE (ecl-16.1.3.tgz) = 7459212
+SHA256 (ecl-20.4.24.tgz) = Zwg47fJYqTa1Iv22INozbefldaoNJ+NIQXJyUnJtDwc=
+SIZE (ecl-20.4.24.tgz) = 7815444
diff -ruN --exclude .git /usr/ports/lang/ecl/patches/patch-src_Makefile_in ./patches/patch-src_Makefile_in
--- /usr/ports/lang/ecl/patches/patch-src_Makefile_in Mon May 15 13:40:18 2017
+++ ./patches/patch-src_Makefile_in Sun Mar 22 08:45:49 2020
@@ -1,7 +1,8 @@
 $OpenBSD: patch-src_Makefile_in,v 1.6 2016/12/20 20:12:29 juanfra Exp $
---- src/Makefile.in.orig Mon Dec 19 21:24:59 2016
-+++ src/Makefile.in Mon Dec 19 21:27:43 2016
-@@ -296,30 +296,15 @@ install:
+Index: src/Makefile.in
+--- src/Makefile.in.orig
++++ src/Makefile.in
+@@ -212,30 +212,15 @@ install:
  for i in `(cd ecl && find . -name '*.h')`; do echo $$i; \
   $(INSTALL_DATA) ecl/$$i $(DESTDIR)$(includedir)/ecl/$$i; \
  done
@@ -18,7 +19,7 @@
 -   $(INSTALL_LIBRARY) $$i $(DESTDIR)$(libdir); \
 -  fi \
 - done
-- if [ "x@SONAME3@" != "x" -a -f "@SONAME3@" ]; then \
+- if [ "x@SONAME3@" != "x" -a -f "@SONAME3@" -a "@SONAME@" != "@SONAME3@" ]; then \
 -  ( $(INSTALL_LIBRARY) @SONAME3@ $(DESTDIR)$(libdir) && \
 -    cd $(DESTDIR)$(libdir) && $(RM) -f @SONAME2@ @SONAME1@ @SONAME@ && \
 -    $(LN_S) @SONAME3@ @SONAME2@ && \
@@ -27,12 +28,12 @@
 - fi
 + ${INSTALL_LIBRARY} libecl.so $(DESTDIR)$(libdir)/$(LSP_LIBRARIES)
 + cd $(DESTDIR)$(libdir) && ln -sf $(LSP_LIBRARIES) libecl.so
- $(INSTALL_PROGRAM) $(DPP) $(DESTDIR)$(ecldir)
+ $(INSTALL_PROGRAM) c/$(DPP) $(DESTDIR)$(ecldir)
  $(INSTALL_PROGRAM) $(ECL_MIN) $(DESTDIR)$(ecldir)
  for i in `cat modules`; do \
   case $$i in \
 -    *.fas) $(INSTALL_PROGRAM) $$i $(DESTDIR)$(ecldir);; \
-+    *.fas) $(INSTALL_DATA) $$i $(DESTDIR)$(ecldir);; \
++    *.fas) $(INSTALL_SCRIPT) $$i $(DESTDIR)$(ecldir);; \
     *) $(INSTALL_DATA) $$i $(DESTDIR)$(ecldir);; \
   esac \
  done
diff -ruN --exclude .git /usr/ports/lang/ecl/patches/patch-src_c_ffi_d ./patches/patch-src_c_ffi_d
--- /usr/ports/lang/ecl/patches/patch-src_c_ffi_d Tue Feb 18 15:29:40 2020
+++ ./patches/patch-src_c_ffi_d Wed Dec 31 16:00:00 1969
@@ -1,26 +0,0 @@
-$OpenBSD: patch-src_c_ffi_d,v 1.1 2020/02/12 19:42:02 jasper Exp $
-
-libffi for x86_64 doesn't define FFI_SYSV anymore for FFI_UNIX64 should used instead
-fixed upstream with https://gitlab.com/embeddable-common-lisp/ecl/commit/b2f09b4809441a92d6c11a2b39d5399580e56ae7
-
-Index: src/c/ffi.d
---- src/c/ffi.d.orig
-+++ src/c/ffi.d
-@@ -132,10 +132,15 @@ static struct {
-   {@':stdcall', FFI_STDCALL},
- #elif defined(X86_WIN64)
-   {@':win64', FFI_WIN64},
--#elif defined(X86_ANY) || defined(X86) || defined(X86_64)
-+#elif defined(X86_ANY) || defined(X86)
-+#if defined(X86_64)
-+  {@':cdecl', FFI_UNIX64},
-+  {@':sysv', FFI_UNIX64},
-+  {@':unix64', FFI_UNIX64},
-+#else
-   {@':cdecl', FFI_SYSV},
-   {@':sysv', FFI_SYSV},
--  {@':unix64', FFI_UNIX64},
-+#endif
- #endif
- };
-
diff -ruN --exclude .git /usr/ports/lang/ecl/patches/patch-src_c_numbers_atan_d ./patches/patch-src_c_numbers_atan_d
--- /usr/ports/lang/ecl/patches/patch-src_c_numbers_atan_d Wed Dec 28 11:38:56 2016
+++ ./patches/patch-src_c_numbers_atan_d Wed Dec 31 16:00:00 1969
@@ -1,69 +0,0 @@
-$OpenBSD: patch-src_c_numbers_atan_d,v 1.1 2016/12/28 19:38:56 juanfra Exp $
-backport commit 5199c6acd1694211a47dd558220d13fd82265ce0 to fix maxima tests.
---- src/c/numbers/atan.d.orig Mon Dec 19 12:25:00 2016
-+++ src/c/numbers/atan.d Wed Dec 28 09:12:06 2016
-@@ -22,21 +22,23 @@
- static double
- ecl_atan2_double(double y, double x)
- {
--  if (signbit(x)) {
-+  if (x == 0) {
-     if (signbit(y)) {
--      return -ECL_PI_D + atan(-y / -x);
-+      return -ECL_PI2_D;
-     } else if (y == 0) {
--      return ECL_PI_D;
-+      /* Signals floating-point-invalid-operation. If not trapped,
-+         produces NaN. */
-+      return x / y;
-     } else {
--      return ECL_PI_D - atan(y / -x);
-+      return ECL_PI2_D;
-     }
--  } else if (x == 0) {
-+  } else if (signbit(x)) {
-     if (signbit(y)) {
--      return -ECL_PI2_D;
-+      return -ECL_PI_D + atan(-y / -x);
-     } else if (y == 0) {
--      return x / y;  /* Produces a NaN */
-+      return ECL_PI_D;
-     } else {
--      return ECL_PI2_D;
-+      return ECL_PI_D - atan(y / -x);
-     }
-   } else {
-     if (signbit(y)) {
-@@ -53,21 +55,24 @@ ecl_atan2_double(double y, double x)
- static long double
- ecl_atan2_long_double(long double y, long double x)
- {
--  if (signbit(x)) {
-+  if (x == 0) {
-     if (signbit(y)) {
--      return -ECL_PI_L + atanl(-y / -x);
-+      return -ECL_PI2_L;
-     } else if (y == 0) {
--      return ECL_PI_L;
-+      /* Signals floating-point-invalid-operation. If not trapped,
-+         produces NaN. */
-+      return x / y;
-     } else {
--      return ECL_PI_L - atanl(y / -x);
-+      return ECL_PI2_L;
-     }
--  } else if (x == 0) {
-+  }
-+  else if (signbit(x)) {
-     if (signbit(y)) {
--      return -ECL_PI2_L;
-+      return -ECL_PI_L + atanl(-y / -x);
-     } else if (y == 0) {
--      return x / y;  /* Produces a NaN */
-+      return ECL_PI_L;
-     } else {
--      return ECL_PI2_L;
-+      return ECL_PI_L - atanl(y / -x);
-     }
-   } else {
-     if (signbit(y)) {
diff -ruN --exclude .git /usr/ports/lang/ecl/patches/patch-src_configure ./patches/patch-src_configure
--- /usr/ports/lang/ecl/patches/patch-src_configure Mon May 15 13:40:18 2017
+++ ./patches/patch-src_configure Sun Mar 22 08:44:02 2020
@@ -1,7 +1,8 @@
 $OpenBSD: patch-src_configure,v 1.8 2016/12/20 20:12:29 juanfra Exp $
---- src/configure.orig Mon Dec 19 21:30:13 2016
-+++ src/configure Mon Dec 19 21:31:37 2016
-@@ -4971,7 +4971,7 @@ LSP_FEATURES="(cons :android ${LSP_FEATURES})"
+Index: src/configure
+--- src/configure.orig
++++ src/configure
+@@ -5050,7 +5050,7 @@ LSP_FEATURES="(cons :android ${LSP_FEATURES})"
                  BUNDLE_LDFLAGS="-shared ${LDFLAGS}"
                  ECL_LDRPATH="-Wl,--rpath,~A"
                  clibs="-lpthread ${clibs}"
@@ -10,7 +11,7 @@
                  SONAME_LDFLAGS="-Wl,-soname,SONAME"
                  ;;
          solaris*)
-@@ -9509,7 +9509,7 @@ if test ${enable_shared} = "yes"; then
+@@ -9682,7 +9682,7 @@ if test ${enable_shared} = "yes"; then
 
  $as_echo "#define ENABLE_DLOPEN 1" >>confdefs.h
 
diff -ruN --exclude .git /usr/ports/lang/ecl/pkg/PLIST ./pkg/PLIST
--- /usr/ports/lang/ecl/pkg/PLIST Mon May 15 13:40:18 2017
+++ ./pkg/PLIST Sun Mar 22 11:08:19 2020
@@ -13,6 +13,7 @@
 include/ecl/ecl-cmp.h
 include/ecl/ecl-inl.h
 include/ecl/ecl.h
+include/ecl/ecl_atomics.h
 include/ecl/external.h
 include/ecl/gc/
 include/ecl/gc/private/
@@ -26,26 +27,26 @@
 include/ecl/number.h
 include/ecl/object.h
 include/ecl/page.h
+include/ecl/stack-resize.h
 include/ecl/stacks.h
+info/ecl.info.gz
 lib/ecl/
 lib/ecl/COPYING
 lib/ecl/LICENSE
-lib/ecl/asdf.fas
+@bin lib/ecl/asdf.fas
 lib/ecl/cmp.asd
-lib/ecl/cmp.fas
+@bin lib/ecl/cmp.fas
 lib/ecl/deflate.asd
-lib/ecl/deflate.fas
-lib/ecl/defsystem.asd
-lib/ecl/defsystem.fas
+@bin lib/ecl/deflate.fas
 @bin lib/ecl/dpp
 lib/ecl/ecl-cdb.asd
-lib/ecl/ecl-cdb.fas
+@bin lib/ecl/ecl-cdb.fas
 lib/ecl/ecl-curl.asd
-lib/ecl/ecl-curl.fas
+@bin lib/ecl/ecl-curl.fas
 lib/ecl/ecl-help.asd
-lib/ecl/ecl-help.fas
+@bin lib/ecl/ecl-help.fas
 lib/ecl/ecl-quicklisp.asd
-lib/ecl/ecl-quicklisp.fas
+@bin lib/ecl/ecl-quicklisp.fas
 @bin lib/ecl/ecl_min
 lib/ecl/encodings/
 lib/ecl/encodings/arabic
@@ -203,37 +204,30 @@
 lib/ecl/encodings/windows-cp949.bin
 lib/ecl/encodings/windows-cp950.bin
 lib/ecl/help.doc
-lib/ecl/libasdf.a
-lib/ecl/libcmp.a
-lib/ecl/libdeflate.a
-lib/ecl/libdefsystem.a
-lib/ecl/libecl-cdb.a
-lib/ecl/libecl-curl.a
-lib/ecl/libecl-help.a
-lib/ecl/libecl-quicklisp.a
-lib/ecl/libpackage-locks.a
-lib/ecl/libprofile.a
-lib/ecl/libql-minitar.a
-lib/ecl/librt.a
-lib/ecl/libsb-bsd-sockets.a
-lib/ecl/libserve-event.a
-lib/ecl/libsockets.a
+@static-lib lib/ecl/libasdf.a
+@static-lib lib/ecl/libcmp.a
+@static-lib lib/ecl/libdeflate.a
+@static-lib lib/ecl/libecl-cdb.a
+@static-lib lib/ecl/libecl-curl.a
+@static-lib lib/ecl/libecl-help.a
+@static-lib lib/ecl/libecl-quicklisp.a
+@static-lib lib/ecl/libpackage-locks.a
+@static-lib lib/ecl/libql-minitar.a
+@static-lib lib/ecl/libsb-bsd-sockets.a
+@static-lib lib/ecl/libserve-event.a
+@static-lib lib/ecl/libsockets.a
 lib/ecl/package-locks.asd
-lib/ecl/package-locks.fas
+@bin lib/ecl/package-locks.fas
 lib/ecl/prebuilt-asdf.asd
-lib/ecl/profile.asd
-lib/ecl/profile.fas
 lib/ecl/ql-minitar.asd
-lib/ecl/ql-minitar.fas
-lib/ecl/rt.asd
-lib/ecl/rt.fas
+@bin lib/ecl/ql-minitar.fas
 lib/ecl/sb-bsd-sockets.asd
-lib/ecl/sb-bsd-sockets.fas
+@bin lib/ecl/sb-bsd-sockets.fas
 lib/ecl/serve-event.asd
-lib/ecl/serve-event.fas
+@bin lib/ecl/serve-event.fas
 lib/ecl/sockets.asd
-lib/ecl/sockets.fas
-lib/libecl.so
+@bin lib/ecl/sockets.fas
+@so lib/libecl.so
 @lib lib/libecl.so.${LIBecl_VERSION}
 @man man/man1/ecl-config.1
 @man man/man1/ecl.1

Reply | Threaded
Open this post in threaded view
|

Re: Update lang/ecl to 20.4.24

Kurt Mosiejczuk-9
On Tue, May 19, 2020 at 08:59:48AM -0700, Josh Elsasser wrote:
> Here's a quick update to the new release, minimally tested as a
> lang/sbcl build host. The patch removes files, don't forget patch -E

Someone should do testing with math/maxima, net/clic, and sysutils/reed-alert.

--Kurt

> diff -ruN --exclude .git /usr/ports/lang/ecl/Makefile ./Makefile
> --- /usr/ports/lang/ecl/Makefile Tue Feb 18 15:29:40 2020
> +++ ./Makefile Mon May 18 09:44:49 2020
> @@ -5,10 +5,9 @@
>  
>  BROKEN-mips64 = ecl_min fails
>  
> -V = 16.1.3
> +V = 20.4.24
>  DISTNAME = ecl-$V
> -SHARED_LIBS += ecl 6.0
> -REVISION = 3
> +SHARED_LIBS += ecl 7.0
>  
>  HOMEPAGE = https://common-lisp.net/project/ecl/
>  MAINTAINER = Timo Myyra <[hidden email]>
> @@ -21,12 +20,14 @@
>  
>  MASTER_SITES = ${HOMEPAGE}static/files/release/
>  
> +COMPILER = base-clang ports-gcc
>  USE_GMAKE = Yes
>  CONFIGURE_STYLE = gnu
>  TEST_TARGET = check
>  CONFIGURE_ENV += CPPFLAGS=-I${LOCALBASE}/include \
>   ECLLIB_VERSION=${LIBecl_VERSION} \
> - ecldir=${LOCALBASE}/lib/ecl
> + ecldir=${LOCALBASE}/lib/ecl \
> + MAKEINFO=${PREFIX}/bin/gmakeinfo
>  
>  CONFIGURE_ARGS += --enable-boehm=system \
>   --enable-libatomic=system \
> @@ -38,6 +39,8 @@
>  CONFIGURE_ENV += ETAGS=/usr/bin/true
>  
>  WANTLIB += atomic_ops c ffi gc gmp m pthread
> +
> +BUILD_DEPENDS += print/texinfo
>  
>  LIB_DEPENDS += devel/gmp \
>   devel/boehm-gc,-main \
> diff -ruN --exclude .git /usr/ports/lang/ecl/distinfo ./distinfo
> --- /usr/ports/lang/ecl/distinfo Mon May 15 13:40:18 2017
> +++ ./distinfo Mon May 18 09:44:49 2020
> @@ -1,2 +1,2 @@
> -SHA256 (ecl-16.1.3.tgz) = dqWFxhbo+oOmtyCTJaMJ2lvAymjgZY85b0mVVjgRElQ=
> -SIZE (ecl-16.1.3.tgz) = 7459212
> +SHA256 (ecl-20.4.24.tgz) = Zwg47fJYqTa1Iv22INozbefldaoNJ+NIQXJyUnJtDwc=
> +SIZE (ecl-20.4.24.tgz) = 7815444
> diff -ruN --exclude .git /usr/ports/lang/ecl/patches/patch-src_Makefile_in ./patches/patch-src_Makefile_in
> --- /usr/ports/lang/ecl/patches/patch-src_Makefile_in Mon May 15 13:40:18 2017
> +++ ./patches/patch-src_Makefile_in Sun Mar 22 08:45:49 2020
> @@ -1,7 +1,8 @@
>  $OpenBSD: patch-src_Makefile_in,v 1.6 2016/12/20 20:12:29 juanfra Exp $
> ---- src/Makefile.in.orig Mon Dec 19 21:24:59 2016
> -+++ src/Makefile.in Mon Dec 19 21:27:43 2016
> -@@ -296,30 +296,15 @@ install:
> +Index: src/Makefile.in
> +--- src/Makefile.in.orig
> ++++ src/Makefile.in
> +@@ -212,30 +212,15 @@ install:
>   for i in `(cd ecl && find . -name '*.h')`; do echo $$i; \
>    $(INSTALL_DATA) ecl/$$i $(DESTDIR)$(includedir)/ecl/$$i; \
>   done
> @@ -18,7 +19,7 @@
>  -   $(INSTALL_LIBRARY) $$i $(DESTDIR)$(libdir); \
>  -  fi \
>  - done
> -- if [ "x@SONAME3@" != "x" -a -f "@SONAME3@" ]; then \
> +- if [ "x@SONAME3@" != "x" -a -f "@SONAME3@" -a "@SONAME@" != "@SONAME3@" ]; then \
>  -  ( $(INSTALL_LIBRARY) @SONAME3@ $(DESTDIR)$(libdir) && \
>  -    cd $(DESTDIR)$(libdir) && $(RM) -f @SONAME2@ @SONAME1@ @SONAME@ && \
>  -    $(LN_S) @SONAME3@ @SONAME2@ && \
> @@ -27,12 +28,12 @@
>  - fi
>  + ${INSTALL_LIBRARY} libecl.so $(DESTDIR)$(libdir)/$(LSP_LIBRARIES)
>  + cd $(DESTDIR)$(libdir) && ln -sf $(LSP_LIBRARIES) libecl.so
> - $(INSTALL_PROGRAM) $(DPP) $(DESTDIR)$(ecldir)
> + $(INSTALL_PROGRAM) c/$(DPP) $(DESTDIR)$(ecldir)
>   $(INSTALL_PROGRAM) $(ECL_MIN) $(DESTDIR)$(ecldir)
>   for i in `cat modules`; do \
>    case $$i in \
>  -    *.fas) $(INSTALL_PROGRAM) $$i $(DESTDIR)$(ecldir);; \
> -+    *.fas) $(INSTALL_DATA) $$i $(DESTDIR)$(ecldir);; \
> ++    *.fas) $(INSTALL_SCRIPT) $$i $(DESTDIR)$(ecldir);; \
>      *) $(INSTALL_DATA) $$i $(DESTDIR)$(ecldir);; \
>    esac \
>   done
> diff -ruN --exclude .git /usr/ports/lang/ecl/patches/patch-src_c_ffi_d ./patches/patch-src_c_ffi_d
> --- /usr/ports/lang/ecl/patches/patch-src_c_ffi_d Tue Feb 18 15:29:40 2020
> +++ ./patches/patch-src_c_ffi_d Wed Dec 31 16:00:00 1969
> @@ -1,26 +0,0 @@
> -$OpenBSD: patch-src_c_ffi_d,v 1.1 2020/02/12 19:42:02 jasper Exp $
> -
> -libffi for x86_64 doesn't define FFI_SYSV anymore for FFI_UNIX64 should used instead
> -fixed upstream with https://gitlab.com/embeddable-common-lisp/ecl/commit/b2f09b4809441a92d6c11a2b39d5399580e56ae7
> -
> -Index: src/c/ffi.d
> ---- src/c/ffi.d.orig
> -+++ src/c/ffi.d
> -@@ -132,10 +132,15 @@ static struct {
> -   {@':stdcall', FFI_STDCALL},
> - #elif defined(X86_WIN64)
> -   {@':win64', FFI_WIN64},
> --#elif defined(X86_ANY) || defined(X86) || defined(X86_64)
> -+#elif defined(X86_ANY) || defined(X86)
> -+#if defined(X86_64)
> -+  {@':cdecl', FFI_UNIX64},
> -+  {@':sysv', FFI_UNIX64},
> -+  {@':unix64', FFI_UNIX64},
> -+#else
> -   {@':cdecl', FFI_SYSV},
> -   {@':sysv', FFI_SYSV},
> --  {@':unix64', FFI_UNIX64},
> -+#endif
> - #endif
> - };
> -
> diff -ruN --exclude .git /usr/ports/lang/ecl/patches/patch-src_c_numbers_atan_d ./patches/patch-src_c_numbers_atan_d
> --- /usr/ports/lang/ecl/patches/patch-src_c_numbers_atan_d Wed Dec 28 11:38:56 2016
> +++ ./patches/patch-src_c_numbers_atan_d Wed Dec 31 16:00:00 1969
> @@ -1,69 +0,0 @@
> -$OpenBSD: patch-src_c_numbers_atan_d,v 1.1 2016/12/28 19:38:56 juanfra Exp $
> -backport commit 5199c6acd1694211a47dd558220d13fd82265ce0 to fix maxima tests.
> ---- src/c/numbers/atan.d.orig Mon Dec 19 12:25:00 2016
> -+++ src/c/numbers/atan.d Wed Dec 28 09:12:06 2016
> -@@ -22,21 +22,23 @@
> - static double
> - ecl_atan2_double(double y, double x)
> - {
> --  if (signbit(x)) {
> -+  if (x == 0) {
> -     if (signbit(y)) {
> --      return -ECL_PI_D + atan(-y / -x);
> -+      return -ECL_PI2_D;
> -     } else if (y == 0) {
> --      return ECL_PI_D;
> -+      /* Signals floating-point-invalid-operation. If not trapped,
> -+         produces NaN. */
> -+      return x / y;
> -     } else {
> --      return ECL_PI_D - atan(y / -x);
> -+      return ECL_PI2_D;
> -     }
> --  } else if (x == 0) {
> -+  } else if (signbit(x)) {
> -     if (signbit(y)) {
> --      return -ECL_PI2_D;
> -+      return -ECL_PI_D + atan(-y / -x);
> -     } else if (y == 0) {
> --      return x / y;  /* Produces a NaN */
> -+      return ECL_PI_D;
> -     } else {
> --      return ECL_PI2_D;
> -+      return ECL_PI_D - atan(y / -x);
> -     }
> -   } else {
> -     if (signbit(y)) {
> -@@ -53,21 +55,24 @@ ecl_atan2_double(double y, double x)
> - static long double
> - ecl_atan2_long_double(long double y, long double x)
> - {
> --  if (signbit(x)) {
> -+  if (x == 0) {
> -     if (signbit(y)) {
> --      return -ECL_PI_L + atanl(-y / -x);
> -+      return -ECL_PI2_L;
> -     } else if (y == 0) {
> --      return ECL_PI_L;
> -+      /* Signals floating-point-invalid-operation. If not trapped,
> -+         produces NaN. */
> -+      return x / y;
> -     } else {
> --      return ECL_PI_L - atanl(y / -x);
> -+      return ECL_PI2_L;
> -     }
> --  } else if (x == 0) {
> -+  }
> -+  else if (signbit(x)) {
> -     if (signbit(y)) {
> --      return -ECL_PI2_L;
> -+      return -ECL_PI_L + atanl(-y / -x);
> -     } else if (y == 0) {
> --      return x / y;  /* Produces a NaN */
> -+      return ECL_PI_L;
> -     } else {
> --      return ECL_PI2_L;
> -+      return ECL_PI_L - atanl(y / -x);
> -     }
> -   } else {
> -     if (signbit(y)) {
> diff -ruN --exclude .git /usr/ports/lang/ecl/patches/patch-src_configure ./patches/patch-src_configure
> --- /usr/ports/lang/ecl/patches/patch-src_configure Mon May 15 13:40:18 2017
> +++ ./patches/patch-src_configure Sun Mar 22 08:44:02 2020
> @@ -1,7 +1,8 @@
>  $OpenBSD: patch-src_configure,v 1.8 2016/12/20 20:12:29 juanfra Exp $
> ---- src/configure.orig Mon Dec 19 21:30:13 2016
> -+++ src/configure Mon Dec 19 21:31:37 2016
> -@@ -4971,7 +4971,7 @@ LSP_FEATURES="(cons :android ${LSP_FEATURES})"
> +Index: src/configure
> +--- src/configure.orig
> ++++ src/configure
> +@@ -5050,7 +5050,7 @@ LSP_FEATURES="(cons :android ${LSP_FEATURES})"
>                   BUNDLE_LDFLAGS="-shared ${LDFLAGS}"
>                   ECL_LDRPATH="-Wl,--rpath,~A"
>                   clibs="-lpthread ${clibs}"
> @@ -10,7 +11,7 @@
>                   SONAME_LDFLAGS="-Wl,-soname,SONAME"
>                   ;;
>           solaris*)
> -@@ -9509,7 +9509,7 @@ if test ${enable_shared} = "yes"; then
> +@@ -9682,7 +9682,7 @@ if test ${enable_shared} = "yes"; then
>  
>   $as_echo "#define ENABLE_DLOPEN 1" >>confdefs.h
>  
> diff -ruN --exclude .git /usr/ports/lang/ecl/pkg/PLIST ./pkg/PLIST
> --- /usr/ports/lang/ecl/pkg/PLIST Mon May 15 13:40:18 2017
> +++ ./pkg/PLIST Sun Mar 22 11:08:19 2020
> @@ -13,6 +13,7 @@
>  include/ecl/ecl-cmp.h
>  include/ecl/ecl-inl.h
>  include/ecl/ecl.h
> +include/ecl/ecl_atomics.h
>  include/ecl/external.h
>  include/ecl/gc/
>  include/ecl/gc/private/
> @@ -26,26 +27,26 @@
>  include/ecl/number.h
>  include/ecl/object.h
>  include/ecl/page.h
> +include/ecl/stack-resize.h
>  include/ecl/stacks.h
> +info/ecl.info.gz
>  lib/ecl/
>  lib/ecl/COPYING
>  lib/ecl/LICENSE
> -lib/ecl/asdf.fas
> +@bin lib/ecl/asdf.fas
>  lib/ecl/cmp.asd
> -lib/ecl/cmp.fas
> +@bin lib/ecl/cmp.fas
>  lib/ecl/deflate.asd
> -lib/ecl/deflate.fas
> -lib/ecl/defsystem.asd
> -lib/ecl/defsystem.fas
> +@bin lib/ecl/deflate.fas
>  @bin lib/ecl/dpp
>  lib/ecl/ecl-cdb.asd
> -lib/ecl/ecl-cdb.fas
> +@bin lib/ecl/ecl-cdb.fas
>  lib/ecl/ecl-curl.asd
> -lib/ecl/ecl-curl.fas
> +@bin lib/ecl/ecl-curl.fas
>  lib/ecl/ecl-help.asd
> -lib/ecl/ecl-help.fas
> +@bin lib/ecl/ecl-help.fas
>  lib/ecl/ecl-quicklisp.asd
> -lib/ecl/ecl-quicklisp.fas
> +@bin lib/ecl/ecl-quicklisp.fas
>  @bin lib/ecl/ecl_min
>  lib/ecl/encodings/
>  lib/ecl/encodings/arabic
> @@ -203,37 +204,30 @@
>  lib/ecl/encodings/windows-cp949.bin
>  lib/ecl/encodings/windows-cp950.bin
>  lib/ecl/help.doc
> -lib/ecl/libasdf.a
> -lib/ecl/libcmp.a
> -lib/ecl/libdeflate.a
> -lib/ecl/libdefsystem.a
> -lib/ecl/libecl-cdb.a
> -lib/ecl/libecl-curl.a
> -lib/ecl/libecl-help.a
> -lib/ecl/libecl-quicklisp.a
> -lib/ecl/libpackage-locks.a
> -lib/ecl/libprofile.a
> -lib/ecl/libql-minitar.a
> -lib/ecl/librt.a
> -lib/ecl/libsb-bsd-sockets.a
> -lib/ecl/libserve-event.a
> -lib/ecl/libsockets.a
> +@static-lib lib/ecl/libasdf.a
> +@static-lib lib/ecl/libcmp.a
> +@static-lib lib/ecl/libdeflate.a
> +@static-lib lib/ecl/libecl-cdb.a
> +@static-lib lib/ecl/libecl-curl.a
> +@static-lib lib/ecl/libecl-help.a
> +@static-lib lib/ecl/libecl-quicklisp.a
> +@static-lib lib/ecl/libpackage-locks.a
> +@static-lib lib/ecl/libql-minitar.a
> +@static-lib lib/ecl/libsb-bsd-sockets.a
> +@static-lib lib/ecl/libserve-event.a
> +@static-lib lib/ecl/libsockets.a
>  lib/ecl/package-locks.asd
> -lib/ecl/package-locks.fas
> +@bin lib/ecl/package-locks.fas
>  lib/ecl/prebuilt-asdf.asd
> -lib/ecl/profile.asd
> -lib/ecl/profile.fas
>  lib/ecl/ql-minitar.asd
> -lib/ecl/ql-minitar.fas
> -lib/ecl/rt.asd
> -lib/ecl/rt.fas
> +@bin lib/ecl/ql-minitar.fas
>  lib/ecl/sb-bsd-sockets.asd
> -lib/ecl/sb-bsd-sockets.fas
> +@bin lib/ecl/sb-bsd-sockets.fas
>  lib/ecl/serve-event.asd
> -lib/ecl/serve-event.fas
> +@bin lib/ecl/serve-event.fas
>  lib/ecl/sockets.asd
> -lib/ecl/sockets.fas
> -lib/libecl.so
> +@bin lib/ecl/sockets.fas
> +@so lib/libecl.so
>  @lib lib/libecl.so.${LIBecl_VERSION}
>  @man man/man1/ecl-config.1
>  @man man/man1/ecl.1
>

Reply | Threaded
Open this post in threaded view
|

Re: Update lang/ecl to 20.4.24

Solene Rapenne
Le Tue, 19 May 2020 13:13:06 -0400,
Kurt Mosiejczuk <[hidden email]> a écrit :

> On Tue, May 19, 2020 at 08:59:48AM -0700, Josh Elsasser wrote:
> > Here's a quick update to the new release, minimally tested as a
> > lang/sbcl build host. The patch removes files, don't forget patch
> > -E  
>
> Someone should do testing with math/maxima, net/clic, and
> sysutils/reed-alert.

sysutils/reed-alert still work fine with this update
net/clic will build but fail to start, I'm investigating about this but
I think I'll have to rework a bit the code (I'm upstream for both).

I'm very happy to see this ecl update though!

Reply | Threaded
Open this post in threaded view
|

Re: Update lang/ecl to 20.4.24

Timo Myyrä-6
On Wed, May 20, 2020, at 00:41, Solene Rapenne wrote:

> Le Tue, 19 May 2020 13:13:06 -0400,
> Kurt Mosiejczuk <[hidden email]> a écrit :
>
> > On Tue, May 19, 2020 at 08:59:48AM -0700, Josh Elsasser wrote:
> > > Here's a quick update to the new release, minimally tested as a
> > > lang/sbcl build host. The patch removes files, don't forget patch
> > > -E  
> >
> > Someone should do testing with math/maxima, net/clic, and
> > sysutils/reed-alert.
>
> sysutils/reed-alert still work fine with this update
> net/clic will build but fail to start, I'm investigating about this but
> I think I'll have to rework a bit the code (I'm upstream for both).
>
> I'm very happy to see this ecl update though!
>
>

The diff itself looks good, on ecl release I quickly tested it but got some test failures on ecl test suite and couldn't run math/maxima tests at all so i forgot it.
At least the maxima tests should pass so that ecl could be updated.

timo

Reply | Threaded
Open this post in threaded view
|

Re: Update lang/ecl to 20.4.24

Josh Elsasser
In reply to this post by Kurt Mosiejczuk-9
On Tue, May 19, 2020 at 01:13:06PM -0400, Kurt Mosiejczuk wrote:
> On Tue, May 19, 2020 at 08:59:48AM -0700, Josh Elsasser wrote:
> > Here's a quick update to the new release, minimally tested as a
> > lang/sbcl build host. The patch removes files, don't forget patch -E
>
> Someone should do testing with math/maxima, net/clic, and sysutils/reed-alert.
>
> --Kurt

Maxima needs an upstream patch to build with ecl 20.4.24. This should
be safe to commit now, before updating ecl.

diff --git a/math/maxima/patches/patch-lisp-utils_defsystem_lisp b/math/maxima/patches/patch-lisp-utils_defsystem_lisp
new file mode 100644
index 00000000000..b3fd1683402
--- /dev/null
+++ b/math/maxima/patches/patch-lisp-utils_defsystem_lisp
@@ -0,0 +1,17 @@
+$OpenBSD$
+
+Upstream commit 615b4bf8b13d55a576bc60ad04f7b17d75f49021
+Fix for Bug #3629, to compile with ECL 20.4.24
+
+Index: lisp-utils/defsystem.lisp
+--- lisp-utils/defsystem.lisp.orig
++++ lisp-utils/defsystem.lisp
+@@ -4152,7 +4152,7 @@ the system definition, if provided."
+       #+:ecl
+       (progn
+         (ext:package-lock "CL" nil)
+-        (setf (symbol-function 'lisp:require)
++        (setf (symbol-function 'cl:require)
+               (symbol-function 'new-require))
+         (ext:package-lock "CL" t))
+       #+:lispworks
diff --git a/math/maxima/patches/patch-src_maxima_system b/math/maxima/patches/patch-src_maxima_system
new file mode 100644
index 00000000000..5d651aa002e
--- /dev/null
+++ b/math/maxima/patches/patch-src_maxima_system
@@ -0,0 +1,18 @@
+$OpenBSD$
+
+Upstream commit 615b4bf8b13d55a576bc60ad04f7b17d75f49021
+Fix for Bug #3629, to compile with ECL 20.4.24
+
+Index: src/maxima.system
+--- src/maxima.system.orig
++++ src/maxima.system
+@@ -80,8 +80,7 @@
+  (let ((x (symbol-value (find-symbol "*AUTOCONF-LD-FLAGS*"
+      (find-package "MAXIMA")))))
+    (if (and x (not (string= x ""))) (list x)))
+-  :epilogue-code '(progn (require :defsystem)
+-         (cl-user::run)))))))
++  :epilogue-code '(progn (cl-user::run)))))))
+
+ (defun maxima-binary-pathname ()
+   #+clisp

Reply | Threaded
Open this post in threaded view
|

Re: Update lang/ecl to 20.4.24

Ingo Feinerer-2
On Sat, May 30, 2020 at 08:32:23AM -0700, Josh Elsasser wrote:

> Maxima needs an upstream patch to build with ecl 20.4.24. This should
> be safe to commit now, before updating ecl.
>
> diff --git a/math/maxima/patches/patch-lisp-utils_defsystem_lisp b/math/maxima/patches/patch-lisp-utils_defsystem_lisp
> new file mode 100644
> index 00000000000..b3fd1683402
> --- /dev/null
> +++ b/math/maxima/patches/patch-lisp-utils_defsystem_lisp
> @@ -0,0 +1,17 @@
> +$OpenBSD$
> +
> +Upstream commit 615b4bf8b13d55a576bc60ad04f7b17d75f49021
> +Fix for Bug #3629, to compile with ECL 20.4.24
> +
> +Index: lisp-utils/defsystem.lisp
> +--- lisp-utils/defsystem.lisp.orig
> ++++ lisp-utils/defsystem.lisp
> +@@ -4152,7 +4152,7 @@ the system definition, if provided."
> +       #+:ecl
> +       (progn
> +         (ext:package-lock "CL" nil)
> +-        (setf (symbol-function 'lisp:require)
> ++        (setf (symbol-function 'cl:require)
> +               (symbol-function 'new-require))
> +         (ext:package-lock "CL" t))
> +       #+:lispworks
> diff --git a/math/maxima/patches/patch-src_maxima_system b/math/maxima/patches/patch-src_maxima_system
> new file mode 100644
> index 00000000000..5d651aa002e
> --- /dev/null
> +++ b/math/maxima/patches/patch-src_maxima_system
> @@ -0,0 +1,18 @@
> +$OpenBSD$
> +
> +Upstream commit 615b4bf8b13d55a576bc60ad04f7b17d75f49021
> +Fix for Bug #3629, to compile with ECL 20.4.24
> +
> +Index: src/maxima.system
> +--- src/maxima.system.orig
> ++++ src/maxima.system
> +@@ -80,8 +80,7 @@
> +  (let ((x (symbol-value (find-symbol "*AUTOCONF-LD-FLAGS*"
> +      (find-package "MAXIMA")))))
> +    (if (and x (not (string= x ""))) (list x)))
> +-  :epilogue-code '(progn (require :defsystem)
> +-         (cl-user::run)))))))
> ++  :epilogue-code '(progn (cl-user::run)))))))
> +
> + (defun maxima-binary-pathname ()
> +   #+clisp

Committed. Thanks for the patch!

Best regards,
Ingo

Reply | Threaded
Open this post in threaded view
|

Re: Update lang/ecl to 20.4.24

Timo Myyrä-6
On Sun, May 31, 2020, at 10:43, Ingo Feinerer wrote:

> On Sat, May 30, 2020 at 08:32:23AM -0700, Josh Elsasser wrote:
> > Maxima needs an upstream patch to build with ecl 20.4.24. This should
> > be safe to commit now, before updating ecl.
> >
> > diff --git a/math/maxima/patches/patch-lisp-utils_defsystem_lisp b/math/maxima/patches/patch-lisp-utils_defsystem_lisp
> > new file mode 100644
> > index 00000000000..b3fd1683402
> > --- /dev/null
> > +++ b/math/maxima/patches/patch-lisp-utils_defsystem_lisp
> > @@ -0,0 +1,17 @@
> > +$OpenBSD$
> > +
> > +Upstream commit 615b4bf8b13d55a576bc60ad04f7b17d75f49021
> > +Fix for Bug #3629, to compile with ECL 20.4.24
> > +
> > +Index: lisp-utils/defsystem.lisp
> > +--- lisp-utils/defsystem.lisp.orig
> > ++++ lisp-utils/defsystem.lisp
> > +@@ -4152,7 +4152,7 @@ the system definition, if provided."
> > +       #+:ecl
> > +       (progn
> > +         (ext:package-lock "CL" nil)
> > +-        (setf (symbol-function 'lisp:require)
> > ++        (setf (symbol-function 'cl:require)
> > +               (symbol-function 'new-require))
> > +         (ext:package-lock "CL" t))
> > +       #+:lispworks
> > diff --git a/math/maxima/patches/patch-src_maxima_system b/math/maxima/patches/patch-src_maxima_system
> > new file mode 100644
> > index 00000000000..5d651aa002e
> > --- /dev/null
> > +++ b/math/maxima/patches/patch-src_maxima_system
> > @@ -0,0 +1,18 @@
> > +$OpenBSD$
> > +
> > +Upstream commit 615b4bf8b13d55a576bc60ad04f7b17d75f49021
> > +Fix for Bug #3629, to compile with ECL 20.4.24
> > +
> > +Index: src/maxima.system
> > +--- src/maxima.system.orig
> > ++++ src/maxima.system
> > +@@ -80,8 +80,7 @@
> > +  (let ((x (symbol-value (find-symbol "*AUTOCONF-LD-FLAGS*"
> > +      (find-package "MAXIMA")))))
> > +    (if (and x (not (string= x ""))) (list x)))
> > +-  :epilogue-code '(progn (require :defsystem)
> > +-         (cl-user::run)))))))
> > ++  :epilogue-code '(progn (cl-user::run)))))))
> > +
> > + (defun maxima-binary-pathname ()
> > +   #+clisp
>
> Committed. Thanks for the patch!
>
> Best regards,
> Ingo
>
>

Did you get the maxima tests to run as well? I didn't have success yet with those although the compilation worked.

Timo

Reply | Threaded
Open this post in threaded view
|

Re: Update lang/ecl to 20.4.24

Ingo Feinerer-2
On Tue, Jun 02, 2020 at 07:01:57AM +0300, Timo Myyrä wrote:
> Did you get the maxima tests to run as well? I didn't have success yet
> with those although the compilation worked.

How did you run the tests?

`make test` runs a test suite but the results are only written to a log
file (pobj/maxima-5.43.2/maxima-5.43.2/tests/ecl-test.sh.log). As the
tests take some time the test suite might appear to hang.

The same test suite can be triggered manually if you start xmaxima and
click on the `Maxima->Run Tests` menu entry. The output is immediately
shown in the input/output window.

Best regards,
Ingo

Reply | Threaded
Open this post in threaded view
|

Re: Update lang/ecl to 20.4.24

Timo Myyrä-6


On Tue, Jun 2, 2020, at 12:16, Ingo Feinerer wrote:

> On Tue, Jun 02, 2020 at 07:01:57AM +0300, Timo Myyrä wrote:
> > Did you get the maxima tests to run as well? I didn't have success yet
> > with those although the compilation worked.
>
> How did you run the tests?
>
> `make test` runs a test suite but the results are only written to a log
> file (pobj/maxima-5.43.2/maxima-5.43.2/tests/ecl-test.sh.log). As the
> tests take some time the test suite might appear to hang.
>
> The same test suite can be triggered manually if you start xmaxima and
> click on the `Maxima->Run Tests` menu entry. The output is immediately
> shown in the input/output window.
>
> Best regards,
> Ingo
>

I did use the make test. Wondered a bit about the lack of output mut noticed with ktrace it has doing the tests so I waited. I'll check again later to see if the exact failure.

Timo

Reply | Threaded
Open this post in threaded view
|

Re: Update lang/ecl to 20.4.24

Timo Myyrä-6
On Tue, Jun 2, 2020, at 12:20, Timo Myyrä wrote:

>
>
> On Tue, Jun 2, 2020, at 12:16, Ingo Feinerer wrote:
> > On Tue, Jun 02, 2020 at 07:01:57AM +0300, Timo Myyrä wrote:
> > > Did you get the maxima tests to run as well? I didn't have success yet
> > > with those although the compilation worked.
> >
> > How did you run the tests?
> >
> > `make test` runs a test suite but the results are only written to a log
> > file (pobj/maxima-5.43.2/maxima-5.43.2/tests/ecl-test.sh.log). As the
> > tests take some time the test suite might appear to hang.
> >
> > The same test suite can be triggered manually if you start xmaxima and
> > click on the `Maxima->Run Tests` menu entry. The output is immediately
> > shown in the input/output window.
> >
> > Best regards,
> > Ingo
> >
>
> I did use the make test. Wondered a bit about the lack of output mut
> noticed with ktrace it has doing the tests so I waited. I'll check
> again later to see if the exact failure.
>
> Timo
>
>

I run the tests and got following output:

Running the testsuite...
;;; Loading #P"/usr/local/lib/ecl/sb-bsd-sockets.fas"
;;; Loading #P"/usr/local/lib/ecl/sockets.fas"
Maxima 5.43.2 http://maxima.sourceforge.net
using Lisp ECL 20.4.24
Distributed under the GNU Public License. See the file COPYING.
Dedicated to the memory of William Schelter.
The function bug_report() provides bug reporting information.
(%i1) build_info()
(%o1)
Maxima version: "5.43.2"
Maxima build date: "2020-05-31 08:38:24"
Host type: "x86_64-unknown-openbsd6.7"
Lisp implementation type: "ECL"
Lisp implementation version: "20.4.24"
User dir: "/maxima-5.43.2_writes_to_HOME/.maxima"
Temp dir: "/tmp"
Object dir: "/usr/ports/pobj/maxima-5.43.2/maxima-5.43.2/binary/5_43_2/ecl/20_4_24"
Frontend: false
(%i2) testsuite_files:append(["rtest_ask.mac"],testsuite_files)
(%o2) [rtest_ask.mac, [rtest_rules], rtestnset,
[rtest1, [115, 183, 185, 186]], [rtest1a, [33]], [rtest2, [86, 95]], rtest4,
[rtest5], [rtest6, [43, 45, 46]], rtest6a, rtest6b, rtest7, rtest9, [rtest9a],
[rtest10, [24, 25]], [rtest11], rtest13, rtest13s,
[rtest14, [145, 201, 233, 234, 249, 250, 251, 252, 267, 297, 298, 307, 310,
312, 315, 319]], rtest15, [rtest16, [50, 524, 525, 561]], rtestode,
rtestode_zp, rtest3, [rtest8, [104]], [rtest12, [76, 78]], rexamples,
[rtesthyp, [105, 112, 113, 123, 124, 128]], [rtest_hypgeo, [143]],
rtestmt19937, rtest_allnummod, rtestconjugate, [rtestsum, [3, 4, 18, 75]],
[rtest_trig], rtest_zeta, rtest_diff_invtrig, rtest_scalarp, rtest_everysome,
[rtestint, [232]], rtest_numth, rtestifactor, [rtest_equal, [157, 160]],
rtest_abs, [rtest_taylor, [88, 91, 97, 104, 128, 129]], [rtest_dot],
rtest_mset, rtest_boolean, rtest_round, [rtest_map, [2, 3, 4]],
[rtest_sign, [21, 25, 30, 40, 65, 72, 79]], rtest_algebraic, [rtest_gamma],
rtest_expintegral, rtest_signum, rtest_lambert_w,
[rtest_elliptic, [129, 143]], rtest_integrate, rtest_integrate_special,
[rtest_sqrt, [89]], [rtest_carg, [40, 41]], [rtest_log],
[rtest_power, [19, 20, 26, 58, 65]], rtestdefstruct, [rtest_limit],
rtest_powerseries, [rtest_laplace, [29, 49, 50, 51, 54, 59, 60, 61, 62, 78,
80]], rtest_plotoptions, rtest_algsys, rtest_trace]
(%i3) run_testsuite(share_tests = true)
Testsuite run for ECL 20.4.24:
Running tests in rtest_ask.mac: 135/135 tests passed
Running tests in rtest_rules: 119/119 tests passed
Running tests in rtestnset: 617/617 tests passed
Running tests in rtest1:
********************** Problem 115 (line 341) ***************
Input:
(batch(file_search(test_readbase_maxima, file_search_tests)),
                                                        test_readbase_maxima())


Result:

read and interpret /usr/ports/pobj/maxima-5.43.2/maxima-5.43.2/tests/test_readbase_maxima.mac
(%i1) test_readbase_maxima():=[4,3,2,1,40,30,20,10]
(%o1)       test_readbase_maxima() := [4, 3, 2, 1, 40, 30, 20, 10]
[4, 3, 2, 1, 40, 30, 20, 10]

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.
185/185 tests passed (not counting 4 expected errors)

The following 1 problem passed but was expected to fail: (115)
Running tests in rtest1a: 34/34 tests passed (not counting 1 expected errors)
Running tests in rtest2: 287/287 tests passed (not counting 2 expected errors)
Running tests in rtest4: 94/94 tests passed
Running tests in rtest5: 83/83 tests passed
Running tests in rtest6:
********************** Problem 43 (line 166) ***************
Input:
(string(2.0e-7), (%% = 2.0e-7) or (%% = 2.0E-7) or %%)


Result:
true

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.

********************** Problem 45 (line 172) ***************
Input:
          1
(string(------), (%% = 9.765625e-4) or (%% = 9.765625E-4) or %%)
        1024.0


Result:
true

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.
42/42 tests passed (not counting 3 expected errors)

The following 2 problems passed but were expected to fail: (43 45)
Running tests in rtest6a: 65/65 tests passed
Running tests in rtest6b: 27/27 tests passed
Running tests in rtest7: 85/85 tests passed
Running tests in rtest9: 89/89 tests passed
Running tests in rtest9a: 76/76 tests passed
Running tests in rtest10: 60/60 tests passed (not counting 2 expected errors)
Running tests in rtest11: 245/245 tests passed
Running tests in rtest13: 23/23 tests passed
Running tests in rtest13s: 17/17 tests passed
Running tests in rtest14:
********************** Problem 145 (line 1077) ***************
Input:
closeto(AS_10_4_17(- 10), 1.0e-15)


Result:
true

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.

********************** Problem 201 (line 1292) ***************
Input:
test_bessel(bessel_j(- 2.3, 1.0 + %i),
                                0.1920598664138632 - 0.5158676904105332 %i, 14)


Result:
true

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.

********************** Problem 233 (line 1416) ***************
Input:
test_bessel(bessel_y(2.3, 1.0 + %i), (- 0.2476879981252862)
                                                   + 0.7595467103431256 %i, 15)


Result:
true

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.

********************** Problem 234 (line 1420) ***************
Input:
test_bessel(bessel_y(- 2.3, 1.0 + %i),
                            (- 0.1570442638685963) + 0.5821870838327466 %i, 14)


Result:
true

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.

********************** Problem 249 (line 1475) ***************
Input:
test_bessel(bessel_i(- 2.5, - 1.5), (- 0.8015666610717216) %i, 14)


Result:
true

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.

********************** Problem 250 (line 1478) ***************
Input:
test_bessel(bessel_i(- 2.5, 1.5), 0.8015666610717216, 14)


Result:
true

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.

********************** Problem 251 (line 1482) ***************
Input:
test_bessel(bessel_i(- 2.3, - 1.5), 0.373394526583023 - 0.5139334755917659 %i,
                                                                            15)


Result:
true

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.

********************** Problem 252 (line 1485) ***************
Input:
test_bessel(bessel_i(- 2.3, 1.5), 0.6352567117441515, 15)


Result:
true

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.

********************** Problem 267 (line 1544) ***************
Input:
test_bessel(bessel_i(- 2.3, 1.0 + %i),
                            (- 0.4053256245784623) - 0.3724481230406298 %i, 14)


Result:
true

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.

********************** Problem 297 (line 1661) ***************
Input:
test_bessel(bessel_k(2.3, 1.0 + %i), (- 0.6635905911278042)
                                                     - 1.02588948495693 %i, 15)


Result:
true

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.

********************** Problem 298 (line 1665) ***************
Input:
test_bessel(bessel_k(- 2.3, 1.0 + %i),
                              (- 0.6635905911278042) - 1.02588948495693 %i, 13)


Result:
true

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.

********************** Problem 307 (line 1757) ***************
Input:
test_wronskian(lambda([n, z], expand(w_jj(n, %i z))),
                                               (- 2.0) sin(n %pi)
                                lambda([n, z], ------------------), 1.0e-8, 10)
                                                    %i z %pi


Result:
[]

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.

********************** Problem 310 (line 1779) ***************
Input:
                                                               2.0
test_wronskian(lambda([n, z], w_jy(n, z %i)), lambda([n, z], --------),
                                                             z %i %pi
                                                                    1.0e-8, 10)


Result:
[]

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.

********************** Problem 312 (line 1795) ***************
Input:
                                    (- 2.0) sin(n %pi)
test_wronskian(w_ii, lambda([n, z], ------------------), 1.0e-10, 5)
                                          z %pi


Result:
[]

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.

********************** Problem 315 (line 1818) ***************
Input:
                                    1
test_wronskian(w_ik, lambda([n, z], -), 1.0e-10, 5)
                                    z


Result:
[]

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.

********************** Problem 319 (line 1846) ***************
Input:
                                                                - 4
test_wronskian(lambda([v, z], w_h1h2(v, z %i)), lambda([v, z], -----),
                                                               %pi z
                                                                    1.0e-13, 5)


Result:
[]

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.
402/402 tests passed (not counting 16 expected errors)

The following 16 problems passed but were expected to fail: (145 201 233 234
                                                             249 250 251 252
                                                             267 297 298 307
                                                             310 312 315 319)
Running tests in rtest15: 379/379 tests passed
Running tests in rtest16:
********************** Problem 50 (line 268) ***************
Input:
block([L1 : [[1.2E-10, 1.2E-9, 1.2E-8, 1.2E-7, 1.2E-6, 1.2E-5, 1.2E-4, 0.0012,
0.012, 0.12, 1.2, 1.2E+1, 1.2E+2, 1.2E+3, 1.2E+4, 1.2E+5, 1.2E+6, 1.2E+7,
1.2E+8, 1.2E+9, 1.2E+10], [1.23E-10, 1.23E-9, 1.23E-8, 1.23E-7, 1.23E-6,
1.23E-5, 1.23E-4, 0.00123, 0.0123, 0.123, 1.23, 12.3, 1.23E+2, 1.23E+3,
1.23E+4, 1.23E+5, 1.23E+6, 1.23E+7, 1.23E+8, 1.23E+9, 1.23E+10],
[1.234E-10, 1.234E-9, 1.234E-8, 1.234E-7, 1.234E-6, 1.234E-5, 1.234E-4,
0.001234, 0.01234, 0.1234, 1.234, 12.34, 123.4, 1.234E+3, 1.234E+4, 1.234E+5,
1.234E+6, 1.234E+7, 1.234E+8, 1.234E+9, 1.234E+10],
[1.2344E-10, 1.2344E-9, 1.2344E-8, 1.2344E-7, 1.2344E-6, 1.2344E-5, 1.2344E-4,
0.0012344, 0.012344, 0.12344, 1.2344, 12.344, 123.44, 1234.4, 1.2344E+4,
1.2344E+5, 1.2344E+6, 1.2344E+7, 1.2344E+8, 1.2344E+9, 1.2344E+10],
[1.23443E-10, 1.23443E-9, 1.23443E-8, 1.23443E-7, 1.23443E-6, 1.23443E-5,
1.23443E-4, 0.00123443, 0.0123443, 0.123443, 1.23443, 12.3443, 123.443,
1234.43, 12344.3, 1.23443E+5, 1.23443E+6, 1.23443E+7, 1.23443E+8, 1.23443E+9,
1.23443E+10], [1.234432E-10, 1.234432E-9, 1.234432E-8, 1.234432E-7,
1.234432E-6, 1.234432E-5, 1.234432E-4, 0.001234432, 0.01234432, 0.1234432,
1.234432, 12.34432, 123.4432, 1234.432, 12344.32, 123443.2, 1.234432E+6,
1.234432E+7, 1.234432E+8, 1.234432E+9, 1.234432E+10],
[1.2344321E-10, 1.2344321E-9, 1.2344321E-8, 1.2344321E-7, 1.2344321E-6,
1.2344321E-5, 1.2344321E-4, 0.0012344321, 0.012344321, 0.12344321, 1.2344321,
12.344321, 123.44321, 1234.4321, 12344.321, 123443.21, 1234432.1,
1.2344321E+7, 1.2344321E+8, 1.2344321E+9, 1.2344321E+10],
[1.23443211E-10, 1.23443211E-9, 1.23443211E-8, 1.23443211E-7, 1.23443211E-6,
1.23443211E-5, 1.23443211E-4, 0.00123443211, 0.0123443211, 0.123443211,
1.23443211, 12.3443211, 123.443211, 1234.43211, 12344.3211, 123443.211,
1234432.11, 1.23443211E+7, 1.23443211E+8, 1.23443211E+9, 1.23443211E+10],
[1.234432112E-10, 1.234432112E-9, 1.234432112E-8, 1.234432112E-7,
1.234432112E-6, 1.234432112E-5, 1.234432112E-4, 0.001234432112, 0.01234432112,
0.1234432112, 1.234432112, 12.34432112, 123.4432112, 1234.432112, 12344.32112,
123443.2112, 1234432.112, 1.234432112E+7, 1.234432112E+8, 1.234432112E+9,
1.234432112E+10], [1.2344321123E-10, 1.2344321123E-9, 1.2344321123E-8,
1.2344321123E-7, 1.2344321123E-6, 1.2344321123E-5, 1.2344321123E-4,
0.0012344321123, 0.012344321123, 0.12344321123, 1.2344321123, 12.344321123,
123.44321123, 1234.4321123, 12344.321123, 123443.21123, 1234432.1123,
1.2344321123E+7, 1.2344321123E+8, 1.2344321123E+9, 1.2344321123E+10],
[1.23443211234E-10, 1.23443211234E-9, 1.23443211234E-8, 1.23443211234E-7,
1.23443211234E-6, 1.23443211234E-5, 1.23443211234E-4, 0.00123443211234,
0.0123443211234, 0.123443211234, 1.23443211234, 12.3443211234, 123.443211234,
1234.43211234, 12344.3211234, 123443.211234, 1234432.11234, 1.23443211234E+7,
1.23443211234E+8, 1.23443211234E+9, 1.23443211234E+10],
[1.234432112344E-10, 1.234432112344E-9, 1.234432112344E-8, 1.234432112344E-7,
1.234432112344E-6, 1.234432112344E-5, 1.234432112344E-4, 0.001234432112344,
0.01234432112344, 0.1234432112344, 1.234432112344, 12.34432112344,
123.4432112344, 1234.432112344, 12344.32112344, 123443.2112344,
1234432.112344, 1.234432112344E+7, 1.234432112344E+8, 1.234432112344E+9,
1.234432112344E+10], [1.2344321123443E-10, 1.2344321123443E-9,
1.2344321123443E-8, 1.2344321123443E-7, 1.2344321123443E-6,
1.2344321123443E-5, 1.2344321123443E-4, 0.0012344321123443, 0.012344321123443,
0.12344321123443, 1.2344321123443, 12.344321123443, 123.44321123443,
1234.4321123443, 12344.321123443, 123443.21123443, 1234432.1123443,
1.2344321123443E+7, 1.2344321123443E+8, 1.2344321123443E+9,
1.2344321123443E+10], [1.23443211234432E-10, 1.23443211234432E-9,
1.23443211234432E-8, 1.23443211234432E-7, 1.23443211234432E-6,
1.23443211234432E-5, 1.23443211234432E-4, 0.00123443211234432,
0.0123443211234432, 0.123443211234432, 1.23443211234432, 12.3443211234432,
123.443211234432, 1234.43211234432, 12344.3211234432, 123443.211234432,
1234432.11234432, 1.23443211234432E+7, 1.23443211234432E+8,
1.23443211234432E+9, 1.23443211234432E+10],
[1.234432112344321E-10, 1.234432112344321E-9, 1.234432112344321E-8,
1.234432112344321E-7, 1.234432112344321E-6, 1.234432112344321E-5,
1.234432112344321E-4, 0.001234432112344321, 0.01234432112344321,
0.1234432112344321, 1.234432112344321, 12.34432112344321, 123.4432112344321,
1234.432112344321, 12344.32112344321, 123443.2112344321, 1234432.112344321,
1.234432112344321E+7, 1.234432112344321E+8, 1.234432112344321E+9,
1.234432112344321E+10], [1.234432112344321E-10, 1.234432112344321E-9,
1.234432112344321E-8, 1.234432112344321E-7, 1.234432112344321E-6,
1.234432112344321E-5, 1.234432112344321E-4, 0.001234432112344321,
0.01234432112344321, 0.1234432112344321, 1.234432112344321, 12.34432112344321,
123.4432112344321, 1234.432112344321, 12344.32112344321, 123443.2112344321,
1234432.112344321, 1.234432112344321E+7, 1.234432112344321E+8,
1.234432112344321E+9, 1.234432112344321E+10],
[1.234432112344321E-10, 1.234432112344321E-9, 1.234432112344321E-8,
1.234432112344321E-7, 1.234432112344321E-6, 1.234432112344321E-5,
1.234432112344321E-4, 0.001234432112344321, 0.01234432112344321,
0.1234432112344321, 1.234432112344321, 12.34432112344321, 123.4432112344321,
1234.432112344321, 12344.32112344321, 123443.2112344321, 1234432.112344321,
1.234432112344321E+7, 1.234432112344321E+8, 1.234432112344321E+9,
1.234432112344321E+10], [1.234432112344321E-10, 1.234432112344321E-9,
1.234432112344321E-8, 1.234432112344321E-7, 1.234432112344321E-6,
1.234432112344321E-5, 1.234432112344321E-4, 0.001234432112344321,
0.01234432112344321, 0.1234432112344321, 1.234432112344321, 12.34432112344321,
123.4432112344321, 1234.432112344321, 12344.32112344321, 123443.2112344321,
1234432.112344321, 1.234432112344321E+7, 1.234432112344321E+8,
1.234432112344321E+9, 1.234432112344321E+10],
[1.234432112344321E-10, 1.234432112344321E-9, 1.234432112344321E-8,
1.234432112344321E-7, 1.234432112344321E-6, 1.234432112344321E-5,
1.234432112344321E-4, 0.001234432112344321, 0.01234432112344321,
0.1234432112344321, 1.234432112344321, 12.34432112344321, 123.4432112344321,
1234.432112344321, 12344.32112344321, 123443.2112344321, 1234432.112344321,
1.234432112344321E+7, 1.234432112344321E+8, 1.234432112344321E+9,
1.234432112344321E+10]], L2 : block([foo : 1.234432112344321],
                                                        n
makelist(block([fpprintprec : m], makelist(string(foo 10 ), n, - 10, 10)), m,
2, 20))], map(lambda([s1, s2], if sequalignore(s1, s2) then true
 else s2 # s1), flatten(L1), flatten(L2)), delete(true, %%))


Result:
[]

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.

********************** Problem 561 (line 2153) ***************
Input:
                               2
                          - %pi
ev(closeto(li (1.0 %i) - (------ + %i 0.915965594177219), 1.3878e-16), numer)
             2              48


Result:
true

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.

********************** Problem 596 (line 2291) ***************
Input:
closeto(li (2.0 %i) - ((- 0.1139660114783042) + 1.973461712112292 %i),
          5
                                                                      6.98e-16)


Result:
7.066778860128639e-16

This differed from the expected result:
true

680/681 tests passed (not counting 4 expected errors)

The following 1 problem failed: (596)

The following 2 problems passed but were expected to fail: (50 561)
Running tests in rtestode: 95/95 tests passed
Running tests in rtestode_zp: 30/30 tests passed
Running tests in rtest3: 157/157 tests passed
Running tests in rtest8:
********************** Problem 104 (line 399) ***************
Input:
ev(e5, au = 0, omega = 2)


Result:
[0.4000000000000001, 2.216570948815925e-11, 175, 0]

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.
180/180 tests passed (not counting 1 expected errors)

The following 1 problem passed but was expected to fail: (104)
Running tests in rtest12: 77/77 tests passed (not counting 2 expected errors)
Running tests in rexamples: 137/137 tests passed
Running tests in rtesthyp: 417/417 tests passed (not counting 6 expected errors)
Running tests in rtest_hypgeo: 290/290 tests passed (not counting 1 expected errors)
Running tests in rtestmt19937: 15/15 tests passed
Running tests in rtest_allnummod: 549/549 tests passed
Running tests in rtestconjugate: 136/136 tests passed
Running tests in rtestsum: 303/303 tests passed (not counting 4 expected errors)
Running tests in rtest_trig:
********************** Problem 58 (line 247) ***************
Input:
block([buggy : []], for f in alltrig do for p in pts do block([e,
fop : op(f)], e : buildq([p, fop], lambda([],
cabs(float(rectform(fop(p))) - fop(float(p))))),
if e() > 1.0e-13 then buggy : cons(e, buggy)), buggy)


Result:
                                        1                    1
[lambda([], cabs(float(rectform(acoth(- -))) - acoth(float(- -)))),
                                        2                    2
             lambda([], cabs(float(rectform(atanh(- 2))) - atanh(float(- 2))))]

This differed from the expected result:
[]

163/164 tests passed

The following 1 problem failed: (58)

The following 0 problem passed but was expected to fail: NIL
Running tests in rtest_zeta: 22/22 tests passed
Running tests in rtest_diff_invtrig: 22/22 tests passed
Running tests in rtest_scalarp: 20/20 tests passed
Running tests in rtest_everysome: 84/84 tests passed
Running tests in rtestint: 314/314 tests passed (not counting 1 expected errors)
Running tests in rtest_numth: 202/202 tests passed
Running tests in rtestifactor: 34/34 tests passed
Running tests in rtest_equal: 205/205 tests passed (not counting 2 expected errors)
Running tests in rtest_abs: 140/140 tests passed
Running tests in rtest_taylor: 152/152 tests passed (not counting 6 expected errors)
Running tests in rtest_dot: 60/60 tests passed
Running tests in rtest_mset: 113/113 tests passed
Running tests in rtest_boolean: 116/116 tests passed
Running tests in rtest_round: 101/101 tests passed
Running tests in rtest_map: 130/130 tests passed (not counting 3 expected errors)
Running tests in rtest_sign: 350/350 tests passed (not counting 7 expected errors)
Running tests in rtest_algebraic: 45/45 tests passed
Running tests in rtest_gamma: 782/782 tests passed
Running tests in rtest_expintegral: 210/210 tests passed
Running tests in rtest_signum: 59/59 tests passed
Running tests in rtest_lambert_w: 57/57 tests passed
Running tests in rtest_elliptic: 177/177 tests passed (not counting 2 expected errors)
Running tests in rtest_integrate: 814/814 tests passed
Running tests in rtest_integrate_special: 53/53 tests passed
Running tests in rtest_sqrt: 315/315 tests passed (not counting 1 expected errors)
Running tests in rtest_carg: 53/53 tests passed (not counting 2 expected errors)
Running tests in rtest_log: 134/134 tests passed
Running tests in rtest_power: 67/67 tests passed (not counting 5 expected errors)
Running tests in rtestdefstruct: 32/32 tests passed
Running tests in rtest_limit: 215/215 tests passed
Running tests in rtest_powerseries: 67/67 tests passed
Running tests in rtest_laplace: 89/89 tests passed (not counting 11 expected errors)
Running tests in rtest_plotoptions: 5/5 tests passed
Running tests in rtest_algsys: 69/69 tests passed
Running tests in rtest_trace: 83/83 tests passed
Running tests in rtestflatten: 43/43 tests passed
Running tests in rtest_z_transform: 36/36 tests passed
Running tests in rtest_zeilberger_extreme: 9/9 tests passed
Running tests in rtest_zeilberger: 53/53 tests passed
Running tests in rtest_boolsimp: 48/48 tests passed
Running tests in rtest_eigen: 16/16 tests passed
Running tests in rtest_lsquares: 67/67 tests passed
Running tests in rtest_odelin: 105/105 tests passed
Running tests in rtestezunits: 280/280 tests passed
Running tests in rtest_numericalio: 69/69 tests passed
Running tests in rtest_simplify_sum: 76/76 tests passed (not counting 1 expected errors)
Running tests in rtest_solve_rec: 30/30 tests passed
Running tests in rtest_stringproc:
********************** Problem 12 (line 27) ***************
Input:
ev(printf(false, ~a ~a ~4f ~a ~@r, String, sym, bound, sqrt(12), 144),
                                                                 bound = 1.234)


Result:
String sym 1.23 2*sqrt(3) CXLIV

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.

********************** Problem 69 (line 188) ***************
Input:
block([us_ascii_only : true], ssort(I don't like Mondays., 'cgreaterpignore))


Result:
ytsoonnMlkIiedda.'  

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.
80/80 tests passed (not counting 2 expected errors)

The following 2 problems passed but were expected to fail: (12 69)
Running tests in rtest_opproperties: 117/117 tests passed
Running tests in rtest_stats: 14/14 tests passed
Running tests in rtest_distrib: 86/86 tests passed
Running tests in rtest_descriptive:
********************** Problem 86 (line 347) ***************
Input:
discrete_freq(map(lambda([x], printf(false, ~r, x)), s1))


Result:
[[eight, five, four, nine, one, seven, six, three, two, zero],
                                           [12, 8, 10, 13, 8, 8, 9, 12, 12, 8]]

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.

********************** Problem 97 (line 391) ***************
Input:
discrete_freq(to_array map(lambda([x], printf(false, ~r, x)), s1))


Result:
[[eight, five, four, nine, one, seven, six, three, two, zero],
                                           [12, 8, 10, 13, 8, 8, 9, 12, 12, 8]]

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.
107/107 tests passed (not counting 2 expected errors)

The following 2 problems passed but were expected to fail: (86 97)
Running tests in rtest_interpol: 18/18 tests passed
Running tests in rtest_levin: 104/104 tests passed
Running tests in rtest_fractals: 11/11 tests passed
Running tests in rtest_bernstein: 44/44 tests passed
Running tests in rtest_atensor: 20/20 tests passed
Running tests in rtest_ctensor: 45/45 tests passed
Running tests in rtest_itensor: 58/58 tests passed
Running tests in rtest_dgeqrf:
********************** Problem 1 (line 6) ***************
Input:
(if not fboundp('dgeqrf) then load(lapack), 0)


Result:
0

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.

********************** Problem 4 (line 20) ***************
Input:
block([a, q, r], a : random_matrix(), [q, r] : dgeqrf(a),
          mat_norm(q . r - a, 1), if %% < 1.0e-12 then true else [a, q, r, %%])


Result:
true

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.

********************** Problem 5 (line 27) ***************
Input:
block([a, q, r], a : random_matrix(), [q, r] : dgeqrf(a),
          mat_norm(q . r - a, 1), if %% < 1.0e-12 then true else [a, q, r, %%])


Result:
true

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.

********************** Problem 6 (line 34) ***************
Input:
block([a, q, r], a : random_matrix(), [q, r] : dgeqrf(a),
          mat_norm(q . r - a, 1), if %% < 1.0e-12 then true else [a, q, r, %%])


Result:
true

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.

********************** Problem 7 (line 41) ***************
Input:
block([a, q, r], a : random_matrix(), [q, r] : dgeqrf(a),
          mat_norm(q . r - a, 1), if %% < 1.0e-12 then true else [a, q, r, %%])


Result:
true

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.

********************** Problem 8 (line 48) ***************
Input:
block([a, q, r], a : random_matrix(), [q, r] : dgeqrf(a),
          mat_norm(q . r - a, 1), if %% < 1.0e-12 then true else [a, q, r, %%])


Result:
true

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.

********************** Problem 9 (line 55) ***************
Input:
block([a, q, r], a : random_matrix(), [q, r] : dgeqrf(a),
          mat_norm(q . r - a, 1), if %% < 1.0e-12 then true else [a, q, r, %%])


Result:
true

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.

********************** Problem 10 (line 62) ***************
Input:
block([a, q, r], a : random_matrix(), [q, r] : dgeqrf(a),
          mat_norm(q . r - a, 1), if %% < 1.0e-12 then true else [a, q, r, %%])


Result:
true

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.

********************** Problem 11 (line 69) ***************
Input:
block([a, q, r], a : random_matrix(), [q, r] : dgeqrf(a),
          mat_norm(q . r - a, 1), if %% < 1.0e-12 then true else [a, q, r, %%])


Result:
true

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.

********************** Problem 12 (line 76) ***************
Input:
block([a, q, r], a : random_matrix(), [q, r] : dgeqrf(a),
          mat_norm(q . r - a, 1), if %% < 1.0e-12 then true else [a, q, r, %%])


Result:
true

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.

********************** Problem 13 (line 83) ***************
Input:
block([a, q, r], a : random_matrix(), [q, r] : dgeqrf(a),
          mat_norm(q . r - a, 1), if %% < 1.0e-12 then true else [a, q, r, %%])


Result:
true

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.

********************** Problem 14 (line 90) ***************
Input:
block([a, q, r], a : random_matrix(), [q, r] : dgeqrf(a),
          mat_norm(q . r - a, 1), if %% < 1.0e-12 then true else [a, q, r, %%])


Result:
true

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.

********************** Problem 15 (line 97) ***************
Input:
block([a, q, r], a : random_matrix(), [q, r] : dgeqrf(a),
          mat_norm(q . r - a, 1), if %% < 1.0e-12 then true else [a, q, r, %%])


Result:
true

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.
2/2 tests passed (not counting 13 expected errors)

The following 13 problems passed but were expected to fail: (1 4 5 6 7 8 9 10
                                                             11 12 13 14 15)
Running tests in rtest_dgesv:
********************** Problem 1 (line 2) ***************
Input:
(if not fboundp('dgesv) then load(lapack), 'done)


Result:
done

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.

********************** Problem 3 (line 12) ***************
Input:
                      [   1    - 2.5 ]      [  1.75   ]
block([A, b, x], (A : [              ], b : [         ], x : dgesv(A, b),
                      [ 0.375    5   ]      [ - 0.625 ]
                                                  dlange(inf_norm, b - A . x)))


Result:
0.0

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.

********************** Problem 4 (line 19) ***************
Input:
                      [  1    - 0.15 ]      [  3.7   1    8   ]
block([A, b, x], (A : [              ], b : [                 ],
                      [ 1.82    2    ]      [ - 2.3  5  - 3.9 ]
                                 x : dgesv(A, b), dlange(inf_norm, b - A . x)))


Result:
1.110223024625157e-15

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.

********************** Problem 5 (line 26) ***************
Input:
                      [   5    - %pi ]
                      [              ]      [   %e   ]
block([A, b, x], (A : [         11   ], b : [        ], x : dgesv(A, b),
                      [ 1.0b0   --   ]      [ sin(1) ]
                      [         17   ]
                                                  dlange(inf_norm, b - A . x)))


Result:
2.220446049250313e-16

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.

********************** Problem 6 (line 45) ***************
Input:
                   [  6.8    - 6.05  - 0.45   8.32   - 9.67 ]
                   [                                        ]
                   [ - 2.11  - 3.3    2.58    2.71   - 5.14 ]
                   [                                        ]
block([A, b], (A : [  5.66    5.36   - 2.7    4.35   - 7.26 ],
                   [                                        ]
                   [  5.97   - 4.44   0.27   - 7.17   6.08  ]
                   [                                        ]
                   [  8.23    1.08    9.04    2.14   - 6.87 ]
                                      [  4.02   - 1.56   9.81  ]
                                      [                        ]
                                      [  6.19    4.0    - 4.09 ]
                                      [                        ]
                                  b : [ - 8.22  - 8.67  - 4.57 ], dgesv(A, b)))
                                      [                        ]
                                      [ - 7.57   1.75   - 8.61 ]
                                      [                        ]
                                      [ - 3.03   2.86    8.99  ]


Result:
[ - 0.8007140257202475  - 0.3896213930191952  0.9554649124194904 ]
[                                                                ]
[ - 0.6952433844403112  - 0.554427127353211   0.2206596269817108 ]
[                                                                ]
[  0.593914994899136     0.842227385604611    1.900636731558973  ]
[                                                                ]
[  1.321725609087391    - 0.1038018538074622  5.357661487175357  ]
[                                                                ]
[  0.5657561965738039    0.1057109514742748   4.040602658253425  ]

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.
2/2 tests passed (not counting 5 expected errors)

The following 5 problems passed but were expected to fail: (1 3 4 5 6)
Running tests in rtest_dlsode: 22/22 tests passed
Running tests in rtest_fourier_elim: 145/145 tests passed (not counting 4 expected errors)
Running tests in rtest_sequence: 54/54 tests passed (not counting 1 expected errors)
Running tests in rtest_cholesky: 41/41 tests passed
Running tests in rtest_eigens_by_jacobi: 24/24 tests passed
Running tests in rtest_lu: 52/52 tests passed
Running tests in rtest_linalg: 214/214 tests passed
Running tests in rtest_polynomialp: 15/15 tests passed
Running tests in rtest_matrixexp: 59/59 tests passed
Running tests in rtest_romberg: 19/19 tests passed (not counting 2 expected errors)
Running tests in rtest_wilcoxon: 29/29 tests passed
Running tests in rtest_bitwise: 71/71 tests passed
Running tests in rtest_gf: 10/10 tests passed
Running tests in rtest_namespaces:
********************** Problem 7 (line 19) ***************
Input:
symbols(foo)


Result:
[f, g, foo|hh, foo|my_constant]

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.
85/85 tests passed (not counting 1 expected errors)

The following 1 problem passed but was expected to fail: (7)
Running tests in rtest_arag: 107/107 tests passed
Running tests in rtest_pdiff: 90/90 tests passed
Running tests in rtest_to_poly: 25/25 tests passed
Running tests in rtestprintf:
********************** Problem 38 (line 141) ***************
Input:
(ans : [4.2E+1, 1.5E+0, 1.4142135623730951E+0, 3.141592653589793E+0, 3.5E+0, 1\
.234E+0], printf(false, [~{~e~^, ~}], args),
if sequalignore(%%, ans) then true else %%)


Result:
true

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.

********************** Problem 54 (line 209) ***************
Input:
printf(false, ~d ~v,v^~f , 0, 1, 2, 3)


Result:
0 3.0

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.

********************** Problem 66 (line 251) ***************
Input:
(printf(false, ~9,3,2,1e, 1.0), if sequalignore(%%, 1.000e+00) then true
                                                                       else %%)


Result:
true

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.

********************** Problem 70 (line 280) ***************
Input:
(fpprec : 22, bf : 1.234567890123457b-10, a1 : printf(false, ~,42,,0h~%, bf),
a2 : printf(false, ~,42,,10h~%, bf), a3 : printf(false, ~,42,,-10h~%, bf),
fpprec : 42, b1 : printf(false, ~,42,,0h~%, bf),
b2 : printf(false, ~,42,,10h~%, bf), b3 : printf(false, ~,42,,-10h~%, bf),
reset(fpprec), is(a1 = b1) and is(a2 = b2) and is(a3 = b3))


Result:
true

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.
63/63 tests passed (not counting 8 expected errors)

The following 4 problems passed but were expected to fail: (38 54 66 70)
Running tests in rtest_simplex: 18/18 tests passed
Running tests in rtest_graphs: 99/99 tests passed
Running tests in rtest_abs_integrate:
log: encountered log(0).
log: encountered log(0).
log: encountered log(0).
198/198 tests passed (not counting 2 expected errors)
Running tests in rtest_pochhammer: 36/36 tests passed
Running tests in rtest_to_poly_solve:
********************** Problem 199 (line 711) ***************
Input:
%solve([m x = b], [x], 'parameters = [m, b], 'simpfuncs = ['nicedummies])


Result:
%union(%if((b = 0) %and (m = 0), [x = %c0], %union()),
                                                                 b
                                                 %if(m # 0, [x = -], %union()))
                                                                 m

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.

********************** Problem 200 (line 714) ***************
Input:
         2    2    2
%solve([y  + x  = a , y + x = 1], [x, y], 'parameters = [a, b],
                                          'simpfuncs = ['nicedummies, 'expand])


Result:
                                        2                       2
              2                 sqrt(2 a  - 1) - 1      sqrt(2 a  - 1) + 1
%union(%if(2 a  - 1 # 0, [x = - ------------------, y = ------------------],
                                        2                       2
                                          2
                  2               sqrt(2 a  - 1) + 1
%union()), %if(2 a  - 1 # 0, [x = ------------------,
                                          2
              2
      sqrt(2 a  - 1) - 1                            1
y = - ------------------], %union()), %if((a = - -------) %and (b = %c0),
              2                                  sqrt(2)
     1      1                          1                          1      1
[x = -, y = -], %union()), %if((a = -------) %and (b = %c0), [x = -, y = -],
     2      2                       sqrt(2)                       2      2
%union()))

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.

********************** Problem 201 (line 720) ***************
Input:
%solve([x + y = a, x + y = b], [x, y], 'parameters = [a],
                                                   'simpfuncs = ['nicedummies])


Result:
%union(%if(b - a = 0, [x = %c0, y = b - %c0], %union()))

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.

********************** Problem 202 (line 723) ***************
Input:
%solve([x + y = a, x + a y = b], [x, y], 'parameters = [a, b],
                                          'simpfuncs = ['nicedummies, 'expand])


Result:
                                  2
                             b - a       b - a
%union(%if(a - 1 # 0, [x = - ------, y = -----], %union()),
                             a - 1       a - 1
                   %if((a = 1) %and (b = 1), [x = %c0, y = 1 - %c0], %union()))

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.

********************** Problem 203 (line 726) ***************
Input:
%solve([y + b x = a, a y + x = b], [x, y], 'parameters = [],
                                         'simpfuncs = ['nicedummies, 'ratsimp])


Result:
                   2        2
              b - a        b  - a
%union([x = - -------, y = -------])
              a b - 1      a b - 1

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.

********************** Problem 204 (line 729) ***************
Input:
%solve([y + x = a, a y + x = b], [x, y], 'parameters = [a, b],
                                          'simpfuncs = ['nicedummies, 'expand])


Result:
                                  2
                             b - a       b - a
%union(%if(a - 1 # 0, [x = - ------, y = -----], %union()),
                             a - 1       a - 1
                   %if((a = 1) %and (b = 1), [x = %c0, y = 1 - %c0], %union()))

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.

********************** Problem 214 (line 778) ***************
Input:
%solve([a = b, b = 3], [a], 'parameters = [b])


Result:
%union(%if(b - 3 = 0, [a = 3], %union()))

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.

********************** Problem 222 (line 816) ***************
Input:
           2       2           2         2
%solve((4 k  - 4) y  + (4 - 4 k ) y + 6 k  - 1, y, 'parameters = [k])


Result:
%union(%if((k - 1 # 0) %and (k # 0) %and (k + 1 # 0),
                           2     2
       sqrt(5) k sqrt(1 - k ) - k  + 1
[y = - -------------------------------], %union()),
                     2
                  2 k  - 2
%if((k - 1 # 0) %and (k # 0) %and (k + 1 # 0),
                         2     2
     sqrt(5) k sqrt(1 - k ) + k  - 1
[y = -------------------------------], %union()),
                   2
                2 k  - 2
                1
%if(k = 0, [y = -], %union()))
                2

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.

********************** Problem 268 (line 971) ***************
Input:
nicedummies(%solve(a, x, 'parameters = []))


Result:
%union()

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.

********************** Problem 277 (line 1001) ***************
Input:
                                        2         2        2
nicedummies(%solve([x + a y = 0, a x + b  y = 0, a  x + a b  y = 0], [x, y],
                                                       'parameters = ['a, 'b]))


Result:
%union(%if((a = 0) %and (b = 0), [x = 0, y = %c6], %union()),
%if((a = %c0) %and (b = %c0), [x = - %c0 %c1, y = %c1], %union()),
%if((a = %c2) %and (b = - %c2), [x = - %c2 %c3, y = %c3], %union()),
%if((a = %c4) %and (b = %c5), [x = 0, y = 0], %union()))

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.

********************** Problem 278 (line 1004) ***************
Input:
nicedummies(%solve(a x = 0, [x], 'parameters = ['a]))


Result:
%union(%if(a = 0, [x = %c0], %union()), %if(a # 0, [x = 0], %union()))

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.

********************** Problem 295 (line 1062) ***************
Input:
nicedummies(%solve([x + y = p1 - p2, x + 3 y = p2 - p3,
                  3 x - y = p1 + p2 + p3], [x, y], 'parameters = [p1, p2, p3]))


Result:
%union(%if((p1 = %c0) %and (p2 = %c1) %and (p3 = 8 %c1 - 4 %c0),
                                  4 %c1 - %c0        6 %c1 - 3 %c0
                             [x = -----------, y = - -------------], %union()))
                                       2                   2

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.

********************** Problem 311 (line 1127) ***************
Input:
%solve([a = 3 + x, b = 1 - x, x = 2], [x], 'parameters = [a, b])


Result:
%union(%if((a = 5) %and (b = - 1), [x = 2], %union()))

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.
300/300 tests passed (not counting 42 expected errors)

The following 13 problems passed but were expected to fail: (199 200 201 202
                                                             203 204 214 222
                                                             268 277 278 295
                                                             311)
Running tests in rtest_hg: 187/187 tests passed (not counting 1 expected errors)
Running tests in rtest_sym:
********************** Problem 12 (line 42) ***************
Input:
symtest(phi, xi : sym , eta : sym , y, x)
                     1           2


Result:
0

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.

********************** Problem 58 (line 181) ***************
Input:
          dy
ode_check(-- = phi, % )
          dx         1


Result:
0

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.
55/55 tests passed (not counting 4 expected errors)

The following 2 problems passed but were expected to fail: (12 58)
Running tests in rtest_nfloat:
********************** Problem 25 (line 89) ***************
Input:
                        3
nfloat(map('rhs, solve(x  + x + 1, x)), [], 10)


Result:
[0.3411639019140096 - 1.161541399997252 %i,
               1.161541399997252 %i + 0.3411639019140096, - 0.6823278038280193]

This differed from the expected result:
[0.341163901914009 - 1.161541399997251 %i,
                 1.161541399997251 %i + 0.341163901914009, - 0.682327803828018]

50/51 tests passed

The following 1 problem failed: (25)

The following 0 problem passed but was expected to fail: NIL
Running tests in rtest_mnewton: 16/16 tests passed
Running tests in rtest_solve_rat_ineq: 17/17 tests passed
Running tests in rtest_vect: 46/46 tests passed (not counting 10 expected errors)
Running tests in rtest_antid: 11/11 tests passed
Running tests in rtest_bffac: 16/16 tests passed
Running tests in rtest_diff_form: 36/36 tests passed
Running tests in rtest_grobner: 33/33 tests passed
Running tests in rtest_finance:
********************** Problem 9 (line 34) ***************
Input:
block([s : make_string_output_stream()],
     with_stdout(s, amortization(0.05, 56000, 3)), get_output_stream_string(s))


Result:
           "n"    "Balance"     "Interest"   "Amortization"  "Payment"      
          0.000     56000.000         0.000         0.000         0.000  
          1.000     38236.320      2800.000     17763.680     20563.680  
          2.000     19584.457      1911.816     18651.864     20563.680  
          3.000         0.000       979.223     19584.457     20563.680  
 

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.

********************** Problem 10 (line 44) ***************
Input:
block([s : make_string_output_stream()],
with_stdout(s, arit_amortization(0.05, 1000, 56000, 3)),
get_output_stream_string(s))


Result:
           "n"    "Balance"     "Interest"   "Amortization"  "Payment"      
          0.000     56000.000         0.000         0.000         0.000  
          1.000     39203.807      2800.000     16796.193     19596.193  
          2.000     20567.803      1960.190     18636.003     20596.193  
          3.000         0.000      1028.390     20567.803     21596.193  
 

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.

********************** Problem 11 (line 54) ***************
Input:
block([s : make_string_output_stream()],
with_stdout(s, geo_amortization(0.05, 0.03, 56000, 3)),
get_output_stream_string(s))


Result:
           "n"    "Balance"     "Interest"   "Amortization"  "Payment"      
          0.000     56000.000         0.000         0.000         0.000  
          1.000     38821.880      2800.000     17178.120     19978.120  
          2.000     20185.511      1941.094     18636.369     20577.463  
          3.000         0.000      1009.276     20185.511     21194.787  
 

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.
14/14 tests passed (not counting 3 expected errors)

The following 3 problems passed but were expected to fail: (9 10 11)
Running tests in rtest_fft: 99/99 tests passed
Running tests in rtest_rfft: 46/46 tests passed
Running tests in rtest_decfp: 4/4 tests passed
Running tests in rtest_wrstcse: 12/12 tests passed
Running tests in rtest_engineering_format:
********************** Problem 8 (line 15) ***************
Input:
                                 x
makelist(sdowncase(sconcat(1.1 10 )), x, - 20, 20)


Result:
[11.0e-21, 110.0e-21, 1.1e-18, 11.0e-18, 110.0e-18, 1.1e-15, 11.0e-15,
110.0e-15, 1.1e-12, 11.0e-12, 110.0e-12, 1.1e-9, 11.0e-9, 110.0e-9, 1.1e-6,
11.0e-6, 110.0e-6, 1.1e-3, 11.0e-3, 110.0e-3, 1.1, 11.0, 110.0, 1100.0,
1.1e+4, 110.0e+3, 1.1e+6, 11.0e+6, 110.0e+6, 1.1e+9, 11.0e+9, 110.0e+9,
1.1e+12, 11.0e+12, 110.0e+12, 1.1e+15, 11.0e+15, 110.0e+15, 1.1e+18, 11.0e+18,
110.0e+18]

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.

********************** Problem 10 (line 19) ***************
Input:
                                 x
makelist(sdowncase(sconcat(1.1 10 )), x, - 20, 20)


Result:
[11.0e-21, 110.0e-21, 1.1e-18, 11.0e-18, 110.0e-18, 1.1e-15, 11.0e-15,
110.0e-15, 1.1e-12, 11.0e-12, 110.0e-12, 1.1e-9, 11.0e-9, 110.0e-9, 1.1e-6,
11.0e-6, 1.1e-4, 0.0011, 0.011, 0.11, 1.1, 11.0, 110.0, 1100.0, 1.1e+4,
110.0e+3, 1.1e+6, 11.0e+6, 110.0e+6, 1.1e+9, 11.0e+9, 110.0e+9, 1.1e+12,
11.0e+12, 110.0e+12, 1.1e+15, 11.0e+15, 110.0e+15, 1.1e+18, 11.0e+18,
110.0e+18]

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.

********************** Problem 12 (line 23) ***************
Input:
                                    x
makelist(sdowncase(sconcat(1.1e+0 10 )), x, - 20, 20)


Result:
[11.0e-21, 110.0e-21, 1.1e-18, 11.0e-18, 110.0e-18, 1.1e-15, 11.0e-15,
110.0e-15, 1.1e-12, 11.0e-12, 110.0e-12, 1.1e-9, 11.0e-9, 110.0e-9, 1.1e-6,
11.0e-6, 1.1e-4, 0.0011, 0.011, 0.11, 1.1e+0, 11.0e+0, 110.0e+0, 1.1e+3,
11.0e+3, 110.0e+3, 1.1e+6, 11.0e+6, 110.0e+6, 1.1e+9, 11.0e+9, 110.0e+9,
1.1e+12, 11.0e+12, 110.0e+12, 1.1e+15, 11.0e+15, 110.0e+15, 1.1e+18, 11.0e+18,
110.0e+18]

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.

********************** Problem 14 (line 27) ***************
Input:
                                 x
makelist(sdowncase(sconcat(1.1 10 )), x, - 20, 20)


Result:
[1.1e-20, 1.1e-19, 1.1e-18, 1.1e-17, 1.1e-16, 1.1e-15, 1.1e-14, 1.1e-13,
1.1e-12, 1.1e-11, 1.1e-10, 1.1e-9, 1.1e-8, 1.1e-7, 1.1e-6, 1.1e-5, 1.1e-4,
0.0011, 0.011, 0.11, 1.1, 11.0, 110.0, 1100.0, 1.1e+4, 1.1e+5, 1.1e+6, 1.1e+7,
1.1e+8, 1.1e+9, 1.1e+10, 1.1e+11, 1.1e+12, 1.1e+13, 1.1e+14, 1.1e+15, 1.1e+16,
1.1e+17, 1.1e+18, 1.1e+19, 1.1e+20]

... Which was correct, but was expected to be wrong due to a known bug in
 Maxima or ECL.
11/11 tests passed (not counting 5 expected errors)

The following 4 problems passed but were expected to fail: (8 10 12 14)

Error summary:
Error(s) found:
  /usr/ports/pobj/maxima-5.43.2/maxima-5.43.2/tests/rtest16.mac problem:
    (596)
  /usr/ports/pobj/maxima-5.43.2/maxima-5.43.2/tests/rtest_trig.mac problem:
    (58)
  /usr/ports/pobj/maxima-5.43.2/maxima-5.43.2/share/hypergeometric/rtest_nfloat.mac problem:
    (25)
Tests that were expected to fail but passed:
  /usr/ports/pobj/maxima-5.43.2/maxima-5.43.2/tests/rtest1.mac problem:
    (115)
  /usr/ports/pobj/maxima-5.43.2/maxima-5.43.2/tests/rtest6.mac problems:
    (43 45)
  /usr/ports/pobj/maxima-5.43.2/maxima-5.43.2/tests/rtest14.mac problems:
    (145 201 233 234 249 250 251 252 267 297 298 307 310 312 315 319)
  /usr/ports/pobj/maxima-5.43.2/maxima-5.43.2/tests/rtest16.mac problems:
    (50 561)
  /usr/ports/pobj/maxima-5.43.2/maxima-5.43.2/tests/rtest8.mac problem:
    (104)
  /usr/ports/pobj/maxima-5.43.2/maxima-5.43.2/share/stringproc/rtest_stringproc.mac problems:
    (12 69)
  /usr/ports/pobj/maxima-5.43.2/maxima-5.43.2/share/descriptive/rtest_descriptive.mac problems:
    (86 97)
  /usr/ports/pobj/maxima-5.43.2/maxima-5.43.2/share/lapack/rtest_dgeqrf.mac problems:
    (1 4 5 6 7 8 9 10 11 12 13 14 15)
  /usr/ports/pobj/maxima-5.43.2/maxima-5.43.2/share/lapack/rtest_dgesv.mac problems:
    (1 3 4 5 6)
  /usr/ports/pobj/maxima-5.43.2/maxima-5.43.2/share/contrib/namespaces/rtest_namespaces.mac problem:
    (7)
  /usr/ports/pobj/maxima-5.43.2/maxima-5.43.2/share/stringproc/rtestprintf.mac problems:
    (38 54 66 70)
  /usr/ports/pobj/maxima-5.43.2/maxima-5.43.2/share/to_poly_solve/rtest_to_poly_solve.mac problems:
    (199 200 201 202 203 204 214 222 268 277 278 295 311)
  /usr/ports/pobj/maxima-5.43.2/maxima-5.43.2/share/contrib/diffequations/tests/rtest_sym.mac problems:
    (12 58)
  /usr/ports/pobj/maxima-5.43.2/maxima-5.43.2/share/finance/rtest_finance.mac problems:
    (9 10 11)
  /usr/ports/pobj/maxima-5.43.2/maxima-5.43.2/share/contrib/rtest_engineering_format.mac problems:
    (8 10 12 14)
3 tests failed out of 15,848 total tests.
real time : 5794.160 secs
run time  : 5760.930 secs
gc count  : 8684 times
consed    : 106462070320 bytes
(%o0)                                done

Reply | Threaded
Open this post in threaded view
|

Re: Update lang/ecl to 20.4.24

George Koehler-2
In reply to this post by Josh Elsasser
On Tue, 19 May 2020 08:59:48 -0700
Josh Elsasser <[hidden email]> wrote:

> Here's a quick update to the new release, minimally tested as a
> lang/sbcl build host. The patch removes files, don't forget patch -E
>
> diff -ruN --exclude .git /usr/ports/lang/ecl/Makefile ./Makefile
> --- /usr/ports/lang/ecl/Makefile Tue Feb 18 15:29:40 2020
> +++ ./Makefile Mon May 18 09:44:49 2020
> @@ -5,10 +5,9 @@
>  
>  BROKEN-mips64 = ecl_min fails
>  
> -V = 16.1.3
> +V = 20.4.24

This update might break sparc64.  I don't have sparc64, but found a
bug in 20.4.24 on powerpc64 that might affect other 64-bit big-endian
arch (mips64 and sparc64).  It's BROKEN-mips64, but the sparc64 snap
has packages of clic and maxima with ecl-16.1.3.p3.

The ecl update has been stuck because it breaks net/clic (as Solene
said).  In other ways, the update looks good to me.

ecl-20.4.24 works on macppc, has the same number of failures as amd64:

Did 245 tests (0 crashed), 17999 checks.
   Pass: 17912 (100%)
   Fail: 87 ( 0%)

reed-alert seems to work on macppc.

I didn't try maxima on macppc.  For maxima on amd64, I replicated the
test results that Timo posted, and I can run xmaxima.

For the bug in 20.4.24 that broke my powerpc64, I need to write a bug
report for upstream.  ecl_min calls ecl_symbol_value() before
init_all_symbols(); reads p = q->data.value too early; gets p == 2 on
most arch, p == 0x200000000 on 64-bit big-endian; but if (p & 3) == 0
then ecl_min fails with SIGSEGV.  (powerpc64 also needs a diff for
lang/boehm-gc that I intend to share later.)    --George

Reply | Threaded
Open this post in threaded view
|

Re: Update lang/ecl to 20.4.24

Kurt Mosiejczuk-9
On Tue, Jul 28, 2020 at 11:59:03PM -0400, George Koehler wrote:

> This update might break sparc64.  I don't have sparc64, but found a
> bug in 20.4.24 on powerpc64 that might affect other 64-bit big-endian
> arch (mips64 and sparc64).  It's BROKEN-mips64, but the sparc64 snap
> has packages of clic and maxima with ecl-16.1.3.p3.

> The ecl update has been stuck because it breaks net/clic (as Solene
> said).  In other ways, the update looks good to me.

> ecl-20.4.24 works on macppc, has the same number of failures as amd64:

> Did 245 tests (0 crashed), 17999 checks.
>    Pass: 17912 (100%)
>    Fail: 87 ( 0%)

> reed-alert seems to work on macppc.

> I didn't try maxima on macppc.  For maxima on amd64, I replicated the
> test results that Timo posted, and I can run xmaxima.

> For the bug in 20.4.24 that broke my powerpc64, I need to write a bug
> report for upstream.  ecl_min calls ecl_symbol_value() before
> init_all_symbols(); reads p = q->data.value too early; gets p == 2 on
> most arch, p == 0x200000000 on 64-bit big-endian; but if (p & 3) == 0
> then ecl_min fails with SIGSEGV.  (powerpc64 also needs a diff for
> lang/boehm-gc that I intend to share later.)    --George

I gave building it a try, it died early on with:

/usr/ports/pobj/ecl-20.4.24/ecl-20.4.24/build/ecl/ecl_atomics.h:39:4: error: #er
ror "ECL needs AO_fetch_compare_and_swap or an equivalent"
 #  error "ECL needs AO_fetch_compare_and_swap or an equivalent"


--Kurt

Reply | Threaded
Open this post in threaded view
|

Re: Update lang/ecl to 20.4.24

Solene Rapenne
In reply to this post by George Koehler-2
On Tue, 28 Jul 2020 23:59:03 -0400
George Koehler <[hidden email]>:

> On Tue, 19 May 2020 08:59:48 -0700
> Josh Elsasser <[hidden email]> wrote:
>
> > Here's a quick update to the new release, minimally tested as a
> > lang/sbcl build host. The patch removes files, don't forget patch -E
> >
> > diff -ruN --exclude .git /usr/ports/lang/ecl/Makefile ./Makefile
> > --- /usr/ports/lang/ecl/Makefile Tue Feb 18 15:29:40 2020
> > +++ ./Makefile Mon May 18 09:44:49 2020
> > @@ -5,10 +5,9 @@
> >  
> >  BROKEN-mips64 = ecl_min fails
> >  
> > -V = 16.1.3
> > +V = 20.4.24  
>
> This update might break sparc64.  I don't have sparc64, but found a
> bug in 20.4.24 on powerpc64 that might affect other 64-bit big-endian
> arch (mips64 and sparc64).  It's BROKEN-mips64, but the sparc64 snap
> has packages of clic and maxima with ecl-16.1.3.p3.
>
> The ecl update has been stuck because it breaks net/clic (as Solene
> said).  In other ways, the update looks good to me.
>

I have a fix for net/clic that I will commit when ecl update is done

Reply | Threaded
Open this post in threaded view
|

Re: Update lang/ecl to 20.4.24

Timo Myyrä-6
Solene Rapenne <[hidden email]> writes:

> On Tue, 28 Jul 2020 23:59:03 -0400
> George Koehler <[hidden email]>:
>
>> On Tue, 19 May 2020 08:59:48 -0700
>> Josh Elsasser <[hidden email]> wrote:
>>
>> > Here's a quick update to the new release, minimally tested as a
>> > lang/sbcl build host. The patch removes files, don't forget patch -E
>> >
>> > diff -ruN --exclude .git /usr/ports/lang/ecl/Makefile ./Makefile
>> > --- /usr/ports/lang/ecl/Makefile Tue Feb 18 15:29:40 2020
>> > +++ ./Makefile Mon May 18 09:44:49 2020
>> > @@ -5,10 +5,9 @@
>> >  
>> >  BROKEN-mips64 = ecl_min fails
>> >  
>> > -V = 16.1.3
>> > +V = 20.4.24  
>>
>> This update might break sparc64.  I don't have sparc64, but found a
>> bug in 20.4.24 on powerpc64 that might affect other 64-bit big-endian
>> arch (mips64 and sparc64).  It's BROKEN-mips64, but the sparc64 snap
>> has packages of clic and maxima with ecl-16.1.3.p3.
>>
>> The ecl update has been stuck because it breaks net/clic (as Solene
>> said).  In other ways, the update looks good to me.
>>
>
> I have a fix for net/clic that I will commit when ecl update is done

I don't have any exotic archs to test this with, anyone with sparc64 able to
spin a ecl test?

If sparc64 still works we could update this.

timo

Reply | Threaded
Open this post in threaded view
|

Re: Update lang/ecl to 20.4.24

Josh Elsasser
In reply to this post by Kurt Mosiejczuk-9
On Wed, Jul 29, 2020 at 01:25:00AM -0400, Kurt Mosiejczuk wrote:

> On Tue, Jul 28, 2020 at 11:59:03PM -0400, George Koehler wrote:
>
> > This update might break sparc64.  I don't have sparc64, but found a
> > bug in 20.4.24 on powerpc64 that might affect other 64-bit big-endian
> > arch (mips64 and sparc64).  It's BROKEN-mips64, but the sparc64 snap
> > has packages of clic and maxima with ecl-16.1.3.p3.
>
> > The ecl update has been stuck because it breaks net/clic (as Solene
> > said).  In other ways, the update looks good to me.
>
> > ecl-20.4.24 works on macppc, has the same number of failures as amd64:
>
> > Did 245 tests (0 crashed), 17999 checks.
> >    Pass: 17912 (100%)
> >    Fail: 87 ( 0%)
>
> > reed-alert seems to work on macppc.
>
> > I didn't try maxima on macppc.  For maxima on amd64, I replicated the
> > test results that Timo posted, and I can run xmaxima.
>
> > For the bug in 20.4.24 that broke my powerpc64, I need to write a bug
> > report for upstream.  ecl_min calls ecl_symbol_value() before
> > init_all_symbols(); reads p = q->data.value too early; gets p == 2 on
> > most arch, p == 0x200000000 on 64-bit big-endian; but if (p & 3) == 0
> > then ecl_min fails with SIGSEGV.  (powerpc64 also needs a diff for
> > lang/boehm-gc that I intend to share later.)    --George
>
> I gave building it a try, it died early on with:
>
> /usr/ports/pobj/ecl-20.4.24/ecl-20.4.24/build/ecl/ecl_atomics.h:39:4: error: #er
> ror "ECL needs AO_fetch_compare_and_swap or an equivalent"
>  #  error "ECL needs AO_fetch_compare_and_swap or an equivalent"

My mips64 is still updating, but I see the same on sparc64:

===>  Building for ecl-20.4.24
cd build; gmake
gmake[1]: Entering directory '/usr/ports/pobj/ecl-20.4.24/ecl-20.4.24/build'
Building libeclmin.a...
gmake[2]: Entering directory '/usr/ports/pobj/ecl-20.4.24/ecl-20.4.24/build/c'
Makefile:90: warning: ignoring prerequisites on suffix rule definition
Makefile:90: warning: ignoring prerequisites on suffix rule definition
Makefile:90: warning: ignoring prerequisites on suffix rule definition
Makefile:90: warning: ignoring prerequisites on suffix rule definition
Makefile:87: warning: ignoring prerequisites on suffix rule definition
Makefile:85: warning: ignoring prerequisites on suffix rule definition
Makefile:85: warning: ignoring prerequisites on suffix rule definition
Makefile:87: warning: ignoring prerequisites on suffix rule definition
dpp: /usr/ports/pobj/ecl-20.4.24/ecl-20.4.24/src/c/main.d -> main.o.c
In file included from /usr/ports/pobj/ecl-20.4.24/ecl-20.4.24/build/ecl/stacks.h:23,
                 from /usr/ports/pobj/ecl-20.4.24/ecl-20.4.24/build/ecl/ecl.h:89,
                 from /usr/ports/pobj/ecl-20.4.24/ecl-20.4.24/src/c/main.d:17:
/usr/ports/pobj/ecl-20.4.24/ecl-20.4.24/build/ecl/ecl_atomics.h:39:4: error: #error "ECL needs AO_fetch_compare_and_swap or an equivalent"
 #  error "ECL needs AO_fetch_compare_and_swap or an equivalent"
    ^~~~~
/usr/ports/pobj/ecl-20.4.24/ecl-20.4.24/build/ecl/ecl_atomics.h: In function 'ecl_compare_and_swap':
/usr/ports/pobj/ecl-20.4.24/ecl-20.4.24/build/ecl/ecl_atomics.h:45:21: warning: implicit declaration of function 'AO_fetch_compare_and_swap'; did you mean 'AO_HAVE_compare_and_swap'? [-Wimplicit-function-declaration]
   return (cl_object)AO_fetch_compare_and_swap((AO_t*)slot, (AO_t)old_val, (AO_t)new_val);
                     ^~~~~~~~~~~~~~~~~~~~~~~~~
                     AO_HAVE_compare_and_swap
/usr/ports/pobj/ecl-20.4.24/ecl-20.4.24/build/ecl/ecl_atomics.h:45:10: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
   return (cl_object)AO_fetch_compare_and_swap((AO_t*)slot, (AO_t)old_val, (AO_t)new_val);
          ^
/usr/ports/pobj/ecl-20.4.24/ecl-20.4.24/src/c/main.d: In function 'si_exit':
/usr/ports/pobj/ecl-20.4.24/ecl-20.4.24/src/c/main.d:856:19: warning: unused variable 'the_env' [-Wunused-variable]
 cl_object
                   ^      
gmake[2]: *** [Makefile:88: main.o] Error 1
gmake[2]: Leaving directory '/usr/ports/pobj/ecl-20.4.24/ecl-20.4.24/build/c'
gmake[1]: *** [Makefile:144: libeclmin.a] Error 2
gmake[1]: Leaving directory '/usr/ports/pobj/ecl-20.4.24/ecl-20.4.24/build'
gmake: *** [Makefile:65: all] Error 2
*** Error 2 in . (/usr/ports/infrastructure/mk/bsd.port.mk:2925 '/usr/ports/pobj/ecl-20.4.24/.build_done': @cd /usr/ports/pobj/ecl-20.4.24/e...)
*** Error 2 in /usr/ports/mystuff/lang/ecl (/usr/ports/infrastructure/mk/bsd.port.mk:2584 'all': @lock=ecl-20.4.24;  export _LOCKS_HELD=" ec...)

Reply | Threaded
Open this post in threaded view
|

Re: Update lang/ecl to 20.4.24

George Koehler-2
In reply to this post by Kurt Mosiejczuk-9
On Wed, 29 Jul 2020 01:25:00 -0400
Kurt Mosiejczuk <[hidden email]> wrote:

> I gave building it a try, it died early on with:
>
> /usr/ports/pobj/ecl-20.4.24/ecl-20.4.24/build/ecl/ecl_atomics.h:39:4: error: #er
> ror "ECL needs AO_fetch_compare_and_swap or an equivalent"
>  #  error "ECL needs AO_fetch_compare_and_swap or an equivalent"

Thank you for the speedy test.  libatomic_ops in devel/boehm-gc is
missing AO_fetch_compare_and_swap for sparc.  It's still missing
upstream:

https://github.com/ivmai/libatomic_ops/blob/master/src/atomic_ops/sysdeps/gcc/sparc.h#L64

In this diff to devel/boehm-gc, I have tried to provide the missing
function (by copying AO_compare_and_swap_full, guessing, and referring
to SPARCV9.pdf, A.9 Compare and Swap, page 129), but I don't know
whether it compiles.  Even if it compiles, if sparc64 will have the
ecl_symbol_value bug, we won't know if it works.  I left my other
local changes (mmap and powerpc64) in the diff.

I describe the 64-bit big-endian ecl_symbol_value bug at
https://gitlab.com/embeddable-common-lisp/ecl/-/issues/604

Index: Makefile
===================================================================
RCS file: /cvs/ports/devel/boehm-gc/Makefile,v
retrieving revision 1.74
diff -u -p -r1.74 Makefile
--- Makefile 4 Apr 2020 20:59:41 -0000 1.74
+++ Makefile 30 Jul 2020 02:37:28 -0000
@@ -12,7 +12,7 @@ DISTNAME= gc-${VERSION}
 
 PKGNAME-atomic= libatomic_ops-${LIBAO_VERSION}
 PKGNAME-main= boehm-gc-${VERSION}
-REVISION= 5
+REVISION= 6
 
 DISTFILES= ${DISTNAME}${EXTRACT_SUFX} \
  libatomic_ops-${LIBAO_VERSION}${EXTRACT_SUFX}
Index: patches/patch-include_private_gcconfig_h
===================================================================
RCS file: /cvs/ports/devel/boehm-gc/patches/patch-include_private_gcconfig_h,v
retrieving revision 1.22
diff -u -p -r1.22 patch-include_private_gcconfig_h
--- patches/patch-include_private_gcconfig_h 15 Apr 2017 14:02:46 -0000 1.22
+++ patches/patch-include_private_gcconfig_h 30 Jul 2020 02:37:28 -0000
@@ -1,12 +1,25 @@
 $OpenBSD: patch-include_private_gcconfig_h,v 1.22 2017/04/15 14:02:46 naddy Exp $
 
+- use mmap, not sbrk, on OpenBSD
 - All OpenBSD mips platforms are 64-bit, so correct the wordsize and alignment
 - use __data_start instead of _fdata on OpenBSD/mips64
-- add support for OpenBSD/aarch64
+- add support for OpenBSD/aarch64 and powerpc64
 
---- include/private/gcconfig.h.orig Tue Aug  2 21:36:14 2016
-+++ include/private/gcconfig.h Fri Apr 14 17:44:40 2017
-@@ -102,7 +102,8 @@
+Index: include/private/gcconfig.h
+--- include/private/gcconfig.h.orig
++++ include/private/gcconfig.h
+@@ -76,6 +76,10 @@
+ /* And one for OpenBSD: */
+ # if defined(__OpenBSD__)
+ #    define OPENBSD
++#    ifndef USE_MMAP
++#      define USE_MMAP
++#    endif
++#    define USE_MMAP_ANON
+ # endif
+
+ /* And one for FreeBSD: */
+@@ -102,7 +106,8 @@
  # endif
  # if defined(__aarch64__)
  #    define AARCH64
@@ -16,7 +29,7 @@ $OpenBSD: patch-include_private_gcconfig
  #      define NOSYS
  #      define mach_type_known
  #    endif
-@@ -137,6 +138,10 @@
+@@ -137,6 +142,10 @@
  #    define ARM32
  #    define mach_type_known
  # endif
@@ -27,7 +40,21 @@ $OpenBSD: patch-include_private_gcconfig
  # if defined(OPENBSD) && defined(__sh__)
  #    define SH
  #    define mach_type_known
-@@ -1712,14 +1717,15 @@
+@@ -962,7 +971,12 @@
+ #   endif
+ #   ifdef OPENBSD
+ #     define OS_TYPE "OPENBSD"
+-#     define ALIGNMENT 4
++#     if defined(__powerpc64__)
++#       define ALIGNMENT 8
++#       define CPP_WORDSZ 64
++#     else
++#       define ALIGNMENT 4
++#     endif
+ #     ifndef GC_OPENBSD_THREADS
+ #       include <sys/param.h>
+ #       include <uvm/uvm_extern.h>
+@@ -1712,14 +1726,15 @@
  #  endif
  #  ifdef OPENBSD
  #    define OS_TYPE "OPENBSD"
@@ -46,7 +73,7 @@ $OpenBSD: patch-include_private_gcconfig
       extern int _end[];
  #    define DATAEND ((ptr_t)(&_end))
  #    define DYNAMIC_LOADING
-@@ -2165,6 +2171,19 @@
+@@ -2165,6 +2180,19 @@
        extern char etext[];
  #     define DATASTART GC_FreeBSDGetDataStart(0x1000, (ptr_t)etext)
  #     define DATASTART_USES_BSDGETDATASTART
Index: patches/patch-libatomic_ops_src_atomic_ops_sysdeps_gcc_sparc_h
===================================================================
RCS file: /cvs/ports/devel/boehm-gc/patches/patch-libatomic_ops_src_atomic_ops_sysdeps_gcc_sparc_h,v
retrieving revision 1.3
diff -u -p -r1.3 patch-libatomic_ops_src_atomic_ops_sysdeps_gcc_sparc_h
--- patches/patch-libatomic_ops_src_atomic_ops_sysdeps_gcc_sparc_h 4 Apr 2020 20:59:41 -0000 1.3
+++ patches/patch-libatomic_ops_src_atomic_ops_sysdeps_gcc_sparc_h 30 Jul 2020 02:37:28 -0000
@@ -2,6 +2,8 @@ $OpenBSD: patch-libatomic_ops_src_atomic
 
 Use the same type for input and output inline asm operands.
 
+Provide AO_fetch_compare_and_swap, needed by lang/ecl 20.4.24.
+
 Index: libatomic_ops/src/atomic_ops/sysdeps/gcc/sparc.h
 --- libatomic_ops/src/atomic_ops/sysdeps/gcc/sparc.h.orig
 +++ libatomic_ops/src/atomic_ops/sysdeps/gcc/sparc.h
@@ -14,3 +16,26 @@ Index: libatomic_ops/src/atomic_ops/sysd
    __asm__ __volatile__ ("membar #StoreLoad | #LoadLoad\n\t"
  #                       if defined(__arch64__)
                            "casx [%2],%0,%1\n\t"
+@@ -61,7 +61,21 @@ AO_compare_and_swap_full(volatile AO_t *addr, AO_t old
+ }
+ #define AO_HAVE_compare_and_swap_full
+
+-/* TODO: implement AO_fetch_compare_and_swap.   */
++AO_INLINE AO_t
++AO_fetch_compare_and_swap_full(volatile AO_t *addr, AO_t old, AO_t new_val) {
++  __asm__ __volatile__ ("membar #StoreLoad | #LoadLoad\n\t"
++#                       if defined(__arch64__)
++                          "casx [%1],%2,%0\n\t"
++#                       else
++                          "cas [%1],%2,%0\n\t" /* 32-bit version */
++#                       endif
++                        "membar #StoreLoad | #StoreStore\n\t"
++                        : "+r" (new_val)
++                        : "r" (addr), "r" (old)
++                        : "memory");
++  return new_val;
++}
++#define AO_HAVE_fetch_compare_and_swap_full
+ #endif /* !AO_NO_SPARC_V9 */
+
+ /* TODO: Extend this for SPARC v8 and v9 (V8 also has swap, V9 has CAS, */

Reply | Threaded
Open this post in threaded view
|

Re: Update lang/ecl to 20.4.24

Kurt Mosiejczuk-9
On Wed, Jul 29, 2020 at 11:05:31PM -0400, George Koehler wrote:
> On Wed, 29 Jul 2020 01:25:00 -0400
> Kurt Mosiejczuk <[hidden email]> wrote:

> > I gave building it a try, it died early on with:

> > /usr/ports/pobj/ecl-20.4.24/ecl-20.4.24/build/ecl/ecl_atomics.h:39:4: error: #er
> > ror "ECL needs AO_fetch_compare_and_swap or an equivalent"
> >  #  error "ECL needs AO_fetch_compare_and_swap or an equivalent"

> Thank you for the speedy test.  libatomic_ops in devel/boehm-gc is
> missing AO_fetch_compare_and_swap for sparc.  It's still missing
> upstream:

> https://github.com/ivmai/libatomic_ops/blob/master/src/atomic_ops/sysdeps/gcc/sparc.h#L64

> In this diff to devel/boehm-gc, I have tried to provide the missing
> function (by copying AO_compare_and_swap_full, guessing, and referring
> to SPARCV9.pdf, A.9 Compare and Swap, page 129), but I don't know
> whether it compiles.  Even if it compiles, if sparc64 will have the
> ecl_symbol_value bug, we won't know if it works.  I left my other
> local changes (mmap and powerpc64) in the diff.

> I describe the 64-bit big-endian ecl_symbol_value bug at
> https://gitlab.com/embeddable-common-lisp/ecl/-/issues/604

Unfortunately, even with boehm-gc compiled with this, ecl fails to
build with the same message.

--Kurt

> Index: Makefile
> ===================================================================
> RCS file: /cvs/ports/devel/boehm-gc/Makefile,v
> retrieving revision 1.74
> diff -u -p -r1.74 Makefile
> --- Makefile 4 Apr 2020 20:59:41 -0000 1.74
> +++ Makefile 30 Jul 2020 02:37:28 -0000
> @@ -12,7 +12,7 @@ DISTNAME= gc-${VERSION}
>  
>  PKGNAME-atomic= libatomic_ops-${LIBAO_VERSION}
>  PKGNAME-main= boehm-gc-${VERSION}
> -REVISION= 5
> +REVISION= 6
>  
>  DISTFILES= ${DISTNAME}${EXTRACT_SUFX} \
>   libatomic_ops-${LIBAO_VERSION}${EXTRACT_SUFX}
> Index: patches/patch-include_private_gcconfig_h
> ===================================================================
> RCS file: /cvs/ports/devel/boehm-gc/patches/patch-include_private_gcconfig_h,v
> retrieving revision 1.22
> diff -u -p -r1.22 patch-include_private_gcconfig_h
> --- patches/patch-include_private_gcconfig_h 15 Apr 2017 14:02:46 -0000 1.22
> +++ patches/patch-include_private_gcconfig_h 30 Jul 2020 02:37:28 -0000
> @@ -1,12 +1,25 @@
>  $OpenBSD: patch-include_private_gcconfig_h,v 1.22 2017/04/15 14:02:46 naddy Exp $
>  
> +- use mmap, not sbrk, on OpenBSD
>  - All OpenBSD mips platforms are 64-bit, so correct the wordsize and alignment
>  - use __data_start instead of _fdata on OpenBSD/mips64
> -- add support for OpenBSD/aarch64
> +- add support for OpenBSD/aarch64 and powerpc64
>  
> ---- include/private/gcconfig.h.orig Tue Aug  2 21:36:14 2016
> -+++ include/private/gcconfig.h Fri Apr 14 17:44:40 2017
> -@@ -102,7 +102,8 @@
> +Index: include/private/gcconfig.h
> +--- include/private/gcconfig.h.orig
> ++++ include/private/gcconfig.h
> +@@ -76,6 +76,10 @@
> + /* And one for OpenBSD: */
> + # if defined(__OpenBSD__)
> + #    define OPENBSD
> ++#    ifndef USE_MMAP
> ++#      define USE_MMAP
> ++#    endif
> ++#    define USE_MMAP_ANON
> + # endif
> +
> + /* And one for FreeBSD: */
> +@@ -102,7 +106,8 @@
>   # endif
>   # if defined(__aarch64__)
>   #    define AARCH64
> @@ -16,7 +29,7 @@ $OpenBSD: patch-include_private_gcconfig
>   #      define NOSYS
>   #      define mach_type_known
>   #    endif
> -@@ -137,6 +138,10 @@
> +@@ -137,6 +142,10 @@
>   #    define ARM32
>   #    define mach_type_known
>   # endif
> @@ -27,7 +40,21 @@ $OpenBSD: patch-include_private_gcconfig
>   # if defined(OPENBSD) && defined(__sh__)
>   #    define SH
>   #    define mach_type_known
> -@@ -1712,14 +1717,15 @@
> +@@ -962,7 +971,12 @@
> + #   endif
> + #   ifdef OPENBSD
> + #     define OS_TYPE "OPENBSD"
> +-#     define ALIGNMENT 4
> ++#     if defined(__powerpc64__)
> ++#       define ALIGNMENT 8
> ++#       define CPP_WORDSZ 64
> ++#     else
> ++#       define ALIGNMENT 4
> ++#     endif
> + #     ifndef GC_OPENBSD_THREADS
> + #       include <sys/param.h>
> + #       include <uvm/uvm_extern.h>
> +@@ -1712,14 +1726,15 @@
>   #  endif
>   #  ifdef OPENBSD
>   #    define OS_TYPE "OPENBSD"
> @@ -46,7 +73,7 @@ $OpenBSD: patch-include_private_gcconfig
>        extern int _end[];
>   #    define DATAEND ((ptr_t)(&_end))
>   #    define DYNAMIC_LOADING
> -@@ -2165,6 +2171,19 @@
> +@@ -2165,6 +2180,19 @@
>         extern char etext[];
>   #     define DATASTART GC_FreeBSDGetDataStart(0x1000, (ptr_t)etext)
>   #     define DATASTART_USES_BSDGETDATASTART
> Index: patches/patch-libatomic_ops_src_atomic_ops_sysdeps_gcc_sparc_h
> ===================================================================
> RCS file: /cvs/ports/devel/boehm-gc/patches/patch-libatomic_ops_src_atomic_ops_sysdeps_gcc_sparc_h,v
> retrieving revision 1.3
> diff -u -p -r1.3 patch-libatomic_ops_src_atomic_ops_sysdeps_gcc_sparc_h
> --- patches/patch-libatomic_ops_src_atomic_ops_sysdeps_gcc_sparc_h 4 Apr 2020 20:59:41 -0000 1.3
> +++ patches/patch-libatomic_ops_src_atomic_ops_sysdeps_gcc_sparc_h 30 Jul 2020 02:37:28 -0000
> @@ -2,6 +2,8 @@ $OpenBSD: patch-libatomic_ops_src_atomic
>  
>  Use the same type for input and output inline asm operands.
>  
> +Provide AO_fetch_compare_and_swap, needed by lang/ecl 20.4.24.
> +
>  Index: libatomic_ops/src/atomic_ops/sysdeps/gcc/sparc.h
>  --- libatomic_ops/src/atomic_ops/sysdeps/gcc/sparc.h.orig
>  +++ libatomic_ops/src/atomic_ops/sysdeps/gcc/sparc.h
> @@ -14,3 +16,26 @@ Index: libatomic_ops/src/atomic_ops/sysd
>     __asm__ __volatile__ ("membar #StoreLoad | #LoadLoad\n\t"
>   #                       if defined(__arch64__)
>                             "casx [%2],%0,%1\n\t"
> +@@ -61,7 +61,21 @@ AO_compare_and_swap_full(volatile AO_t *addr, AO_t old
> + }
> + #define AO_HAVE_compare_and_swap_full
> +
> +-/* TODO: implement AO_fetch_compare_and_swap.   */
> ++AO_INLINE AO_t
> ++AO_fetch_compare_and_swap_full(volatile AO_t *addr, AO_t old, AO_t new_val) {
> ++  __asm__ __volatile__ ("membar #StoreLoad | #LoadLoad\n\t"
> ++#                       if defined(__arch64__)
> ++                          "casx [%1],%2,%0\n\t"
> ++#                       else
> ++                          "cas [%1],%2,%0\n\t" /* 32-bit version */
> ++#                       endif
> ++                        "membar #StoreLoad | #StoreStore\n\t"
> ++                        : "+r" (new_val)
> ++                        : "r" (addr), "r" (old)
> ++                        : "memory");
> ++  return new_val;
> ++}
> ++#define AO_HAVE_fetch_compare_and_swap_full
> + #endif /* !AO_NO_SPARC_V9 */
> +
> + /* TODO: Extend this for SPARC v8 and v9 (V8 also has swap, V9 has CAS, */
>

Reply | Threaded
Open this post in threaded view
|

Re: Update lang/ecl to 20.4.24

Josh Elsasser
On Wed, Jul 29, 2020 at 11:52:25PM -0400, Kurt Mosiejczuk wrote:

> On Wed, Jul 29, 2020 at 11:05:31PM -0400, George Koehler wrote:
> > On Wed, 29 Jul 2020 01:25:00 -0400
> > Kurt Mosiejczuk <[hidden email]> wrote:
>
> > > I gave building it a try, it died early on with:
>
> > > /usr/ports/pobj/ecl-20.4.24/ecl-20.4.24/build/ecl/ecl_atomics.h:39:4: error: #er
> > > ror "ECL needs AO_fetch_compare_and_swap or an equivalent"
> > >  #  error "ECL needs AO_fetch_compare_and_swap or an equivalent"
>
> > Thank you for the speedy test.  libatomic_ops in devel/boehm-gc is
> > missing AO_fetch_compare_and_swap for sparc.  It's still missing
> > upstream:
>
> > https://github.com/ivmai/libatomic_ops/blob/master/src/atomic_ops/sysdeps/gcc/sparc.h#L64
>
> > In this diff to devel/boehm-gc, I have tried to provide the missing
> > function (by copying AO_compare_and_swap_full, guessing, and referring
> > to SPARCV9.pdf, A.9 Compare and Swap, page 129), but I don't know
> > whether it compiles.  Even if it compiles, if sparc64 will have the
> > ecl_symbol_value bug, we won't know if it works.  I left my other
> > local changes (mmap and powerpc64) in the diff.
>
> > I describe the 64-bit big-endian ecl_symbol_value bug at
> > https://gitlab.com/embeddable-common-lisp/ecl/-/issues/604
>
> Unfortunately, even with boehm-gc compiled with this, ecl fails to
> build with the same message.

It built for me, did you install the new libatomic_ops package too? I
notice that "make install" only installed the boehm-gc package.

With George's patch, it segfaults in ecl_min as he predicted,
similarly to mips64:


Building ecl_min...                                                                
libeclmin.a(unixfsys.o): In function `ecl_backup_open':
unixfsys.o.c:(.text+0x4a8): warning: strcpy() is almost always misused, please use strlcpy()
/usr/local/lib/libgmp.so.11.0: warning: vsprintf() is often misused, please use vsnprintf()
libeclmin.a(num_rand.o): In function `init_random_state':                          
num_rand.o.c:(.text+0x2ac): warning: rand() may return deterministic values, is that what you want?
                                                                                   
Internal or unrecoverable error in:                                                
Got signal before environment was installed on our thread                          
Abort trap (core dumped)
gmake[1]: *** [Makefile:99: bin/ecl] Error 134


(gdb) bt
#0  *_libc_abort () at /usr/src/lib/libc/stdlib/abort.c:57
#1  0x0000006af5d32f4c in ecl_internal_error ()
#2  0x0000006af5d64194 in sigsegv_handler ()
#3  <signal handler called>
#4  0x0000006af5d05154 in ecl_find_package_nolock ()
#5  0x0000006af5d054c0 in ecl_make_package ()
#6  0x0000006af5d022bc in cl_boot ()
#7  0x0000006af5d00f6c in main ()

Reply | Threaded
Open this post in threaded view
|

Re: Update lang/ecl to 20.4.24

Kurt Mosiejczuk-9
On Thu, Jul 30, 2020 at 08:32:25AM -0700, Josh Elsasser wrote:

> It built for me, did you install the new libatomic_ops package too? I
> notice that "make install" only installed the boehm-gc package.

I... did not. I'm not familiar with boehm-gc so didn't realize that was
needed. I'll give it a try again soon. Right now my test machine
is churning on something else.

--Kurt

> With George's patch, it segfaults in ecl_min as he predicted,
> similarly to mips64:

> Building ecl_min...                                                                
> libeclmin.a(unixfsys.o): In function `ecl_backup_open':
> unixfsys.o.c:(.text+0x4a8): warning: strcpy() is almost always misused, please use strlcpy()
> /usr/local/lib/libgmp.so.11.0: warning: vsprintf() is often misused, please use vsnprintf()
> libeclmin.a(num_rand.o): In function `init_random_state':                          
> num_rand.o.c:(.text+0x2ac): warning: rand() may return deterministic values, is that what you want?
>                                                                                    
> Internal or unrecoverable error in:                                                
> Got signal before environment was installed on our thread                          
> Abort trap (core dumped)
> gmake[1]: *** [Makefile:99: bin/ecl] Error 134
>
>
> (gdb) bt
> #0  *_libc_abort () at /usr/src/lib/libc/stdlib/abort.c:57
> #1  0x0000006af5d32f4c in ecl_internal_error ()
> #2  0x0000006af5d64194 in sigsegv_handler ()
> #3  <signal handler called>
> #4  0x0000006af5d05154 in ecl_find_package_nolock ()
> #5  0x0000006af5d054c0 in ecl_make_package ()
> #6  0x0000006af5d022bc in cl_boot ()
> #7  0x0000006af5d00f6c in main ()

Reply | Threaded
Open this post in threaded view
|

Re: Update lang/ecl to 20.4.24

George Koehler-2
In reply to this post by Josh Elsasser
On Thu, 30 Jul 2020 08:32:25 -0700
Josh Elsasser <[hidden email]> wrote:

> With George's patch, it segfaults in ecl_min as he predicted,
> similarly to mips64:
> ...
> Got signal before environment was installed on our thread                          

Daniel Kochmański put up a diff for ecl_find_package_nolock() that
"is not a proper fix", but gets around the segfault:
https://gitlab.com/embeddable-common-lisp/ecl/-/issues/604#note_388147381

Here's the diff as a ports/lang/ecl patch.  With this diff, and the
boehm-gc diff from my last mail, I can build and run ecl on my
powerpc64.  "make test" says,

Did 245 tests (0 crashed), 17999 checks.                                        
   Pass: 17908 (99%)                                                            
   Fail: 91 ( 1%)                                                              

--- /dev/null Thu Jul 30 14:17:54 2020
+++ patches/patch-src_c_package_d Thu Jul 30 13:44:33 2020
@@ -0,0 +1,45 @@
+$OpenBSD$
+
+Index: src/c/package.d
+--- src/c/package.d.orig
++++ src/c/package.d
+@@ -308,15 +308,14 @@ ecl_rename_package(cl_object x, cl_object name, cl_obj
+ }
+
+ /*
+-  ecl_find_package_nolock(n) seaches for a package with name n, where n is
+-  a valid string designator, or simply outputs n if it is a
+-  package.
++  ecl_find_package_nolock(n) seaches for a package with name n, where n is a
++  valid string designator, or simply outputs n if it is a package.
+
+-  This is not a locking routine and someone may replace the list of
+-  packages while we are scanning it. Nevertheless, the list IS NOT
+-  be destructively modified, which means that we are on the safe side.
+-  Routines which need to ensure that the package list remains constant
+-  should enforce a global lock with PACKAGE_OP_LOCK().
++  This is not a locking routine and someone may replace the list of packages
++  while we are scanning it. Nevertheless, the list IS NOT destructively
++  modified, which means that we are on the safe side.  Routines which need to
++  ensure that the package list remains constant should enforce a global lock
++  with PACKAGE_OP_LOCK().
+ */
+ cl_object
+ ecl_find_package_nolock(cl_object name)
+@@ -327,10 +326,12 @@ ecl_find_package_nolock(cl_object name)
+     return name;
+   name = cl_string(name);
+
+-  p = ecl_symbol_value(@'*package*');
+-  if (ECL_PACKAGEP(p)) {
+-    p = ecl_assoc(name, p->pack.local_nicknames);
+-    if (!Null(p)) return ECL_CONS_CDR(p);
++  if (ecl_option_values[ECL_OPT_BOOTED]) {
++    p = ecl_symbol_value(@'*package*');
++    if (ECL_PACKAGEP(p)) {
++      p = ecl_assoc(name, p->pack.local_nicknames);
++      if (!Null(p)) return ECL_CONS_CDR(p);
++    }
+   }
+
+   l = cl_core.packages;

12