Julia, bahasa pengaturcaraan merentas platform mencapai versi 1.9

julia lang

ulia ialah bahasa dinamik, tahap tinggi, berprestasi tinggi untuk pengkomputeran teknikal.

Pelancaran Julia 1.9, versi baharu bahasa pengaturcaraan, telah diumumkan beberapa hari yang lalu. Ia menggabungkan ciri-ciri seperti prestasi tinggi, sokongan untuk penaipan dinamik dan alat bersepadu untuk pengaturcaraan selari. Sintaks Julia adalah serupa dengan MATLAB, dengan beberapa elemen yang dipinjam daripada Ruby dan Lisp.

Julia menonjol sebagai bahasa pengaturcaraan bertaraf tinggi, berprestasi tinggi, berbilang platform, berbilang paradigma, dan ditaip secara dinamik untuk pengkomputeran umum, teknikal dan saintifik, dengan sintaks yang serupa dengan persekitaran pengkomputeran lain yang serupa.

Berita utama Julia 1.9

Versi baharu Julia 1.9 ini menampilkan beberapa penambahbaikan masa jalan/pengkompil, termasuk pengurangan ketara dalam masa pelaksanaan pertama. Prakompilasi pakej kini menyimpan kod asli dalam "pkgimage," yang bermaksud kod yang dijana semasa prakompilasi tidak perlu dikompil semula selepas memuatkan pakej. Penggunaan mod pkgimages boleh dinyahdayakan dengan pilihan "--pkgimages=no".

Satu lagi perubahan ketara ialah panggilan dengan argumen bukan jenis khusus kini boleh dioptimumkan menggunakan pemisahan gabungan untuk suntikan atau resolusi statik, walaupun terdapat beberapa jenis calon penyerahan yang berbeza. Ini boleh meningkatkan prestasi dalam situasi tertentu di mana jenis objek tidak diselesaikan sepenuhnya secara statik, dengan menyelesaikan tapak panggilan " @nospecialize-d" secara statik dan mengelakkan penyusunan semula.

Literal aksara tunggal kini menyokong sintaks yang sama seperti literal rentetan; sintaks tersebut boleh mewakili urutan UTF-8 yang tidak sah, seperti yang dibenarkan oleh jenis Char.

Di samping itu, pada Linux dan Windows, pilihan " --threads=auto " kini cuba menentukan bilangan pemproses yang tersedia berdasarkan afiniti CPU, yang merupakan topeng yang biasanya ditetapkan dalam persekitaran HPC dan awan.

Pilihan " --math-mode=fast " telah dinyahdayakan , dan disyorkan untuk menggunakan makro " @fastmath " sebaliknya , yang mempunyai semantik yang jelas. Di samping itu, parameter " --threads " kini mempunyai format "auto | N[,auto|M]" , yang mana M menentukan bilangan thread interaktif yang akan dicipta.

Pilihan “ –heap-size-hint=<size> ” telah ditambah untuk menetapkan ambang selepas pengumpulan sampah aktif bermula. Saiz boleh ditentukan dalam bait, kilobait (1000 KB), megabait (300 MB), atau gigabait (1,5 GB).

Makro "@invoke" yang diperkenalkan dalam versi 1.7 kini dieksport dan tersedia untuk digunakan. Selain itu, ia kini menggunakan kaedah "Core.Typeof(x)" dan bukannya " Any " apabila anotasi jenis untuk argumen "x" diabaikan. Ini perlu agar jenis yang diluluskan sebagai argumen diproses dengan betul.

Tambahan pula, `Threads.@spawn` kini mempunyai argumen pertama pilihan sama ada `:default` atau `:interactive`. Tugasan interaktif memerlukan respons latensi rendah dan direka bentuk untuk ringkas atau dijalankan dengan kerap. Tugasan interaktif akan dijalankan pada thread interaktif jika dinyatakan apabila Julia bermula.

Perubahan ketara lain termasuk:

  • Menafikan fungsi predikat "!f" kini mengembalikan fungsi komposit "(!) ∘ f" dan bukannya fungsi tanpa nama.
  • Fungsi pemisahan dimensi kini berfungsi pada berbilang dimensi: «eachslice", "eachrow" dan "eachcol" pulangkan objek"Keping» yang membolehkan penghantaran menyediakan kaedah yang lebih cekap.
  • makro «@kwdef» telah ditambahkan pada API awam.
  • Memperbaiki masalah dengan susunan operasi dalam "fld1".
  • Isih kini sentiasa stabil dari semasa ke semasa (Reka bentuk semula QuickSort).
  • Bilangan lalai utas BLAS kini sama dengan bilangan utas CPU pada seni bina ARM dan separuh bilangan utas CPU pada seni bina lain.
  • Printf: Mesej ralat yang diolah semula untuk rentetan yang cacat untuk kebolehbacaan yang lebih baik.
  • Profil: Fungsi baharu "Profile.take_heap_snapshot(file)" yang menulis fail dalam format ".heapsnapshot" berasaskan JSON yang disokong oleh Chrome.
  • Menambah sokongan untuk spesifikasi Unicode 15.
  • Gabungan bersarang tupel dan tupel aksara bernama kini boleh digunakan sebagai parameter jenis.

Akhir sekali, jika anda berminat untuk mengetahui lebih lanjut, anda boleh mendapatkan butiran lanjut di pautan berikut.


Tambahkan sebagai sumber pilihan dalam Google