September 14, 2009

Ben trileri'nin silindiğini anlamamışım. Şimdi güzel... :) (denemelik.d'den hâlâ emin değilim.)

Windows konusunda da haklısın: bu haliyle yalnızca Linux'ta derleniyor. :D

Windows'da da derlenebilecek şekilde değiştirme konusunda tartışmaları açabiliriz.

Ve tabii sen kendin derleyemeden projeye eklediğin için, şu derleme hatalarını görememiş oldun:

'.../src/druntime/import/core/exception.di(8): Error: variable core.exception.assertHandler __gshared not allowed in safe mode; use shared
../src/druntime/import/core/stdc/signal.d(25): Error: cast from int to voidC function(int) not allowed in safe mode
../src/druntime/import/core/stdc/signal.d(26): Error: cast from int to voidC function(int) not allowed in safe mode
../src/druntime/import/core/stdc/signal.d(27): Error: cast from int to voidC function(int) not allowed in safe mode
make: *** [testler] Error 1
'

Yani projenin şu andaki hâli (r6) bozuk...

Ali

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

September 14, 2009

Bu proje svn kullanıyor. Yapacak bir şey yok... :)

Isınacak veya sevmeyecek bir şey de yok: çok seyrek kullanıyoruz.

Projenin en son hâlini almak için

'svn up'

Değiştirdiğimiz dosyaların hangileri olduklarını görmek için

'svn st -q'

Hangi değişiklikleri yapmak üzere olduğumuzu görmek için

'svn diff'

Projeyi değiştirmek için

'svn commit -m "_bu_değişikliğin_ne_ile_ilgili_olduğunu_gösteren_kısa_açıklama"'

Çoğu durumda bu kadarı yetiyor. Görsel bir programa da gerek yok... :)

emre413, o hatalar '-safe' seçeneği yüzünden oluyormuş. Sağlam olacağını düşündüğüm için kullanmıştım ama 'import std.string;' bile çalışmıyor. Şimdilik kaldırdım ve şimdi derleniyor...

Ali

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

September 14, 2009

O satır numaraları kendilerinden önce yazılan dosyanın içinde. Örneğin src/druntime/import/core/exception.di'de...

Ali

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

September 14, 2009

Yani bizim proje dosyalarıyla ilgili değil; std.string'i ekleyince oluyor. (tr.string'i değil...)

Ali

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

September 14, 2009

Hata mesajının başında şöyle bir şey var (baş tarafını siliyorum çünkü benim ortamımdaki klasör yapısı başkalarınınkine zaten uymuyor):

'dmd/linux/bin/../../src/druntime/import/core/exception.di(8): Error: variable core.exception.assertHandler __gshared not allowed in safe mode; use shared'

O satırın başında bir dosya yolu ve parantez içinde bir satır numarası var. O, dmd'nin kurulduğu klasörün altındaki

src/druntime/import/core/exception.di

dosyasının 8'inci satırı demek...

Ali

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

September 14, 2009

Eğer proje açısından düşünüyorsak, unittest bölümlerini bütün fonksiyonları deneyecek şekilde kapsamlı düşünerek yazdığımız varsayıyoruz...

Eğer kendi programlarımız açısından düşünüyorsak, iki konu var:

  1. derleme: import'un modül dosyalarını görebilmesi için tr'nin indirildiği klasörün dmd'ye '-I' ile bildirilmesi gerekiyor:

'dmd ... -Iindirdigim_klasor ...'

  1. bağlama: Bunun daha kolay yolu olacağını düşünürdüm ama şimdilik komut satırına eklemek yeterli:

'dmd ... indirdigim_klasor/uni.d indirdigim_klasor/string.d ...'

Ali

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

September 15, 2009

Bu string kütüphanesindeki fonksiyonlar string olarak tanımlandığı için doğuştan Türkçe'ye uzak. String yerine wstring olsa her şey daha rahat olacak. Şuan şu string türü yüzünden başım derde girecek.

Örneğin:

se[0]=İ.dup;//diye kısaca yapamıyorum.

Aklımdaki çözüm İ adlı bir İ char dizisi tanımlayacağım. Onu da

se[0]=İ[0];
se[1]=İ[1];

Şeklinde yapacağım. O zamanda birinci indexli karakter kaybolacak.

Bunun için daha basit bir yol var mı ? Birde neden D bütün özelliklerini stringde yazmış. wstring olsa hiç bir tür hatası almayacağım. Hemde D diğer dillerde de sorun çıkartmayacak.

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

September 15, 2009

e-mail ile gönderdiklerinizin cevabını buradan veriyorum:

1.trileriSürüm unicode yaptım. Bir kontrol ederseniz sevinirim. Ben windows üzerinden çalıştığım için unicode olmadığının farkına varmamışım. Linux'a geçincede windows'un kodlama standartı ile açıyorum diye hatırlıyorum.

2.exe .map .obj leri ilk sildim sanmıştım sonra silmemişim. Tabii insanlık hali aynı dizinde çalıştığım için unutabiliyorum.

