[CLN-list] CLN defines macro As in global space

Junges, J.S.L. (Sebastian) sebastian.junges at ru.nl
Mon Oct 23 20:50:36 CEST 2023


Hi Bruno,

the problem is not very big :-) Thanks for your response!

Best,
Sebastian

> On 23 Oct 2023, at 15:30, Bruno Haible <bruno at clisp.org> wrote:
> 
> [You don't often get email from bruno at clisp.org. Learn why this is important at https://aka.ms/LearnAboutSenderIdentification ]
> 
> Hi Sebastian,
> 
>> We, developers of the model checker Storm, are long-time users of CLN. Thanks for all your work.
>> We recently got a bug message that boils down to a conflict between different libraries.
>> 
>> In particular, CLN adds the Macro AS in include/cln/number.h in line 274. This macro is globally defined upon including CLN and uses conflicts, e.g., MLPACK.
>> While we can work around this issue, we thought it may be possible to rename the macro to CL_AS or even _CL_AS.
> 
> This would be problematic, because the 'As' macro is a documented (and important)
> functionality of CLN. For 'The', there is 'cln::the' as a template alternative,
> but for 'As' we don't have an alternative 'cln::as' yet.
> 
> Is the problem really so big? In https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmlpack%2Fmlpack&data=05%7C01%7Csebastian.junges%40ru.nl%7C9955f26cb93e4eb607cf08dbd3cc31ba%7C084578d9400d4a5aa7c7e76ca47af400%7C1%7C0%7C638336646185626331%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=9AKkpwpFxV6YKVQPGE%2FycY5i5X9p%2Fv%2F8vol5ishHn%2FE%3D&reserved=0 the only uses
> of the identifier 'As' are not in front of an opening parenthesis:
>  mlpack/src/mlpack/methods/lsh/lsh_search_impl.hpp:671:      std::vector<bool> As = Ai;
>  mlpack/src/mlpack/methods/lsh/lsh_search_impl.hpp:674:      if (PerturbationShift(As) && PerturbationValid(As))
>  mlpack/src/mlpack/methods/lsh/lsh_search_impl.hpp:676:        perturbationSets.push_back(As); // add shifted set to sets
>  mlpack/src/mlpack/methods/lsh/lsh_search_impl.hpp:678:            std::make_pair(PerturbationScore(As, scores),
> therefore in fact I cannot see a conflict with mlpack at all.
> 
> I would therefore suggest the usual workaround:
>  - tweak the order of #includes,
>  - '#undef As' at appropriate places.
> 
> Bruno
> 
> 
> 

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 1515 bytes
Desc: not available
URL: <http://www.ginac.de/pipermail/cln-list/attachments/20231023/24a5522f/attachment.p7s>


More information about the CLN-list mailing list