Sadece Lua ile biraz oynadım ve oldukça hoş olan Koneki eclipse eklentisini denedim. Sorun şu ki, ben bir hatada değişiklik yapıyorum bir değişiklik olduğunda değişiklikler kaydedilirken değişikliklerin etkili olmaz. Bu yüzden uygulamayı yeniden başlatmaya zorlandım. Hata ayıklayıcısında değişiklikler yapabilsem çok iyi olurlar ve örneğin Smalltalk ile olduğu gibi, ya da Java'da hot code yedeklemesinde olduğu gibi bazılarında da etkili olurlar. Bunun mümkün olup olmadığı konusunda bir ipucu var mı?Lua'da "hata ayıklayıcıda" kod yazmanın yolu nedir?
cevap
Bazı sınırlamalarla bir dereceye kadar mümkündür. Bu işlevi sağlayan bir IDE/debugger geliştiriyorum. Çalışan uygulamanızın bağlamında/ortamında komutları yürütmek için uzak bir konsola erişmenizi sağlar. IDE, değiştirdiğiniz kodu değiştirdiğinizde yeniden yükleyen live coding'u da destekler; bkz. demolar here.
Ana sınırlama şu anda çalışan bir işlevi değiştiremezsiniz (en azından Lua VM'de değişiklik olmadan). Bu, değişikliklerin şu anda çalışan işlevdeki etkisinin yalnızca siz çıktıktan ve bu işlevi yeniden girdikten sonra göreceğiniz anlamına gelir. Aynı işlevi sürekli olarak çağıran ortamlar için iyi çalışır (örneğin, draw
numaralı arama motoru), ancak sizin durumunuzda çalışmayabilir.
Başka bir sorun upvalues (işlevin dışında oluşturulan ve içinde başvurulan değerler) ile uğraşmaktır. Geçerli upvalentleri "okumak" için yöntemler vardır ve (yeni) işlevi oluşturulduğunda yeniden yaratırlar, ancak güncel değerleri elde etmek için, hangi fonksiyonların upvalue'lar için sorgulanacağını bulmak için hangi kod analizini gerektirdiğini ve Bu değer ile yeni bir çevre yaratmak ve bunlara uygun değerler atamak. Mevcut uygulamam bunu yapmıyor, yani global değişkenleri bir geçici çözüm olarak kullanmanız gerekiyor.
Diğer gün, Lua posta listesinde relevant discussion da vardı.
- 1. Bunu yazmanın D yolu nedir?
- 2. gdb hata ayıklayıcıda
- 3. Otomatik kapanma sınıfı yazmanın Pythonic yolu nedir?
- 4. ASP.Net Core, bir hata ayıklayıcıda hata ayıklama değil hata ayıklama
- 5. Visual Studio 2013 hata ayıklayıcıda
- 6. C'ye sınıf şablonuna benzer genel kod yazmanın en iyi yolu nedir?
- 7. Bunu yazmanın daha iyi yolu?
- 8. Octave'de bir metin dosyasına matris yazmanın en hızlı yolu nedir?
- 9. Android NDK'da yerel yöntem imzaları yazmanın doğru yolu nedir?
- 10. ASP.NET MVC'de form yazmanın en iyi yolu nedir?
- 11. İkili modda stdout'a yazmanın en kolay yolu nedir?
- 12. Yineleme değeri kullanmadan bir for döngüsü yazmanın deyimsel yolu nedir?
- 13. Django-pistonlu bir istemci yazmanın doğru yolu nedir?
- 14. Python'da bu döngü için yazmanın en zarif yolu nedir?
- 15. Hata ayıklayıcıda kaynak kodu yok sayılıyor
- 16. Gwt süper dev modu hata ayıklayıcıda java.util.Lists
- 17. JavaScript'teki doğru kod yorumu yolu nedir?
- 18. Bu CSS'yi yazmanın daha iyi bir yolu?
- 19. Masaüstünde javascript programlarını yazmanın en kolay yolu?
- 20. Resmi Django'ya yazmanın en iyi yolu HttpResponse()
- 21. Bunu F # yazmanın bir yolu var mı?
- 22. kod alanları kilitlemek için doğru yolu nedir nedir
- 23. Yapı olayları komut satırına yorum yazmanın doğru yolu?
- 24. Xcode hata ayıklayıcıda NSDictionary değişkeninin içeriği nasıl görüntülenir?
- 25. Bir şablon .xls açmanın ve 2 hücrede yazmanın kolay yolu nedir?
- 26. Neden Visual Studio 2008 hata ayıklayıcıda dizeleri kısmen gösteriliyor?
- 27. www.yahoo.com adresinde otomatik olarak oturum açan bir .NET uygulaması yazmanın doğru yolu nedir?
- 28. Android Studio ayıklayıcıda Gson yavaş çalışıyor
- 29. Eclipse (Helios) kod şablonlarındaki bir değişkenin ilk harfini büyük harfle yazmanın bir yolu var
- 30. Tıkanmış bir komut dosyasını krom hata ayıklayıcıda duraklatmanın bir yolu var mı?
Anlayışlı cevap, Paul. Teşekkürler. – OlliP
Bence bu Smalltalk'ta çalışmanın sebebi, bütün kodun tamamen bellekte (Smalltalk link kütüphaneleri daha sonra Kava'nın olduğu zaman geldi) bir ikili enstantane olduğu (Smalltalk'ta "image" olarak adlandırılır) olmasıdır. Yani, Smalltalk bunu yapabileceğiniz tek dil gibi görünüyor. Çok yazık ... – OlliP