Go 1.19 sudah rilis dan ini beritanya

Baru-baru ini rilis versi baru dari bahasa pemrograman «Go 1.19» diumumkan, sebuah versi yang meningkatkan rilis sebelumnya dengan menambahkan berbagai peningkatan dan, di atas semua itu, perbaikan bug. Hal baru yang dapat kami soroti adalah peningkatan dalam manajemen memori, peningkatan keamanan, dan lain-lain.

Bagi yang baru mengenal Go, perlu diketahui bahwa ini adalah bahasa pemrograman yang dikembangkan dengan partisipasi masyarakat sebagai solusi hybrid yang menggabungkan kinerja tinggi dari bahasa yang dikompilasi dengan keunggulan seperti bahasa scripting seperti kemudahan penulisan kode, pengembangan dan perlindungan bug.

Sintaks Go didasarkan pada elemen bahasa C yang biasa. dengan beberapa pinjaman dari bahasa Python. Bahasanya cukup singkat, tetapi kodenya mudah dibaca dan dipahami.

Kode Go dikompilasi menjadi file biner yang dapat dieksekusi terpisah yang berjalan secara native, tanpa menggunakan mesin virtual (profiling, debugging, dan subsistem pemecahan masalah runtime lainnya dibangun sebagai komponen runtime).

Fitur baru utama Go 1.19

Dalam versi baru Go 1.19 yang dihadirkan ini, disoroti bahwa pekerjaan telah dilakukan untuk menyempurnakan dukungan untuk fungsi dan tipe generik ditambahkan dalam versi terbaru, dengan bantuan yang pengembang dapat menentukan dan menggunakan fungsi yang dirancang untuk bekerja dengan beberapa jenis sekaligus, ditambah optimasi kinerja beberapa program yang menggunakan obat generik telah meningkat sebesar 20%.

Perubahan lain yang menonjol dari versi baru adalah itu menambahkan dukungan untuk tautan, daftar, dan sintaks yang lebih sederhana untuk menentukan header dalam komentar dokumen. Utilitas gofmt menyediakan pemformatan dengan mempertimbangkan fitur komentar lanjutan dengan dokumentasi API.

Selain itu model memori Go yang direvisi agar selaras dengan C, C++, Java, JavaScript, Rust, dan Swift yang tidak mengakui nilai atom yang konsisten secara berurutan. Tipe baru seperti atomic.Int64 dan atomic.Pointer[T] telah diperkenalkan dalam paket sync/atomic untuk mempermudah penggunaan nilai atom.

Di sisi lain, disebutkan juga bahwa pengumpul sampah sekarang memiliki kemampuan untuk menentukan batas lunak, yang diberlakukan dengan membatasi ukuran heap dan mengembalikan memori ke sistem secara lebih agresif, yaitu, konsumsi tidak dijamin berada dalam batas yang ditentukan dalam semua kondisi. Batas lunak dapat berguna untuk mengoptimalkan program yang berjalan dalam wadah memori tetap.

Itu juga disorot itu pada sistem Unix, deskriptor file tambahan diaktifkan secara otomatis (dengan meningkatkan batas RLIMIT_NOFILE), untuk mempercepat ekspresi perubahan besar pada sistem x86-64 dan ARM64, tabel lompatan digunakan, yang memungkinkan ekspresi perubahan besar diproses hingga 20% lebih cepat.

Pada sistem riscv64, argumen fungsi yang lewat melalui register CPU diimplementasikan, yang memungkinkan peningkatan kinerja sekitar 10%.

Dari perubahan lainnya yang menonjol dari versi baru ini:

  • Banyak optimasi kinerja telah diterapkan.
  • Menambahkan dukungan untuk secara dinamis mengatur ukuran tumpukan rutin untuk mengurangi ukuran data yang disalin
  • Menambahkan dukungan eksperimental untuk lingkungan Linux pada sistem dengan prosesor Loongson berdasarkan arsitektur LoongArch 64-bit (GOARCH=loong64).
  • Mengubah model memori tidak mempengaruhi kompatibilitas dengan kode yang ditulis sebelumnya.
  • Menambahkan pembatasan build "unix" baru yang dapat digunakan di baris "go:build" untuk menyaring sistem mirip Unix (aix, android, darwin, dragonfly, freebsd, hurd, illumos, ios, linux, netbsd, openbsd, solaris ).
  • Untuk meningkatkan keamanan, modul os/exec sekarang mengabaikan jalur relatif saat memperluas variabel lingkungan PATH (misalnya, saat menentukan jalur file yang dapat dieksekusi, direktori saat ini tidak lagi diperiksa).

Terakhir, jika Anda tertarik untuk mempelajari lebih lanjut tentang rilis baru ini, Anda dapat memeriksa detailnya di link berikut.


tinggalkan Komentar Anda

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai dengan *

*

*

  1. Penanggung jawab data: Miguel Ángel Gatón
  2. Tujuan data: Mengontrol SPAM, manajemen komentar.
  3. Legitimasi: Persetujuan Anda
  4. Komunikasi data: Data tidak akan dikomunikasikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Basis data dihosting oleh Occentus Networks (UE)
  6. Hak: Anda dapat membatasi, memulihkan, dan menghapus informasi Anda kapan saja.