|
From: | Blake McBride |
Subject: | Re: New to GNU APL, curiosities or possible bugs? |
Date: | Tue, 23 Feb 2021 02:27:11 -0600 |
Hi,
I've just spent a couple of days working to get gnu-apl up and running under OS X Catalina. Good progress has been made, but I'm unsure if I have a stable and fully functioning copy of the interpreter.
During this exercise, I encountered four experiences that may indicate bugs. They are:
- Build Issue?: Newly saved workspaces rejected as ancient by interpreter
- Quirk?: Sqlite3 connection error message comes and goes
- Mystery?: Quad-Plot usage
- Bug?: ⎕SI for non function execution errors?
I'm unfamiliar with the gnu packaging tools and completely overwhelmed by this enormous code base. Thus, I apologize in advance for any limitations or mistakes in this report.
Regards,
John Helm
1) Build Issue: Newly saved workspaces warned as ancient by interpreter
The "standard" compile and install sequence using the apl-1.8.tar.gz tarball does not compile correctly on OS X Catalina.
The problem is configure runs svn commands to write a file ./src/buildtag.hh and these commands fail because the tarball is not an SVN repo. The resulting binary compiles without a build number. The net result is workspaces are saved with a null build number, and )LOADing these files fails with the following message:
WARNING: this workspace was )SAVEd with a VERY old SVN version of GNU APL.
Expect problems, in particular when the )SI was not clear.
In case of problems, please try )COPY instead of )LOAD.
DOMAIN ERROR+
immediate_execution() caught APL error 0x50004 (DOMAIN ERROR)
Here are some details from the compilations:
A) SVN errors emitted when running configure on the standard tarball
================================================================
configure: creating ./src//buildtag.hh
svn: E155007: '/Users/jlh/.local/etc/repos/apl-1.8/src/Archive.cc' is not a working copy
configure: creating ./src/makefile.h
configure: creating ./src/configure_args.cc
# Note SVN number missing in --version report
jlh@MacBook-XNOR apl-1.8 % apl --version
BUILDTAG:
---------
Project: GNU APL
Version / SVN: 1.8 / Unversioned directory
Build Date: 2021-02-22 17:48:39 UTC
Build OS: Darwin 19.6.0 x86_64
config.status: '--includedir=/opt/local/' '--with-sqlite3=/opt/local/' '--with-postgresql=no'
Archive SVN:
jlh@MacBook-XNOR apl-1.8 %
----------------------------------------------------------------
⍝ Create a workspace, save, and reload it to surface error
)wsid
IS CLEAR WS
∇hello
[1] 'hello world!'
[2] ∇
)wsid hello
WAS CLEAR WS
)save
2021-02-22 12:58:15 (GMT-5) hello
)clear
CLEAR WS
)load hello
WARNING: this workspace was )SAVEd with a VERY old SVN version of GNU APL.
Expect problems, in particular when the )SI was not clear.
In case of problems, please try )COPY instead of )LOAD.
SAVED 2021-02-22 12:58:15 (GMT-5)
================================================================
B) Pull down svn trunk and configure, make, etc...
# note the SVN number is now included
jlh@MacBook-XNOR trunk % apl --version
BUILDTAG:
---------
Project: GNU APL
Version / SVN: 1.8 / 1439M
Build Date: 2021-02-22 18:01:34 UTC
Build OS: Darwin 19.6.0 x86_64
config.status: '--includedir=/opt/local/' '--with-sqlite3=/opt/local/' '--with-postgresql=no'
Archive SVN: 1433
jlh@MacBook-XNOR trunk %
----
⍝ Load the workspace made by the version with a null SVN archive number
)load hello
WARNING: this workspace was )SAVEd with a VERY old SVN version of GNU APL.
Expect problems, in particular when the )SI was not clear.
In case of problems, please try )COPY instead of )LOAD.
DOMAIN ERROR+
⍝ overwrite with a new one, the problem is gone.
immediate_execution() caught APL error 0x50004 (DOMAIN ERROR)
∇hello
[1] 'Hello World!'
[2] ∇
)wsid
IS CLEAR WS
)wsid hello
WAS CLEAR WS
)save
2021-02-22 13:05:49 (GMT-5) hello
)clear
CLEAR WS
)load hello
SAVED 2021-02-22 13:05:49 (GMT-5)
hello
Hello World!
================================================================
2) Quirk: Sqlite3 error message comes and goes
To follow is a screen log in which apl was loaded four times. Every other load emits an error messages as follows:
1st load: No connection error message
2st load: ::connect() to supposedly existing APserver failed: Invalid argument
Svar_DB not connected in Svar_DB::is_registered_id()
3rd load: No connection error message
4st load: ::connect() to supposedly existing APserver failed: Invalid argument
Svar_DB not connected in Svar_DB::is_registered_id(
================================================================
jlh@MacBook-XNOR trunk % apl
______ _ __ __ __ ___ ____ __
/ ____// | / // / / / / | / __ \ / /
/ / __ / |/ // / / / / /| | / /_/ // /
/ /_/ // /| // /_/ / / ___ | / ____// /___
\____//_/ |_/ \____/ /_/ |_|/_/ /_____/
Welcome to GNU APL version 1.8 / 1439M
Copyright (C) 2008-2020 Dr. Jürgen Sauermann
Banner by FIGlet: www.figlet.org
This program comes with ABSOLUTELY NO WARRANTY;
for details run: apl --gpl.
This program is free software, and you are welcome to redistribute it
according to the GNU Public License (GPL) version 3 or later.
)off
Goodbye.
Session duration: 5.44214 seconds
jlh@MacBook-XNOR trunk % apl
::connect() to supposedly existing APserver failed: Invalid argument
______ _ __ __ __ ___ ____ __
/ ____// | / // / / / / | / __ \ / /
/ / __ / |/ // / / / / /| | / /_/ // /
/ /_/ // /| // /_/ / / ___ | / ____// /___
\____//_/ |_/ \____/ /_/ |_|/_/ /_____/
Welcome to GNU APL version 1.8 / 1439M
Copyright (C) 2008-2020 Dr. Jürgen Sauermann
Banner by FIGlet: www.figlet.org
This program comes with ABSOLUTELY NO WARRANTY;
for details run: apl --gpl.
This program is free software, and you are welcome to redistribute it
according to the GNU Public License (GPL) version 3 or later.
Svar_DB not connected in Svar_DB::is_registered_id()
)off
Goodbye.
Session duration: 7.12709 seconds
jlh@MacBook-XNOR trunk % apl
______ _ __ __ __ ___ ____ __
/ ____// | / // / / / / | / __ \ / /
/ / __ / |/ // / / / / /| | / /_/ // /
/ /_/ // /| // /_/ / / ___ | / ____// /___
\____//_/ |_/ \____/ /_/ |_|/_/ /_____/
Welcome to GNU APL version 1.8 / 1439M
Copyright (C) 2008-2020 Dr. Jürgen Sauermann
Banner by FIGlet: www.figlet.org
This program comes with ABSOLUTELY NO WARRANTY;
for details run: apl --gpl.
This program is free software, and you are welcome to redistribute it
according to the GNU Public License (GPL) version 3 or later.
)off
Goodbye.
Session duration: 9.30464 seconds
jlh@MacBook-XNOR trunk % apl
::connect() to supposedly existing APserver failed: Invalid argument
______ _ __ __ __ ___ ____ __
/ ____// | / // / / / / | / __ \ / /
/ / __ / |/ // / / / / /| | / /_/ // /
/ /_/ // /| // /_/ / / ___ | / ____// /___
\____//_/ |_/ \____/ /_/ |_|/_/ /_____/
Welcome to GNU APL version 1.8 / 1439M
Copyright (C) 2008-2020 Dr. Jürgen Sauermann
Banner by FIGlet: www.figlet.org
This program comes with ABSOLUTELY NO WARRANTY;
for details run: apl --gpl.
This program is free software, and you are welcome to redistribute it
according to the GNU Public License (GPL) version 3 or later.
Svar_DB not connected in Svar_DB::is_registered_id()
================================================================
3) Mystery Quad-Plot usage
All attempts to invoke ⎕PLOT result in a SYNTAX ERROR.
⎕plot ''
SYNTAX ERROR
⎕PLOT
^
⎕XYZ
VALUE ERROR
⎕X YZ
^
I note that this behavior is expected for ⎕RE if libpcre2 is absent when gnu-apl is compiled...
SYNTAX ERROR
⎕RE
^
'abc' ⎕RE 'aaaaabcccc'
SYNTAX ERROR+
'abc' ⎕RE 'aaaaabcccc'
Does this behavior indicate some prerequisites are missing for ⎕PLOT to work?
================================================================
4) Bug?: ⎕SI for non function execution errors?
4.1) It appears many (all?) errors cause push a event State Indicator. Other apl interpreters I've used do not push events such as value errors or domain errors on the State Indicator. Is this intended behavior?
4.2) The GNU APL info page indicates ⎕si's arguments include 5 and 6, but these return errors on my version. Is this a documentation error?
⍝ clear workspace
)si
⎕si 1
◊
⎕si 2
0
⎕si 3
◊[0]
⎕si 4
⎕si 4
⎕si 5
DOMAIN ERROR
⎕SI 5
^
⍝ ?? ⎕SI 5 is supposed to be valid
)si
⋆
⍝ ?? now the state indicator is non-null
⎕si 6
DOMAIN ERROR
⎕SI 6
^
)si
⋆
⋆
⍝ ?? now the state indicator has to elements?
xyzzy
VALUE ERROR
xyzzy
^
)si
⋆
⋆
⋆
⎕si 1
◊ ◊ ◊ ◊
⎕si 2
0 0 0 0
⎕si 3
◊[0] ◊[0] ◊[0] ◊[0]
⎕si 4
⎕SI 5 ⎕SI 6 xyzzy ⎕si 4
⎕si 5
DOMAIN ERROR
⎕SI 5
^
⎕si 6
DOMAIN ERROR
⎕SI 6
^
[Prev in Thread] | Current Thread | [Next in Thread] |