Forum: Projeler trileri RSS
uni.d'nin gerçeklenmesi için yardım
Sayfa:  önceki  1  2  3  sonraki 
acehreli (Moderatör) #16
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4389 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Yanıtlanan mesaj ID 715
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
canalpay (Moderatör) #17
Kullanıcı başlığı: Can Alpay Çiftçi
Üye Tem 2009 tarihinden beri · 1133 mesaj · Konum: İzmir
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Şu safe modu kaldırın. O zaman deneyelim. O zaman çalışır herhalde.(ben kodu değiştirmeyeyim :-D) Çok önemli bir hata yaptığımı sanmıyorum. Safe modun o kadar sağlıklı olmadığını söylediğiniz hatırlıyorum.

Ben linux'a da geçerim. Sorun yok ama bence kütüphanemiz taşınabilir olmalı.

Bu hataların ne olduğunu anlamadım ama kesin türle ilgili. Zaten programda türle ilgili hoşuma gitmeyen şeyler vardı. Bende make modunu kullanmasamda D'yi safe modunda kullansam bu hataları görürüm herhalde.

Bu safe modu güvenlik modu değil mi ? Yani kodların sağlıklı çalışmasını kontrol ediyor.

Yarın kodu düzeltir hem de daha hızlandırırım. Ama bugünlük sadece proje hakkında konuşalım.
acehreli (Moderatör) #18
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4389 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
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
canalpay (Moderatör) #19
Kullanıcı başlığı: Can Alpay Çiftçi
Üye Tem 2009 tarihinden beri · 1133 mesaj · Konum: İzmir
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Yanıtlanan mesaj #17
.../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

8. satır boş. Önceki satırda da module satırı var. Burada da hata olduğunu sanmıyorum.

25 26 27 satırlarda unittest var.
acehreli (Moderatör) #20
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4389 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
O satır numaraları kendilerinden önce yazılan dosyanın içinde. Örneğin src/druntime/import/core/exception.di'de...

Ali
acehreli (Moderatör) #21
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4389 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Yani bizim proje dosyalarıyla ilgili değil; std.string'i ekleyince oluyor. (tr.string'i değil...)

Ali
canalpay (Moderatör) #22
Kullanıcı başlığı: Can Alpay Çiftçi
Üye Tem 2009 tarihinden beri · 1133 mesaj · Konum: İzmir
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Yanıtlanan mesaj #19
Emre windowsun varsa windows kullan. Svn'nin Gui'si ile beyazlar daha beyaz. Sende kulan. Çok kolay çok rahat.
acehreli:
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...

Ben demiştim bu safe olmaz dedim. Kodlarımda hatada yok :-D Şuan kodu değiştirmeme gerek yok değil mi ? Yarın diğer fonksiyonları ekleyip hızlandırmaya çalışacağım.

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

Anlamadım ama önemli değil. Nasıl olsa safe şuan iyi bir durumda değil. Zaten eğer kod çalışıyorsa kurcalama diye ünlü bir söz varmış. Bende ona uyacağım.
canalpay (Moderatör) #23
Kullanıcı başlığı: Can Alpay Çiftçi
Üye Tem 2009 tarihinden beri · 1133 mesaj · Konum: İzmir
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
acehreli:
Yani bizim proje dosyalarıyla ilgili değil; std.string'i ekleyince oluyor. (tr.string'i değil...)

Belki kütüphanede hatalar vardır ama yinede kütüphane çalıştığına göre çok önemli değil.
Safe mod D2'ye tam uyumlu değil mi? Birde phobos D2 İle tam uyumlu mu ? Belki bundan hatalar doğmuş olabilir.
acehreli (Moderatör) #24
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4389 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
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
emre413 (Moderatör) #25
Kullanıcı başlığı: Celal Emre ÇİÇEK
Üye Tem 2009 tarihinden beri · 62 mesaj · Konum: Kırıkkale
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Yanıtlanan mesaj #22
Ben iki sistemle de çalışıyorum neyse artık yaparız bir şekilde şimdi bir şey sormak istiyorum projeye direkt
import tr.uni;
yazıp programı derlemek için ne yapmamız gerek? Yani "dmd blabla.d  tr/uni.d tr/string.d" yazıp mı derlemek zorundayız tüm .d dosyalarını? Ben /home/emre413/dmd2/src/phobos altına tr'yi kopyaladım olmadı. Sizler nasıl yapıyorsunuz?
acehreli (Moderatör) #26
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4389 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
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 ...

