< Back to IRCAM Forum

Limitation in LISP operations ... suite ;-)

bonjour K

merci pour tes réponses rapides concernant les limitations des opérations dans Open Music .Effectivement cette limite est assumée dans le LISP data base version 4 (cfr en attachement en bas du message) .

Ce W-E , j’ai eu l’occasion de croiser Mauro Lanza à Bruxelles et lui ai fait part de ma frustration d’être limité à 2047 opérations dans certaines fonctions récursives essentielles comme reduce, map-car etc. . Suite à son étonnement, nous avons essayé sur sa machine et par “magie” ces limites s’envolent vers d’autres galaxies … Il est apparu que Mauro re-compile OM avec un compilateur Lisp récent, payant, et que sans doute la version distribuée par vous serait soit plus ancienne, soit bridée par le compilateur employé (?) …
cela dépasse largement mes compétences informatiques mais si c’est le cas, comment remédier à cette limites frustrante ( sur la même machine j’opère des rendering dans After Effect en 4 K avec 100 im / sec et des millions de couleurs ;-( ?? ).
Si je m’équipe d’un compilateur LISP dernier “cri” :wink: puis je recompiler OM , serait-ce des opérations réalisables par un compositeur lambda qui ne dispose pas d’une double vie dans un multivers délivré des contraintes de remise de partitions :-), aurais tu une solution “maison” ?

à te lire
merci

Thierry

Lisp Knowledgebase

Title: Number of arguments limit in a function call

ID: 10014

Product: All
Version: All
OS: All

Description:
ANSI Common Lisp states that the value of CALL-ARGUMENTS-LIMIT, a positive integer one greater that the maximum number of arguments in a function call, is implementation dependent but must not be smaller than 50. In LispWorks it is set at 2047.

This value cannot be altered.

Cher Thierry,

Il y a un peu de confusion dans ce que tu avance ici. apply est dans tous les cas limite a 2047 elements de liste qu’il s’agit de version compilee ou utilisant un compilateur. Nous utilisons la derniere version mise-a-jour de LW (8.0) qui nous sert a faire toues nos distrib. Le fait que apply est limitee, certaines fonctions (methodes) dans OM l’utilisent et donc se trouve etre limitee. Il suffit d’utiliser a la place de apply reduce qui n’est pas limitee (cf. notre derniere discussion).

Maintenant, pour voir un peu le probleme, peux-tu nous dire quelle version de OM utilises-tu, et quelle sont les methodes (fonctions) qui te pose ces problemes. Nous sommes toujours ravi de faire de sorte que cela marche.

Amities
K

Cher Karim

après vérification avec Mauro effectivement c’est bien la fonction “apply” qui est la cause
1000 excuses ; mais avec le temps cette fonction s’est incrustée au plus profond de pleins de patch et sous-patch utilisés en routine .
Je vais sans doute procéder à un “replace” textuel dans Bbedit avec reduce (comme tu me l’avais renseigné)
merci pour ton attention;
si je peux me permettre une suggestion : inclure - si possible - “reduce” dans le menu ; c’est aussi pratique pour les opérations récursives comme les concate etc.

belle journée et bonne chance à Open Music !

Thierry

Cher Thierry,

Tres bonne suggestion. reduce est desormais ajoutee au menu Functions->Kernel->Lisp. Notes bien, que toutes les fonctions Lisp standard sont disponibles en double-cliquant dans un patch et saisissant leur nom (avec ou sans completion).

Si je peux me permettre un conseil: Il est peut-etre pas toujours necessaire de remplacer reduce par apply. C’est juste quand la liste depasse la limite de 2047 elts. Mais bon, c’est toi qui voit. De toute facon avant de le faire, un autre conseil, suavegarde tes patchs…

Amities
K