Talk:Jump anywhere
Draft task
My new task description might not match my intent. I have a short Ruby example, but I want to add more Ruby code, and some C code. --Kernigh 02:41, 19 May 2011 (UTC)
- OK, I'll monitor and ask about changes needed for the Python as things develop :-)
--Paddy3118 02:54, 19 May 2011 (UTC)
- Tcl (8.6) has pretty much the same capabilities as Python in this area. (When people ask for general jump anywhere capabilities, we tend to be somewhat brusque in our dismissals; it's totally against nice structured programming as well as being evil.) I'll keep an eye on the evolution of the page to see whether I want to omit or implement. Generally, should continuations be a solution of this task? Or is it more about setjmp/longjmp? –Donal Fellows 17:51, 19 May 2011 (UTC)
- Just to be clear, this is not to diss having a task on continuations. It's just they're not simple jumps; if we split, we can easily justify another task specifically for them. –Donal Fellows 19:09, 19 May 2011 (UTC)
- Tcl (8.6) has pretty much the same capabilities as Python in this area. (When people ask for general jump anywhere capabilities, we tend to be somewhat brusque in our dismissals; it's totally against nice structured programming as well as being evil.) I'll keep an eye on the evolution of the page to see whether I want to omit or implement. Generally, should continuations be a solution of this task? Or is it more about setjmp/longjmp? –Donal Fellows 17:51, 19 May 2011 (UTC)
Demonstrate a local jump and a global jump
It might be better for the task to be demonstrate a local jump and a global jump. (Currently the requirement appears to be for a global jump, requiring a new task to be created for a local jump).
Markhobley 14:19, 19 May 2011 (UTC)
I propose that unwinding of the call stack is moved to a separate task, and rename this task to "Demonstrate local and global jumps". Keeping the tasks separated, enables the solutions to remain simple, and separates aspects. --Markhobley 16:40, 6 June 2011 (UTC)
- What is a "global jump"? Continuation? Longjump (which involves stack)? --Ledrug 03:04, 11 June 2011 (UTC)
- I assumed that a local jump is to a label within the same procedure (or block of procedures), whereas a global jump is to anwhere within the program. --Markhobley 08:12, 11 June 2011 (UTC)
- That would normally involves unwinding the stack, then, because if you are going out of a proc or function and not coming back, you have to clean up what's already allocated for your current scope, or everyone gets confused -- unless your language doesn't have a stack concept, which is rare. --Ledrug 08:39, 11 June 2011 (UTC)