Changes in PropTool 2.9.2
ke4pjw
Posts: 1,169
in Propeller 2
@"Jeff Martin" Is there a full list of changes between 2.6.2 (The last stable release) and 2.9.2? I know there is a list of high level feature additions, but is there a log of the low level changes to interpreter/peanut?
Thanks in advance.
--Terry
Comments
At some point I started including the compiler changes I knew about, or saw Chip document, within the Propeller Tool release notes... indented underneath the mention of the compiler/PNut version, or just among other listed items. Look in the Enhancements and Fixes sections of the various version release notes here (if this isn't what you've already looked at)... https://github.com/parallaxinc/Propeller-Tool/releases
Also, on the P2_PNut_Public repo releases page, I've started generating releases there, with notes, but that's a relatively new effort. There's also brief notes at the top of Chip's "latest PNut" thread (don't have them link handy).
Thank you sir! I will dig into it.
PS @"Jeff Martin" thank you for fixing the debug window!
One thing that has changed is the
repeat from to
loop behavior.This is a very dangerous change, that gives no errors, just brakes old working code:
https://forums.parallax.com/discussion/comment/1532499/#Comment_1532499
I don't know in which version this was added to PropTool, and if at all.
Andy
Ariba, I checked the link you pointed to. IMO, it's bad practice to assume anything about the value of a loop index outside the scope of a repeat from to loop. To remove all ambiguity, either use a separate flag variable to indicate loop completion or recast the loop as a repeat while or repeat until. That way, nothing is hidden, and no post-loop behavior has to be assumed.
Adding to that, the documentation should state that the value of the loop index outside the loop is "unspecified."
-Phil
That change was made to the P2 compiler (and PNut) in PNut v35n, May '21 and appears to have been included in Propeller Tool since v2.6.0, Dec '21.
Today I listed all the documented updates to PNut (from the Spin2 doc) in the release notes in the repository. https://github.com/parallaxinc/P2_PNut_Public/releases/tag/PNut_v37
Future releases will describe themselves as they go.
@"Jeff Martin" I think I found a bug in 2.9.2 using POLXY, but I can't find any changes since 2.7.0 that seems to explain it.
Small bug report: decrement does not highlight.
Example:
Yes, it sure looks like it. Thanks for reporting. I don't remember seeing anything about that as an intentional change. We'll figure out what happened. See Issue 5.
Thank you! It looks like += isn't fully highlighting either. I'll log this for fixing.
Thanks Jeff for looking into it.
I found another syntax highlight "gotcha" in 2.9.2 that affects PRI blocks: the dot separators are use the PUB block background color.
I just updated from Prop Tool 2.6 to 2.9.2. A spin2 file that I was working on using the older Prop Tool comes up with a Communications Error dialog box, Debug Communication lost when using F10 to compile. Just before this happens I get a momentary windows box pops up on the upper left side of the screen and disappears before anything actually loads in it, then the Debug output listing shows up. The bottom line on the Prop Tool says "Compile Successful. Download Failed". Load Flash (F11) does the same thing.
Suggestions on how to proceed?
Edit: did a full restart of the Windows 10 computer, no change. If I turn off P2 debugging then the program compiles and runs as expected.
Edit2: I put "Debug_Main" as a CON and the Debug window popped up without an error. I thought we only had to put the word 'debug' without () to enable the window?
Edit3: I am getting what I believe is normal debug operation but how do I use just the Debug Output window? Commenting out 'Debug_main' in the code gives me the same Communications error noted earlier. At this point I just need the Debug output and not the full debug window
Edit 4: Rolled back to PropTool version 2.6.3 so I can just run the Debug Output window by itself. I'll keep this installed until I find out how to properly use debug single stepping window - don't need to single step through everything at this point, the Debug Output window is adequate for me right now.
@DiverBob - The intent is that you can use just DEBUG, with no parentheses, to display the PASM-Level debugger and cause a break condition at that point in the code execution; however, specifying the constants DEBUG_MAIN or DEBUG_COGINIT will display the same and will halt the code earlier. That's the intent, but it sounds like DEBUG by itself, or DEBUG with other DEBUG() statements is not working for you.
Since it reports that there's a debug communications error, please try one or both of the following and let us know if that solves the problem you first experienced.
DEBUG_DELAY = 500
in a CON block (for a 500 ms delay, for example, after download)DEBUG_BAUD = 1_000_000
in a CON block (for 1 MB, for example, instead of the default 2 MB)You can also try other values (longer delay and/or different baud rate) if those don't solve it.