Thread overview
August 20, 2013

Malum Intermediate Language yapmam bütün sistemi baştan yazmamı gerektirdi ve bir şeyler de yaptım. Şu an fonksiyonlar çalışır vaziyette sırada modüller. Şu zamana kadarki yaptıklarımı githuba atayım istedim :)

<|
	echo "wqe" + "qwe"
|>
<|
	fn x(a, b=2, *c, **d){
		print(a, b, c, d	)
	}
	x(1,2,3,4,5,6, a->1, b->2, c->3)
|>

Alıntı:

>

<|
a = [1,2,3,4,5]
a.append(4)
print(a)
|>

Gibi olayları şu an halletim. Sistemde en çok hoşuma giden şey ise şu oldu.

case IL_GETSUB: mbp++;
	auto y = ths.get!string(mbp);
	rhasm.push(y.ptr);
	rhasm.push(y.length);
	callF(REGISTERC.EAX, sizes.getSub);
	goto startp;

append işlemi için vm kısmında yazdığım kod sadece bu olması beni oldukça sevindirdi önceki sistemde her olasılık için ayrı ayrı yazılıp kodlar daha karmaşık oluyordu ama tabiki de bazı yerleri oldukça zorlaştırdı.

Zekeriya

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

August 20, 2013

Eline sağlık...

Gördüğüm kadarıyla farklı özellikler ekliyorsun. Bunlar ilgimi çekiyor. Aslında tüm kodları D yazar gibi de yazıp en azından %50 D uyumlu bir 'mode' olmasını da arzu ediyorum. Bunları konuşmuş ve uyarlamayı düşünüyor musun (?), bilmiyorum...

Yine özgün yanları olması güzel. Sanırım veri türlerini belirtmek gerek miyor, öyle mi? Peki şu an ki haliyle sınırlarımızı ifade edebilir misin? Yani matematiksel işlemlerde kullanılabilecek en büyük sayı, dizge ifadelerde UTF desteği vb. alt/üst sınırları merak ediyorum.

Ayrıca yazılım içinde kullandığı kısaltmaları kod içinde veya bir belgede (hatta burada ifade ederken parantez içinde) açıklaman mümkün mü? Konuya bir süredir uzak kaldığım için yakınlaşmayı kolaylaştıracak bilgilere ihtiyacım var.

Başarılar...

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

August 20, 2013

Alıntı:

>

Gördüğüm kadarıyla farklı özellikler ekliyorsun. Bunlar ilgimi çekiyor. Aslında tüm kodları D yazar gibi de yazıp en azından %50 D uyumlu bir 'mode' olmasını da arzu ediyorum. Bunları konuşmuş ve uyarlamayı düşünüyor musun (?), bilmiyorum...

Evet ama tam olarak nasıl başlasam bilemedim bunun üzerinde düşünüyorum.

Alıntı:

>

Yine özgün yanları olması güzel. Sanırım veri türlerini belirtmek gerek miyor, öyle mi? Peki şu an ki haliyle sınırlarımızı ifade edebilir misin? Yani matematiksel işlemlerde kullanılabilecek en büyük sayı, dizge ifadelerde UTF desteği vb. alt/üst sınırları merak ediyorum.

Evet veri türü belirtilemiyor :) Hocam int, float ve normal string yani wstring falan değil :) bu türler var. Yani UTF8 desteği oluyor :) Bunlar için beraber bir çalışma yapabiliriz. Önce fikirlerimizi sunarız, testlerimizi yaparız sonra bunların üzerinde tartışırız. Şu anda sizin hazırladığınız Memory sınıfını etkin bir şekilde kullanıyorum ve çokta işimi görüyor :) Tekrardan teşekkür ederim.

https://github.com/Rhodeus/Script/blob/master/source/MeMan.d

buradan son haline bakabilirsiniz. Hazır bundan bahsediyorken şunu sormak isterim :)


	final auto load(T)(T data) if (!isArray!T){
		auto ret = freeLocated;
		auto mem = cast(T*) malloc(data.sizeof);
		*mem = data;
		return ret;
	}
   final auto load(T)(T data) if (isArray!T && !is(ElementType!T == ubyte)){
		auto ret = freeLocated;
		static if(isArray!(ElementEncodingType!(T))){
			throw new Exception("Invalid type!");
		}else{
			auto mem = cast(ElementEncodingType!(T)*) malloc(data.length * ElementEncodingType!(T).sizeof + typeof(T.length).sizeof);
			*(cast(typeof(T.length)*)mem) = cast(typeof(T.length)) data.length;
			mem[typeof(T.length).sizeof..data.length+typeof(T.length).sizeof] = data;
		}
		return ret;
	}
   final auto load(T)(T data) if (isArray!T && is(ElementType!T == ubyte)){
		auto ret = freeLocated;
		auto mem = cast(ElementEncodingType!(T)*) malloc(data.length);
		mem[0..data.length] = data;
		return ret;
	}

Bunlarla veri yazabiliyoruz. Burada normal veri türleri için var (int, float, structs, char vs vs) ve diziler var (char[] int[]) peki int[][] olursa veya string[] olursa ne olacak? şu anki sistem onu ayırt edemiyor :)

Zekeriya

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

August 22, 2013

Alıntı (zekeriyadurmus:1377068005):

>

peki int[][] olursa veya string[] olursa ne olacak? şu anki sistem onu ayırt edemiyor :)
Denememekle birlikte sınıfa tür şablonu (T) eklediğimizde kontrolümüz yüksek olacaktır...

Düşün, string de aslında bir dizi. Hatta çok boyutlu diziler de ardı ardına gelen bir veri. Önemli olan bunun bellekte nasıl durduğu değil çıkartıp sunarken yine (T) ile verebilmek. Yani T giren veri pekala byte byte yazılabilir. Aynı işlem tersine çevrilebilir gibi geliyor bana.

Tatile çıkmadan evvel bir kaç deneme yapabilirim ama söz vermeyeyim. Hafta sonu kursum var ve sonra yüzmeye...:)

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