Keluaran bahasa pengaturcaraan Go 1.15

Dikemukakan oleh keluaran bahasa pengaturcaraan Pergi 1.15, yang sedang dibangunkan oleh Google dengan penyertaan komuniti sebagai penyelesaian hibrid yang menggabungkan prestasi tinggi bahasa yang disusun dengan kelebihan bahasa skrip seperti kemudahan menulis kod, kelajuan pembangunan dan perlindungan ralat. Kod projek diedarkan oleh di bawah lesen BSD.

Sintaks Go adalah berdasarkan unsur biasa bahasa C dengan beberapa pinjaman daripada bahasa Python. Bahasanya agak ringkas, tetapi kodnya mudah dibaca dan difahami. Kod Go disusun ke dalam boleh laku binari berdiri sendiri yang berjalan secara asli tanpa menggunakan mesin maya (profil, penyahpepijatan dan subsistem pengesanan masalah masa jalan yang lain disepadukan sebagai komponen runtime), yang membolehkan anda mencapai prestasi yang setanding dengan program C.

Projek ini pada mulanya dibangunkan dengan fokus kepada pengaturcaraan berbilang benang dan operasi yang cekap pada sistem berbilang teras, termasuk menyediakan cara peringkat operator untuk mengatur pengkomputeran selari dan interaksi antara kaedah yang dilaksanakan selari. Bahasa ini juga menyediakan perlindungan terbina dalam terhadap blok memori yang terlalu diperuntukkan dan menyediakan keupayaan untuk menggunakan pengumpul sampah.

Utama inovasidiperkenalkan dalam keluaran Go 1.15:

  • Kerja penyambung telah dipertingkatkan dengan ketara, baik dalam meningkatkan kelajuan operasi dan mengurangkan penggunaan memori, dan ke arah memudahkan penyelenggaraan kod. Apabila diuji pada sistem pengendalian menggunakan format fail boleh laku ELF (Linux, FreeBSD, NetBSD, OpenBSD, Dragonfly, Solaris), set tipikal aplikasi Go yang besar telah dibina 20% lebih pantas, dan penggunaan memori dikurangkan sebanyak purata 30%. Peningkatan produktiviti dimungkinkan dengan menukar kepada format fail objek baharu dan mengolah semula peringkat dalaman untuk meningkatkan tahap selari kerja. Pemaut asli kini digunakan secara lalai pada sistem linux/amd64 dan linux/arm64 dalam "-buildmode=pie", yang tidak lagi memerlukan penggunaan pemaut C.
  • Dalam masa jalan, pengedaran objek kecil pada sistem dengan sejumlah besar teras CPU telah dipertingkatkan dengan ketara dan kependaman telah dikurangkan. Sekiranya berlaku kegagalan, nilai dengan jenis angka dan rentetan dipaparkan dan bukannya menunjukkan alamat. Apabila menghantar isyarat SIGSEGV, SIGBUS dan SIGFPE ke aplikasi Go, jika tiada os/isyarat. Pengendali maklumkan, aplikasi akan keluar dengan output surih tindanan (sebelum ini tingkah laku tidak dapat diramalkan).
  • Pengkompil telah dioptimumkan untuk mengurangkan saiz fail boleh laku yang dijana sebanyak purata 5% dengan menghentikan kemasukan beberapa metadata untuk pengumpul sampah dan pembersihan metadata yang tidak digunakan secara lebih agresif.
  • Bendera "-spectre" telah ditambahkan pada pengkompil dan penghimpun untuk membolehkan perlindungan terhadap serangan kelas Spectre (untuk kebanyakan program ini tidak diperlukan; mendayakan pilihan hanya boleh dibenarkan untuk beberapa kes yang sangat spesifik).
  • Dalam sijil X.509, medan CommonName telah ditamatkan, yang tidak lagi dianggap sebagai nama hos jika medan Nama Alternatif Subjek tiada.
  • Perintah "go" dalam pembolehubah persekitaran GOPROXY kini boleh menyenaraikan berbilang proksi, dipisahkan dengan koma atau "|". Jika proksi pertama dalam senarai mengembalikan ralat (404 atau 410), maka percubaan akan dibuat untuk menghubungi melalui proksi kedua, dsb.
  • Utiliti doktor haiwan telah menambah amaran tentang cubaan menukar daripada rentetan(x) jika "x" ialah jenis integer selain daripada rune atau bait.
  • Bendera "-gnu" telah ditambahkan pada utiliti objdump untuk menyokong pembongkaran sintaks pemasang GNU.
  • Pakej baharu ditambah masa/tzdata, yang membolehkan anda menyepadukan pangkalan data dengan data zon masa ke dalam program.
  • Daripada teks sumber dan dokumentasi dikeluarkan frasa senarai putih/senarai hitam dan tuan/hamba, yang kini digantikan dengan "senarai dibenarkan", "senarai sekat", "proses", "pty", "proc" dan "kawalan".
  • Sebahagian besar penambahbaikan kecil telah dibuat pada perpustakaan standard.
  • Menambah sokongan untuk OpenBSD 6.7 dalam mod GOARCH=arm dan GOARCH=arm64 (sebelum ini hanya GOARCH=386 dan GOARCH=amd64 telah disokong).
  • Pembangunan platform RISC-V 64-bit (GOOS=linux, GOARCH=riscv64) diteruskan.
  • Untuk sistem x32 86-bit, keluaran seterusnya akan meningkatkan keperluan sistem minimum - hanya pemproses dengan SSE2 akan terus disokong. Untuk membina dalam mod GOARCH=386 anda memerlukan sekurang-kurangnya Intel Pentium 4 (dikeluarkan pada tahun 2000) atau AMD Opteron/Athlon 64 (dikeluarkan pada tahun 2003).

Sumber: opennet.ru

Tambah komen