Page 1 sur 2

code qui ne compile plus : erreur Ghostscript

Posté : jeu. 18 juil. 2019, 16:56
par maurice
Bonjour,

Sans doute un problème déjà évoqué mais je n'ai retrouvé.
Voici un code qui compilait sans problème il y a deux ans mais qui me procure une erreur aujourd'hui et qui d'ailleurs ne passe pas sur le forum.

Code : Tout sélectionner

size(6cm);
defaultpen(fontsize(11pt));
path p1=(-3,0)..(0,1)..(1,0)..(0,-1)..cycle;
path p2=reflect((0,0), (0,1))*p1;

filldraw(p1, lightblue+opacity(.7));
filldraw(p2, lightblue+opacity(.7));
draw(p1^^p2);
// path p=(-3,0)..(0,1)..(1,0)

draw((-3.5,0)..(0,1.5)..(3.5,0)..(0,-1.5)..cycle);

label("$E$", (-3.5,1));
label("$A$", (-2,0));
label("$B$", (2,0));
label("Diagramme de Venn", (0,-2));
l'erreur obtenue est la même que sur le forum.

Code : Tout sélectionner

$ asy -f pdf M1201-1-union.asy
Error: /undefined in .setopacityalpha
Operand stack:
   0.7
Execution stack:
   %interp_exit   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   --nostringval--   false   1   %stopped_push   2046   1   3   %oparray_pop   2045   1   3   %oparray_pop   --nostringval--   2025   1   3   %oparray_pop   1884   1   3   %oparray_pop   --nostringval--   %errorexec_pop   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--
Dictionary stack:
   --dict:967/1684(ro)(G)--   --dict:0/20(G)--   --dict:83/200(L)--   --dict:177/300(L)--   --dict:43/200(L)--
Current allocation mode is local
Current file position is 49657
GPL Ghostscript 9.26: Unrecoverable error, exit code 1
/usr/share/asymptote/plain_shipout.asy: 102.11: runtime: shipout failed
Je n'ai pas suivi les évolutions d'asymptote ces derniers temps...
Ma version est la 2.47 et celle de Ghostscript la 9.26 le tout sous Fedora30.

J'aimerais juste bien comprendre.

Bruno

Re: code qui ne compile plus : erreur Ghostscript

Posté : jeu. 18 juil. 2019, 17:44
par GM
Bonjour,
c'est un message d'erreur de ghostscript
et cela compile effectivement chez moi avec une ancienne version 9.21 de ghostscript, alors que sur le serveur du forum la version doit être plus récente.
On voit dans le changelog d'Asymptote qu'il y a eu des modifications relativement à Ghostscript dans la 2.48 :
viewtopic.php?f=4&p=3104#p3104.

Re: code qui ne compile plus : erreur Ghostscript

Posté : jeu. 18 juil. 2019, 17:53
par GM
GM a écrit :
jeu. 18 juil. 2019, 17:44
On voit dans le changelog d'Asymptote qu'il y a eu des modifications relativement à Ghostscript dans la 2.48 :
viewtopic.php?f=4&p=3104#p3104.
Mais le serveur du forum est avec Asymptote 2.50 et Ghostscript 9.26 et on a le problème aussi...
... donc la mise à jour d'Asymptote ne va apparemment pas être suffisante.

Re: code qui ne compile plus : erreur Ghostscript

Posté : jeu. 18 juil. 2019, 17:55
par GM

Figure asymptote 7edaafc1bffdd0c36fd79ca0492324a3
*** Pour masquer/découvrir le code Asymptote qui a permis de créer la figure, il faut cliquer dessus. ;-) ***

CODE ASYMPTOTE de la figure ci-dessus : Tout sélectionner
  1. settings.outformat='pdf';
  2.  
  3. size(6cm);
  4. defaultpen(fontsize(11pt));
  5. path p1=(-3,0)..(0,1)..(1,0)..(0,-1)..cycle;
  6. path p2=reflect((0,0), (0,1))*p1;
  7.  
  8. filldraw(p1, lightblue+opacity(.7));
  9. filldraw(p2, lightblue+opacity(.7));
  10. draw(p1^^p2);
  11. // path p=(-3,0)..(0,1)..(1,0)
  12.  
  13. draw((-3.5,0)..(0,1.5)..(3.5,0)..(0,-1.5)..cycle);
  14.  
  15. label("$E$", (-3.5,1));
  16. label("$A$", (-2,0));
  17. label("$B$", (2,0));
  18. label("Diagramme de Venn", (0,-2));
  19. size(6cm);
  20. defaultpen(fontsize(11pt));
  21. path p1=(-3,0)..(0,1)..(1,0)..(0,-1)..cycle;
  22. path p2=reflect((0,0), (0,1))*p1;
  23.  
  24. filldraw(p1, lightblue+opacity(.7));
  25. filldraw(p2, lightblue+opacity(.7));
  26. draw(p1^^p2);
  27. // path p=(-3,0)..(0,1)..(1,0)
  28.  
  29. draw((-3.5,0)..(0,1.5)..(3.5,0)..(0,-1.5)..cycle);
  30.  
  31. label("$E$", (-3.5,1));
  32. label("$A$", (-2,0));
  33. label("$B$", (2,0));
  34. label("Diagramme de Venn", (0,-2));

