newRPL: [UPDATED April 27-2017] Firmware for testing available for download
|
01-23-2017, 10:44 PM
Post: #525
|
|||
|
|||
RE: newRPL: [UPDATED December-29-16] Firmware for testing available for download
(01-23-2017 07:19 PM)The Shadow Wrote: newRPL STREAM behaves very differently from RPL STREAM. Which isn't bad in itself, but it does seem less flexible.There is indeed a stack protection that prevents you from accessing the stack outside of the list you are processing. Error handling seems broken, as it doesn't show the proper message. I will investigate. (01-23-2017 07:19 PM)The Shadow Wrote: A more serious issue is that when I tried to get around that problem by using local variables instead, that also returned errors. The program used in STREAM doesn't seem to allow the use of local variables at all - an 'Exception: Data abort' is thrown and the program ends up on the stack with local variables replaced by 'INVALID_COMMAND'. I believe you hit a bug in the optimizer of the compiler. The problem happens because you declare a local variable with LSTO, and then the compiler "optimized away" the variable the next time you used it with direct GETLAM style opcodes (which are decompiled as "INVALID_COMMAND" as there's no user-visible text to decode these instructions, so that's normal). However, the optimizer is not supposed to go across << >> symbols, since this is code that will be stored in the stack to be executed separately when the local variable may or may not exist, hence it should be called by name, not optimized. One more thing to investigate and fix. This was working fine, not sure at what point I broke it again... An update will be coming in the next week or so with all these fixes. Thanks for testing and reporting! |
|||
« Next Oldest | Next Newest »
|
User(s) browsing this thread: