Hi Roy,

thanks for reporting this. I believe the bug may occur on platforms where
ints are 32 bit and pointers are 64 bits so the upper 32 bits of the difference
are ignored. Fixed in *SVN 1982*.

Talking about running GNU APL on the public internet please consider
the security chapter in the attached report from Claude Code. Even
though it is correct that *⎕FIO* and friends are insecure, I believe that
the (insecure) default is the proper choice for almost every normal
user and that only GNU APL instances connected to the internet (like
*trygnuapl*) should disable it.

And many thanks to Blake McBride who had kindly pointed me at
Claude Code.

Best Regards,
Jürgen


On 4/19/26 17:46, Roy Tobin wrote:
Hi, New code in GNU APL svn1946 of Jan 2026:

         /// compare function for bsearch()
         static int compare(const Value * const & key,
                            const _val_par & B, const void *)
            {
               return int64_t(key) - int64_t(B._val);
            }

Has a portability bug that manifests on some architectures.  I found it
when integrating post-svn1945 for trygnuapl.github.io <http://trygnuapl.github.io>. C/C++ coders may
want to see if they can spot anything amiss.

The bug hunt story, bug explanation, and my solution are here:

https://gist.github.com/roytobin/7b06f28a4acc9fbca103168807e49535


Attachment: apl_analysis_report.docx
Description: MS-Word 2007 document

Reply via email to