Same behavior with SVN 2135 on macos 15.8.1. I have "SharedVars Disabled" in .config/gnu-apl/preferences file, but got the same messages.
On Mon, Oct 5, 2026 at 1:11 PM Paul Rockwell <[email protected]> wrote: > I preface this by understanding that shared variables ((⎕SVO,etc) are > considered an obsolete feature of GNU APL. I have my preferences set so > that APserver is never started by default. But I've come across the > following when using the default GNU APL behavior of enabling shared > variable support. > > When starting the interpreter in SVN 2133 on macOS 26 and 27 with the > shared variable support enabled, I'm greeted with the following: > > % apl --SV > > /usr/local/bin/APserver: listen socket has died unexpectedly > > /usr/local/bin/APserver: listen socket has died unexpectedly > > ::connect() to supposedly existing APserver failed: Socket is already > connected > > > ______ _ __ __ __ ___ ____ __ > > / ____// | / // / / / / | / __ \ / / > > / / __ / |/ // / / / / /| | / /_/ // / > > / /_/ // /| // /_/ / / ___ | / ____// /___ > > \____//_/ |_/ \____/ /_/ |_|/_/ /_____/ > > > Welcome to GNU APL version 2.0 / SVN: 2133M > > > Copyright © 2008-2026 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 General Public License (GPL) version 3 or later. > > > Svar_DB not connected in Svar_DB::is_registered_id() (APserver not > running; shared variables unavailable) > > /usr/local/bin/APserver: listen socket has died unexpectedly > > /usr/local/bin/APserver: listen socket has died unexpectedly > > ) /usr/local/bin/APserver: listen socket has died unexpectedly > > o ff > > > Goodbye. > > Session duration: 4.67723 seconds > > paulrockwell@Upstairs ~ % /usr/local/bin/APserver: listen socket has died > unexpectedly > > k/usr/local/bin/APserver: listen socket has died unexpectedly > > killall/usr/local/bin/APserver: listen socket has died unexpectedly > > AP/usr/local/bin/APserver: listen socket has died unexpectedly > > serv/usr/local/bin/APserver: listen socket has died unexpectedly > > er > > The error messages from APserver continue after I stop the interpreter > because the /usr/local/bin/APserver process is still running in the > background. I have to locate and kill the process manually. > > Debugging the source code by executing APserver manually like GNU APL is > doing behind the scenes revealed that the followng code in src/APs/ > APserver.cc function listen_sock() is returning failure: > > // read() cannot be used to probe a Winsock SOCKET on Windows -- > > // it is not a CRT file descriptor, only > recv()/send()/ioctlsocket() > > // are valid on it -- so this always (falsely) reported the listen > > // socket, and then any freshly accepted connection, as dead on > > // every pass, immediately closing real connections again via > > // close_fd() below. A dead listen socket has no corrective action > > // here anyway (just the message); on Windows a dead > per-connection > > // socket is still caught by the normal recv() return value once > > // real data-handling code runs on it later in the loop, the same > > // way most Windows socket servers detect a disconnect. > > *if* (0 != read(listen_sock, &dummy, 0)) > > cerr << prog << ": listen socket has died unexpectedly" << endl > ; > > > > The read() on listen_sock is returning error code 57 (ENOTCONN), in case > that helps. > > I've included the configure output, config.log, and config.h so you can > see how GNU APL has been configured. > > A side request: If you consider shared variable support to be obsolete, > could the global GNU APL preferences be configured so that shared variable > support is disabled by default? > > > - Paul Rockwell > > -- Mike Hall
