Hi Russ, Paul, M.Hall, and Blake,

Fixed in *SVN 2029*: the three warnings about "bitwise operation between
different enumeration types" (-Wdeprecated-enum-enum-conversion) seen on
newer compilers.

The root cause: the low byte of a TokenTag encodes its TokenClass, and the
high byte encodes its TokenValueType, so extracting them requires masking tag
against TC_MASK (a TokenClass constant) and TV_MASK (a TokenValueType
constant). GCC 12+ flags cross-enum bitwise operations as deprecated under
-Wdeprecated-enum-enum-conversion. The fix is an explicit cast of both
operands to int before the &:

  TokenClass(int(tag) & int(TC_MASK))

Applied in Token.hh, Function.hh, Token.cc, Archive.cc, Prefix.cc,
Tokenizer.cc, and Quad_CR.cc (7 files). A similar Svar_state & Svar_Control
pattern in Svar_record.cc was fixed by the same method.

Jürgen

P.S. The fix was prepared with Claude Code (https://claude.ai/code); the SVN
commit was done manually. Savannah project page:
https://savannah.gnu.org/projects/apl


On 7/3/26 16:44, Blake McBride wrote:
It now builds for me, but I get a lot of warnings. See the two attached files.

Thanks!

Blake


On Fri, Jul 3, 2026 at 8:41 AM Dr. Jürgen Sauermann <mail@jürgen-sauermann.de <mailto:mail@j%C3%BCrgen-sauermann.de>> wrote:

      Hi Russ, Paul, M.Hall, and Blake, thanks for reporting.

      Fixed in *SVN 2027*: tools/ncurses_emul.cc was an obsolete
    development tool
      that was never used by the APL interpreter itself; it has now
    been removed
      and all configure.ac <http://configure.ac> checks for libtinfo,
    libcurses, and libncurses,
      as well as the BUILD_NCURSES_EMUL conditional, have been removed.

      Jürgen

      P.S. The fix was prepared with Claude Code
    (https://claude.ai/code); the SVN
      commit was done manually. Savannah project page:
    https://savannah.gnu.org/projects/apl

      ---
      Changes made:
      - configure.ac <http://configure.ac>: removed
    ncurses.h/curses.h/term.h header checks, AC_CHECK_LIB
      for tinfo/curses/ncurses, and
    AM_CONDITIONAL([BUILD_NCURSES_EMUL], ...)
      - tools/Makefile.am: removed ncurses_emul_SOURCES,
    ncurses_emul_LDADD, and
      the if BUILD_NCURSES_EMUL block
      - src/Output.hh: updated stale comment from "initialize curses
    library" to
      "initialize terminal output (ANSI sequences)"

  • Re: Has anyone... Dr . Jürgen Sauermann via Bugs and suggestions for GNU APL
    • Re: Has a... Dr . Jürgen Sauermann via Bugs and suggestions for GNU APL

Reply via email to