Rilis Basa Pemrograman Crystal 1.2

Rilis basa pamrograman Crystal 1.2 wis diterbitake, para pangembang nyoba nggabungake kenyamanan pembangunan ing basa Ruby kanthi karakteristik kinerja aplikasi sing dhuwur saka basa C. Sintaksis Crystal cedhak, nanging ora kompatibel karo, Ruby, sanajan sawetara program Ruby mbukak tanpa modifikasi. Kode kompiler ditulis ing Crystal lan disebarake miturut lisensi Apache 2.0.

Basa kasebut nggunakake pamriksa jinis statis, dileksanakake tanpa kudu nemtokake kanthi jelas jinis variabel lan argumen metode ing kode kasebut. Program kristal dikompilasi dadi file sing bisa dieksekusi, kanthi makro dievaluasi lan kode digawe nalika kompilasi. Ing program Crystal, sampeyan bisa nyambungake bindings sing ditulis ing C. Parallelization saka eksekusi kode ditindakake kanthi nggunakake tembung kunci "spawn", sing ngidini sampeyan nglakokake tugas latar mburi kanthi ora sinkron, tanpa ngalangi utas utama, ing wangun benang entheng sing diarani serat.

Pustaka standar nyedhiyakake akeh fungsi umum, kalebu alat kanggo ngolah CSV, YAML, lan JSON, komponen kanggo nggawe server HTTP, lan dhukungan WebSocket. Sajrone proses pangembangan, trep nggunakake printah "play kristal", sing ngasilake antarmuka web (localhost: 8080 minangka standar) kanggo eksekusi kode interaktif ing basa Crystal.

Owah-owahan utama:

  • Nambahake kemampuan kanggo nemtokake subclass saka kelas umum menyang unsur kelas induk. kelas Foo(T); kelas pungkasan Bar(T) < Foo(T); pungkasan x = Foo x = Bar
  • Macro saiki bisa nggunakake garis ngisor kanggo nglirwakake nilai ing loop for. {% kanggo _, v, i ing {1 => 2, 3 => 4, 5 => 6} %} p {{v + i}} {% pungkasan %}
  • Ditambahake "file_exists?" Metode kanggo macro. kanggo mriksa anane file.
  • Pustaka standar saiki ndhukung integer 128-bit.
  • Added Indexable :: Mutable (T) modul karo implementasine saka operasi majeng kanggo koleksi kayata BitArray lan Deque. ba = BitArray.new(10) # ba = BitArray[0000000000] ba[0] = true # ba = BitArray[1000000000] ba.rotate!(-1) # ba = BitArray[0100000000]
  • Added XML:: Node#namespace_definition method kanggo extract namespace tartamtu saka XML.
  • Metode IO#write_utf8 lan URI.encode wis ora digunakake lan kudu diganti karo IO#write_string lan URI.encode_path.
  • Dhukungan kanggo arsitektur 32-bit x86 wis dipindhah menyang tingkat kapindho (paket sing wis digawe ora digawe maneh). Transfer menyang tingkat pertama dhukungan kanggo arsitektur ARM64 lagi disiapake.
  • Kerja terus kanggo njamin dhukungan lengkap kanggo platform Windows. Dhukungan ditambahake kanggo soket Windows.
  • Paket universal wis ditambahake kanggo macOS, digunakake ing piranti karo prosesor x86 lan ing peralatan karo chip Apple M1.

Source: opennet.ru

Add a comment