Perl 7 akan melanjutkan pengembangan Perl 5 dengan lancar tanpa merusak kompatibilitas ke belakang

Dewan Pengurus Proyek Perl menguraikan rencana untuk pengembangan lebih lanjut dari cabang Perl 5 dan pembuatan cabang Perl 7. Selama diskusi, Dewan Pengurus sepakat bahwa tidak boleh merusak kompatibilitas dengan kode yang sudah ditulis untuk Perl 5, kecuali melanggar kompatibilitas diperlukan untuk memperbaiki kerentanan. Dewan juga menyimpulkan bahwa bahasa tersebut harus berkembang dan fitur-fitur baru harus dipromosikan secara lebih intensif, sekaligus membuat inovasi-inovasi yang muncul lebih mudah diakses dan mendorong adopsi.

Berbeda dengan niat awal yang mengizinkan perubahan yang merusak kompatibilitas ke belakang untuk disertakan secara default di cabang Perl 7, rencana baru ini adalah untuk secara bertahap mentransisikan cabang Perl 5 ke Perl 7 tanpa merusak kompatibilitas ke belakang dengan kode yang ada. Rilis Perl 7.0 secara konseptual tidak berbeda dengan cabang Perl 5.xx berikutnya.

Pengembangan rilis baru Perl 5 akan berlanjut seperti sebelumnya - fitur baru yang ditambahkan ke cabang yang tidak kompatibel dengan kode lama akan, seperti sebelumnya, hanya disertakan jika pragma "gunakan versi" atau "gunakan fitur fitur" ditentukan secara eksplisit dalam kode. Misalnya, Perl 5.010 memperkenalkan kata kunci baru "say", tetapi karena kode yang ada dapat menggunakan fungsi bernama "say", dukungan untuk kata kunci baru diaktifkan hanya dengan secara eksplisit menentukan pragma "gunakan fitur 'say'".

Sintaks baru ditambahkan ke bahasa, yang ketika diproses di rilis sebelumnya menyebabkan kesalahan, segera tersedia tanpa perlu menentukan pragma khusus. Misalnya, Perl 5.36 akan memperkenalkan sintaks yang disederhanakan untuk memproses beberapa nilai daftar sekaligus (β€œforeach my ($key, $value) (%hash) {”) yang akan segera tersedia, bahkan dalam kode tanpa β€œuse v5.36” pragma.

Dalam bentuknya saat ini, Perl 5.36 menggunakan pragma "use v5.36" untuk mengaktifkan 13 fitur pemecah interoperabilitas ('say', 'state', 'current_sub', 'fc', 'lexical_subs', 'signatures', 'isa ', ' bareword_filehandles', 'bitwise', 'evalbytes', 'postderef_qq', 'unicode_eval' dan 'unicode_strings'), mengaktifkan mode β€œuse strict” dan β€œuse warnings” secara default dan menonaktifkan dukungan untuk notasi tidak langsung lama untuk memanggil objek (bila alih-alih β€œ- >" menggunakan spasi) dan array dan hash multidimensi gaya Perl 4 ("$hash{1, 2}").

Ketika cukup banyak perubahan yang terakumulasi, versi Perl 5.x berikutnya akan dibuat sebagai ganti rilis Perl 7.0.x berikutnya, yang akan menjadi semacam snapshot status, namun akan tetap sepenuhnya kompatibel dengan Perl 5. Untuk mengaktifkan perubahan dan pengaturan yang merusak kompatibilitas, Anda perlu menambahkan pragma "gunakan v7" secara eksplisit ke kode. . Itu. kode dengan pragma "gunakan v7" dapat diperlakukan sebagai "Perl modern", di mana tersedia perubahan bahasa yang merusak kompatibilitas, dan tanpa - "Perl konservatif", yang akan tetap sepenuhnya kompatibel dengan rilis sebelumnya.

Sumber: opennet.ru

Tambah komentar