Perl 7, geriye dönük uyumluluğu bozmadan Perl 5'in gelişimini sorunsuz bir şekilde sürdürecek

Perl Projesi Yönetim Konseyi, Perl 5 şubesinin daha da geliştirilmesi ve bir Perl 7 şubesinin oluşturulmasına yönelik planların ana hatlarını çizdi. Tartışmalar sırasında, Yönetim Konseyi, Perl 5 için halihazırda yazılmış olan kodla uyumluluğun bozulmasının kabul edilemez olduğu konusunda mutabakata vardı. Güvenlik açıklarını düzeltmek için uyumluluk gereklidir. Konsey ayrıca dilin gelişmesi ve yeni özelliklerin daha yoğun bir şekilde tanıtılması, aynı zamanda ortaya çıkan yeniliklere erişimin kolaylaştırılması ve benimsenmesinin teşvik edilmesi gerektiği sonucuna vardı.

Geriye dönük uyumluluğu bozan değişikliklerin varsayılan olarak Perl 7 dalına dahil edilmesine izin verme yönündeki orijinal niyetin aksine, yeni plan, mevcut kodla geriye dönük uyumluluğu bozmadan Perl 5 dalını kademeli olarak Perl 7'ye geçirmektir. Perl 7.0 sürümü kavramsal olarak bir sonraki Perl 5.xx dalından farklı olmayacaktır.

Perl 5'in yeni sürümlerinin geliştirilmesi eskisi gibi devam edecek - eski kodla uyumlu olmayan şubeye eklenen yeni özellikler, daha önce olduğu gibi, yalnızca "sürüm kullan" veya "özellik özelliğini kullan" pragması açıkça belirtilmişse dahil edilecek kodda. Örneğin, Perl 5.010 yeni bir "say" anahtar sözcüğünü tanıttı, ancak mevcut kod "say" adlı işlevleri kullanabildiğinden, yeni anahtar sözcük için destek yalnızca "'say' özelliğini kullan" pragması açıkça belirtilerek etkinleştirildi.

Önceki sürümlerde işlendiğinde hataya yol açan dile eklenen yeni sözdizimi, özel pragmalar belirtmeye gerek kalmadan hemen kullanılabilir hale geliyor. Örneğin, Perl 5.36, birden fazla liste değerini aynı anda işlemek için basitleştirilmiş bir sözdizimi sunacaktır ("foreach my ($key, $value) (%hash) {"), "use" olmadan kodda bile hemen kullanılabilecektir. v5.36” pragması.

Mevcut haliyle Perl 5.36, birlikte çalışabilirliği bozan 5.36 özelliği ('say', 'state', 'current_sub', 'fc', 'lexical_subs', 'signatures', 'isa) etkinleştirmek için "v13 kullan" pragmasını kullanıyor ', ' bareword_filehandles', 'bitwise', 'evalbytes', 'postderef_qq', 'unicode_eval' ve 'unicode_strings'), varsayılan olarak "katı kullan" ve "uyarıları kullan" modlarını etkinleştirin ve eski dolaylı gösterim desteğini devre dışı bırakın nesneleri çağırmak ("- >" yerine boşluk kullanıldığında) ve Perl 4 stili çok boyutlu diziler ve karmalar ("$hash{1, 2}").

Yeterli değişiklik biriktiğinde, Perl 5.x'in bir sonraki sürümü yerine, bir tür durum anlık görüntüsü haline gelecek, ancak Perl 7.0 ile tamamen geriye dönük olarak uyumlu kalacak olan Perl 5'ın bir sürümü oluşturulacaktır. Uyumluluğu bozan bu durum için, "v7 kullan" pragmasını koda açıkça eklemeniz gerekecektir. Onlar. "v7 kullan" pragmasına sahip kod, uyumluluğu bozan dil değişikliklerinin mevcut olduğu "modern Perl" olarak ele alınabilir ve "muhafazakar Perl" olmadan, geçmiş sürümlerle geriye doğru tamamen uyumlu kalacaktır.

Kaynak: opennet.ru

Yorum ekle