Dear Developers of GiNaC, [0] Thank you very much for developing and maintaining GiNaC, which is a very nice system to write C++ programs for symbolic computation. [1] During recent several months, I had a trouble to build ginac-1.8.7 on my MacBookPro (Apple Silicon). The configuration and compilation steps succeeded, but the check step failed at two tests as follows: ./configure --> checking for a BSD-compatible install... /Ext/sw/bin/ginstall -c ... Configuration of GiNaC 1.8.7 done. Now type "make". make --> Making all in ginac ... /Ext/sw/bin/makeinfo --no-split --html ./ginac-examples.texi make check --> Making check in ginac ... PASS: exam_paranoia ... PASS: exam_color FAIL: exam_clifford FAIL: exam_archive PASS: exam_structure ... PASS: time_parser ============================================================================ Testsuite summary for GiNaC 1.8.7 ============================================================================ # TOTAL: 61 # PASS: 59 # SKIP: 0 # XFAIL: 0 # FAIL: 2 # XPASS: 0 # ERROR: 0 ============================================================================ See check/test-suite.log Please report to ginac-list@ginac.de ============================================================================ My environment is as follows: Hardware: MacBookPro (Apple Silicon,14inch,2023) OS: MacOS 14.6 Compiler: Xcode 15.4 g++ --version --> Apple clang version 15.0.0 (clang-1500.3.9.4) Target: arm64-apple-darwin23.6.0 Thread model: posix InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin [2] I have investigated what caused this trouble and found that the phenomenon described in "ginac/hash_seed.h" occurs not only in Win32 but also in my MacOS 14.6. typeid(ex.bp).name() returns always correct C string as value but its address varies from a call to another call. Accordingly, the problem can be fixed as follows: *** ginac/hash_seed.h.org Sun Jan 1 03:47:20 2023 --- ginac/hash_seed.h Tue Jul 30 23:02:36 2024 *************** *** 8,14 **** #include <typeinfo> #include <cstring> #include "utils.h" ! #ifdef _WIN32 #define GINAC_HASH_USE_MANGLED_NAME 1 #endif --- 8,14 ---- #include <typeinfo> #include <cstring> #include "utils.h" ! #if defined(_WIN32) || defined(__APPLE__) #define GINAC_HASH_USE_MANGLED_NAME 1 #endif [3] Now, everything is fine. make distclean ./configure ... make ... make check --> Making check in ginac ... PASS: exam_paranoia PASS: exam_heur_gcd PASS: exam_match PASS: exam_parser PASS: exam_numeric PASS: exam_relational PASS: exam_powerlaws PASS: exam_collect PASS: exam_inifcns PASS: exam_inifcns_nstdsums PASS: exam_inifcns_elliptic PASS: exam_differentiation PASS: exam_polygcd PASS: exam_collect_common_factors PASS: exam_normalization PASS: exam_sqrfree PASS: exam_factor PASS: exam_pseries PASS: exam_matrices PASS: exam_lsolve PASS: exam_indexed PASS: exam_color PASS: exam_clifford PASS: exam_archive PASS: exam_structure PASS: exam_misc PASS: exam_pgcd PASS: exam_mod_gcd PASS: exam_chinrem_gcd PASS: exam_function_exvector PASS: exam_real_imag PASS: check_numeric PASS: check_inifcns PASS: check_matrices PASS: check_lsolve PASS: check_cra PASS: time_dennyfliegner PASS: time_gammaseries PASS: time_vandermonde PASS: time_toeplitz PASS: time_lw_A PASS: time_lw_B PASS: time_lw_C PASS: time_lw_D PASS: time_lw_E PASS: time_lw_F PASS: time_lw_G PASS: time_lw_H PASS: time_lw_IJKL PASS: time_lw_M1 PASS: time_lw_M2 PASS: time_lw_N PASS: time_lw_O PASS: time_lw_P PASS: time_lw_Pprime PASS: time_lw_Q PASS: time_lw_Qprime PASS: time_antipode PASS: time_fateman_expand PASS: time_uvar_gcd PASS: time_parser ============================================================================ Testsuite summary for GiNaC 1.8.7 ============================================================================ # TOTAL: 61 # PASS: 61 # SKIP: 0 # XFAIL: 0 # FAIL: 0 # XPASS: 0 # ERROR: 0 sudo make install ... [4] There may be other people who run into the same problem as I. In that case, please utilize this information. Finally, GiNaC is a really nice system to write programs for symbolic computation. Thank you very much for publishing GiNaC to help us. Sincerely yours, Satoshi Adachi