3.Projede hiçbir şey yapılmamıştı. Bende hemen bir şey ekleyeyim dedim. Hemen eklediğim için kodun standartına olsun açıklamalar olsun hiçbir şeye bakmamıştım. Açıklamaları hem burada açıklama yapılacak unutmayayım diye yazdım hemde kodlar basit olduğu için açıklama konmasına bile gerek duymadım. Şuan düzelttim bir bakarsanız. Ayrıca hemen eklediğime çok pişman oldum.

4.deneme ve denemelik bence ayrı olarak gitmeli. hatta denemenin adı unideneme denemelik'in adı stringdeneme olmalı.
Ben istemedikten sonra Esat Beyin kodlarını görmemeliyim. Esat Bey kendi kodlarının hatalarını yakalarken benim kodlarımın hatalarını görmemeli. Kendi işiyle muhattap olmalı. Kendi projesini bitirdikten sonra ancak benimkiyle isterse muhattap olmalı. Bu yüzden denemeler ayrı gitmeli. Ama sizden daha cevap almadığım için dosyalarda değişiklik yapmıyorum.

Kısaca alınması gereken kararlar:

1.trileriSürüm oluşturulmalı ve ne eklediysek veya ne düzelttiysek oraya yazmalı sürüm attırmalıyız. Zaten yapıldı.
Neye göre numara vermemiz gerektiğini ile ilgili wikipedia.org'da belge vardı. Bir çok açık kaynak kod projesi ona göre sürümlendiriyordu ama bence bu gereksiz bir ayrıntı. Eğer küçük ekler yaptırsak 0.0001 arttırırız. Eğer önemli değişiklikler yaptıysak önemine göre fazla numara yükseltiriz.

2.deneme ile denemelik adları unideneme ile stringdeneme diye değiştirilmeli. Zaten açıklamaları yukarda yapmıştım yine açıklama yapmama gerek yok. Sizden bunla ilgili olumlu yada olumsuz yanıt bekliyorum. 'Yeni Fikir'

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

September 15, 2009
string capitalizeT(string s){
	size_t say;
	char[] se=s.dup;
	char tekHarf=se[1];//Burası 4.satır
	while(se[0]=='i'|| say<3){
	    char[] İ="İ"c.dup;
	    se[0] = İ[0];
	    se[1] = İ[1];
       ++say;
	}
	char[] seDilim=se[2..$];
	/*seDilim=replace(seDilim.idup, I, ı).dup;*/
	seDilim[]=tolowerT(seDilim.idup);
	if (say>1){
	char[] çıkış = se[0..2] + tekHarf + se[2..$]; //burası ve

   }else{
	char[] çıkış = se[0] + tekHarf + se[2..$];		//burası
	}
	string sonÇıkış = çıkış[].idup;
	return çıkış;
}

Şimdi bu kodda eğer 4.satırda iki baytlık karakter varsa sorun oluşur. Bunu nasıl hallederim ? Aslında bu sorunu hiç düşünmedim sonra hallederim belki.

Asıl sorun yorum satırlarındaki burası ve burası yazan yer. Onları nasıl birleştiririm. Belki başka yerlerde de hata vardır ama oraları şuanlık asıl sorun.

Esat Bey şu toUniUpperT'yi lütfen çabuk yapın. İlk harfi büyütmek için gerekecek. Yoksa ben kendime basit bir toUniUpperT yazmak zorunda kalacağım.

Bana göre asıl sorun char ve stringlerin Türkçe karaktelerin iki baytlık olması. Bunları wstring ve wchar yapmak gerekiyor.

Siz iki bayt sorununu nasıl hallediyorsunuz ?

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

September 15, 2009

Tamam ama bu sürüm bilgileri tek bizim için önemli değil. Bir çok programda zaten benim yazdığım gibi Sürüm metni var. Bunlarda her sürüm ne eklenmiş ne düzeltilmiş yazar. Zaten sizde bunun farkındasınızdır. Ayrıca svn ile uğraşmaya değer mi o da ayrı bir konu.(Benim svn ile uğraşmadığımdan bilmiyorum.)

Ayrıca deneme ayrı olursa ben istersem onun programı ile muhattap olurum istersem olmam. Konsolda bile boşuna onun programının çıktısını göreceğim. İstedikten sonra bende gider onun programına bakarım ama ben kendiminkini geliştirirken sadece kendi programıma konsantre olmak isterim.

Neyse sizin istediğiniz gibi trileriSürüm'ü kaldırıyorum. denemelik'i de deneme'ye aktarıyorum. Sonuçta deneyimli olan siz olduğunuz için tartışmaya bile gerek yok.

Alıntı (acehreli):

>

Fonksiyonların Türkçelerini dstring alacak şekilde ve dchar'larla uğraşacak şekilde yazalım.

toupper ile tolower'ı dcharlı halini yazmaya çalışayım mı ? Şimdi dchar ile yazarsak resmen kütüphaneyi en baştan yazacağız yada durmadan türleri birbirine çevireceğiz. Yanılıyor muyum ?

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