October 01, 2009

dmd/src/phobos/std/string.d dosyasındaki şu satır:

           if (i1 == s1.length) return s2.length - i2;

şöyle olmalı:

           if (i1 == s1.length) return i2 - s2.length;

Yoksa uzunlukları nedeniyle farklı çıkmaları gereken farklı türden dizgilerde sonuç hatalı çıkabiliyor. Şu program ilk assert'te takılıyor:

import std.cstream;
import std.string;

int benim_cmp(C1, C2)(in C1[] s1, in C2[] s2)
{
   return cmp(s1, s2);
}
unittest
{
   assert(benim_cmp("aa", "aaa"d) < 0);
   assert(benim_cmp("aaa", "aa"d) > 0);
   assert(benim_cmp("aa", "aa"d) == 0);
}

void main()
{}

Aynı dosyadaki icmp fonksiyonu doğru...

Şu hatayı açtım:

http://d.puremagic.com/issues/show_bug.cgi?id=3355

Ali

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

June 14, 2010

Hata düzeltilmiş. Çok çalışmaya başladılar. 2.048'de de çok fazla hata ayıklarlarlar.(Ayrıca phobos artık Andrei tekelinden dmd'de Walter tekelinden çıkmış gibi gözüküyor :-) )

Keşke biran önce dil kuralları sabitleşsede sadece hata ayıklaması yapsalar.

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