Rilis basa pamrograman Ruby 3.1

Ruby 3.1.0 dirilis, basa pemrograman berorientasi obyek dinamis sing efisien banget ing pangembangan program lan nggabungake fitur paling apik saka Perl, Java, Python, Smalltalk, Eiffel, Ada lan Lisp. Kode proyek disebarake miturut lisensi BSD ("2 klausa BSDL") lan "Ruby", sing nuduhake versi paling anyar saka lisensi GPL lan kompatibel karo GPLv3.

dandan utama:

  • Kompiler JIT ing proses eksperimen anyar, YJIT, wis ditambahake, digawe dening pangembang platform e-commerce Shopify minangka bagean saka inisiatif kanggo nambah kinerja program Ruby sing nggunakake kerangka Rails lan nelpon akeh metode. Bentenane utama saka compiler MJIT JIT sing sadurunge digunakake, sing adhedhasar ngolah kabeh metode lan nggunakake kompiler eksternal ing basa C, yaiku YJIT nggunakake Lazy Basic Block Versioning (LBBV) lan ngemot kompiler JIT terpadu. Kanthi LBBV, JIT mung nglumpukake wiwitan metode kasebut, lan ngumpulake liyane sawetara wektu mengko, sawise jinis variabel lan argumen sing digunakake ditemtokake sajrone eksekusi. Nalika nggunakake YJIT, peningkatan 22% ing kinerja dicathet nalika nglakokake tes railsbench, lan kenaikan 39% ing tes render cairan. YJIT saiki diwatesi kanggo ndhukung OS kaya unix ing sistem kanthi arsitektur x86-64 lan dipateni kanthi standar (kanggo ngaktifake, nemtokake gendera "--yjit" ing baris printah).
  • Peningkatan kinerja kompiler MJIT JIT lawas. Kanggo proyek sing nggunakake Rails, ukuran cache maksimum standar (--jit-max-cache) wis ditambah saka 100 dadi 10000 instruksi. Mungkasi nggunakake JIT kanggo cara kanthi luwih saka 1000 instruksi. Kanggo ndhukung Zeitwerk of Rails, kode JIT ora dibuwang maneh nalika TracePoint diaktifake kanggo acara kelas.
  • Iku kalebu debugger debug.gem rampung ditulis maneh, sing ndhukung debugging remot, ora alon mudhun aplikasi debugging, ndhukung integrasi karo antarmuka debugging majeng (VSCode lan Chrome), bisa digunakake kanggo debugging aplikasi multi-Utas lan multi-proses, menehi antarmuka eksekusi kode REPL, nawakake kemampuan nelusuri majeng, bisa ngrekam lan muter maneh snippet kode. Debugger lib/debug.rb sing ditawakake sadurunge wis dibusak saka distribusi dhasar.
    Rilis basa pamrograman Ruby 3.1
  • Dilaksanakake panyorot visual saka kesalahan ing laporan tilak telpon maneh. Kesalahan flagging diwenehake nggunakake paket permata sing dibangun lan standar error_highlight. Kanggo mateni tandha kesalahan, sampeyan bisa nggunakake setelan "--disable-error_highlight". $ ruby ​​​​test.rb test.rb:1:in" ": undefined method "time" kanggo 1:Integer (NoMethodError) 1.time {} ^^^^^ Maksudmu? kaping
  • Cangkang saka petungan interaktif IRB (REPL, Read-Eval-Print-Loop) ngleksanakake completion otomatis kode ngetik (nalika sampeyan ngetik, pitunjuk ditampilake karo pilihan kanggo terus input, antarane sing bisa pindhah karo Tab utawa Shift + tombol tab). Sawise milih pilihan terusan, kothak dialog ditampilake ing cedhak sing nuduhake dokumentasi sing ana gandhengane karo item sing dipilih. Trabasan keyboard Alt+d bisa digunakake kanggo ngakses dokumentasi lengkap.
    Rilis basa pamrograman Ruby 3.1
  • Sintaks basa saiki ngidini nilai ing literal hash lan argumen tembung kunci dilewati nalika nelpon fungsi. Contone, tinimbang ekspresi "{x: x, y: y}" sampeyan saiki bisa nemtokake "{x:, y:}", lan tinimbang "foo (x: x, y: y)" - foo( x:, y:).
  • Dhukungan stabil kanggo pencocokan pola siji-baris (ary => [x, y, z]), sing ora ditandhani maneh minangka eksperimen.
  • Operator "^" ing pencocokan pola saiki bisa ngemot ekspresi sewenang-wenang, contone: Prime.each_cons(2).lazy.find_all{_1 in [n, ^(n + 2)]}.take(3).to_a #= > ? [[3, 5], [5, 7], [11, 13]]
  • Ing pencocokan pola baris tunggal, sampeyan bisa ngilangi tanda kurung: [0, 1] => _, x {y: 2} => y: x #=> 1 y #=> 2
  • Basa anotasi jinis RBS, sing ngidini sampeyan nemtokake struktur program lan jinis sing digunakake, wis nambah dhukungan kanggo nemtokake wates ndhuwur parameter jinis nggunakake simbol "<", nambah dhukungan kanggo alias saka jinis umum, ndhukung dhukungan kanggo koleksi kanggo ngatur mutiara, kinerja apik lan dipun ginakaken akeh teken anyar kanggo dibangun ing lan perpustakaan standar.
  • Dhukungan eksperimen kanggo lingkungan pangembangan terintegrasi wis ditambahake ing penganalisa tipe statis TypePro, sing ngasilake anotasi RBS adhedhasar analisis kode tanpa informasi jinis eksplisit (contone, tambahan wis disiapake kanggo nggabungake TypePro karo editor VSCode).
  • Urutan ngolah sawetara tugas wis diganti. Contone, sadurunge komponen ekspresi "foo [0], bar [0] = baz, qux" diproses kanthi urutan baz, qux, foo, bar, nanging saiki foo, bar, baz, qux.
  • Nambahake dhukungan eksperimen kanggo alokasi memori kanggo senar nggunakake mekanisme VWA (Variable Width Allocation).
  • Dianyari versi modul permata dibangun ing lan sing klebu ing perpustakaan standar. Paket net-ftp, net-imap, net-pop, net-smtp, matrix, prime lan debug wis dibangun ing.

Source: opennet.ru

Add a comment