Forum: Duyurular RSS
dmd 2.076 çıktı
acehreli (Moderatör) #1
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4538 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Konu adı: dmd 2.076 çıktı
Reddit'teki tartışması:

  https://www.reddit.com/r/programming/comments/6xf77f/versi…

dmd sürümleri artık belirli bir düzene oturuyor:

  • Çift numaralı ayların 15'inde beta sürüm

  • Tek numaralı ayların 1'inde yeni sürüm

Bir önceki sürümden bu yana fazla zaman geçmediğinden bu sürümde alışık olduğumuzdan daha az değişiklik var ama bunlardan iki tanesi çok önemli:

  • static foreach

  • Geliştirilmiş -betterC

D'de static foreach zaten var gibi bir şeydi: AliasSeq gibi derleme zamanı düzeneklerinin normal foreach ile kullanımları sonucunda foreach bloğu her döngü için açılıyordu. static foreach en azından iki farklılık getiriyor:

  • foreach'in kullanılamadığı yerlerde de kullanılabiliyor. Örneğin, modül kapsamında veya bir yapının içinde kullanabiliyoruz.

  • Derleme zamanı düzeneği olmayan (ama tabii ki derleme zamanı bilinmesi gereken) ifadelerle de kullanılabiliyor.

Aşağıda iki farklı biçimde kullanılıyor.
import std.stdio : writefln;
import std.meta : AliasSeq;
import std.range : iota;
 
alias Türler = AliasSeq!(int, double);
 
// Modüle iki işlev ekleniyor
static foreach (Tür; Türler) {
    Tür ikiKatı(Tür değer) {
        return değer * 2;
    }
}
 
unittest {
    assert(ikiKatı(42) == 84);
    assert(ikiKatı(1.25) == 2.5);
}
 
void main() {
    // Buradaki iota ifadesi normalde çalışma zamanında
    // işletildiğinden eskiden olduğu gibi foreach ile kullansak,
    // döngü çalışma zamanında ilerletilirdi. Adı üstünde, static
    // foreach, döngünün derleme zamanında işletilmesini şart
    // koşuyor. Sonuçta, alt alta 3 writefln yazılmış gibi derleniyor.
    static foreach (i; 3.iota) {
        writefln("Merhaba %s", i);
    }
}

-betterC dmd seçeneği, D çalışma zamanını (D runtime) iptal ediyor. Çok basitçe, çöp toplayıcı gibi güzellikler kullanılamıyor ve dmd'nin ürettiği kod C kadar küçük boyutlu olabiliyor. Walter'ın söylediğine göre, bu olanak C programlarındaki işlevlerin ek bellek masrafı getirmeden teker teker D'ye geçirilmelerini sağlıyor.

Ali
kerdemdemir #2
Üye Eyl 2013 tarihinden beri · 123 mesaj · Konum: Danimarka
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
betterC 'de ile derlediğimizde kullanamadığımız başka hangi özellikler var acaba. Benim kendi tahminimce aralıkların zincirlenmesi bile etkilenebilir. Çünkü hatırladığım kadarıyla dönüş değerlerinin çöp toplayıcı tarafından toplanması gerekiyordu bazı aralık zincirleme durumlarında. Doğrumu hatırlıyorum acaba ?
acehreli (Moderatör) #3
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4538 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Ben de henüz fazla denemedim ama belgesi şurada:

  https://dlang.org/spec/betterc.html

Zincirleme çağrıların ise GC ile özel bir bağlantıları yok çünkü foo(bar(a)) gibi bir çağrının a.bar.foo diye yazılmasından başka bir şey değil. Belki özel bir durumda öyledir ama şu anda aklıma gelmiyor. :)

Ali
Avatar
Salih Dinçer #4
Üye Ock 2012 tarihinden beri · 1913 mesaj · Konum: İstanbul
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Yanıtlanan mesaj #1
acehreli on 2017-09-02, 00:42:
Bir önceki sürümden bu yana fazla zaman geçmediğinden bu sürümde alışık olduğumuzdan daha az değişiklik var ama bunlardan iki tanesi çok önemli:

  • static foreach

  • Geliştirilmiş -betterC

D'de static foreach zaten var gibi bir şeydi...
Sistematik güncelleme yapmaları güzel bir şey ama az değişiklik olması bunu alışkanlık hale getireceklerini işaret ediyor sanki. Hele ki bir şeyi tekrarlama (bunu birçok şekilde yapabiliyoruz) ve D'nin olanaklarını kapama tatmin edici görünmüyor?

Elbette hataların giderilmesi de önemli ama sanki bizi her seferinde doyuracak bir gelişme beklemememiz gerekecek.; aksine birkaç sürüm sonra daha iyi hale geldiğini göreceğiz.
Bilgi paylaştıkça bir bakmışız; kar topu olmuş ve çığ gibi üzerimize geliyor...:)
acehreli (Moderatör) #5
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4538 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Sürümleri belirli bir düzene almak firmaların da istediği bir şeydi. "Ne zaman hazır olursa" gibi rasgele zamanlar yerine "o olanağı şu tarihte bitireceğiz" diyebilmek önemli.

Ali
Doğrulama Kodu: VeriCode Lütfen resimde gördüğünüz doğrulama kodunu girin:
İfadeler: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Özel Karakterler:
Forum: Duyurular RSS
Bağlı değilsiniz. · Şifremi unuttum · ÜYELİK
This board is powered by the Unclassified NewsBoard software, 20100516-dev, © 2003-10 by Yves Goergen
Şu an: 2017-12-16, 08:34:32 (UTC -08:00)