Kompiler bahasa D rilis 2.100

Pengembang bahasa pemrograman D mempresentasikan rilis kompiler referensi utama DMD 2.100.0, yang mendukung sistem GNU/Linux, Windows, macOS dan FreeBSD. Kode kompiler didistribusikan di bawah BSL (Boost Software License) gratis.

D diketik secara statis, memiliki sintaksis yang mirip dengan C/C++, dan memberikan kinerja bahasa yang dikompilasi, sambil meminjam beberapa efisiensi pengembangan dan manfaat keamanan dari bahasa dinamis. Misalnya, ia menyediakan dukungan untuk array asosiatif, inferensi tipe, manajemen memori otomatis, pemrograman paralel, pengumpul sampah opsional, sistem templat, komponen metaprogramming, kemampuan untuk menggunakan pustaka C, dan beberapa pustaka C++ dan Objective-C.

Perubahan dalam rilis baru meliputi:

  • Kelebihan beban operator gaya lama yang digunakan di cabang D1 telah dihentikan. Menggantikan opNeg, opAdd_r, opAddAssign, dll. datanglah opUnary, opBinary, opBinaryRight dan opOpAssign. Kelebihan beban operator gaya lama tidak digunakan lagi pada tahun 2019 dan akan menimbulkan kesalahan pada rilis 2.100.
  • Kata kunci hapus sudah tidak digunakan lagi sejak 2018. Daripada menghapus, Anda harus menggunakan fungsi destroy atau core.memory.__delete.
  • Atribut @mustuse baru telah diterapkan yang dapat diterapkan ke tipe struct dan union sebagai metode alternatif penanganan kesalahan ketika kode tidak dapat menangani pengecualian (misalnya, di blok @nogc). Jika ekspresi yang ditandai dengan atribut @mustuse tidak digunakan dalam kode, kompiler akan menghasilkan kesalahan.
  • Untuk array statis, penggunaan properti ".tupleof" diperbolehkan untuk mendapatkan urutan nilai (lvalue) dari setiap elemen array. void foo(int, int, int) { /* … */ } int[3] ia = [1, 2, 3]; foo(ia.tupleof); // analog foo(1, 2, 3); mengapung[3] fa; fa.tupleof = ia.tupleof; // penugasan sederhana fa = ia menghasilkan kesalahan menegaskan(fa == [1F, 2F, 3F]);

Sumber: opennet.ru

Tambah komentar