>>>>> "CBC" == Can Burak Cilingir <[EMAIL PROTECTED]> writes:
CBC> Merhaba, Bu gece AllegroServe kullanmaya başladım fakat
CBC> titizliğimden dolayı rahatsız olduğum bir konu var. Yazdığım
CBC> uygulamanın fonksiyonlarını "publish" ederken slime'da
CBC> gördüğüm "warning" lerden rahatsız oluyorum. Yanlış birşey
CBC> yaptığımı düşünmediğim için uyarıları yoketmenin de bir
CBC> yolunu bulamadım.
Bu python bazli bir lisp galiba, sbcl veya cmucl. Simdi aserve'e
bakamiyorum ama o warning genelde compiler aklini kullanip bazi kod
parcalarina gelemeyecegini anlayinca onlari silerken cikan warning.
Mesela (sbcl)
CL-USER> ((lambda (x) (if (> x 0) (if (< x 0) (print :here)))) 20)
; in: LAMBDA NIL
; (PRINT :HERE)
;
; note: deleting unreachable code
;
; compilation unit finished
; printed 1 note
NIL
burada x icin type inference yaparken edindigi bilgiyi ikinci if'de
kullanip onun tamamen silinebilecegine karar verdi mesela. Haber
veriyor cunku burada bir hata olmus da olabilirdi. Genelde dikkatli
kodlanmis programlarda bu tip seylere macrolar sebep olur (cunku bazi
girdiler icin yukarki gibi kod uretebilirler). Aserve icin durum ne
simdi bilemiyorum ama cok istiyorsan bir bak. Tabii bir yerde
compilerin vazifesi bu, bunlari yapmasina hacet kalmasin diye kodu
komplike hale getirmeye luzum yok.
Bunu susturmanin yolunu ben bilmiyorum, ama google yardim eder. Sbcl
veya cmucl icin bu konusuldu cok yakinda. Cok zor birsey degil, ama
ben olsam ellemem. Ozellikle ogrenirken ise yarayacak warningler de
veriyor olabilir.
BM
_______________________________________________
cs-lisp mailing list
[email protected]
http://church.cs.bilgi.edu.tr/lcg
http://cs.bilgi.edu.tr/mailman/listinfo/cs-lisp