Read-only forum archive

Singular defines macros generating conflicts in Sagemath

Singular defines macros generating conflicts in Sagemath

Guest · Mon Dec 06, 2021 4:50 pm

Hi,
In SageMath, Singular generates the file factory.h which defines the macro #define IntegerDomain 1.
This conflict with Givaro's code using a class IntegerDomain with the Givaro namespace.

See the discussion here on sage-devel (sorry I can't post a link)


Would it be possible to avoid leaving C macros defined in the precompiler namespace, this is likely to generate such conflicts, especially with natural names in camel case like in this case.
- a first option could be to undefine the macro after it has been used
- or to rename the macro with a Singular specific prefix, like __SINGULAR

Thanks for your help.
Best.
Clément

Re: Singular defines macros generating conflicts in Sagemath

hannes · Mon Dec 06, 2021 5:26 pm

IntegerDomain can be less public, that should solve this problem:
see https://github.com/Singular/Singular/commit/18bb792edcc6d3f65af0111f93ed61118123ffd1