fastspin compiler for P2: Assembly, Spin, BASIC, and C in one compiler

1131416181932

Comments

  • Since a renaming of Fastspin was suggested in another thread. My offer is SpeedyProp, a language agnostic compiler for the Prop2.
    Jim
  • RS_Jim wrote: »
    Since a renaming of Fastspin was suggested in another thread. My offer is SpeedyProp, a language agnostic compiler for the Prop2.
    Jim
    Any name that doesn't contain "spin" would be less confusing. Could be "escc" for "Eric Smith's Compiler Collection" or maybe "fastcc". I think Eric already mentioned that. However, the problem with something containing "cc" is that it will probably be confused with "C compiler" and hence not give sufficient indication that Spin and BASIC are also supported.
  • David Betz wrote: »
    RS_Jim wrote: »
    Since a renaming of Fastspin was suggested in another thread. My offer is SpeedyProp, a language agnostic compiler for the Prop2.
    Jim
    Any name that doesn't contain "spin" would be less confusing.

    Totally agree. Drop any mention of Spin, and make it clear that its a Compiler, and Multi-Language as well.
    RPM- Rational Prop Multi-compiler ?
    ---- This space available for rent ----<br>
  • It should be renamed PiNS a homage to Eric's MiNT

    Propeller is Not Spin ;-)
  • Coley wrote: »
    It should be renamed PiNS a homage to Eric's MiNT

    Propeller is Not Spin ;-)
    I like "PINS"! Maybe it could stand for "Propeller Is Not *only* Spin"? Certainly, Spin has a place in the Propeller world and also a place in Eric's compiler suite. It just isn't the only option.

  • However, the problem with something containing "cc" is that it will probably be confused with "C compiler" and hence not give sufficient indication that Spin and BASIC are also supported.

    The world already stopped spinning because the CC in GCC does not mean "C Compiler" but "Compiler Collection" instead.

    1hr of elevator music...

    Wait!
    15 degrees change!
    She still spins!
    :-P
    ◁ propeller-wiki ▷ ◁ FastSpin ▷ ◁ Help Spin at RosettaCode.org ▷ ◁ No Source – No Go! ▷ ◁ DK-E ▷ ◁ :-D ▷ ◁ Stay OmmmmmmPtimistic! ▷ ◁ Why Asimov's Laws of Robotics Don't Work ▷ ◁ DNA is a four letter word. ▷ ◁ Stop slavery! Free all mitochondria! ▷
  • David BetzDavid Betz Posts: 13,587
    edited 2019-07-06 - 20:02:10
    yeti wrote: »
    However, the problem with something containing "cc" is that it will probably be confused with "C compiler" and hence not give sufficient indication that Spin and BASIC are also supported.

    The world already stopped spinning because the CC in GCC does not mean "C Compiler" but "Compiler Collection" instead.

    1hr of elevator music...

    Wait!
    15 degrees change!
    She still spins!
    :-P
    Yes but will the Spin world tolerate compiling Spin code like this:
    pincc sample.spin
    
    :smile:
  • And "dd" is "copy and convert".

    Who cares about names? The CLI users obviously can bear that and the mouse-o-philes don't even notice which compiler they are using and will continue talking about $IDE_NAME instead of $COMPILER_NAME...
    ◁ propeller-wiki ▷ ◁ FastSpin ▷ ◁ Help Spin at RosettaCode.org ▷ ◁ No Source – No Go! ▷ ◁ DK-E ▷ ◁ :-D ▷ ◁ Stay OmmmmmmPtimistic! ▷ ◁ Why Asimov's Laws of Robotics Don't Work ▷ ◁ DNA is a four letter word. ▷ ◁ Stop slavery! Free all mitochondria! ▷
  • jmgjmg Posts: 14,088
    David Betz wrote: »
    RS_Jim wrote: »
    Since a renaming of Fastspin was suggested in another thread. My offer is SpeedyProp, a language agnostic compiler for the Prop2.
    Jim
    Any name that doesn't contain "spin" would be less confusing. Could be "escc" for "Eric Smith's Compiler Collection" or maybe "fastcc". I think Eric already mentioned that. However, the problem with something containing "cc" is that it will probably be confused with "C compiler" and hence not give sufficient indication that Spin and BASIC are also supported.

    Certainly the main name confusion of spin needs to be removed, as it has moved on significantly from when that applied.
    I think P2 needs to be in there, as that's the primary target of all the languages.

    Compiler Collection or Compiler Suite or Tool Suite could all be suitable. I think it will include a downloader of some sort, will it ever include a Debugger ?
    So that leads to maybe esp2ts, or p2ests or estsp2 - unique enough for google and easy enough to remember ?

    I've seen compilers that can act as assemblers and linkers, depending on the command line arguments. (the compiler exe acts as a shell and delegates to the still-there-but-less-visible Asm/linkers)
    That has appeal over the more usual C?.exe, AS?.exe, L?.exe in that simpler projects can compile directly to a hex file in one command line.


  • David Betz wrote: »
    RS_Jim wrote: »
    Since a renaming of Fastspin was suggested in another thread. My offer is SpeedyProp, a language agnostic compiler for the Prop2.
    Jim
    Any name that doesn't contain "spin" would be less confusing. Could be "escc" for "Eric Smith's Compiler Collection" or maybe "fastcc". I think Eric already mentioned that. However, the problem with something containing "cc" is that it will probably be confused with "C compiler" and hence not give sufficient indication that Spin and BASIC are also supported.

    How about "Hydra", as in the multi-headed Lernean Hydra of Greek legend.
    In science there is no authority. There is only experiment.
    Life is unpredictable. Eat dessert first.
  • David BetzDavid Betz Posts: 13,587
    edited 2019-07-07 - 00:57:11
    kwinn wrote: »
    David Betz wrote: »
    RS_Jim wrote: »
    Since a renaming of Fastspin was suggested in another thread. My offer is SpeedyProp, a language agnostic compiler for the Prop2.
    Jim
    Any name that doesn't contain "spin" would be less confusing. Could be "escc" for "Eric Smith's Compiler Collection" or maybe "fastcc". I think Eric already mentioned that. However, the problem with something containing "cc" is that it will probably be confused with "C compiler" and hence not give sufficient indication that Spin and BASIC are also supported.

    How about "Hydra", as in the multi-headed Lernean Hydra of Greek legend.
    That would be a good choice except that there was a P1 game platform from Andre' LaMothe called the Hydra that was quite popular for a while. I suppose that could cause some confusion. Eric should probably check with Andre' to see if he objects if he decides to use that name.

  • EriCC = Eric's Compiler
    EricCC = Eric's compiler compendium

    P2compiler = simple and straightforward, no languages mentioned
    My Prop boards: P8XBlade2 , RamBlade , CpuBlade , TriBlade
    P1 Prop OS (also see Sphinx, PropDos, PropCmd, Spinix)
    Website: www.clusos.com
    P1: Tools (Index) , Emulators (Index) , ZiCog (Z80)
    P2: Tools & Code , Tricks & Traps
  • I think we've been through this discussion before :). At the time the "flex-" prefix seemed like the best choice, with "flexspin", "flexbasic", and "flexc" as the languages. But I'm not sure if we had a name for the system as a whole; "flexsys" maybe?

    I don't think "P2" should be part of the name, because fastspin works perfectly well on P1 and that's where it started.

    Anyway, I've held off renaming it until the C support is more mature. Which is coming, but slowly.

    Thanks for the suggestions,
    Eric
    FlexGUI, a GUI for programming the P1 and P2 in Spin, PASM, BASIC, and C.
    Help support its development at Patreon or PayPal.
  • jmgjmg Posts: 14,088
    ersmith wrote: »
    I don't think "P2" should be part of the name, because fastspin works perfectly well on P1 and that's where it started.
    Do all languages support P1 ?
    If yes, then maybe it needs p1p2 in the name ?
    The primary interest will come from P2 users, given P1 already has various solutions, but being able to output both cores certainly has appeal.
    Can the flexsys also compile pure assembler files ?

  • Do all languages support P1 ?
    Yes, although the PASM is processor dependent (so P1 PASM for P1 and P2 PASM for P2). I don't think that's too surprising though :)
    Can the flexsys also compile pure assembler files ?
    Yes, just like PNut for P2 (and something similar for P1).



    FlexGUI, a GUI for programming the P1 and P2 in Spin, PASM, BASIC, and C.
    Help support its development at Patreon or PayPal.
  • name it just 'fast'. Who knows if you include Phyton also and we have to rename it again...

    Enjoy!

    Mike
    I am just another Code Monkey.
    A determined coder can write COBOL programs in any language. -- Author unknown.
    Press any key to continue, any other key to quit

    The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this post are to be interpreted as described in RFC 2119.
  • I like it how it is. It's both distinctive and easy to remember.
    We have the vastness of the internet and yet billions of people decided to spend most of their time within a horribly designed, fake-news emporium of a website that sucks every possible piece of personal information out of you so it can sell it to others. And they see nothing wrong with that.
  • "FastTool" .... PropTool only heaps better :)
    My Prop boards: P8XBlade2 , RamBlade , CpuBlade , TriBlade
    P1 Prop OS (also see Sphinx, PropDos, PropCmd, Spinix)
    Website: www.clusos.com
    P1: Tools (Index) , Emulators (Index) , ZiCog (Z80)
    P2: Tools & Code , Tricks & Traps
  • David Betz wrote: »
    kwinn wrote: »
    David Betz wrote: »
    RS_Jim wrote: »
    Since a renaming of Fastspin was suggested in another thread. My offer is SpeedyProp, a language agnostic compiler for the Prop2.
    Jim
    Any name that doesn't contain "spin" would be less confusing. Could be "escc" for "Eric Smith's Compiler Collection" or maybe "fastcc". I think Eric already mentioned that. However, the problem with something containing "cc" is that it will probably be confused with "C compiler" and hence not give sufficient indication that Spin and BASIC are also supported.

    How about "Hydra", as in the multi-headed Lernean Hydra of Greek legend.
    That would be a good choice except that there was a P1 game platform from Andre' LaMothe called the Hydra that was quite popular for a while. I suppose that could cause some confusion. Eric should probably check with Andre' to see if he objects if he decides to use that name.

    Almost impossible to come up with a suitable name that has not been used for something already. My guess is that Andre' would not object to someone using hydra for something other than a gaming platform, although discussing it with him first would be the courteous thing to do.

    Now "Cerberus" would be an alternative choice from Greek mythology, and being a Hell Hound possibly a more appropriate one at that ;-)
    In science there is no authority. There is only experiment.
    Life is unpredictable. Eat dessert first.
  • I've posted new versions (3.9.28) of fastspin and spin2gui. The main changes are:

    fastspin:

    - Only use jump table for switch / select if the density is greater than 1/2
    - Do small immediate optimizations even for P2 (it was accidentally P1 only)
    - Add error if nop instruction is conditionalized
    - Improved output formatting code, particularly for floating point
    - Improved error messages for bad addressing modes
    - Fixed octal number parsing in C
    - Added ability to declare methods in C structs
    - Expanded standard C library
    - Use the include directory to search for files on the command line if they end with .a.
    - Fixed some incorrect detection of unused methods in indirect function calls.

    spin2gui:

    Changed to link with Tcl/Tk directly, which will allow signing of the code (the old method used a self extracting .zip file containing Tcl/Tk libraries, which prevented signing of the .exe).

    loadp2:

    Updated to 0.14, which supports ELF binaries (not really relevant for fastspin yet, but useful for those of you using riscvp2).

    fastspin.exe and spin2gui.exe are signed with a self-signed certificate. That's mostly a proof of concept at this point, since Windows 10 will still complain about not wanting to run them at first. Eventually I would like to aquire a code certificate signed by one of the standard certificate issuers to make Windows stop this complaining. That will cost real money though :(. If you'd like to support that effort, or support fastspin/spin2gui development in general, donations are gratefully accepted at my patreon page.
    FlexGUI, a GUI for programming the P1 and P2 in Spin, PASM, BASIC, and C.
    Help support its development at Patreon or PayPal.
  • ersmith wrote: »
    fastspin.exe and spin2gui.exe are signed with a self-signed certificate. That's mostly a proof of concept at this point, since Windows 10 will still complain about not wanting to run them at first. Eventually I would like to aquire a code certificate signed by one of the standard certificate issuers to make Windows stop this complaining. That will cost real money though :(. If you'd like to support that effort, or support fastspin/spin2gui development in general, donations are gratefully accepted at my patreon page.
    How much does it cost?

  • Damn, Patreon has tracking scripts wriggling out all its pipes. Ghostery is picking up eight independent trackers just on that host page alone. Not too surprisingly this leads to nine blocked third party domains. I have everything third party blocked so I can't tell how much deeper those go ... and the page is broken as a result.
    We have the vastness of the internet and yet billions of people decided to spend most of their time within a horribly designed, fake-news emporium of a website that sucks every possible piece of personal information out of you so it can sell it to others. And they see nothing wrong with that.
  • David Betz wrote: »
    ersmith wrote: »
    fastspin.exe and spin2gui.exe are signed with a self-signed certificate. That's mostly a proof of concept at this point, since Windows 10 will still complain about not wanting to run them at first. Eventually I would like to aquire a code certificate signed by one of the standard certificate issuers to make Windows stop this complaining. That will cost real money though :(. If you'd like to support that effort, or support fastspin/spin2gui development in general, donations are gratefully accepted at my patreon page.
    How much does it cost?

    It varies by the vendor, but the general order of magnitude seems to be $200/year for plain code signing certificates and $400/year for "extended validation" certificates (US dollars, I assume). The extended validation certificate is supposed to immediately remove the Windows warning, the cheaper certificates make the warning less severe and it will eventually be removed if enough people download the software and haven't complained about it.
    FlexGUI, a GUI for programming the P1 and P2 in Spin, PASM, BASIC, and C.
    Help support its development at Patreon or PayPal.
  • evanh wrote: »
    Damn, Patreon has tracking scripts wriggling out all its pipes. Ghostery is picking up eight independent trackers just on that host page alone. Not too surprisingly this leads to nine blocked third party domains. I have everything third party blocked so I can't tell how much deeper those go ... and the page is broken as a result.

    Ouch, I hadn't realized that. Is PayPal any better in that regard?

    FlexGUI, a GUI for programming the P1 and P2 in Spin, PASM, BASIC, and C.
    Help support its development at Patreon or PayPal.
  • evanhevanh Posts: 8,259
    edited 2019-08-01 - 14:57:19
    The sign-up page was alright from memory. But the moment I went back to ebay the ads all changed in nature. They clearly switched mode to targetted ads even if they were guessing. I went straight back to paypal and deleted the account, which it did do surprisingly.

    I haven't been back to ebay since.
    We have the vastness of the internet and yet billions of people decided to spend most of their time within a horribly designed, fake-news emporium of a website that sucks every possible piece of personal information out of you so it can sell it to others. And they see nothing wrong with that.
  • Once again, how about a simple name/TLA which explains what it is and what it does in the actual name?
    MLC, Multi-Language Compiler?
    ---- This space available for rent ----<br>
  • seems that Turbo-Prop might be possible...
    Prop Info and Apps: http://www.rayslogic.com/
  • ersmith wrote: »
    David Betz wrote: »
    ersmith wrote: »
    fastspin.exe and spin2gui.exe are signed with a self-signed certificate. That's mostly a proof of concept at this point, since Windows 10 will still complain about not wanting to run them at first. Eventually I would like to aquire a code certificate signed by one of the standard certificate issuers to make Windows stop this complaining. That will cost real money though :(. If you'd like to support that effort, or support fastspin/spin2gui development in general, donations are gratefully accepted at my patreon page.
    How much does it cost?

    It varies by the vendor, but the general order of magnitude seems to be $200/year for plain code signing certificates and $400/year for "extended validation" certificates (US dollars, I assume). The extended validation certificate is supposed to immediately remove the Windows warning, the cheaper certificates make the warning less severe and it will eventually be removed if enough people download the software and haven't complained about it.

    https://www.digicert.com/order/order-1.php seems to 74 USD/year. I'm willing to chip in for 1 year, even though I don't use windows for my prop development.

    Certum has an opensource license, but it is very unclear what the actual cost is
    Stockholm, Sweden
    I am only an egg -- Stranger in a Strange land, Robert A. Heinlein
  • I love fastspin!

    Eric, I've not had time to do much with it, but what I did do worked nicely. I really want you to know your efforts are appreciated. I'm in for $5 a month right now. That can change too. I just had a free moment and did the default signup. You gotta tell us what makes sense. (somehow, lol)

    Thank you.

    There are gonna be great times ahead everyone! Chip's second pass looks great. The silicon is working and there is remarkably little we have to live with.

    Chip's experimental Spin 2 environment integrated into Prop Tool, plus FastSpin, Ozdev's debugger, analyzer, Cluso's monitor, Peter and TAQOS and the work Mike has done to integrate TAQOS (love the compile at address and how that all is going to work), makes for one heck of a start!

    When we look back at P1, this is relative luxury compared to the handful of sample programs, Chip's "Propeller Guts" document, and the SPIN + PASM only tools at the time.

    How does the signing process work? Can one get a cert useful for signing multiple executables, or is it per executable, or what? I'm thinking maybe get the multiple signing cert, and maybe a few handy things can get signed... Just a random thought.

    (goes back to the grind, back soon)

    Do not taunt Happy Fun Ball! @opengeekorg ---> Be Excellent To One Another SKYPE = acuity_doug
    Parallax colors simplified: https://forums.parallax.com/discussion/123709/commented-graphics-demo-spin<br>
  • rosco_pc wrote: »
    https://www.digicert.com/order/order-1.php seems to 74 USD/year. I'm willing to chip in for 1 year, even though I don't use windows for my prop development.

    It's showing me $499 USD/year for the code signing certificate on that site. I'm not surprised that the price is different -- I suspect they show different prices to different people and in different places -- but the size of the difference is a little surprising.
    Certum has an opensource license, but it is very unclear what the actual cost is

    That's worth looking into, thanks.

    FlexGUI, a GUI for programming the P1 and P2 in Spin, PASM, BASIC, and C.
    Help support its development at Patreon or PayPal.
Sign In or Register to comment.