4 points par GN⁺ 2023-09-10 | 1 commentaires | Partager sur WhatsApp
  • Article sur un projet de longue haleine visant à décoder tout le code de GNU coreutils version 8.3
  • Projet destiné aux programmeurs débutants intéressés par l’exploration de la conception des utilitaires en ligne de commande
  • Projet divisé en plusieurs étapes déjà accomplies, notamment la création d’une page dédiée pour chaque utilitaire, l’extension des discussions sur les décisions de conception importantes et les algorithmes, ainsi que la création d’outils de visualisation de l’évolution du code source
  • Article fournissant des liens vers les pages dédiées de chaque utilitaire, des discussions détaillées, le code source et la documentation
  • Article fournissant un contexte pour la lecture du code, en discutant de la nature des utilitaires, de leur conception et des points auxquels prêter attention lors de la lecture du code
  • Article expliquant que GNU coreutils était à l’origine composé de trois paquets distincts pour le shell, le texte et les utilitaires de fichiers, et que de nombreux utilitaires du même type partagent les mêmes modèles de conception
  • Article présentant la conception de base de la plupart des utilitaires CLI, incluant une étape de configuration pour les flags, options, localisation, etc., une étape d’analyse des arguments qui lit les entrées pour définir les paramètres d’exécution, et une étape de traitement/exécution qui prépare les entrées pour un ou plusieurs appels système
  • Article offrant des explications détaillées sur l’initialisation des utilitaires, le parsing avec Getopt, le parcours du système de fichiers avec fts, les wrappers et helpers d’appels système, les fonctions communes, les lignes de code communes et les idiomes C
  • Article discutant de la maintenance des utilitaires, y compris les changements à l’échelle du projet, les mises à jour spécifiques aux utilitaires et la maintenance annuelle
  • Article fournissant des informations à ceux qui souhaitent contribuer au projet, notamment un lien vers la page du projet GNU, les consignes de contribution et une liste des fonctionnalités refusées
  • Article se terminant par une section de trivia et d’implémentations intéressantes, offrant des faits amusants et des éclairages sur les utilitaires

1 commentaires

 
GN⁺ 2023-09-10
Commentaires Hacker News
  • Cet article discute de la longévité et de l’extensibilité de GNU Coreutils, modifié par de nombreuses personnes depuis près de 30 ans.
  • Un message demande des exemples de programmes qui existent depuis 30 ans ou dont on peut s’attendre à ce qu’ils durent encore 30 ans.
  • Les commentaires fournissent des liens vers des ressources expliquant comment GNU Coreutils est testé, comment explorer chacune des commandes de Coreutils, ainsi que le traitement de texte en ligne de commande avec GNU Coreutils.
  • Une correction signale des erreurs trouvées dans l’article, en particulier le fait que la courte description de la page shred est en réalité celle de csplit.
  • Certains utilisateurs expriment leur surprise et leur intérêt face à l’existence de certains utilitaires comme yes, shred, shuf et factor.
  • Un programmeur débutant demande des recommandations sur les utilitaires à étudier pour améliorer sa compréhension des structures de données et des algorithmes.
  • Une remarque humoristique évoque la possibilité que /bin/true échoue et renvoie false, ce qui rend l’appel à "Not /bin/false" encore plus robuste.
  • Fait amusant : sur MacOS, si l’on installe Coreutils via Homebrew, od de Coreutils est installé sous le nom god(1), car MacOS fournit déjà od(1).
  • Un utilisateur remet en question la nécessité de ce site, en soulignant qu’il existe déjà une page man (ou info) pour chacun de ces utilitaires.