2) 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
canalpay (Moderatör) #27
Kullanıcı başlığı: Can Alpay Çiftçi
Üye Tem 2009 tarihinden beri · 1133 mesaj · Konum: İzmir
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
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.
canalpay (Moderatör) #28
Kullanıcı başlığı: Can Alpay Çiftçi
Üye Tem 2009 tarihinden beri · 1133 mesaj · Konum: İzmir
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
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
canalpay (Moderatör) #29
Kullanıcı başlığı: Can Alpay Çiftçi
Üye Tem 2009 tarihinden beri · 1133 mesaj · Konum: İzmir
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
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 ?
acehreli (Moderatör) #30
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4389 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
İ gibi değişkenlerin hiçbir fayda sağlamadığı düşünmüştük.

Yazılan her fonksiyonun sağlamlığı, o fonksiyonun unittest bölümünde yer alır. Böylece ileride fonksiyonda yapılan değişikliklere güvenebiliriz. unittest bölümü, "birim" düzeyinde olduğu için, fonksiyonun sağlamlığını garanti eder.

stringdeneme gibi bir dosya, unittest'e yazmayacağımız ne tür testler içerecek? Aklıma gelen bir tane: uni.d ve string.d'nin karışık kullanımlarını daha üst düzeyde içerebilir. Benim korkum, unittest'e girmesi gereken testlerin stringdeneme'ye kaçacak olması...

Proje, bir takıma ait. Esat Bey'in kodlarını neden görmeyelim? Yazdığı kodlar veya testler bizim işimize yaramayacak mı? Yararsızsa neden yazsın? Senin bahsettiğin ayrım, zaten programcıların kendi bilgisayarları oluyor. Sen kendi bilgisayarında çalışıyorsun, ben kendi bilgisayarımda. Eğer 'make' yazdığımda proje doğru derleniyorsa, fonksiyonların unittest'lerinde veya stringdeneme'de bir hata yok demektir. Rahatlıkla projeye ekleyebilirim ve diğerleri de yararlanabilirler.

Bir başka deyişle, kimse diğerleri muhattap olduğunda rahatsız olacak kod ekleyemez: kodla, make, doğruluğa güvenince 'svn commit.'

Veya: denemelerin ayrı gitmesi emek israfı olur.

trileriSürüm'ün yapmaya çalıştığı iş zaten svn'de mevcut. Farkındaysan zaten sürümler r1,..r6 diye gidiyor. Biz, ismi verilecek bir duruma geldiğinde projeyi dallandıracağız ("branch" edeceğiz) ve o dala kendimizce bir sürüm numarası vereceğiz. Bütün bu düzenek zaten varken trileriSürüm gibi bir metin dosyasını elle beslemek ayrıca zaman kaybı.

Projeye yapılan her eklemenin bir "log" bilgisinin olması da bu konuda önemli; dallandığımız an, o dallanmadan önceki 'commit'lerin log satırlarına bakıp bu sürümün hangi değişiklikleri getirdiğini görebileceğiz.

unideneme ve stringdeneme diye iki tane ayrı dosya olmasına gerek yok. Zaten uni.d ve string.d'nin aynı programda yan yana kullanılabilmelerini bekliyoruz ve en baştan eklediğim deneme.d'nin için böyle deneme kodlarını içerecek yapı mevcut. deneme.d'den başka bir dosyanın gereğini göremiyorum.

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:
Sayfa:  önceki  1  2  3  sonraki 
Forum: Projeler trileri 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-03-29, 06:20:28 (UTC -07:00)