Link failed with SVN 1917:
libtool: link: g++ -Wall -I sql -I /Users/paulrockwell/Documents/apl/trunk -O2
-Wno-narrowing -I/opt/local/include -std=gnu++17 -I
/Users/paulrockwell/Documents/apl/trunk -o apl apl-main.o apl-Plot_xcb.o
apl-Archive.o apl-Assert.o apl-Avec.o apl-Backtrace.o apl-Bif_F12_COMMA.o
apl-Bif_F12_DOMINO.o apl-Bif_F12_INDEX_OF.o apl-Bif_F12_INTERVAL_INDEX.o
apl-Bif_F12_FORMAT.o apl-Bif_F12_PARTITION_PICK.o apl-Bif_F12_SORT.o
apl-Bif_F12_TAKE_DROP.o apl-Bif_OPER1_COMMUTE.o apl-Bif_OPER1_EACH.o
apl-Bif_OPER2_POWER.o apl-Bif_OPER2_INNER.o apl-Bif_OPER2_OUTER.o
apl-Bif_OPER2_RANK.o apl-Bif_OPER1_REDUCE.o apl-Bif_OPER1_SCAN.o apl-CDR.o
apl-Cell.o apl-Doxy.o apl-CharCell.o apl-Command.o apl-Common.o
apl-ComplexCell.o apl-DerivedFunction.o apl-DiffOut.o apl-DynamicObject.o
apl-Error.o apl-Executable.o apl-FloatCell.o apl-Function.o apl-Id.o
apl-IndexExpr.o apl-IndexIterator.o apl-InputFile.o apl-IntCell.o
apl-IO_Files.o apl-LApack.o apl-LibPaths.o apl-LineInput.o apl-Logging.o
apl-LvalCell.o apl-Malloc_hooks.o apl-Nabla.o apl-Macro.o
apl-Missing_Libraries.o apl-NamedObject.o apl-NativeFunction.o
apl-NumericCell.o apl-Output.o apl-Parallel.o apl-Parser.o apl-Performance.o
apl-PointerCell.o apl-Prefix.o apl-Plot_line_properties.o apl-Plot_data.o
apl-Plot_window_properties.o apl-PrimitiveFunction.o apl-PrintBuffer.o
apl-QR_factorization_GSL.o apl-QuadFunction.o apl-ProcessorID.o apl-Quad_CR.o
apl-Quad_DLX.o apl-Quad_FFT.o apl-Quad_FIO.o apl-Quad_FX.o apl-Quad_GTK.o
apl-Quad_JSON.o apl-Quad_MAP.o apl-Quad_MX.o apl-Quad_PLOT.o apl-Quad_PNG.o
apl-Quad_RE.o apl-Quad_RL.o apl-Quad_RVAL.o apl-Quad_SQL.o apl-Quad_SVx.o
apl-Quad_TF.o apl-Quad_WA.o apl-Quad_XML.o apl-RealCell.o apl-sbrk.o
apl-Shape.o apl-ScalarFunction.o apl-Security.o apl-StateIndicator.o
apl-Svar_DB.o apl-Svar_record.o apl-Symbol.o apl-SymbolTable.o
apl-SystemVariable.o apl-TabExpansion.o apl-Thread_context.o apl-Token.o
apl-Tokenizer.o apl-UCS_string.o apl-UCS_string_vector.o apl-UserFunction.o
apl-UserFunction_header.o apl-UserPreferences.o apl-UTF8_string.o apl-Value.o
apl-ValueHistory.o apl-Workspace.o apl-static_Objects.o apl-Regexp.o
sql/apl-SqliteArgListBuilder.o sql/apl-SqliteConnection.o
sql/apl-SqliteResultValue.o sql/apl-SqliteProvider.o sql/apl-Connection.o
-Wl,-bind_at_load -L/usr/local/lib -lsqlite3 -L/opt/local/lib -lgsl -lgslcblas
-lpcre2-32 -lz -lpng -lfftw3 -lX11-xcb -lxcb -lX11 -ldl -lm -lncurses -lcurses
-lpthread
ld: warning: -bind_at_load is deprecated on macOS
Undefined symbols for architecture arm64:
"Quad_RVAL::eval_B(Value_P) const", referenced from:
vtable for Quad_RVAL in apl-Quad_RVAL.o
ld: symbol(s) not found for architecture arm64
clang++: error: linker command failed with exit code 1 (use -v to see
invocation)
make[3]: *** [apl] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
(on macOS, the ld warning about -bind_at_load is normal)
This looks to be an issue where glibc is not available (HAVE_LIBC is not
defined). Looking at the code, there's no function definition
for Quad_RVAL::eval_B() in src/Qual_RVAL.cc <http://qual_rval.cc/> if HAVE_LIBC
is not defined (#else at line 657).
This diff looks to have fixed it for me for macOS. I get a clean compilation
and link, and ⎕RVAL generates a syntax error if I try to use it
along with the explanation that this is not available on my platform).
Index: src/Quad_RVAL.cc
===================================================================
--- src/Quad_RVAL.cc (revision 1917)
+++ src/Quad_RVAL.cc (working copy)
@@ -663,6 +663,17 @@
N = 8;
}
//----------------------------------------------------------------------------
+Token
+Quad_RVAL::eval_B(Value_P B) const
+{
+ MORE_ERROR() <<
+"⎕RVAL is only available on platforms that have glibc.\n"
+"Your platform is lacking initstate_r() (and probably others).";
+
+ SYNTAX_ERROR;
+ return Token();
+}
+//----------------------------------------------------------------------------
Value_P
Quad_RVAL::do_eval_B(const Value & B, int depth) const
{
- paul
> On Nov 28, 2025, at 1:09 PM, Dr. Jürgen Sauermann <mail@jürgen-sauermann.de>
> wrote:
>
> Hi,
>
> thanks. Next try: SVN 1917.
>
> Best Regards,
> Jürgen
>
>
> On 11/28/25 18:24, Paul Rockwell wrote:
>> Still issues with SVN1915
>>
>> g++ -DHAVE_CONFIG_H -I. -I.. -Wall -I sql -I
>> /Users/me/Documents/apl/trunk -O2 -Wno-narrowing
>> -I/opt/local/include -std=gnu++17 -I /Users/me/Documents/apl/trunk -MT
>> apl-Quad_RVAL.o -MD -MP -MF .deps/apl-Quad_RVAL.Tpo -c -o apl-Quad_RVAL.o
>> `test -f 'Quad_RVAL.cc' || echo './'`Quad_RVAL.cc
>> mv -f .deps/apl-Quad_MX.Tpo .deps/apl-Quad_MX.Po
>> Quad_RVAL.cc:683:12: error: redefinition of 'eval_XB'
>> 683 | Quad_RVAL::eval_XB(Value_P A, Value_P B) const
>> | ^
>> ./Quad_RVAL.hh:60:18: note: previous definition is here
>> 60 | virtual Token eval_XB(Value_P X, Value_P B) const
>> | ^
>> 1 error generated.
>>
>> Compiler info:
>>
>> $ c++ --version
>> Apple clang version 17.0.0 (clang-1700.4.4.1)
>> Target: arm64-apple-darwin25.1.0
>> Thread model: posix
>>
>>
>>> On Nov 28, 2025, at 10:39 AM, Dr. Jürgen Sauermann via Bugs and suggestions
>>> for GNU APL <[email protected]> <mailto:[email protected]> wrote:
>>>
>>> Hi,
>>>
>>> thanks. Hopefully all fixed in SVN 1915.
>>>
>>> Best Regards,
>>> Jürgen
>>>
>>
>