Die Veröffentlichung der statisch typisierten Programmiersprache V 0.4.10 (vlang) wurde bekannt gegeben. Die Hauptziele bei der Entwicklung von V waren die Benutzerfreundlichkeit und einfache Lernbarkeit, hohe Lesbarkeit, schnelle Kompilierung, verbesserte Sicherheit, effiziente Entwicklung, plattformübergreifende Nutzung, verbessertes Zusammenspiel mit C, bessere Fehlerbehandlung, ein deaktivierbarer Garbage Collector (GC), moderne Funktionen und eine einfachere Wartung von Programmen. Das Projekt entwickelt auch seine Grafikkbibliothek und seinen Paketmanager weiter. Der Code des Compilers, der Bibliotheken und der zugehörigen Werkzeuge ist unter der MIT-Lizenz offen.
Zu den Änderungen in der neuen Version gehören:
- Anonyme Strukturen wurden hinzugefügt.

- Alte Funktionen, die zuvor als veraltet markiert wurden, wurden entfernt (vorher wurde 6 Monate lang bei der Kompilierung des Projekts eine Warnung zu solchem Code ausgegeben).
- Eine Vielzahl von Verbesserungen im Parser und im Checker der Sprache.
- Änderungen, die die Abwärtskompatibilität beeinträchtigen:
- Die alte Syntax „[attr]“ führt jetzt zu einem Fehler. Es sollte „@[attr]“ verwendet werden.
- string.index_after() gibt jetzt Option zurück (wie string.index()), um das alte Verhalten zu erreichen, sollte string.index_after_() verwendet werden.
- vweb wurde zugunsten des schnelleren, stabileren und benutzerfreundlicheren veb als veraltet erklärt.
- In der Standardbibliothek, zusätzlich zu vielen Optimierungen und Verbesserungen der Dokumentation, gibt es:
- Die eingebaute Methode string.split_by_space() wurde hinzugefügt.
- Im Modul os wurden Hilfsmethoden File.write_u8/1 und File.read_u8/0 hinzugefügt.
- Im Modul os wurde eine Funktion disk_usage hinzugefügt, die den verfügbaren Platz für den Dateipfad anzeigt.
- Im Modul time wurde die Funktion week_of_year() hinzugefügt.
- In x.json2 wurde Any.as_map_of_strings/0 hinzugefügt.
- Unter den Web-Änderungen:
- Das Modul x.vweb wurde entfernt (jetzt ist es das Modul veb).
- In veb.request_id wurde eine neue Middleware zur Verfolgung von Anfrage-IDs hinzugefügt.
- Das Handbuch für veb wurde aktualisiert.
- Datenbanken:
- Im Modul orm wurde der Codegenerator für die Option fk korrigiert.
- In db.sqlite wurde das Tracing für mehr Aufrufe beim Einsatz von „-d trace_sqlite“ hinzugefügt, und nicht nur für ORM.
- In db.pg wurde die Unterstützung für die Operatoren db.prepare/3 und db.exec_prepared/2 hinzugefügt.
- In db.mysql wurde Unterstützung hinzugefügt SSL und wurde in ein Verbindungsflag verschoben.
- Beispiele:
- Ein Beispiel für einen HTTP-Server vanilla_http_server wurde hinzugefügt – schnell, mehrthreads, nicht-blockierend, Ports und Hosts wiederverwendend, threadsicher, unter Verwendung von epoll.
- Ein Beispiel für die „1 Billion Row Challenge“ zur Demonstration der Leistungsfähigkeit der Sprache wurde hinzugefügt.
- Ein Beispiel für das Spiel „Minesweeper“ (examples/gg/minesweeper.v) wurde hinzugefügt.
- Ein Beispiel für das Rätselspiel Sokoban mit verschiedenen Leveln wurde hinzugefügt.
- Ein Beispiel für ein Asteroids-Spiel wurde hinzugefügt (es enthält jetzt < 400 Zeilen Code und verwendet gg).
- Ein Beispiel für ein kleines Spiel, das Tastatur- und Touchsteuerung unterstützt, wurde hinzugefügt.
- Im Tool „v“ wurde das Flag „-show-depgraph“ hinzugefügt, das ein Bild mit ModGraph generiert:

- Das Projekt entwickelt ein neues Betriebssystem Vinix mit eigenem Kern, das von Grund auf neu in der Sprache V geschrieben wurde. Vinix kann jetzt mit GTK3 arbeiten:

Quelle: opennet.ru



