Ngaleupaskeun basa pamrograman Crystal 1.2

Pelepasan basa pamrograman Crystal 1.2 parantos diterbitkeun, pamekar anu nyobian ngagabungkeun genah pangwangunan dina basa Ruby sareng ciri kinerja aplikasi anu luhur tina basa C. Sintaksis Crystal caket sareng, tapi henteu sapinuhna cocog sareng, Ruby, sanaos sababaraha program Ruby dijalankeun tanpa modifikasi. Kodeu kompiler ditulis dina Kristal sareng disebarkeun dina lisénsi Apache 2.0.

Basa ngagunakeun pamariksaan tipe statik, dilaksanakeun tanpa kedah sacara eksplisit nangtukeun jinis variabel sareng metode argumen dina kode. Program kristal disusun kana file anu tiasa dieksekusi, kalayan makro dievaluasi sareng kode dibangkitkeun dina waktos kompilasi. Dina program Kristal, mungkin pikeun nyambungkeun bindings ditulis dina C. Parallelization of code execution dilumangsungkeun maké kecap konci "spawn", nu ngidinan Anjeun pikeun ngajalankeun tugas tukang dina modeu Asynchronous tanpa blocking thread utama, dina bentuk threads lightweight disebut serat.

Perpustakaan standar nyayogikeun sakumpulan fungsi umum, kalebet alat pikeun ngolah CSV, YAML, sareng JSON, komponén pikeun nyiptakeun server HTTP, sareng dukungan WebSocket. Salila prosés pangwangunan, éta merenah ngagunakeun paréntah "maén kristal", nu dibangkitkeun panganteur web (localhost: 8080 sacara standar) pikeun palaksanaan interaktif kode dina basa Kristal.

Parobahan utama:

  • Ditambahkeun kamampuhan pikeun napelkeun hiji subclass tina kelas generik ka unsur kelas indungna. kelas Foo(T); kelas tungtung Bar (T) < Foo (T); tungtung x = Foo x = Bar
  • Macros ayeuna tiasa nganggo underscore pikeun malire nilai dina loop for. {% pikeun _, v, i dina {1 => 2, 3 => 4, 5 => 6} %} p {{v + i}} {% tungtung %}
  • Ditambahkeun "file_exists?" Metoda kana makro. pikeun mariksa ayana file.
  • Perpustakaan standar ayeuna ngadukung integer 128-bit.
  • Ditambahkeun Indexable :: Mutable (T) modul kalawan palaksanaan operasi canggih pikeun kumpulan kayaning BitArray na Deque. ba = BitArray.new(10) # ba = BitArray[0000000000] ba[0] = leres # ba = BitArray[1000000000] ba.rotate!(-1) # ba = BitArray[0100000000]
  • Ditambahkeun XML:: Node#namespace_definition métode pikeun nimba ngaranspasi husus tina XML.
  • Metoda IO#write_utf8 jeung URI.encode geus deprecated sarta kudu diganti ku IO#write_string jeung URI.encode_path.
  • Rojongan pikeun arsitektur 32-bit x86 geus dipindahkeun ka tingkat kadua (pakét siap-dijieun teu dihasilkeun deui). A mindahkeun ka tingkat kahiji pangrojong pikeun arsitektur ARM64 keur disiapkeun.
  • Gawé terus mastikeun dukungan pinuh pikeun platform Windows. Ditambahkeun dukungan pikeun sockets Windows.
  • Paket universal parantos ditambahkeun pikeun macOS, tiasa dianggo dina alat anu nganggo prosesor x86 sareng alat anu nganggo chip Apple M1.

sumber: opennet.ru

Tambahkeun komentar