Thread overview
D'nin C++ desteği gelişiyor
Mar 03, 2015
Salih Dinçer
January 23, 2015

D, C kütüphanelerini olduğu gibi çağırabiliyor. Şurada anlatıldığı gibi, kütüphanenin D ilinti dosyasının olması gerekiyor:

http://dlang.org/interfaceToC.html

Şurada yapılmışları var: :p)

https://github.com/D-Programming-Deimos/

C++ desteği ise oldukça kısıtlıydı ama isim alanı (namespace) gibi olanaklar zaten desteklenmeye başlamıştı:

http://dlang.org/cpp_interface.html

dmd'nin 2.067 sürümü bu kısıtlamayı büyük ölçüde giderecek. Dün, "D Lang / Silicon Valley" grubunda Andrei Alexandrescu'yu dinledik. Değindiği konuların başında bu vardı. Aynı konu bir gün önce Walter Bright tarafından da sunulmuştu:

https://www.youtube.com/watch?v=IkwaV6k6BmM

Bu yenetek D'yi C++'ı çağırabilen tek dil haline getirecek. Doğal olarak, bu konu Reddit'te ve Rust forumlarında oldukça ilgi çekiyor:

http://www.reddit.com/r/programming/comments/2tdy5z/interfacing_d_to_legacy_c_code_by_walter_bright/

http://discuss.rust-lang.org/t/interfacing-d-to-legacy-c-code-a-summary-of-a-competing-languages-capabilities/1406

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

March 03, 2015

Tek dil ha?

Diğer eski diller bunu niye yapmak istemedi veya destekleyememelerinin sebebi neydi?

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

March 03, 2015

Herhalde temel sorun C++'ın standart bir ABI'ının (application binary interface) olmaması. O yüzden farklı C++ derleyicileriyle derlenmiş .o dosyaları (veya kütüphaneler) bir araya getirilip program oluşturulamaz. Hatta, bir derleyicinin yeni sürümleri bu konuda eski sürümleriyle uyumlu olmayabilir. (g++ bunu en az bir kere yaşadı.)

ABI'ın nelerden oluştuğu şurada anlatılmış:

http://stackoverflow.com/questions/7492180/c-abi-issues-list

dmd ise bu sorunu belirli derleyicileri doğrudan destekleyerek hallediyor/halledecek.

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]