Le 04/03/2012 10:16, Benoît Minisini a écrit : > Le 04/03/2012 02:23, Benoît Minisini a écrit : >> >> You are right, I didn't think about that. So the current design does not >> work, and I don't have another one. >> >> I will remove GOSUB if it cannot be implemented in a right way. :-/ >> >> Regards, >> > > Here is the only solution I found in revision #4531: > > * Now I use a dedicated control variable set for each GOSUB subroutine. > > * GOSUB labels now must be at top-level, and must be declared *after* > the GOSUB call. Consequently, recursion is not possible anymore. > > I hope that GOSUB is still useful! >
Here is a new implementation of GOSUB in revision #4534. GOSUB can be used on any top-level label now. GOSUB can be recursive now, because control variables are saved and restored on the RETURN instruction. GOSUB is still faster than calling a true method, and far faster when using recursion. Stack allocation is heavier, and slower and slower as far as the recursion level grows (dunno why). GOSUB does not have that problem. Enjoy it! -- Benoît Minisini ------------------------------------------------------------------------------ Virtualization & Cloud Management Using Capacity Planning Cloud computing makes use of virtualization - but cloud computing also focuses on allowing computing to be delivered as a service. http://www.accelacomm.com/jaw/sfnl/114/51521223/ _______________________________________________ Gambas-user mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/gambas-user
