PropellerIDE 0.30.0 Released - projectview, propman, packthing, propterm, memorymap
Brett Weir
Posts: 288
Hello all,
After months of work, I'm happy to announce that PropellerIDE 0.30.0 is now available for you to try.
[size=+1]Get PropellerIDE[/size]
[size=+1]What's in this release?[/size]
This new version includes a host of new features, including a brand new project view, memory map, even a brand new loader! So many new things are coming down the pipe that I'm sure there will be lots of things that don't work quite right, so download PropellerIDE and tell me the good and the bad so that the next release can be even better!
Please view the release notes to get the full scoop on what this release contains, as well as known issues you may encounter using it.
I can't wait to hear all of your feedback!
[size=+2]Important Notes[/size]
p1load.exe has been replaced with propman.exe, so if you have a previous installation, you will have to change the loader path to propman.exe.
[size=+1]Windows[/size]
The FTDI drivers must be installed separately (they kept getting flagged as viruses... coincidence?)
http://www.ftdichip.com/Drivers/VCP.htm
[size=+1]Debian[/size]
Qt 5.3 is required or above is required, which is first available in Ubuntu 14.10. For 14.04 or below, you will need to add the Utopic Unicorn repositories.
Installing the binary is straight-forward, but you will have to force installation of its dependencies.
Raspberry Pi is a similar story. Get instructions on how to install Qt5 on Raspberry Pi here: https://github.com/parallaxinc/PropellerIDE#raspberry-pi---raspbian-wheezy
After months of work, I'm happy to announce that PropellerIDE 0.30.0 is now available for you to try.
[size=+1]Get PropellerIDE[/size]
[size=+1]What's in this release?[/size]
This new version includes a host of new features, including a brand new project view, memory map, even a brand new loader! So many new things are coming down the pipe that I'm sure there will be lots of things that don't work quite right, so download PropellerIDE and tell me the good and the bad so that the next release can be even better!
Please view the release notes to get the full scoop on what this release contains, as well as known issues you may encounter using it.
I can't wait to hear all of your feedback!
[size=+2]Important Notes[/size]
p1load.exe has been replaced with propman.exe, so if you have a previous installation, you will have to change the loader path to propman.exe.
[size=+1]Windows[/size]
The FTDI drivers must be installed separately (they kept getting flagged as viruses... coincidence?)
http://www.ftdichip.com/Drivers/VCP.htm
[size=+1]Debian[/size]
Qt 5.3 is required or above is required, which is first available in Ubuntu 14.10. For 14.04 or below, you will need to add the Utopic Unicorn repositories.
sudo echo "deb http://cz.archive.ubuntu.com/ubuntu utopic main" >> /etc/apt/sources.list sudo apt-get update
Installing the binary is straight-forward, but you will have to force installation of its dependencies.
sudo dpkg -i propelleride-0.30.0-amd64.deb sudo apt-get install -f
Raspberry Pi is a similar story. Get instructions on how to install Qt5 on Raspberry Pi here: https://github.com/parallaxinc/PropellerIDE#raspberry-pi---raspbian-wheezy
Comments
File=>Quit does not seem to work from the Menu (Windows 7 64-bit)
Especially I like this comment from the release notes: "This is a major step in increasing coverage of the Language definition format, the structural change that will allow PropBASIC to be supported as just another IDE language."
Happy coding :-)
One thing I noticed (running on Mac OS X 10.10.3)...
The Project View re-inits the display whenever I select an item such as a CON or PUB. For a large project that has many items, that require the list to scroll, that re-init causes the Project View to display from the top and I lose my place in the scrolled list of items (see images below)...
Here I've selected CON "MAX_ENCODERS" and want the source to scroll to that CON. But, want to keep the Project View list as it is:
After I've selected the CON "MAX_ENCODERS", the Propject View has scrolled (re-displayed) from the top:
I would like the project view list to stay scrolled where it was when I selected that CON...
dgately
1. Project View states "(NOT FOUND)" for some objects that use "_" in their file names when it is clear that they DO exist (but not all)...
2. Nested objects sometimes do not display a list of their internals... In the image above note that FullDuplexSerialPlus.spin within the Project View area does NOT list any CON, PUB, PRI, etc. items. And, the image below shows that XBee_Object.spin does NOT list its CON, PUB, PRI, etc... items
3. Some files (UTF8, ASCII, not sure which ones) do NOT display properly, losing their carriage-returns or linefeeds. These files display all content as a single line. PropellerIDE should reformat these files, as SimpleIDE does. In the image below, note that this source file: "jm_ezmod_8x.spin" provided by none-other-than "JonnyMac" :-) displays as a single and very long line of code. The code does compile, but is difficult to view. In order to display this file properly, I had to copy the text out to another text editor, re-save it and re-open the file in PropellerIDE. I believe that the SimpleIDE source code includes methods to remedy this issue...
dgately
Hi Dennis,
Thanks for the feedback! Yes, currently interaction with the projectview results in rebuilding the view, and with no mechanism to restore the old position in place, you'll lose it. I will be working on making this aspect more graceful for the next version. I'll add that to the list of known issues in the release notes.
Maybe you can help me to understand what's going on in this picture. It looks like Quadrature_Encoder is including itself as a dependency. If so, that will lead to undefined behavior, and projectview is actually supposed to reject that with a big warning. But I am surprised that it is showing up without the underscore. That's peculiar. Let me know either way, but I will take a closer look at that one.
Do you think you can email me this project so I can test with it?
I can tell you that PropellerIDE currently has difficulty with CR-only line endings, but for whatever reason, that's what most Spin files are even though they aren't the native line ending on any modern operating system. =|
Can you open a terminal and run the "file" command on your project to confirm my suspicion?
As you said, the only real way to fix it is to reformat the files on opening, but this is a destructive operation and can have unexpected results, especially if a file has been edited by multiple users on multiple platforms and now has a potpourri of different line endings. I suppose I could try to convert all line endings to a "one true line ending", but then when you try to open a spin file in a different text editor, who knows what'll happen. I usually use something like dos2unix when it creates problems.
It really is a problem and I haven't found a great solution for it. =\
Thanks. I've always been fond of Spin, and my hope is that I keeping making PropellerIDE better and better, more people will give Spin a try. Comments like yours make all of this worthwhile.
You're welcome. I'm happy to be a part of this project.
Thanks! I'm pretty excited about that one. I've been working on the Language format for awhile now, and it's going to allow PropellerIDE to do a lot of things it couldn't before in the future. I'll be able to make a home for all the different Propeller languages that may not already have one.
Actually, Quadrature_Encoder.spin does NOT include itself. It merely mentions itself as an included object, "Quadrature Encoder" in a comment. I've stripped out most of the source, but here's where it is mentioned in Quadrature_Encoder.spin:
Do you think you can email me this project so I can test with it?
Here it is: StingrayRCProject.zip
Running "file" on any plain text type of document gives me an error, so I'm not sure what I "should" see, but I've included hex dumps of a 'bad' file and a 'repaired' file:
dgately
Given Lazarus/FPC now works nicely on a Pi2, there is interest in adding a PropPASCAL to the family tree.
Most decent editors have Language highlighters, so this is an 'expected feature' on any IDE
That'd be pretty interesting to see. PropBASIC is to be the proving ground for this kind of support, but keep in touch and we can talk more about it once I have the proof of concept in place.
Ahhh, okay, that's the problem then. My rule parser isn't smart enough to identify this kind of feature yet. There will definitely be limitations on how accurate the project parsing can be without writing a full-on parser for each language, but I haven't hit that limit yet. I'll keep this in mind when I get back to working on the Language engine. I can filter comments before detecting language features.
Thanks!
That's really bizarre. OS X probably includes a less powerful version of file. Well, anyway, I ran file on your project and got this:
The file you reported isn't here, but jm_strings.spin also has CR line terminators and will show up the same wrong way. Try it out.
I gave some more thought to this issue and I was probably overthinking it earlier. There is probably a good solution to this so I'll put it on my to-do list.
Thanks, Brett!
dgately
Maybe a small improvement, the status bar could be splitted in two and when we build, we could write build successful and the program size in the status bar. The pop-up go away pretty fast after building.
Could be nice to have close all or close all except this for the open tabs/files.
It would be also useful to be able to display included objects in the left pane and be able to open them from there to be able to modify them without having to seek the file in the filesystem.
Thanks
What preferences! Speaking of which, I've not got any menu bar. Using Kubuntu 14.04, no apparent install nor runtime launch errors so I presume I've got the base QT5 libs already installed.
Okay, I've got round the first prefs problem, deleting the old prefs at ~/.config/Parallax/PropellerIDE.conf so it would recreate suitable new defaults has got the build button to work. I still don't have any menu's though.
- When attempting to run/download a program to the Prop, it resets the Prop but no program is downloaded and no apparent error. When I do this at the command prompt, again the Prop is reset and, I get the following:
- When a debug terminal window is open I get the following error upon run/download:
- Oddly, only the USB based comport shows up in PropellerIDE but both my ports are listed with propman:
What the hello?? That's the strangest thing I've ever heard. I'll set up a Kubuntu installation later today and see if I can reproduce the issue you're having. In the meantime, press F5 and Preferences will pop up. >.<
Yeah, GUI stuff makes everything a lot bigger. There's lots of room for optimization in this particular program though. Some things are opened multiple times unnecessarily when doing things like building the project view because my focus has been on getting it to work at all first. As they say, "premature optimization is the root of all evil." =P
The issue here is because on older versions of Qt5, the baud rate can't be set before opening the port, even though the documentation says otherwise. I plan to change how this works in the future, but for now, upgrading to Qt5.3 or later should fix this and allow you to download software.
That's because both the terminal and loader have exclusive access to the port while in use, so you have to have only one enabled at a time.
Both PropellerIDE and PropellerManager have their own port enumerators as they're separate applications currently (more on this below).
* * * * *
Traditionally in Propeller dev tools, the serial terminal and loader are two applications, and usually separate from the main IDE, but this gives the IDE more responsibility in managing hardware, and on UNIX platforms, makes using the serial terminal less than practical. So to address this, I began writing PropellerManager, a new library for Propeller devices that will have many advantages.
- It will no longer be necessary to disable the serial terminal to download new code, change the baud rate, or change the port of the current terminal window.
- PropellerManager will be embedded into PropellerIDE as a library, which will allow PropellerIDE to work on mobile platforms.
- PropellerIDE will be able to identify devices, download code, and use the terminal of both serial and Wi-Fi targets without needing to know the difference between them.
PropellerManager is still in development and there is much work left before I will be able to reach these goals. So for now, the PropellerManager library is being used by propman, a command-line replacement for p1load. It won't be until the next release that things start getting more interesting.Ah, yes, this is broken for now. Custom fonts are overwritten by theme settings currently.
Ah, yes, that was another little flub on my part. The Quit signal is just not connected but I already checked in the fix. Thanks.
Nice replies. Very informative, thanks. I'm looking forward to release 0.40.
PS: I'm wary of integrating with Ubuntu 14.10 packages so I'm going to leave it for now.