|
Tasks and Stacks...
Every task has to have a place to store data. As you define new tasks, you also define a stack space.
So far, so good.
But, BasicX is a language for consenting adults, by which I mean that it depends on you to be a adult and to alot enough stack space so that the stack does not overflow.
If you DO overflow the stack, you overwrite the data from another task -- and as likely as not the data overwritten will be a non-trivial byte of data, the program counter for that task for example. This is sort of a disaster. All the more so because I had a problem with Task A and Task B crashed! Very tricky to debug.
The problem is made worse by the fact that the print.debug command pushes data onto the stack, and lots of it. You can have program that is working just fine and the it crashes simply because the number you are trying to display cannot be displayed as "5.30" but has to switch to "5.3333E00"
These kinds of bugs would be very hard for many teams to discover, yet alone repair.
Joe J.
|