For my "L-Star
" hardware project, I have several software projects developed in PASM with Spin, and I'm planning on writing some future projects in PASM with C/C++. There are some time-critical parts (I'm bitbanging a 6502 bus) so PASM is important.
I developed all existing projects in Propeller Tool under Windows but I want to make the source code usable for developers who may be using other operating systems, and I want to eventually move away from Spin because it poses an extra hurdle to get customers on board. So here are a couple of questions:
I've worked with SimpleIDE and PropellerIDE. They both seem to be in a pretty stable state at this time. Am I correct that SimpleIDE is intended more for casual developers (e.g. students), and PropellerIDE is geared more towards the professional developer? What's the future of both tools?
The most important difference as far as I can tell between SimpleIDE and PropellerIDE is that SimpleIDE uses .side project files which remember what the top file of the project is (and some other properties), whereas PropellerIDE expects you to activate the top file in the editor before you use Build or Run or Download. Is this correct? Any other important differences?
I read somewhere that SimpleIDE can't do Spin but I understand it has BSTC and/or OpenSpin too now, is that correct?
Is there a good reason to use BSTC vs. OpenSpin? How much development is happening on both and how stable is each of them?
When I tried to compile my projects with PropellerIDE (and SimpleIDE as well, I think), I had an issue that I had given one of my spin modules the same name as a library file, and BSTC as well as OpenSpin found the library file before they found my spin file. Easy to work around of course (just rename the file) but a possible future issue because, since library file names have priority, if a new library file is added that happens to have the same file as someone's file in some project, that project will be silently broken. I filed an issue on the OpenSpin github but haven't heard anything. Is anyone listening there?
Another important issue is that someone apparently thought it was a good idea to rename all the library files so my project that refers to "synth.spin" doesn't build unless I change the reference to "signal.synth.spin" or copy the library from Propeller Tool to the SimpleIDE or PropellerIDE library directory or add the path to the Propeller Tool library to the Preferences. Are there supposed to be symlinks to the old names (which Windows doesn't understand) or something? I would like to keep my spin files compatible with Propeller Tool as well as SimpleIDE/PropellerIDE if possible, and the renamed libraries are currently a show stopper for that.
For future GCC/gas projects: What's the compatibility status of the assemblers built into Propeller Tool, BSTC, OpenSpin and "gas"? I remember a few years ago you had to jump through some hoops (compiling the DAT sections of spin modules separately into separate binaries, or something) to combine assembly with C/C++, and the "gas" assembler had some subtle but severe issues with pointer arithmetic (I posted those issues in this forum myself). Has all that been resolved? Is it possible now to basically paste PASM code into a .s file (with common directives such as .include and .public) and build it with gas and link it against C/C++ modules without any rewriting of PASM code? Are SimpleIDE and/or PropellerIDE capable of handling projects with mixed sources? Or does it require writing a Makefile (and a whole lot of MinGW or Cygwin tinkering on Windows)?