[Perl] Compiler rakudo-star sur Devuan

Jean ponder.stibbons at orange.fr
Mar 14 Mai 20:56:52 CEST 2019


Hier soir, j'ai voulu installer perl6 sur une machine Devuan.
Au lieu de charger le paquet qu m'aurait donné un Rakudo 2016.12,
j'ai compilé Rakudo-star-2019.03 à partir des sources.

Cela a commencé à 19h. Lorsque je me suis couché, ça continuait
à tourner. J'ai fait

ps -ef|grep moar

et j'ai constaté qu'il y avait deux fichiers de tests qui tournaient
très lentement (une seconde CPU pour plus d'une minute d'horloge).
Ce matin, ça tournait encore. J'ai refait le "ps -ef" et j'ai obtenu :

jf        7644  7637  0 mai13 pts/1    00:00:00 sh -c /usr/bin/perl
             t/harness5 --fudge --moar --keep-exit-code
             --tests-from-file=t/spectest.data
jf        7645  7644  0 mai13 pts/1    00:00:11 /usr/bin/perl
             t/harness5 --fudge --moar --keep-exit-code
             --tests-from-file=t/spectest.data
jf       15760  7645  0 mai13 pts/1    00:05:16 /home/jf/perl6/bin/moar
             --execname=./perl6-m --libpath=. --libpath=blib
             --libpath=/home/jf/perl6/share/nqp/lib
             --libpath=/home/jf/perl6/share/nqp/lib
             /home/jf/rakudo/rakudo-star-2019.03/rakudo/perl6.moarvm
             --nqp-lib=blib t/spec/S16-io/eof.t
jf       17927  7645  0 mai13 pts/1    00:05:15 /home/jf/perl6/bin/moar
             --execname=./perl6-m --libpath=. --libpath=blib
             --libpath=/home/jf/perl6/share/nqp/lib
             --libpath=/home/jf/perl6/share/nqp/lib
             /home/jf/rakudo/rakudo-star-2019.03/rakudo/perl6.moarvm
             --nqp-lib=blib t/spec/S32-io/out-buffering.t
jf       29071  2727  0 06:38 pts/0    00:00:00 grep --color=auto moar

(j'ai été obligé de reformater la sortie, à cause des sauts de page
générés automatiquement par Thunderbird)

Les deux fichiers de tests en étaient à 5 mn 15 s de CPU pour
11 heures d'horloge. J'ai arrêté la compilation.

J'ai recommencé ce soir. Les deux mêmes fichiers ont recommencé
à traîner des pieds et j'ai "killé" les processus correspondants
au bout d'une dizaine ou d'une quinzaine de minutes.
La compilation est arrivée à son terme après un peu plus d'une
demi-heure d'horloge.

J'ai lu S32-io/out-buffering.t et je n'ai quasiment rien compris.
J'ai lu S16-io/eof.t et je n'ai pas compris grand chose. Toutefois
j'ai compris que l'un des tests n'est effectué que sous Linux
et ce test consiste à trifouiller dans /proc/1. Or, il y a peut-être
des différences entre le contenu de /proc/1 dans une distribution
Linux avec systemd et une distribution Linux sans systemd comme
Devuan et ces différences font boucler S16-io/eof.t sur Devuan
et sur les distributions similaires.

J'ai cherché "s16-io/eof.t" dans Qwant et j'ai trouvé
deux personnes qui ont eu des problèmes avec les mêmes fichiers :
   https://pastebin.com/TF8jxjSt
   https://gist.github.com/stmuk/3b8f31b83997a117b370400d950cb816
et une autre qui testait sous WSL et avait des problèmes :
   https://github.com/perl6/roast/issues/395

Avez-vous eu l'occasion de compiler rakudo-star et avez-vous
constaté un tel phénomène ? Sur quelle distribution ?
Y a-t-il un site bugzilla / RT / autre sur lequel signaler
ce problème ?

A demain pour ceux qui sont sur Paris.

Jean


Plus d'informations sur la liste de diffusion Perl