Thread overview
February 24, 2014

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

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

February 24, 2014

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

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

February 24, 2014

Alıntı (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

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