Release der Programmiersprache Hare 0.25.2

Drew DeVault, der Schöpfer der Benutzerumgebung Sway, des E-Mail-Clients Aerc und der Plattform für gemeinsame Entwicklung SourceHut, hat die Version 0.25.2 der Programmiersprache Hare veröffentlicht. Die Versionsnummer setzt sich aus 0.YY.Q zusammen, wobei YY die letzten beiden Ziffern des Jahres und Q die Quartalsnummer sind; die vorherige Ausgabe, Hare 0.24.2, wurde vor einem Jahr veröffentlicht. Hare wird als Systemprogrammiersprache vorgestellt, die C ähnlich ist, jedoch einfacher in der Handhabung. Der Quellcode des Compilers und der Werkzeuge wird unter der GPLv3-Lizenz verbreitet, während der Code der Standardbibliothek unter der MPL (Mozilla Public License) lizenziert ist.

Die Sprache ist optimiert für Lösungen von niedrig-leveligen Aufgaben, wie die Entwicklung von Betriebssystemen, Compilern, Netzwerk-Anwendungen und System-Utilities, bei denen maximale Performance und vollständige Kontrolle über die Ausführung erforderlich sind. Die Sprache verwendet manuelle Speicherverwaltung und ein statisches Typsystem, bei dem jeder Variablen ausdrücklich ein bestimmter Typ zugewiesen werden muss.

Für die Ausführung der Anwendung wird eine minimale Laufzeitumgebung bereitgestellt, während für die Entwicklung eine Standardbibliothek von Funktionen zur Verfügung steht, die den Zugang zu den grundlegenden Schnittstellen des Betriebssystems ermöglicht und Funktionen zum Umgang mit Standardalgorithmen, Protokollen und Formaten bietet, einschließlich Mitteln für die Verwendung von regulären Ausdrücken und Verschlüsselung. Für die Entwicklung grafischer Anwendungen wird das Werkzeugset hare-wayland weiterentwickelt sowie Bindungen für den Zugriff auf Möglichkeiten von GTK, Vulkan, OpenGL, SDL2 und libui angeboten.

In der neuen Version:

  • Die Möglichkeiten für gepuffertes Ein-/Ausgabe wurden erweitert. Im Moduls „memio::“ wurde der nicht-blockierende Stream-Modus hinzugefügt. Optionen zur Anpassung des Verhaltens bei der Dateiende-Behandlung in bufio::scanner und Streamsteuerungsmodi in bufio::stream wurden angeboten. Funktionen wie os::open_buffered und os::create_buffered wurden hinzugefügt.
  • Im Dienstprogramm „haredoc“ wurde die Möglichkeit implementiert, aus README-Dateien eine kurze Beschreibung der Module zu extrahieren und diese bei der Ausgabe der Moduliste anzuzeigen.
  • Die Unterstützung des Unix/POSIX-API wurde implementiert: io::fsync, io::fdatasync, unix::getrlimit, unix::setrlimit und fcntl (über os::getflags und os::setflags). Für das Betriebssystem NetBSD wurde die Unterstützung für gemeinsamen Speicher portiert.
  • Das Tool hare unterstützt nun die Einbettung externer Handler, die über den Subbefehl „hare tool“ aufgerufen werden. Zum Beispiel wird durch einen solchen Handler die Integration mit dem Tool „hare-update“ ermöglicht.
  • Die Fehlerbehandlung in Situationen mit unzureichendem Speicher wurde zur Pflicht gemacht. Ein neuer primitive Typ „nomem“ wurde hinzugefügt, der von Speicherzuweisungsfunktionen zurückgegeben wird, wenn der erforderliche Speicher nicht zugewiesen werden kann.
  • Die API für den Umgang mit Datum und Uhrzeit wurde verbessert. Die Möglichkeiten zur Arbeit mit Zeitzonen wurden erweitert, und die Unterstützung für PETZ-Regeln (POSIX erweiternde TZ) wurde hinzugefügt. Viele Funktionen wurden aus dem Modul time::chrono in time::date übertragen.
  • Unterstützung für semantische Codeannotationen wurde hinzugefügt, die es ermöglichen, zusätzliche Metadaten am Code anzuhängen, die vom Compiler ignoriert werden, aber vom lexikalischen Analysewerkzeug in der Standardbibliothek berücksichtigt werden können. #[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, };
  • Das Tool hare-update wurde hinzugefügt, um die Migration von Code auf neue Versionen des Hare-Tools zu erleichtern, die mit brechenden Änderungen kompatibel sind. Dieses Tool kann beispielsweise verwendet werden, um vorhandenen Code an die jetzt verpflichtende Fehlerbehandlung der Speicherzuweisung anzupassen, die in der aktuellen Version eingeführt wurde.

Quelle: opennet.ru

Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen 🔥 Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen | ProHoster