S: Elisp neden isim alanlarına sahip değil ve bunları nasıl alabiliriz?
Elisp, tüm global fonksiyonların, değişkenlerin ve sabitlerin önekini benzersiz bir önekle ön kodlama kuralına götüren global olandan başka isim alanlarına sahip değildir.
Sıkıntı faktörünün yanı sıra, verilen 1) sürekli artan büyük kitaplık ve paket sayısı ve 2) ya ön ek sözleşmeye uymayan eski işlevlerin ve değişkenlerin devam eden mevcudiyeti; Gerçekten kullanabilecekleri gerçekten iyi bir önek seçeneği olmadığı konusunda kendi kendine yetiyorlar. Ayrıca, eski kodu rasyonelleştirmek için yapılan periyodik girişimlerin (' cl
den geçişe olduğu gibi cl-lib
) önemsiz miktarda bir çalışma olduğu anlamına gelir. (Temizlikten memnun olduğum halde, her ne zaman bir şeyler yazsam hala gözyaşı döküyorum cl-find
).
Elisp'in neden birkaç on yıllık kullanımdan sonra hala ad alanlarının bulunmadığını öğrenip öğrenemediğimi görmek için uğraştım, ancak mütevazı hasatta biraz şaşırdım. Ad alanlarını wiki sayfası oldukça kısadır. Nic Ferrier konuyla ilgili biraz daha uzun bir tedavi görüyor ve emacs-devel hakkında da oldukça yeni bir konu var . Bir var eski yığın taşması parçacığı ad alanlarını uygulamak için makro kullanılma olasılığını tartışmaktadır 2010 den; makro yaklaşımın bir başka örneği burada bulunabilir . Uygulamaları (bir çift en azından var burada ve burada ikinci bir açıklama ile, burada) dışarıda, ama birkaç yıldır çok fazla aktivite görmediler ve ben onları kullanan herhangi bir kütüphaneye rastlamadım.
Ad alanları eklemek kolay olsaydı çoktan yapıldığını farz ediyorum. Yani:
- Elisp'e isim alanları eklemenin teknik engelleri nelerdir?
- Ad alanları eklemek mevcut kodu çok bozuyor mu?
- Bu işlevsellik, elde edilmesi için organik olması gereken bir şey mi (tercümanın kendisinde değişir), yoksa gerçekten makrolar üzerinden oluşturulabilir mi?