Re: code qui ne compile plus : erreur Ghostscript

Posté : jeu. 18 juil. 2019, 17:57
par GM
Il faut que je revois comment j'ai codé la création d'image sur le forum car je m'étonne que l'ajout d'un settings.outformat='pdf' règle le problème.

Re: code qui ne compile plus : erreur Ghostscript

Posté : jeu. 18 juil. 2019, 18:00
par GM
Que donne l'utilisation de pdflatex ?

Code : Tout sélectionner

asy -f pdf -tex pdflatex M1201-1-union.asy

Re: code qui ne compile plus : erreur Ghostscript

Posté : jeu. 18 juil. 2019, 18:06
par maurice
Même erreur il me semble :

Code : Tout sélectionner

$ asy -f pdf -tex pdflatex M1201-1-union.asy
Error: /undefined in .setopacityalpha
Operand stack:
   0.7
Execution stack:
   %interp_exit   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   --nostringval--   false   1   %stopped_push   2046   1   3   %oparray_pop   2045   1   3   %oparray_pop   --nostringval--   2025   1   3   %oparray_pop   1884   1   3   %oparray_pop   --nostringval--   %errorexec_pop   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--
Dictionary stack:
   --dict:967/1684(ro)(G)--   --dict:0/20(G)--   --dict:82/200(L)--
Current allocation mode is local
Current file position is 542
GPL Ghostscript 9.26: Unrecoverable error, exit code 1
/usr/share/asymptote/plain_shipout.asy: 102.11: runtime: shipout failed

Re: code qui ne compile plus : erreur Ghostscript

Posté : jeu. 18 juil. 2019, 18:08
par maurice
l'ajout de

Code : Tout sélectionner

settings.outformat='pdf';
ne change rien non plus chez moi.

Re: code qui ne compile plus : erreur Ghostscript

Posté : jeu. 18 juil. 2019, 18:10
par maurice
Par contre l'intersection compile bien.

Figure asymptote 3e862ff5db018e217734c741eed8024f
*** Pour masquer/découvrir le code Asymptote qui a permis de créer la figure, il faut cliquer dessus. ;-) ***

CODE ASYMPTOTE de la figure ci-dessus : Tout sélectionner
  1. size(6cm);
  2. defaultpen(fontsize(11pt));
  3. path p1=(-3,0)..(0,1)..(1,0)..(0,-1)..cycle;
  4. path p2 = (3,0)..(0,-1)..(-1,0)..(0,1)..cycle;
  5. path BiC=buildcycle(p1,p2);
  6.  
  7. draw(p2^^p1, lightblue);
  8. filldraw(BiC, lightblue, lightblue);
  9. // path p=(-3,0)..(0,1)..(1,0)
  10.  
  11. draw((-3.5,0)..(0,1.5)..(3.5,0)..(0,-1.5)..cycle);
  12.  
  13. label("$E$", (-3.5,1));
  14. label("$A$", (-2,0));
  15. label("$B$", (2,0));
  16. label("$A \cap B$", (0,0));
  17. label("Diagramme de Venn", (0,-2));


En fait, j'ai 4 figures, l'union et la différence donne cette erreur et l'intersection et le complémentaire compilent bien

Re: code qui ne compile plus : erreur Ghostscript

Posté : jeu. 18 juil. 2019, 18:15
par GM
Je viens de lire qu'asymptote a longtemps utilisé gs avec l'option "-dSAFER" et c'est elle qui provoque l'erreur.
Il faut donc passer au moins à la version 2.48 d'asymptote

Mais le fait que l'on réussit à provoquer les deux cas sur le forum (erreur de compilation et compilation réussie) montre qu'une fois que tu seras passé à la version 2.48 ou 2.49, il te faudra encore faire attention à tes options de compilations.