Sortie du langage de programmation Hare 0.25.2

Drew DeVault, auteur de l'environnement utilisateur Sway, du client de messagerie Aerc et de la plateforme de développement collaboratif SourceHut, a publié la version 0.25.2 du langage de programmation Hare. Le numéro de version est formé comme suit : 0.YY.Q, où YY correspond aux deux derniers chiffres de l'année et Q au trimestre ; la version précédente de Hare, la 0.24.2, avait été publiée il y a un an. Hare se présente comme un langage de programmation système, proche du langage C, mais plus simple que celui-ci. Le code source du compilateur et de la chaîne d'outils est sous licence GPLv3, et le code de la bibliothèque standard est sous licence MPL (Mozilla Public License).

Le langage est optimisé pour résoudre des problèmes de bas niveau tels que le développement de systèmes d'exploitation, de compilateurs, d'applications réseau et d'utilitaires système qui nécessitent des performances maximales et un contrôle total sur l'exécution. Le langage utilise une gestion manuelle de la mémoire et un système de types statiques, dans lequel chaque variable doit se voir explicitement attribuer un type spécifique.

Pour exécuter l'application, un temps d'exécution minimal est fourni et pour le développement, une bibliothèque standard de fonctions est distribuée, donnant accès aux interfaces de base du système d'exploitation, ainsi qu'offrant des fonctions permettant de travailler avec des algorithmes, des protocoles et des formats standard, notamment outils d'utilisation des expressions régulières et du cryptage. Pour le développement d'applications graphiques, la boîte à outils hare-wayland est en cours de développement, ainsi que des liaisons pour accéder aux capacités de GTK, Vulkan, OpenGL, SDL2 et libui.

Dans la nouvelle version:

  • Les capacités d'E/S tamponnées ont été étendues. Le mode de flux « non bloquant » a été ajouté au module « memio:: ». Des options ont été ajoutées pour personnaliser le comportement de fin de fichier dans bufio::scanner et les modes de contrôle de flux dans bufio::stream. Les fonctions os::open_buffered et os::create_buffered ont été ajoutées.
  • L'utilitaire « haredoc » a été implémenté pour extraire une brève description des modules à partir des fichiers README et l'afficher lors de la sortie d'une liste de modules.
  • La prise en charge des API Unix/POSIX a été implémentée : io::fsync, io::fdatasync, unix::getrlimit, unix::setrlimit et fcntl (via os::getflags et os::setflags). La prise en charge de la mémoire partagée a été portée vers NetBSD.
  • L'utilitaire hare prend désormais en charge l'intégration de gestionnaires externes appelés via la sous-commande « hare tool ». Par exemple, un tel gestionnaire permet l'intégration avec l'outil « hare-update ».
  • La gestion des erreurs en cas de mémoire insuffisante a été déplacée vers la catégorie obligatoire. Un nouveau type primitif « nomem » a été ajouté, renvoyé par les fonctions d'allocation mémoire lorsqu'il est impossible d'allouer la quantité de mémoire requise.
  • API améliorée pour gérer les dates et les heures. Fonctionnalités étendues pour gérer les fuseaux horaires et prise en charge des règles PETZ (POSIX Extending TZ). De nombreuses fonctions ont été déplacées du module time::chrono vers time::date.
  • Ajout de la prise en charge des annotations de code sémantiques, qui vous permet d'attacher des métadonnées supplémentaires à votre code qui sont ignorées par le compilateur mais peuvent être prises en compte par l'analyseur lexical dans la bibliothèque standard. #[json::gen] export type player = struct { name: str, #[json::field(name = "X", omit_null=true)] x: *f64, #[json::field(name = "Y", omit_null=true)] y: *f64, };
  • L'utilitaire hare-update a été ajouté pour simplifier la migration du code vers les nouvelles versions des outils Hare contenant des modifications radicales. Par exemple, cet utilitaire permet d'adapter le code existant afin d'utiliser la gestion des erreurs d'allocation de mémoire obligatoire introduite dans la version actuelle.

Source: opennet.ru

Achetez un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Achetez un hébergement web fiable avec protection DDoS, serveurs VPS et VDS | ProHoster