1
2
So you'd rather put off optimizing what we have for getting 2/3rds of the VM rewritten to do what you want.
|
I should add here that caching the proc address in the DLL seems pretty reasonable to me. That's something I've added to my list to look at. I consider it a separate request from sending the args directly.
|
So you'd rather put off optimizing what we have for getting 2/3rds of the VM rewritten to do what you want. That's a rather dishonest paraphrase. |
I see a lot of back and forth here, but I've yet to see a solution presented that would allow us to use DLL's more efficiently.
@LummoxJR: Do you have any ideas? Basically the problem is that call() currently introduces a significant overhead. In my case I'd love a way to schedule a proc call from within a DLL/SO file, since the communication from BYOND->C is one-way and I have to resort to polling using call(). Would it be possible to provide a C/C++ API to "call (schedule) a proc"? Even if it's limited (char* only, converted to BYOND string format) it would still be a big step forward from what we have now. |
In response to NullQuery
|
|
NullQuery wrote:
@LummoxJR: Do you have any ideas? Basically the problem is that call() currently introduces a significant overhead. In my case I'd love a way to schedule a proc call from within a DLL/SO file, since the communication from BYOND->C is one-way and I have to resort to polling using call(). Would it be possible to provide a C/C++ API to "call (schedule) a proc"? Even if it's limited (char* only, converted to BYOND string format) it would still be a big step forward from what we have now. Yes, it seems like it'd be reasonable to add an API call that would allow a proc call from a DLL. |
Is it on The Listâ„¢ / do you have a timeline for implementation at this time? I have some ideas I'd love to try out with this.
|
In response to NullQuery
|
|
NullQuery wrote:
Is it on The List / do you have a timeline for implementation at this time? I have some ideas I'd love to try out with this. The List is going through a process at the moment where I'm deciding what to push on to 512 so I can get 511 out earlier. Adding a hook for API calls, especially one with a non-mangled name which might be difficult to arrange, isn't on my radar just yet but I think it would be a nifty idea. |
1
2
I'm with Optimum on this.
Being able to call extern C functions was kind of a half-assed solution in the first place.
A better solution would have been along the lines of exposing most of the DM internal types and structures to a DLL that could be grabbed externally, and then providing interfaces that allow us to overload a proc/verb with function pointer. At minimum.
Even better would be the ability to inject primitives and C memory structures into the objects' properties so that we could create data types ourselves for things like bytearrays, hard-typed integers, double-precision floats, etc. that are backed by compiled C code.
The call()() functionality has always been no small let-down.