jit
GMod'un LuaJIT işlevselliği ile çalışmak için kütüphane.
Alanlar
Hedef mimari adını içeren bir değişken: x86, x64, arm, ppc, ppcspe veya mips. Bu, GMod'da x86 veya x64 olacaktır.
Bu bir fonksiyon DEĞİLDİR, hedef işletim sistemi adını içeren bir değişkendir: Windows, Linux, OSX, BSD, POSIX veya Diğer.
LuaJIT sürüm dizesini içeren bir değişken. Bu, GMod'da LuaJIT 2.0.4 ve GMod'un x86-64 dalında LuaJIT 2.1.0-beta3'tür.
number jit.version_num
LuaJIT çekirdeğinin sürüm numarasını içeren bir değişken.
Metotlar
jit.attach ile bir dizi derleyici olayına geri çağrı (callback) ekleyebilirsiniz. Geri çağrı şu durumlarda çağrılabilir:
bir fonksiyon bytecode'a derlendiğinde ("bc");
iz kaydı başladığında veya durduğunda ("trace");
bir iz kaydedilirken ("record");
veya bir iz, bir yan çıkıştan çıktığında ("texit").
jit.attach(callback, "event") ile bir geri çağrı ayarlayın ve aynı geri çağrıyı jit.attach(callback) ile temizleyin.
Bu fonksiyon LuaJIT wiki'sinde resmi olarak belgelenmemiştir, riski size aittir. Bunları sürekli kullanmak (özellikle bytecode) aynı anda derlenen sürekli veri akışı nedeniyle performansı çok düşürebilir.
jit.flush()
Derlenmiş kodun tüm önbelleğini temizler.
jit.off()
LuaJIT Lua derlemesini devre dışı bırakır.
jit.on()
LuaJIT Lua derlemesini etkinleştirir.
jit.opt.start( ... )
JIT derleyici optimizasyon kontrolü. opt alt modülü, -O komut satırı LuaJIT seçeneği için arka ucu sağlar.
Ayrıca programatik olarak da kullanabilirsiniz, örneğin:
jit.opt.start(2) -- -O2 ile aynı
jit.opt.start("-dce")
jit.opt.start("hotloop=10", "hotexit=2")
LuaJIT -O komut satırı seçeneklerinin bir listesi burada bulunabilir (sayfanın alt kısmında, her seviye için tam olarak hangi optimizasyon seçeneklerinin etkinleştirildiği ile birlikte çeşitli optimizasyon seviyelerinin bir tablosu görüntülenir): http://luajit.org/running.html
Belirli bir pozisyondaki bir fonksiyonun bytecode'unu döndürür.
Bu fonksiyon sadece Lua ile tanımlanmış fonksiyonlar için çalışır.
debug.getinfo'ya benzer şekilde, belirli bir fonksiyon hakkında LuaJIT bilgilerini alır. Olası tablo alanları:
linedefined: debug.getinfo'daki gibi
lastlinedefined: debug.getinfo'daki gibi
params: fonksiyonun aldığı parametre sayısı
stackslots: fonksiyonun yerel değişkenlerinin kullandığı yığın (stack) yuvası sayısı
upvalues: fonksiyonun kullandığı upvalue sayısı
bytecodes: derlenmiş fonksiyondaki bytecode sayısı
gcconsts: çöp toplanabilir (garbage collectable) sabitlerin sayısı
nconsts: lua_Number (double) sabitlerinin sayısı
children: Fonksiyonun closure oluşturup oluşturmadığını temsil eden bir Boolean
currentline: debug.getinfo'daki gibi
isvararg: fonksiyon bir vararg fonksiyonu ise
source: debug.getinfo'daki gibi
loc: kaynak ve mevcut satırı "<kaynak>:<satır>" şeklinde tanımlayan bir dize
ffid: fonksiyonun hızlı fonksiyon kimliği (eğer varsa). Bu durumda yalnızca yukarıdaki upvalues ve aşağıdaki addr geçerlidir
addr: fonksiyonun adresi (eğer bir Lua fonksiyonu değilse). Hızlı bir fonksiyondan ziyade bir C fonksiyonu ise, yalnızca yukarıdaki upvalues geçerlidir*
Bir fonksiyonda belirli bir dizindeki sabiti alır.
Bunu kullanmamanızı tavsiye ederiz. Gelecekteki bir güncellemede değiştirilebilir veya kaldırılabilir.
Bu fonksiyon güvenlik endişeleri nedeniyle devre dışı bırakıldı. Bu fonksiyon LuaJIT wiki'sinde resmi olarak belgelenmemiştir, riski size aittir. Sayı sabitleri 0'dan (dahil) n-1'e kadar gider, n jit.util.funcinfo'daki nconsts değeridir, başka bir deyişle, sabitler (nconsts-1)'den -n'e kadar gider. Bu fonksiyon sadece Lua ile tanımlanmış fonksiyonlar için çalışır.
Bunu kullanmamanızı tavsiye ederiz. Gelecekteki bir güncellemede değiştirilebilir veya kaldırılabilir.
Bu fonksiyon güvenlik endişeleri nedeniyle devre dışı bırakıldı.
debug.getupvalue ile tamamen aynı şeyi yapar, tek farkı isim ve nesne yerine sadece ismi döndürmesidir. Upvalue dizinleri de 1 yerine 0'dan başlar, bu nedenle jit.util.funcuvname(func, 0) yapmak size debug.getupvalue(func, 1) ile aynı ismi verecektir.
Bu fonksiyon LuaJIT wiki'sinde resmi olarak belgelenmemiştir, riski size aittir.
Bunu kullanmamanızı tavsiye ederiz. Gelecekteki bir güncellemede değiştirilebilir veya kaldırılabilir.
Bu fonksiyon güvenlik endişeleri nedeniyle devre dışı bırakıldı.
Daha önce belirli bir fonksiyon listesinden bir fonksiyonun adresini alırdı, ancak artık kullanımdan kaldırıldığı için her zaman 0 döndürür.
Bunu kullanmamanızı tavsiye ederiz. Gelecekteki bir güncellemede değiştirilebilir veya kaldırılabilir.
Bu fonksiyon güvenlik endişeleri nedeniyle devre dışı bırakıldı. Her zaman 0 döndürecektir.
Bir fonksiyonun adresini iz çıkış (trace exit) numarasına göre alır. jit.attach (texit olayı ile) aracılığıyla alınır.
Bunu kullanmamanızı tavsiye ederiz. Gelecekteki bir güncellemede değiştirilebilir veya kaldırılabilir.
Bu fonksiyon güvenlik endişeleri nedeniyle devre dışı bırakıldı.
Dönen tablo alanları:
link (number): bağlantılı iz (bağlantı türleri için 0: none, return, interpreter)
nk (number): en düşük IR sabiti (???)
nins (number): sonraki IR talimatı (???)
linktype (string): bağlantı türü (none, root, loop, tail-recursion, up-recursion, down-recursion, interpreter, return)
nexit (number): anlık görüntü (snapshot) sayısı (jit.util.tracesnap ile kullanım için)
Bunu kullanmamanızı tavsiye ederiz. Gelecekteki bir güncellemede değiştirilebilir veya kaldırılabilir.
Bu fonksiyon güvenlik endişeleri nedeniyle devre dışı bırakıldı.
Bunu kullanmamanızı tavsiye ederiz. Gelecekteki bir güncellemede değiştirilebilir veya kaldırılabilir.
Bu fonksiyon güvenlik endişeleri nedeniyle devre dışı bırakıldı.
Bunu kullanmamanızı tavsiye ederiz. Gelecekteki bir güncellemede değiştirilebilir veya kaldırılabilir.
Bu fonksiyon güvenlik endişeleri nedeniyle devre dışı bırakıldı. Her zaman 3 adet 0 döndürecektir.
Bunu kullanmamanızı tavsiye ederiz. Gelecekteki bir güncellemede değiştirilebilir veya kaldırılabilir.
Bu fonksiyon güvenlik endişeleri nedeniyle devre dışı bırakıldı.
Dönen tablo alanları:
0 (ref) (number): anlık görüntü için ilk IR referansı
1 (nslots) (number): geçerli yuva sayısı
ilk 2 ve sonuncusu hariç tüm dizinler (bunlardan hiç olmayabilir): anlık görüntü haritası
tablodaki son dizin (number): -16777216 (255 << 24)
Tüm sunucular · GmodTR Launcher · Rehber · GMod Wiki · GmodTR nedir? · Sunucu ekle · Discord