View Single Post
BAILOPAN
Join Date: Jan 2004
Old 04-30-2010 , 06:32   Re: Dynamic detouring library
Reply With Quote #9

from a cursory look, it does what pRED's structs extension does. lets you describe record types of primitive types.

orpheu does not look type or memory safe, which is not what we're looking for. unfortunately it's very hard to get type and memory safety in Pawn. natives, although verbose, help - GetXFloat() etc can check the requested type and enforces the return type.

memory safety is harder. handles work, but we don't have GC or RAII. if you have an array of structs or a struct that is composed of other structures, you open a ton of handles and then have to manually free them. a single RTE and they all leak. also, direct composition means an inner handle must be bound to the lifetime of the outer. if you don't use handles, you lose the ability to check whether a property exists or even whether it has the correct type.

so what you end up with in Pawn, no matter what, is a verbose api with unpleasing syntax and ultimately limited functionality. we're not ready to resort to that yet.

this is not meant to be a bad rap against orpheu - it's amazing where people are taking pawn given its limitations. on the other hand, the main purpose of our project is software engineering research, and we'd rather create an environment where creative tools like that (and the one in this thread) can flourish without 1980-era restrictions. thus, at the moment, dynamic hooks (virtual or not) are off our table.

i highly encourage playing around with ideas in extensions though. short-term insight into community needs can solve these problems simpler and faster.
__________________
egg

Last edited by BAILOPAN; 04-30-2010 at 06:46.
BAILOPAN is offline