yeti,
OpenSpin's preprocessor is fixed as of recent updates. The only remaining issue is cosmetic. If you use -u it will print messages (from #warn/etc.) twice.
The logic should be fixed and work correctly even if it prints messages twice. If you have a case that still fails to function properly, then please update the issue that I left open until the cosmetic part is addressed.
That's testament to its completeness, not to any lack of support.
-Phil
The couple of tiny changes from its initial release are almost insignificant.
But that doesn't attest to its completeness. In fact it is so far from it that two foruministas wrote compatible versions with extensions for conditional compilation independently, and without Parallax help or code!
OpenSpin was then written using PropTools source. But it's a compiler only, and doesn't have everything the two independent compilers did. It's a shame that it hasn't been used more, as perhaps Roy would have added more features that we once clamoured for.
Building PropGCC on current Linux Distributions is like a big riddle and needs massive D-tours and OpenSpin's preprocessor is broken.
BST is dead (no source, no future).
I already made my peace with not using PropGCC any more and am thinking about switching from OpenSpin to HomeSpun.
——————————
Edit: Some "strike"s because "read below"...
bst is no different than PropTool. No one has done any changes/additions to PropTool. Bst works as far as I am concerned, and it has conditional compiling which I use from time to time. I also use homespun to compile a group of programs using a batch file. Each has its place.
I use NotePad++ quite a bit. It's a good language editor that runs on windows and Linux. Not sure about Mac. Years ago, Sapieha wrote the syntax highlighted for SpinPasm on NotePadd++. Not sure if I could find it. I haven't heard from Saphieha for a few years. His health was poor way back then.
OpenSpin was developed using Visual Studio C/C++. Originally I used VS 2008, but now I am using VS 2017. I take care to make the code able to compile with gcc/clang so that it works for mac/linx/etc.
I think the only meaningful thing OpenSpin doesn't have that the others do is the @@@ thing. I started to try and make that work, but the way Chip's code works makes it not feasible (and that's what my code copied). I would need to rework a great deal of stuff to make @@@ work.
OpenSpin was developed using Visual Studio C/C++. Originally I used VS 2008, but now I am using VS 2017. I take care to make the code able to compile with gcc/clang so that it works for mac/linx/etc.
I think the only meaningful thing OpenSpin doesn't have that the others do is the @@@ thing. I started to try and make that work, but the way Chip's code works makes it not feasible (and that's what my code copied). I would need to rework a great deal of stuff to make @@@ work.
Most users code does not require @@@ although when it does there is no other way. It's the need to know where in hub (address) the final code is loaded into (ie the final hub address).
Bst and homespun both can generate listings, and it's from here that @@@ can be determined. To generate @@@ would likely require another compiler pass but I am not really a compiler guy.
I think the lack of OpenSpin's use stems from the lack of a good reliable editor. Neither SimpleIDE or PropellerIDE, or others, seem to be as simple and bug free as PropTool. Homespun didn't have a built in editor. Bst did have an editor (very basic) but also had an inbuilt terminal program. Going straight to a terminal program after download is a really good feature. PropTool doesn't go directly to PST so there is a time lag for F12.
NotePad++ does have code folding. As I said, code highlighting is available, and only requires a list of words. Saphieha said it was rather easy. He sent me a list and I manually inserted it. But that was years ago and I don't recall how and have lost the settings. But we could do it again I'm sure.
Perhaps it's worth investigating. It then could be expanded to work for the P2 editor too, with OpenSpin2. We will require something better than Chips current P2 editor/compiler. IIRC you (Roy) have volunteered to update OpenSpin2 to P2 when silicon is final.
I understand what @@@ does, and I still would like to make it work. I'm not going to promise anything at this time though.
Yes, I intend to make a version of OpenSpin for the P2. It's dependent on Chip getting Spin2 & PASM2 locked down.
I have a Spin language setup in Notepad++ for basic highlighting, but it doesn't have a good was to deal with compiling and running.
I am working on something new to go with OpenSpin, not gonna say anything yet, but I'll share on the forums here when it's ready.
All the really good editing functions are only available in a few good editors.
So I guess I am leaning toward editing in a different program than that used for compiling. P2 basically forced this upon us anyway as the inbuilt pnut editor is very basic.
NotePad++ can run plugins and there is one for Python Scripting which I have been slowly working on as work to automate a few editing jobs we do regularly. So we could certainly have a script with a button to compile the spi/pasm program. Any errors could be passed back IMHO. Downloading could also be done with a Python Script. I am going to check to see if there is a Terminal Plugin.
NotePad++ can run plugins and there is one for Python Scripting which I have been slowly working on as work to automate a few editing jobs we do regularly. So we could certainly have a script with a button to compile the spi/pasm program. Any errors could be passed back IMHO. Downloading could also be done with a Python Script. I am going to check to see if there is a Terminal Plugin.
Interesting, I've not tried Python, but NppExec can already capture messages from the output window, and jump-to-error line in the offending source file.
That merely needs a command line compiler and command line download, and I think those already exist ?
So I guess I am leaning toward editing in a different program than that used for compiling.
That's the right way to do things!
Everyone can plug in OpenSpin into her favourite environment and compiler writers write better compilers than writers of editors and the other way round. So better keep those parts far apart and independent from each other!
Or would you complain that your screwdriver is not a saw too?
Comments
BST is dead (no source, no future).
I already made my peace with not using PropGCC any more and am thinking about switching from OpenSpin to HomeSpun.
——————————
Edit: Some "strike"s because "read below"...
OpenSpin's preprocessor is fixed as of recent updates. The only remaining issue is cosmetic. If you use -u it will print messages (from #warn/etc.) twice.
The logic should be fixed and work correctly even if it prints messages twice. If you have a case that still fails to function properly, then please update the issue that I left open until the cosmetic part is addressed.
"19 days ago" ... my "evolution" (MUA) must have eaten Git's notice about that commit!
Thanks @ Roy Eltham!
But that doesn't attest to its completeness. In fact it is so far from it that two foruministas wrote compatible versions with extensions for conditional compilation independently, and without Parallax help or code!
OpenSpin was then written using PropTools source. But it's a compiler only, and doesn't have everything the two independent compilers did. It's a shame that it hasn't been used more, as perhaps Roy would have added more features that we once clamoured for.
What language did you use for OpenSpin ?
I use NotePad++ quite a bit. It's a good language editor that runs on windows and Linux. Not sure about Mac. Years ago, Sapieha wrote the syntax highlighted for SpinPasm on NotePadd++. Not sure if I could find it. I haven't heard from Saphieha for a few years. His health was poor way back then.
Perhaps this could work with OpenSpin ???
I think the only meaningful thing OpenSpin doesn't have that the others do is the @@@ thing. I started to try and make that work, but the way Chip's code works makes it not feasible (and that's what my code copied). I would need to rework a great deal of stuff to make @@@ work.
Bst and homespun both can generate listings, and it's from here that @@@ can be determined. To generate @@@ would likely require another compiler pass but I am not really a compiler guy.
I think the lack of OpenSpin's use stems from the lack of a good reliable editor. Neither SimpleIDE or PropellerIDE, or others, seem to be as simple and bug free as PropTool. Homespun didn't have a built in editor. Bst did have an editor (very basic) but also had an inbuilt terminal program. Going straight to a terminal program after download is a really good feature. PropTool doesn't go directly to PST so there is a time lag for F12.
NotePad++ does have code folding. As I said, code highlighting is available, and only requires a list of words. Saphieha said it was rather easy. He sent me a list and I manually inserted it. But that was years ago and I don't recall how and have lost the settings. But we could do it again I'm sure.
Perhaps it's worth investigating. It then could be expanded to work for the P2 editor too, with OpenSpin2. We will require something better than Chips current P2 editor/compiler. IIRC you (Roy) have volunteered to update OpenSpin2 to P2 when silicon is final.
Yes, I intend to make a version of OpenSpin for the P2. It's dependent on Chip getting Spin2 & PASM2 locked down.
I have a Spin language setup in Notepad++ for basic highlighting, but it doesn't have a good was to deal with compiling and running.
I am working on something new to go with OpenSpin, not gonna say anything yet, but I'll share on the forums here when it's ready.
https://forums.parallax.com/discussion/118328/spin-syntax-definition-for-vim
If someone could do that for Visual Studio Code that would be great.
I have Notepad++ set up to launch batch files from function keys, this can call any command line utility, with file names as a parameter.
yeah, and I don't consider that a good way... It "works" but it's not very good at all.
Heater,
I nominate you to make the Spin highlihgting in VS Code, also make it call OpenSpin to compile and propload to run.
I was afraid somebody might call me on that. Ain't going to happen unless I get a really long holiday.
If you have been tweaking with OpenSpin I should check that it still plays well as openspin.js https://github.com/ZiCog/openspin.js
So I guess I am leaning toward editing in a different program than that used for compiling. P2 basically forced this upon us anyway as the inbuilt pnut editor is very basic.
NotePad++ can run plugins and there is one for Python Scripting which I have been slowly working on as work to automate a few editing jobs we do regularly. So we could certainly have a script with a button to compile the spi/pasm program. Any errors could be passed back IMHO. Downloading could also be done with a Python Script. I am going to check to see if there is a Terminal Plugin.
Interesting, I've not tried Python, but NppExec can already capture messages from the output window, and jump-to-error line in the offending source file.
That merely needs a command line compiler and command line download, and I think those already exist ?
Everyone can plug in OpenSpin into her favourite environment and compiler writers write better compilers than writers of editors and the other way round. So better keep those parts far apart and independent from each other!
Or would you complain that your screwdriver is not a saw too?