Hi,
FYI, the *⎕MX* function object shall be present even if libgsl ist not
(so that proper SYNTAX ERRORs
will be displayed). And *subfun_to_axis()* is virtual and should be
provided (otherwise
we would need to #if/#endif the declaration of *subfun_to_axis()* which
impacts readability.
For these reasons, the constructor and subfun_to_axis() are outside the
main #if apl_GSL / #endif
Best Regards,
Jürgen
On 12/10/24 21:35, Henrik Moller wrote:
I'll look at the #if apl_GSL stuff
Henrik
On 12/10/24 15:16, PAUL ROCKWELL wrote:
I just downloaded and built SVN 1799 on Fedora 41 x86_64 and this
warning did not appear.
However I had issues reported by others with a linker failure.
I downloaded and installed earlier SVN versions and found that I
couldn't reproduce the linker failures.
I think some combination of 'make distclean''; svn up -r 17xx'
;./configure (17xx is the SVN that I wanted to test out) seemed to
make the linker issue go away.
I have noticed one other thing in Quad_MX.cc <http://quad_mx.cc>,
There's a conditional on line 1289:
#endif // (not) apl_GSL
which seems to be paired with this on line 55
#if apl_GSL
My interpretation is that all of the code between these should not be
compiled if apl_GSL is not set in config.h. apl_GSL wouldn't be set
if configure didn't find the GSL libraries needed by Quad_MX.
If that's the case, there are additional methods that are present in
Quad_MX.cc <http://quad_mx.cc> after the #endif.
#endif // (not) apl_GSL
//----------------------------------------------------------------------------
int
Quad_MX::axis_compare(const void * key, const void * info)
{
return strcasecmp(reinterpret_cast<const char *>(key),
reinterpret_cast<const fun_info *>(info)->sub_name);
}
//----------------------------------------------------------------------------
sAxis
Quad_MX::subfun_to_axis(const UCS_string & name) const
{
const UTF8_string function_name_utf8(name);
const char * function_name_str = function_name_utf8.c_str();
// Note: cannot use FUN_INFO_COUNT = FUN_INFO_SIZE / sizeof(op_desc)
// since Apple complains with a bogus error.
enum { FUN_INFO_SIZE = sizeof(fun_info),
FUN_INFO_COUNT = OP_MAX
};
if (const void * vp = bsearch(function_name_str, op_desc,
FUN_INFO_COUNT, FUN_INFO_SIZE, axis_compare))
{
// found: vp is a fun_info *
const fun_info * info = reinterpret_cast<const fun_info *>(vp);
if (info->valence) return info->code;
}
return -1; // not found
}
//----------------------------------------------------------------------------
Should these appear before the #endif ?
- Paul
On Dec 10, 2024, at 10:45 AM, Hans-Peter Sorge
<hanspeterso...@netscape.net> wrote:
Hi Jürgen.
the bug persists.
Best Regards
Hans-Peter
Am 10.12.24 um 13:02 schrieb Dr. Jürgen Sauermann:
Hi Hans-Peter, Bill,
as far as I can see the Apple error is bogus. However, I believe I
found
a solution in *SVN 1798*.
Best Regards,
Jürgen
On 12/9/24 22:31, Hans-Peter Sorge wrote:
Sorry - I get some horrible big letters in my original post.
High-res and font settings and manual adjust and Wayland seen not
to go along very well :-(
Am 09.12.24 um 22:22 schrieb Hans-Peter Sorge:
Hi,
Revision 1797 fails with
Quad_MX.cc: In member function 'virtual sAxis
Quad_MX::subfun_to_axis(const UCS_string&) const':
Quad_MX.cc:1306:27: error: invalid application of 'sizeof' to
incomplete type 'Quad_MX::fun_info []'
1306 | FUN_INFO_COUNT = sizeof(op_desc) / FUN_INFO_SIZE };
| ^~~~~~~~~~~~~~~
make[3]: *** [Makefile:4719: apl-Quad_MX.o] Error 1
on Fedora 41,
gcc (GCC) 14.2.1 20240912 (Red Hat 14.2.1-3)
Regards Hans-Peter