|
Géographie locale et Histoire mondialeUn historique de toutes nos réunions |
|
La voix du secrétaire (Jean)
Présents à la réunion.
Nous avons mangé de la salade de lardons, de la salade de gésiers, un croustillant poire et chèvre, deux saucisses « au couteau » avec purée et une andouillette. Nous avons bu de la bière Orval, un pastis et de la vodka.
La réunion a eu lieu au Maldoror.
Nous avons parlé de Perl, d'informatique et de points divers.
analyseur: lexeur.o analyseur.o lexeur.o: lexeur.c analyseur.h analyseur.o: analyseur.c analyseur.h lexeur.c: lexeur.l analyseur.c: analyseur.y analyseur.h: analyseur.yLa génération de analyseur.h et analyseur.c se faisait sous la forme :
analyseur.c: analyseur.y
yacc -d -v $<
mv y.tab.h $*.h
mv y.tab.c $@
L'essentiel du développement incrémental portait sur
analyseur.y, tandis que lexeur.l
ne variait quasiment jamais. Cela dit, à cause de la
dépendance de lexeur.o en fonction de analyseur.h,
la compilation avait lieu systématiquement. Or, cette compilation
était très longue. D'autre part, si analyseur.y
changeait souvent, ses modifications n'avaient pas d'influence
sur le contenu de analyseur.h, seulement sur la date-heure
de dernière modification. Donc, la compilation
produisait toujours le même lexeur.o.
analyseur.c: analyseur.y
yacc -d -v $<
diff y.tab.h $*.h
if [ $? -eq 1 ]
then
mv y.tab.h $*.h
fi
mv y.tab.c $@
Le problème, c'est que make détectait un code retour
différent de 0, donc un échec. Du coup, il interrompait la
procédure de compilation. La solution, que je trouvais
« pêchue » à l'époque, mais que je trouve élémentaire
14 ans plus tard, fut d'écrire :
analyseur.c: analyseur.y
yacc -d -v $<
diff y.tab.h $*.h || mv y.tab.h $*.h
mv y.tab.c $@
Ainsi, make attend la fin de l'instruction composée
pour tester le code retour, qui vaut alors 0 (succès),
soit parce que les deux fichiers sont identiques, soit parce
que le mv a réussi.
Antentian, antentian, le prochan tran an destinantian de Panris panrtiran de lan vouan « AN »Merci pour le renseignement !
Attention, une rame est à l'approche.Et au moment où la sonnerie retentit, les emplois-jeunes se mettent chacun devant une porte de la rame et empêchent les gens excédentaires de monter, le plus souvent par leur simple présence, parfois en étant obligés d'intervenir.
pause
Veuillez vous éloigner de la bordure du quai.
pause
Veuillez laisser descendre avant de monter.
C'était peut-être une victoire franco-italienne...Comme quoi un maréchal d'empire se transforme en champ de bataille. Précisons toutefois que, depuis quelques temps, le boulevard des Maréchaux présente un hiatus. Pour je ne sais quelle raison, le boulevard Victor a été scindé en deux parties, la partie est conservant le nom du maréchal d'empire, la partie ouest étant rebaptisée « Boulevard du Général Martial Valin ». Ce général a commandé les Forces Françaises Aériennes Libres pendant la Deuxième Guerre Mondiale. Rien à voir avec Masséna, Victor, Ney, Davout, Murat et tous les autres. En fait, il y a deux hiatus. Après la réunion lors de la rédaction de ce compte-rendu, j'ai en effet découvert que le boulevard Masséna avait subi le même sort, au profit du général Jean Simon.
Et si le premier janvier tombe un vendredi 13, est-ce que c'est toute l'année qui porte malheur ?
use strict; use warnings; use DateTime; my %freq; for (my $aaaa = 1601; $aaaa < 2001; $aaaa++) { for (my $mm = 1; $mm <= 12; $mm++) { my $dt = DateTime->new(year => $aaaa, month => $mm, day => 13, locale => 'fr'); $freq{ $dt->day_name }++; } } for (sort { $freq{$a} <=> $freq{$b} } keys %freq) { print "$_\t$freq{$_}\n"; }il est possible de montrer que dans une période de 400 ans, on aura :
jeudi 684 samedi 684 lundi 685 mardi 685 mercredi 687 dimanche 687 vendredi 688Pourquoi 400 ans ? Parce que les années bissextiles suivent un cycle de 400 ans dans le calendrier grégorien. Ensuite, vous pouvez calculer combien de jours il y a dans un cycle de 400 ans. 2 x 365 fait 730, 4 x 365 fait 1460. Donc 400 x 365 fait 146 000. En 400 ans, il y a 97 années bissextiles, donc il y a au total 146 097 jours. Si vous décomposez 146 097 en facteurs premiers, vous trouvez 33 x 7 x 773. (Et si vous voulez refaire ces calculs de tête, il vous faudra au minimum un mois.) Comme 146 097 est divisible par 7, cela signifie qu'il y a un nombre entier de semaines dans un cycle de 400 ans. Donc, le 1er janvier 2001 était un lundi, comme l'a été le 1er janvier 1601 et comme le sera le 1er janvier 2401. Ce qui montre que la répartition montrée ci-dessus s'applique à toute période de 400 ans du calendrier grégorien.
use strict; use warnings; use DateTime; use DateTime::Calendar::Julian; for (my $aaaa = 1801; $aaaa <= 1900; $aaaa++) { my $jul = DateTime::Calendar::Julian->new(year => $aaaa, month => 1, day => 1, locale => 'fr'); if ($jul->day_of_week == 5) { my $greg = DateTime->from_object(object => $jul, locale => 'fr'); print "Le ", $jul->strftime("%A %d %B %Y"), " du calendrier julien tombe le ", $greg->strftime("%A %d %B %Y"), " du calendrier grégorien.\n"; } } for (my $aaaa = 2701; $aaaa <= 2900; $aaaa++) { my $greg = DateTime->new(year => $aaaa, month => 1, day => 1, locale => 'fr'); if ($greg->day_of_week == 5) { my $jul = DateTime::Calendar::Julian->from_object(object => $greg, locale => 'fr'); print "Le ", $greg->strftime("%A %d %B %Y"), " du calendrier grégorien tombe le ", $jul->strftime("%A %d %B %Y"), " du calendrier julien.\n"; } }Vous saurez alors que :
Le vendredi 01 janvier 1804 du calendrier julien tombe le vendredi 13 janvier 1804 du calendrier grégorien. Le vendredi 01 janvier 1809 du calendrier julien tombe le vendredi 13 janvier 1809 du calendrier grégorien. Le vendredi 01 janvier 1815 du calendrier julien tombe le vendredi 13 janvier 1815 du calendrier grégorien. Le vendredi 01 janvier 1826 du calendrier julien tombe le vendredi 13 janvier 1826 du calendrier grégorien. Le vendredi 01 janvier 1832 du calendrier julien tombe le vendredi 13 janvier 1832 du calendrier grégorien. Le vendredi 01 janvier 1837 du calendrier julien tombe le vendredi 13 janvier 1837 du calendrier grégorien. Le vendredi 01 janvier 1843 du calendrier julien tombe le vendredi 13 janvier 1843 du calendrier grégorien. Le vendredi 01 janvier 1854 du calendrier julien tombe le vendredi 13 janvier 1854 du calendrier grégorien. Le vendredi 01 janvier 1860 du calendrier julien tombe le vendredi 13 janvier 1860 du calendrier grégorien. Le vendredi 01 janvier 1865 du calendrier julien tombe le vendredi 13 janvier 1865 du calendrier grégorien. Le vendredi 01 janvier 1871 du calendrier julien tombe le vendredi 13 janvier 1871 du calendrier grégorien. Le vendredi 01 janvier 1882 du calendrier julien tombe le vendredi 13 janvier 1882 du calendrier grégorien. Le vendredi 01 janvier 1888 du calendrier julien tombe le vendredi 13 janvier 1888 du calendrier grégorien. Le vendredi 01 janvier 1893 du calendrier julien tombe le vendredi 13 janvier 1893 du calendrier grégorien. Le vendredi 01 janvier 1899 du calendrier julien tombe le vendredi 13 janvier 1899 du calendrier grégorien. Le vendredi 01 janvier 2704 du calendrier grégorien tombe le vendredi 13 décembre 2703 du calendrier julien. Le vendredi 01 janvier 2709 du calendrier grégorien tombe le vendredi 13 décembre 2708 du calendrier julien. Le vendredi 01 janvier 2715 du calendrier grégorien tombe le vendredi 13 décembre 2714 du calendrier julien.(j'abrège un peu, tout le monde a compris)
Le vendredi 01 janvier 2894 du calendrier grégorien tombe le vendredi 13 décembre 2893 du calendrier julien. Le vendredi 01 janvier 2900 du calendrier grégorien tombe le vendredi 13 décembre 2899 du calendrier julien.
|
Retour aux Mongueurs |
Paris, le 9 March 2009 Copyright © The Paris Perl Mongers, 1999-2010 |