Rilis bahasa pemrograman Go 1.15

Disampaikan oleh rilis bahasa pemrograman Pergi 1.15, yang sedang dikembangkan oleh Google dengan partisipasi komunitas sebagai solusi hibrid yang menggabungkan kinerja tinggi bahasa yang dikompilasi dengan keunggulan bahasa skrip seperti kemudahan penulisan kode, kecepatan pengembangan, dan perlindungan kesalahan. Kode proyek didistribusikan oleh di bawah lisensi BSD.

Sintaks Go didasarkan pada elemen bahasa C yang familiar dengan beberapa pinjaman dari bahasa Python. Bahasanya cukup ringkas, namun kodenya mudah dibaca dan dipahami. Kode Go dikompilasi menjadi executable biner yang berdiri sendiri yang berjalan secara native tanpa menggunakan mesin virtual (profiling, debugging, dan subsistem deteksi masalah runtime lainnya terintegrasi sebagai komponen waktu proses), yang memungkinkan Anda mencapai kinerja yang sebanding dengan program C.

Proyek ini awalnya dikembangkan dengan tujuan pemrograman multi-thread dan operasi yang efisien pada sistem multi-core, termasuk menyediakan sarana tingkat operator untuk mengatur komputasi paralel dan interaksi antara metode yang dijalankan secara paralel. Bahasa ini juga memberikan perlindungan bawaan terhadap blok memori yang dialokasikan secara berlebihan dan menyediakan kemampuan untuk menggunakan pengumpul sampah.

Utama inovasidiperkenalkan pada rilis Go 1.15:

  • Pekerjaan linker telah ditingkatkan secara signifikan, baik dalam meningkatkan kecepatan operasi dan mengurangi konsumsi memori, dan dalam rangka menyederhanakan pemeliharaan kode. Saat diuji pada sistem operasi yang menggunakan format file ELF yang dapat dieksekusi (Linux, FreeBSD, NetBSD, OpenBSD, Dragonfly, Solaris), serangkaian aplikasi Go berukuran besar dibuat 20% lebih cepat, dan konsumsi memori berkurang rata-rata 30%. Peningkatan produktivitas dimungkinkan dengan beralih ke format file objek baru dan mengerjakan ulang tahapan internal untuk meningkatkan tingkat paralelisasi pekerjaan. Tautan asli sekarang digunakan secara default pada sistem linux/amd64 dan linux/arm64 di "-buildmode=pie", yang tidak lagi memerlukan penggunaan C linker.
  • Saat runtime, distribusi objek kecil pada sistem dengan jumlah inti CPU yang besar telah ditingkatkan secara signifikan dan latensi telah dikurangi. Jika terjadi kegagalan, nilai dengan tipe numerik dan string ditampilkan alih-alih menunjukkan alamat. Saat mengirim sinyal SIGSEGV, SIGBUS dan SIGFPE ke aplikasi Go, jika tidak ada penangan os/signal.Notify, aplikasi akan keluar dengan keluaran pelacakan tumpukan (sebelumnya perilakunya tidak dapat diprediksi).
  • Kompiler telah dioptimalkan untuk mengurangi ukuran file executable yang dihasilkan rata-rata 5% dengan menghentikan penyertaan beberapa metadata untuk pengumpul sampah dan pembersihan metadata yang tidak digunakan secara lebih agresif.
  • Flag β€œ-spectre” telah ditambahkan ke compiler dan assembler untuk mengaktifkan perlindungan terhadap serangan kelas Spectre (untuk sebagian besar program hal ini tidak diperlukan; mengaktifkan opsi ini hanya dapat dibenarkan untuk beberapa kasus yang sangat spesifik).
  • Dalam sertifikat X.509, bidang CommonName sudah tidak digunakan lagi, yang tidak lagi diperlakukan sebagai nama host jika bidang Nama Alternatif Subjek tidak ada.
  • Perintah "go" di variabel lingkungan GOPROXY kini dapat mencantumkan beberapa proxy, dipisahkan dengan koma atau "|". Jika proxy pertama dalam daftar mengembalikan kesalahan (404 atau 410), maka upaya akan dilakukan untuk menghubungi melalui proxy kedua, dan seterusnya.
  • Utilitas dokter hewan telah menambahkan peringatan tentang upaya mengkonversi dari string(x) jika "x" adalah tipe integer selain rune atau byte.
  • Bendera "-gnu" telah ditambahkan ke utilitas objdump untuk mendukung pembongkaran sintaksis assembler GNU.
  • Paket baru ditambahkan waktu/tzdata, yang memungkinkan Anda mengintegrasikan database dengan data zona waktu ke dalam program.
  • Dari teks sumber dan dokumentasi DIHAPUS frase whitelist/blacklist dan master/slave, yang sekarang digantikan oleh "allowlist", "blocklist", "process", "pty", "proc" dan "control".
  • Sebagian besar perbaikan kecil telah dilakukan pada perpustakaan standar.
  • Menambahkan dukungan untuk OpenBSD 6.7 dalam mode GOARCH=arm dan GOARCH=arm64 (sebelumnya hanya GOARCH=386 dan GOARCH=amd64 yang didukung).
  • Pengembangan platform RISC-V 64-bit (GOOS=linux, GOARCH=riscv64) terus berlanjut.
  • Untuk sistem x32 86-bit, rilis berikutnya akan meningkatkan persyaratan sistem minimum - hanya prosesor dengan SSE2 yang akan terus didukung. Untuk membangun dalam mode GOARCH=386 Anda memerlukan setidaknya Intel Pentium 4 (dirilis pada tahun 2000) atau AMD Opteron/Athlon 64 (dirilis pada tahun 2003).

Sumber: opennet.ru

Tambah komentar