Forum: D Programlama Dili RSS
dmd 2.065
Avatar
zekeriyadurmus #1
Kullanıcı başlığı: Talha Zekeriya Durmuş
Üye Eki 2012 tarihinden beri · 701 mesaj · Konum: Samsun/Türkiye
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Konu adı: dmd 2.065
Yazıyı ikinci kez yazıyorum :/

Birkaç gündür ne dile ne de foruma pek bakabildim silinen verilerimi kurtarmakla meşguldum ve başardım tekrar :) Artık her ay data kaybı yaşamazsam içim rahat etmiyor :)

Bugün gelen maille de D dilinin yeni sürümü çıktığını öğrendim.

http://forum.dlang.org/thread/530B06AB.60501@yahoo.com

İlk dikkatimi çeken yenilik package.d oldu. Bu özellik için geç bile kaldılar önceden modül için birde d.d dosyası oluşturup import modül.d; diyorduk artık direk import modül; diyebileceğiz :)

Bir başka ÇOK önemli gördüğüm şey ise template fonksiyonların normal fonksiyonlara karşı overload olması önceden bunu yapamıyorduk görünüşe göre artık yapabiliyoruz.

auto foo(int n) { return 1; }
auto foo(T)(T t) { return 2; }

Hoş bir özellik de strip ile beraber gelmiş. Artık sadece stringleri değil her türlü diziyi strip edip boş ifadelerden arındırabiliriz.

Introduced generic strip/stripLeft/stripRight functions:
The new generic strip functions allow you to not only strip strings but also any other Input range (stripLeft) or Bidirectional range (strip/stripRight), for example:
 
import std.algorithm;
 
void main()
{
    // strip whitespace.
    assert("  foobar  ".strip!(a => a == ' ')() == "foobar");
 
    // an audio waveform.
    float[] data = [0.0, 0.0, 0.1, 0.5, 0.2];
 
    // strip leading silence in the waveform.
    assert(data.strip!(a => a < 0.1)().length == 3);
}

Ve daha önce sorduğum thisExePath olayı sanırım artık tam bir resmilik alıyor

import std.file;
import std.stdio;
 
void main(string[] args)
{
    // Prints the full path of the current running executable.
    // Note: this may, or may not be the same as args[0]. The content
    // of args[0] is dependent of how the application was invoked, thisExePath()
    // is not. It's also possible to access thisExePath() from other parts of the
    // code than main.
    writeln(thisExePath());
}

Ve anlayamadığım birkaç regex özelliği var. Yeni sürümle baya yenilik var sadece benim için çok önemli olanları yazdım buraya :) Ve CTFE çok lanet bir özellik olarak D ye girdi çok bug ı vardı. Özellikle rhs de hız için optimize yapıyordum compile time bir baktım artık mümkün değil CTFE sayesinde.

Zekeriya
Bilgi meraktan gelir...
acehreli (Moderatör) #2
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
zekeriyadurmus:
Ve CTFE çok lanet bir özellik olarak D ye girdi çok bug ı vardı. Özellikle rhs de hız için optimize yapıyordum compile time bir baktım artık mümkün değil CTFE sayesinde.

Onu anlayamadım. :) CTFE'ye yapılan değişiklikler senin kodunu mu bozdu?

Ali
Avatar
zekeriyadurmus #3
Kullanıcı başlığı: Talha Zekeriya Durmuş
Üye Eki 2012 tarihinden beri · 701 mesaj · Konum: Samsun/Türkiye
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Compile time adres kaydırıyordum normalde CTFE güvenlik amaçlı bunu iptal etti :)

struct x{
     int a, b, c, d;
}
static x[10] dizi;

dizi[0].b şeklinde kodumuz olsun b ye erişirken runtime kod çalışması yerine compile time diziyi b ye erişecek şekilde kaydırıp ondan sonra dizi erişmesi yaptım tabi artık CTFE yüzünden bu yapılamıyor :/

Zekeriya
Bilgi meraktan gelir...
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:
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-11-23, 23:27:21 (UTC -08:00)