Hi Louis,

thanks, hopefully fixed in SVN 1880.

I believe I have caught most of the C++ warnings. The warning about
dynamic arrays is somewhat bogus since every C++ compiler that I know of
supports dynamic arrays event though they are not standardised in C++ (and
only god knows why not).

I haven't touched the ld warnings; it seems like these linker flags are needed on some platforms. It might be that re-running *libtoolize* and/or *aclocal* gets rid of
these warnings.

Best Regards,
Jürgen


On 8/12/25 20:18, Louis Chretien wrote:
Yes, it did. The build was successful despite the warnings.

—
Louis Chrétien
lchret...@mac.com

On Aug 12, 2025, at 13:18, Dr. Jürgen Sauermann <mail@jürgen-sauermann.de> wrote:

 Hi Louis,

I will look into this. Did the build produce a working apl binary despite the warnings?

Thanks,
Jürgen


On 7/21/25 18:33, Louis Chretien via Bugs and suggestions for GNU APL wrote:
There is a bunch of warnings on the latest build of GNU APL for Mac OS 14.7.6:

==============================

Backtrace.cc:1401:18: warning: variable length arrays in C++ are a Clang extension [-Wvla-cxx-extension]
 1401 |          char si[strlen(const_si) + 1];
      |                  ^~~~~~~~~~~~~~~~~~~~
Backtrace.cc:1401:25: note: read of non-constexpr variable 'const_si' is not allowed in a constant expression
 1401 |          char si[strlen(const_si) + 1];
      |                         ^
Backtrace.cc:1400:23: note: declared here
 1400 |          const char * const_si = strings[size - i - 1];
      |                       ^
1 warning generated.

Bif_F12_INDEX_OF.cc:75:22: warning: variable length arrays in C++ are a Clang extension [-Wvla-cxx-extension]
   75 |         ShapeItem zz[rk_Z];
      |                      ^~~~
Bif_F12_INDEX_OF.cc:75:22: note: initializer of 'rk_Z' is not a constant expression
Bif_F12_INDEX_OF.cc:70:13: note: declared here
   70 | const sRank rk_Z = Z->get_rank();
      |             ^
1 warning generated.

PrimitiveFunction.cc:538:20: warning: variable length arrays in C++ are a Clang extension [-Wvla-cxx-extension]
  538 | ShapeItem weight_Z[rank_Z];
      |                    ^~~~~~
PrimitiveFunction.cc:538:20: note: read of non-const variable 'rank_Z' is not allowed in a constant expression
PrimitiveFunction.cc:517:11: note: declared here
  517 | ShapeItem rank_Z = 0;
      |           ^
1 warning generated.

Quad_CR.cc:1143:16: warning: variable length arrays in C++ are a Clang extension [-Wvla-cxx-extension]
 1143 | UTF8 bytes_utf[len_B + 10];
      |                ^~~~~~~~~~
Quad_CR.cc:1143:16: note: initializer of 'len_B' is not a constant expression
Quad_CR.cc:1141:17: note: declared here
 1141 | const ShapeItem len_B = B->element_count();
      |                 ^
Quad_CR.cc:1723:32: warning: variable 'bi' set but not used [-Wunused-but-set-variable]  1723 |          if (const APL_Integer bi = cell_B.get_near_int())   chunk |= bit;
      |                                ^
2 warnings generated.

Quad_DLX.cc:465:16: warning: variable length arrays in C++ are a Clang extension [-Wvla-cxx-extension]
  465 | char rows_used[rows];
      |                ^~~~
Quad_DLX.cc:465:16: note: implicit use of 'this' pointer is only allowed within the evaluation of a call to a 'constexpr' member function Quad_DLX.cc:478:18: warning: variable length arrays in C++ are a Clang extension [-Wvla-cxx-extension]
  478 |          int row[cols];
      |                  ^~~~
Quad_DLX.cc:478:18: note: implicit use of 'this' pointer is only allowed within the evaluation of a call to a 'constexpr' member function
2 warnings generated.

Tokenizer.cc:966:13: warning: variable length arrays in C++ are a Clang extension [-Wvla-cxx-extension]   966 | char buffer[int_digits.size() + fract_digits.size() + expo_digits.size() + 20];       | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Tokenizer.cc:966:24: note: non-constexpr function 'size' cannot be used in a constant expression   966 | char buffer[int_digits.size() + fract_digits.size() + expo_digits.size() + 20];
      |                        ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/string:1284:65: note: declared here  1284 |   _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 size_type size() const _NOEXCEPT {
      |                 ^
1 warning generated.

UCS_string_vector.cc:228:25: warning: variable length arrays in C++ are a Clang extension [-Wvla-cxx-extension]
  228 | ShapeItem column_widths[column_count];
      |                         ^~~~~~~~~~~~
UCS_string_vector.cc:228:25: note: function parameter 'column_count' with unknown value cannot be used in a constant expression
UCS_string_vector.cc:225:59: note: declared here
  225 | UCS_string_vector::print_table(std::ostream & out, size_t column_count) const
      |           ^
1 warning generated.

UserFunction.cc:638:13: warning: variable length arrays in C++ are a Clang extension [-Wvla-cxx-extension]
  638 | char status[get_text_size()];   status[0] = Function_header;
      |             ^~~~~~~~~~~~~~~
UserFunction.cc:638:13: note: implicit use of 'this' pointer is only allowed within the evaluation of a call to a 'constexpr' member function UserFunction.cc:731:13: warning: variable length arrays in C++ are a Clang extension [-Wvla-cxx-extension]
  731 | char status[get_text_size()];   status[0] = Function_header;
      |             ^~~~~~~~~~~~~~~
UserFunction.cc:731:13: note: implicit use of 'this' pointer is only allowed within the evaluation of a call to a 'constexpr' member function UserFunction.cc:856:35: warning: variable 'ec' set but not used [-Wunused-but-set-variable]   856 |               if (const ErrorCode ec = transform_new_multi_lines())
      |                                   ^
UserFunction.cc:875:35: warning: variable 'ec' set but not used [-Wunused-but-set-variable]   875 |               if (const ErrorCode ec = transform_old_multi_lines())
      |                                   ^
UserFunction.cc:1414:24: warning: variable 'ec' set but not used [-Wunused-but-set-variable]
 1414 |    if (const ErrorCode ec = parser.parse(body_text, body, true))
      |                        ^
5 warnings generated.

==============================

Also, there is an option on the ld command that should probably be removed in the makefile:

==============================

checking for -single_module linker flag... ld: warning: -single_module is obsolete
no
ld: warning: -bind_at_load is deprecated on macOS

==============================

---
Louis Chrétien
lchret...@mac.com


  • MacOS: Bunch o... Louis Chretien via Bugs and suggestions for GNU APL
    • Re: MacOS... Louis Chretien
      • Re: M... Dr . Jürgen Sauermann via Bugs and suggestions for GNU APL
        • R... Blake McBride
          • ... Paul Rockwell
          • ... Robin Haberkorn

Reply via email to