ulia adalah bahasa yang dinamis, tingkat tinggi, dan berkinerja tinggi untuk komputasi teknis.
Beberapa hari yang lalu rilis versi baru bahasa pemrograman Julia 1.9 diumumkan, yang menggabungkan kualitas seperti performa tinggi, dukungan untuk pengetikan dinamis, dan alat bawaan untuk pemrograman paralel. Sintaks Julia mirip dengan MATLAB, dengan beberapa elemen dipinjam dari Ruby dan Lisp.
Julia menonjol sebagai bahasa pemrograman multi-platform dan multi-paradigma dengan pengetikan dinamis kerangka kerja tingkat tinggi, kinerja tinggi untuk komputasi generik, teknis, dan ilmiah, dengan sintaks yang mirip dengan lingkungan komputasi serupa lainnya.
Berita utama Julia 1.9
Dalam versi baru Julia 1.9 yang dihadirkan ini, beberapa perbaikan dalam runtime/kompiler, sejak disana ada Pengurangan waktu yang signifikan untuk menjalankan pertama. Prekompilasi paket sekarang menyimpan kode native di "pkgimage", yang berarti bahwa kode yang dihasilkan selama prekompilasi tidak perlu dikompilasi ulang setelah memuat paket. Penggunaan mode pkgimages dapat dinonaktifkan dengan opsi “–pkgimages=no”.
Perubahan lain yang menonjol adalah panggilan dengan argumen non-tipe-spesifik sekarang dapat dioptimalkan melalui join split untuk injeksi atau resolusi statis, meskipun ada beberapa jenis kandidat pengiriman yang berbeda. Ini dapat meningkatkan kinerja dalam situasi tertentu di mana jenis objek tidak sepenuhnya diselesaikan secara statis, dengan menyelesaikan situs panggilan secara statis "@nospecialize-d" dan menghindari kompilasi ulang.
Literal karakter tunggal sekarang mendukung sintaks yang sama dengan literal string; sintaks tersebut dapat mewakili urutan UTF-8 yang tidak valid, seperti yang diizinkan oleh tipe Char.
Selain itu, di Linux dan Windows, opsinya «--utas=otomatis» sekarang mencoba menentukan jumlah prosesor yang tersedia berdasarkan afinitas CPU, yang merupakan topeng yang biasanya diatur di HPC dan lingkungan cloud.
Opsi telah dinonaktifkan--mode-matematika=cepat", alih-alih disarankan untuk menggunakan makro "@fastmath", yang memiliki semantik yang terdefinisi dengan baik, selain parameter "- Benang» sekarang memiliki format «mobil | N[,otomatis|M]», di mana M menentukan jumlah utas interaktif yang akan dibuat.
Opsi tambahan «--tumpukan-ukuran-petunjuk=» untuk menyetel ambang batas setelah pengumpulan sampah aktif dimulai. Ukuran dapat ditentukan dalam byte, kilobyte (1000 KB), megabyte (300 MB), atau gigabyte (1,5 GB).
Makro "@panggilan". diperkenalkan di versi 1.7 sekarang diekspor dan tersedia untuk digunakan. Di samping itu, sekarang gunakan metode "Core.Typeof(x)". lebih tepatnya "Apa saja" saat anotasi tipe untuk argumen "x" dihilangkan. Ini diperlukan agar tipe yang diteruskan sebagai argumen diproses dengan benar.
Selain itu, "Threads.@spawn" sekarang memiliki argumen pertama opsional ":default" atau ":interactive". Tugas interaktif memerlukan respons latensi rendah dan dirancang untuk singkat atau sering. Tugas interaktif akan berjalan di utas interaktif jika ditentukan saat memulai Julia.
dari perubahan lain yang menonjol:
- Meniadakan fungsi predikat "!f" sekarang mengembalikan fungsi komposit "(!) ∘ f" alih-alih fungsi anonim.
- Fungsi pemisahan dimensi sekarang bekerja pada beberapa dimensi: «setiap irisan", "setiap baris" dan "setiap kolom" mengembalikan objek "Slice» yang memungkinkan pengiriman menyediakan metode yang lebih efisien.
- Makro «@kwdef» telah ditambahkan ke API publik.
- Memperbaiki masalah dengan urutan operasi di "fld1".
- Penyortiran sekarang selalu stabil dari waktu ke waktu (QuickSort yang didesain ulang).
- Jumlah default utas BLAS sekarang sama dengan jumlah utas CPU pada arsitektur ARM dan setengah dari jumlah utas CPU pada arsitektur lain.
- Printf: Pesan kesalahan yang dikerjakan ulang untuk string yang cacat agar lebih mudah dibaca.
- Profil: Fungsi baru "Profile.take_heap_snapshot(file)" yang menulis file dalam format ".heapsnapshot" berbasis JSON yang didukung oleh Chrome.
- Menambahkan dukungan untuk spesifikasi Unicode 15.
- Kombinasi tupel bersarang dan tupel karakter bernama sekarang dapat digunakan sebagai parameter tipe.
Akhirnya, jika Anda tertarik untuk mengetahui lebih banyak tentangnya, Anda dapat berkonsultasi dengan detailnya Di tautan berikut.