Crystal-ohjelmointikielen julkaisu 1.2

Crystal 1.2 -ohjelmointikielen julkaisu on julkaistu, jonka kehittäjät yrittävät yhdistää Ruby-kielen kehittämisen mukavuuden ja C-kielelle ominaisen korkean sovellussuorituskyvyn. Crystalin syntaksi on lähellä Rubya, mutta ei täysin yhteensopiva sen kanssa, vaikka jotkut Ruby-ohjelmat toimivat ilman muutoksia. Kääntäjäkoodi on kirjoitettu Crystalilla ja jaettu Apache 2.0 -lisenssillä.

Kielessä käytetään staattista tyyppitarkistusta, joka toteutetaan ilman, että koodissa tarvitsee erikseen määritellä muuttujien tyyppejä ja menetelmäargumentteja. Crystal-ohjelmat käännetään suoritettaviksi tiedostoiksi, joissa makrot arvioidaan ja koodi luodaan käännöshetkellä. Crystal-ohjelmissa on mahdollista yhdistää C-kielellä kirjoitettuja sidoksia. Koodin suorittamisen rinnakkaisuus suoritetaan "spawn"-avainsanalla, jonka avulla voit suorittaa taustatehtävän asynkronisesti, estämättä pääsäiettä, kevyiden säikeiden muodossa, joita kutsutaan kuiduiksi.

Vakiokirjasto tarjoaa suuren joukon yleisiä toimintoja, mukaan lukien työkalut CSV-, YAML- ja JSON-käsittelyyn, komponentit HTTP-palvelimien luomiseen ja WebSocket-tuki. Kehitysprosessin aikana on kätevää käyttää "crystal play" -komentoa, joka luo verkkokäyttöliittymän (oletusarvoisesti localhost:8080) koodin interaktiiviseen suorittamiseen Crystal-kielellä.

Suurimmat muutokset:

  • Lisätty mahdollisuus määrittää yleisen luokan alaluokka pääluokan elementille. luokka Foo(T); loppuluokka Bar(T) < Foo(T); loppu x = Foo x = baari
  • Makrot voivat nyt käyttää alaviivaa ohittaakseen arvon for-silmukassa. {% for _, v, i in {1 => 2, 3 => 4, 5 => 6} %} p {{v + i}} {% end %}
  • Lisätty "file_exists?"-menetelmä makroihin. tarkistaaksesi tiedoston olemassaolon.
  • Vakiokirjasto tukee nyt 128-bittisiä kokonaislukuja.
  • Lisätty Indexable::Mutable(T)-moduuli, joka sisältää edistyneitä toimintoja kokoelmille, kuten BitArray ja Deque. ba = BitArray.new(10) # ba = BitArray[0000000000] ba[0] = tosi # ba = BitArray[1000000000] ba.rotate!(-1) # ba = BitArray[0100000000]
  • Lisätty XML::Node#namespace_definition-menetelmä tietyn nimitilan poimimiseksi XML:stä.
  • IO#write_utf8- ja URI.encode-menetelmät on vanhentuneita, ja ne pitäisi korvata IO#write_string- ja URI.encode_path-menetelmillä.
  • 32-bittisen x86-arkkitehtuurin tuki on siirretty toiselle tasolle (valmiita paketteja ei enää luoda). ARM64-arkkitehtuurin siirtoa ensimmäiselle tukitasolle valmistellaan.
  • Työ jatkuu Windows-alustan täyden tuen varmistamiseksi. Lisätty tuki Windows-pistokkeille.
  • MacOS:lle on lisätty universaali paketti, joka toimii sekä x86-prosessorilla että Apple M1 -sirulla varustetuissa laitteissa.

Lähde: opennet.ru

Lisää kommentti