[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