Crystal programmēšanas valodas izlaišana 1.2

Publicēts Crystal 1.2 programmēšanas valodas izlaidums, kura izstrādātāji cenšas apvienot Ruby valodas izstrādes ērtības ar C valodai raksturīgo augsto aplikāciju veiktspēju. Crystal sintakse ir tuva, bet nav pilnībā saderīga ar Ruby, lai gan dažas Ruby programmas darbojas bez izmaiņām. Kompilatora kods ir rakstīts Crystal un tiek izplatīts saskaņā ar Apache 2.0 licenci.

Valoda izmanto statisko tipa pārbaudi, kas ieviesta bez nepieciešamības kodā skaidri norādīt mainīgo veidu un metodes argumentus. Crystal programmas tiek apkopotas izpildāmos failos, un kompilēšanas laikā tiek novērtēti makro un ģenerēts kods. Crystal programmās ir iespējams savienot C valodā rakstītus iesējumus. Koda izpildes paralēlizēšana tiek veikta, izmantojot atslēgvārdu “spawn”, kas ļauj asinhroni palaist fona uzdevumu, nebloķējot galveno pavedienu, vieglu pavedienu veidā, ko sauc par šķiedrām.

Standarta bibliotēka nodrošina lielu kopīgu funkciju kopumu, tostarp rīkus CSV, YAML un JSON apstrādei, komponentus HTTP serveru izveidei un WebSocket atbalstu. Izstrādes procesā ir ērti izmantot komandu “crystal play”, kas ģenerē tīmekļa saskarni (pēc noklusējuma localhost:8080) interaktīvai koda izpildei Crystal valodā.

Galvenās izmaiņas:

  • Pievienota iespēja vecākklases elementam piešķirt vispārīgas klases apakšklasi. klase Foo(T); beigu klase Bar(T) < Foo(T); beigas x = Foo x = bārs
  • Makro tagad var izmantot pasvītrojumu, lai ignorētu vērtību for cilpā. {% for _, v, i in {1 => 2, 3 => 4, 5 => 6} %} p {{v + i}} {% end %}
  • Makro ir pievienota metode “file_exists?”. lai pārbaudītu faila esamību.
  • Standarta bibliotēka tagad atbalsta 128 bitu veselus skaitļus.
  • Pievienots Indexable::Mutable(T) modulis ar progresīvu darbību ieviešanu tādām kolekcijām kā BitArray un Deque. ba = BitArray.new(10) # ba = BitArray[0000000000] ba[0] = patiess # ba = BitArray[1000000000] ba.rotate!(-1) # ba = BitArray[0100000000]
  • Pievienota XML::Node#namespace_definition metode, lai no XML iegūtu noteiktu nosaukumvietu.
  • Metodes IO#write_utf8 un URI.encode ir novecojušas, un tās jāaizstāj ar IO#write_string un URI.encode_path.
  • Atbalsts 32 bitu x86 arhitektūrai ir pārvietots uz otro līmeni (gatavās pakotnes vairs netiek ģenerētas). Tiek gatavota pāreja uz pirmo atbalsta līmeni ARM64 arhitektūrai.
  • Turpinās darbs, lai nodrošinātu pilnīgu Windows platformas atbalstu. Pievienots atbalsts Windows ligzdām.
  • MacOS ir pievienota universāla pakotne, kas darbojas gan ierīcēs ar x86 procesoriem, gan iekārtām ar Apple M1 mikroshēmu.

Avots: opennet.ru

Pievieno komentāru