April 05, 2007 Feature Request: Eliminate as many try block as possible | ||||
---|---|---|---|---|
| ||||
Step1: enhance the Signal & Slot func, make it support observer of a delegate of a nested func Step2: provide low-level func, SaveStackFrame, RestoreStackFrame(these two func manipulate the SP) actually they are quite simple, a rough implementation of them would be(i haven't tried to compile it actually , but they should do the trick) : struct Frame { static int _esp; SaveStackFrame() { asm { mov _esp,ESP; } } RestoreStackFrame() { asm { mov ESP,_esp; } } } Step3: make all throw exception in library all proceeded by signal & slot. This would reduce the runtime expense, and i think would provide user a lot possibilities with proceeding the exception generated by the standard library. like continue the standard library process? or break the process? |
April 05, 2007 Re: Feature Request: Eliminate as many try block as possible | ||||
---|---|---|---|---|
| ||||
Posted in reply to Davidl | err, i don't know if it requires RetPoint(return to specific IP address)?
cause the idea of using SaveStackFrame & RestoreStackFrame is trying to
get the signal break the whole process like a real exception does.
so possible use of it would be
void func()
{
Frame f = new f;
f.SaveStackFrame;
void handler(char[] msg, int i)
{
f.RestoreStackFrame(&Label);
}
//Set the handler to our nested func
//call some std funcs
Label:
// continue normal process
}
and a typo in Frame :p static int _esp; should be int _esp;
and another feature request is user can use & operator to get
forward label address to void*
>
> Step1: enhance the Signal & Slot func, make it support observer of a delegate of a nested func
> Step2: provide low-level func, SaveStackFrame, RestoreStackFrame(these two func manipulate the SP)
> actually they are quite simple, a rough implementation of them would be(i haven't tried to compile
> it actually , but they should do the trick) :
> struct Frame
> {
> static int _esp;
> SaveStackFrame()
> {
> asm
> {
> mov _esp,ESP;
> }
> }
>
> RestoreStackFrame()
> {
> asm
> {
> mov ESP,_esp;
> }
> }
> }
>
> Step3:
> make all throw exception in library all proceeded by signal & slot. This would reduce the runtime
> expense, and i think would provide user a lot possibilities with proceeding the exception generated
> by the standard library. like continue the standard library process? or break the process?
|
Copyright © 1999-2021 by the D Language Foundation