Jump to page: 1 2
Thread overview
April 27, 2014

Yeni bir D olanağı eklendi. Teklifi şurada:

http://wiki.dlang.org/DIP60

Kısaca, @nogc ("çöp toplayıcı kullanılmasın" anlamında "no garbage collector"dan geliyor) olarak işaretlenmiş olan bir işlev dinamik bellekten yer ayıramıyor. Böyle işaretlenmiş olan bir işlevi çağıranlar çöp toplayıcıya iş getirmediklerinden emin olmuş oluyorlar.

Bu olanak 2.066'da geliyor. Şu örnek github'dan indirilmiş olan dmd'de derleniyor:

void foo() @nogc
{
   int[] dizi;
   dizi ~= 42;
}

void main()
{}

Hata mesajı:
'
Error: cannot use operator ~= in @nogc function foo
'
Ali

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

April 28, 2014

Zekeriya'nın çok hoşuna gideceğini düşünüyorum :)

Bildirim için teşekkürler...

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

April 28, 2014

Cevap yazmıştım ama gitmemiş. Başlığı görünce o fonksiyonu çöp toplayıcıdan azat ediyor sandım ama değilmiş öyle olsa daha iyi olurdu fakat yine de iş görür biraz daha düzgün kod yazarız artık :)

Zekeriya

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

April 28, 2014

Yani o anlam geliyor akla ama benim aklıma gelen şey new yaptığımızda bunu çöp toplayıcının yakalamaması veya oluşturulan bir veriyi sonlandırmaması ki bu benim daha çok işime yarardı.

Zekeriya

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

April 28, 2014

Ali hocam ben gc.disable bile etsem o yine çalışıyor ve hatta şöyle içinde 100.000 tane pointer taşıyan dizim olsun (o test ettiğim sürümde öyleydi en azından) gc çalıştığı an bütün pointerları taraması vakit alıyordu benim istediğim şey şu:
Ben zaten o fonskiyon içerisinde memory leak olmayacağı konusunda eminim. Bütün memory yönetimini elle kendim yapmak istiyorum bu sayede D nin memory yönetim modülü işlemlerimi yavaşlatmayacak veya karışmayacak. Sırf bunun için C gibi içinde built-in gc olmayan bir dil kullanmayı da düşündüm veya bir kısmını C de yazıp d nin bundan bihaber olmasını sağlayabilirim. Yeterki tamamen benim kontrolümde olan ve D nin karışmadığı bir bellek alanı olsun ve GC sadece ben istediğim zaman çalışsın. Ali hocam kısaca GC üzerinde daha fazla kontrol istiyorum.

Zekeriya

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

April 28, 2014

Bir yerde görmüştüm ama şimdi hatırlayamadım. Bu GC yi tamemen devre dışı da bırakabiliyorduk. Bu da tam istemediğim bir şey ama çaresiz kalırsam bunu uygulayabilirim. Bu olayları rhodeus script için istiyorum aslında. Hız olayı çok kafama taktığım bir mesele ve yavaş olmasını kabul edemiyorum. Yeterince hızlı çalışmayacaksa ne anlamı var bunu kullanmanın değil mi?

Ama öte yandan dili compiled dillere yaklaştırmayı da düşünüyorum. Tür tanımlama olaylarını dile eklemek ve oluşturulan IL çıktısını çalıştırma anında JIT ile makine kodu olarak işletmek çok daha mantıklı geliyor.

Web konusunda tür tanımlamalı ve scripting mantığında çalışan bildiğim bir tek HackLang var. Bunu hacklang çıkmadan öncede düşünüyordum (Eylülden beri). Sürekli olarak "devrim" olacak diyordum ama bakıyorum ki facebook bunu gerçekleştirdi ama bunu D dilini örnek alarak yapmayı planlıyorum. Kısaca dscript gibi bir şey olacak. Tabi böyle bir şeyi yapabilmek için bellek yönetimine çok iyi hakim olmak gerek. Bu konuda pekte iyi değilim ve şu an için buna ayırabileceğim zamanım da yok diyebilirim. Üniversite konusu belli olunca başlamayı planlıyorum ama o zamana kadar bu memory konusunda birkaç bir şey kapabilirim inşallah :)

Zekeriya

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

April 28, 2014

Alıntı (zekeriyadurmus):

>

fonksiyonu çöp toplayıcıdan azat ediyor sandım

Bir anlamda öyle oluyor. Derlenebilmesi için işlev çöp toplayıcıya bağlı olanak kullanamıyor ve böylece azat edilmiş oluyor. :)

Ali

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

April 28, 2014

new yaparsan çöp toplayıcıdan almış oluyorsun. Eğer başka bir bellek düzeneğin varsa oradan da alabilirsin: benim_new() gibi.

Oluşturulan verinin sonlandırılmamasının bir yolu, o veriye bir referans tutmak. Nasıl olsa o veriye bir biçimde erişeceğine göre bir referans herhalde vardır diye düşünülüyor.

Yoksa benim aklıma gelmeyen başka bir olanak mı düşünüyorsun?

Ali

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

April 29, 2014

http://ddili.org/ders/d/bellek_yonetimi.html şunu defalarca okudum.

http://ddili.org/makale/bellek.html şunu eksik okumuşum ve burada işime yarayacak şeyler varmış :)

Yakın zamanlarda (belkide ben fark etmedim daha önceden de vardı) core modülüne yeni sınıflar eklenmiş. Şu mutex kavramı ile ilgili şeyler de var onları okumak gerek ama bundan önce şu üyelerin new constructor unu kullanarak birkaç şey yapmak istiyorum.

D çalışma ortamına bağlamama gerek yok gibi şu an için. Niyetim jit compiler ile makine kodu üretmek ve belirli bir yerden sonra onun çalışmasını sağlamak ve bu süreçte D nin çöp toplayıcısının kesinlikle bu çalışma zamanında üretilen
kodlara müdahale etmemesi gerek.

String gibi ubyte[] gibi dizilerin (dilim demek biraz tuhaf geliyor) hangi adrese kurulacağını seçemiyoruz değil mi?

Zekeriya

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

April 29, 2014

Zamanında http://forum.dlang.org/thread/gsphkm$2ba7$3@digitalmars.com şurada tartışılmış (çok uzundu okuyamadım sadece göz attım) ve anladığım kadarıyla aşağıdaki şeyler eklenmiş. RefCounted ı biraz inceleyip (belkide değiştirip) kullanabilirim sanal makinede ama ne kadar performans verir bilmiyorum.

http://dlang.org/phobos/std_typecons.html#.Unique
http://dlang.org/phobos/std_typecons.html#.RefCounted

Zekeriya

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

« First   ‹ Prev
1 2