I have a system I wrote that uses lparallel when possible, and otherwise works around it. Problem is, I’m now trying to test it on ECL, which errors upon merely loading lparallel.
Is there a way (other than #-ecl ) to specify system dependencies parameterized by implementation type? I’ve looked at Madiera Port but it seems to work only for subcomponents, not system dependencies. I wish to keep my .asd file as a simple machine-readable form, without reader conditionals etc.
( aside: lparallel loads fine on a current ECL. mine was just outdated. )
To my knowledge there is no direct way to do that in ASDF apart from reader conditionals. You could use XCVB instead, or write a
defsystem*macro that adds new syntax, or (maybe) hook into the existingdefsystemas madeira does.Without knowing your motivation, I wonder why the simple solution of
#-eclis being avoided. Do you wish to store metadata that links ECL to the nonexistence of lparallel? Note#-lparalleland#+lparallelmay be used in lisp files.By the way lparallel loads fine for me in ECL. Are you running the latest ECL? There is a known bug in ECL that causes the lparallel tests to eventually hang, however this may not affect all platforms.