[GiNaC-list] Patch for ginac-1.8.7 (MacOS 14.6,Apple Silicon)

足立聡 pegasib0 at gmail.com
Tue Jul 30 17:56:44 CEST 2024


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 at 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.ginac.de/pipermail/ginac-list/attachments/20240731/b664b1f9/attachment-0001.htm>


More information about the GiNaC-list mailing list