Verëffentlechung vun der Crystal Programméiersprooch 1.2

D'Verëffentlechung vun der Crystal 1.2 Programmiersprache gouf publizéiert, d'Entwéckler vun deenen versichen d'Bequemlechkeet vun der Entwécklung an der Ruby Sprooch mat der héijer Applikatioun Performance charakteristesch vun der C Sprooch ze kombinéieren. Dem Crystal seng Syntax ass no, awer net voll kompatibel mat Ruby, obwuel e puer Ruby Programmer ouni Ännerung lafen. De Compiler Code ass a Crystal geschriwwen a verdeelt ënner der Apache 2.0 Lizenz.

D'Sprooch benotzt statesch Typprüfung, implementéiert ouni d'Notzung explizit d'Zorte vu Variabelen a Methodargumenter am Code ze spezifizéieren. Crystal Programmer ginn an ausführbar Dateie kompiléiert, mat Makroen evaluéiert a Code generéiert zur Kompiléierungszäit. A Crystal Programmer ass et méiglech Bindungen ze verbannen, déi an C geschriwwe sinn. Paralleliséierung vun der Code Ausféierung gëtt mat dem Schlësselwuert "Spawn" ausgeführt, wat Iech erlaabt eng Hannergrondtask am asynchrone Modus auszeféieren ouni den Haaptfuedem ze blockéieren, a Form vu liichtgewiichtege Fuedem genannt Faseren.

D'Standardbibliothéik bitt eng grouss Rei vu gemeinsame Funktiounen, dorënner Tools fir d'Veraarbechtung vu CSV, YAML a JSON, Komponenten fir HTTP-Server ze kreéieren, a WebSocket Support. Wärend dem Entwécklungsprozess ass et bequem de Kommando "Crystal Play" ze benotzen, deen e Webinterface generéiert (localhost: 8080 par défaut) fir interaktiv Ausféierung vum Code an der Crystal Sprooch.

Main Ännerungen:

  • D'Fäegkeet bäigefüügt fir eng Ënnerklass vun enger generescher Klass un en Element vun enger Elterenklass ze ginn. Klass Foo(T); end class Bar(T) < Foo(T); Enn x = Foo x = Bar
  • Makroen kënnen elo en Ënnersträich benotzen fir e Wäert an enger for-Loop ze ignoréieren. {% fir _, v, i an {1 => 2, 3 => 4, 5 => 6} %} p {{v + i}} {% Enn %}
  • Added "file_exists?"-Methode fir Makroen. fir d'Existenz vun engem Fichier ze kontrolléieren.
  • D'Standardbibliothéik ënnerstëtzt elo 128-Bit ganz Zuelen.
  • Added Indexable :: Mutable (T) Modul mat Ëmsetzung vun fortgeschratt Operatiounen fir Kollektiounen wéi BitArray an Deque. ba = BitArray.new(10) # ba = BitArray[0000000000] ba[0] = richteg # ba = BitArray[1000000000] ba.rotate!(-1) # ba = BitArray[0100000000]
  • Added XML :: Node#namespace_definition Method fir e spezifeschen Nummraum aus XML ze extrahieren.
  • D'IO#write_utf8 an URI.encode Methoden goufen ofgeschaaft a sollen duerch IO#write_string an URI.encode_path ersat ginn.
  • Ënnerstëtzung fir 32-Bit x86 Architektur gouf op den zweeten Niveau geplënnert (fäerdeg Pakete ginn net méi generéiert). En Transfert op den éischte Niveau vun der Ënnerstëtzung fir d'ARM64 Architektur gëtt virbereet.
  • D'Aarbecht geet weider fir voll Ënnerstëtzung fir d'Windows Plattform ze garantéieren. Zousätzlech Ënnerstëtzung fir Windows Sockets.
  • En universelle Package gouf fir macOS bäigefüügt, souwuel op Apparater mat x86 Prozessoren an op Ausrüstung mam Apple M1 Chip.

Source: opennet.ru

Setzt e Commentaire