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)"