< Back to IRCAM Forum

Zn TAC question

Hi!

I’m working my way through the Zn tutorials. Evaluating the famille object in the TAC tutorial results in the following error:

Error while evaluating the box FAMILLE : complementaire got 2 args, wanted 1.

Am I missing something?

Thanks,
phil

Hi phil,

I’ve testing and I’ve the same error with OM 6.9 but it’s correct with OM 6.8.
Didier

Hello
“famille” and “complementaire” in principle did not change between 6.8 and 6.9
I think this tutorial works in a “fresh” OM session.
=> my guess is that you have a library loaded, which redefines the om::complementaire function.
can you chack and tell us which are the external libraries loaded in your session ?
Jean

Bonjour Jean,

Effectivement, il y a un manifestement un conflit avec une des librairies. Je vais les tester pour repérer celle qui entre en conflit.
Didier

you can type “complementaire” and use the “Find definition” tool from the Lisp menu of the Listener window
you will see where the redefinition is located

(during the time for the Forum page took to reload :slight_smile: I have had time to search and find it in the RepMus library.
So, good to know (no RepMus if you want to use this Zn function) but to be fixed for the next version
Jean

Hello Jean,
A priori c’est la librairie Repmus qui pose problème chez moi avec OM 6.8 et 0M 6.9 sous windows 8 et OS X Yosemite 10.10.3. J’ai vérifié avec uniquement Repmus téléchargée uniquement. En revanche, je n’ai pas ce problème, et même avec plusieurs librairies sous OS X 10.6.8 avec OM 6.8 et 6.9.
J’ai fait quelques copies d’écrans dans un PDF inséré en pièce jointe.
Cordialement.
Didier

ConflitTac1.pdf (501 KB)

My French being too bad to write messages in a reasonable amount of time, I’m answering in English…

Thanks for your help!

On Ubuntu 14.04 64bit I can confirm that not loading the RepMus lib solves the problem for me.

Best, phil

Ok

Simple. It’s a conflicting function “complementaire” between RepMus library (Lc1.lisp from RepMusc library sources) and Mathtools funciton from 05-mathtools/groups/zn/scream-groups.lisp

the first is :

(defun complementaire (crible)
(do ((y (1+ (pop crible)) (1+ y)) (z nil))
((null crible) (reverse z))
(if (< y (first crible)) (push y z) (pop crible))))

the second :

(defun complementaire (l n)
(sort (set-difference (om::arithm-ser 0 (- n 1) 1) l) '<))

So it is not related to the OM version nor to the OS you are using. It’s just a matter of conflicting function code.
It’s real easy to fix it. I will see with Jean wether to upgrade the RepMus lib or fix the zn code.

For the time being, please don’t use RepMus along with Mathtools for this matter…

“S**t happens !”
Peace.
Karim