SimpleIDE on Linux

I'm feeling a little abandoned here. :)

There used to be a nice SimpleIDE package for Linux that I could install, but now the page sends me to Github where there are no instructions:
http://learn.parallax.com/tutorials/language/propeller-c/propeller-c-set-simpleide/linux

And the README.md on Github just says:
Linux Build:
More to come ....

I tried running "plinrelease.sh", but I received this error:
<snip much outptu>
g++ -Wl,-O1 -o SimpleIDE mainspin.o PortConnectionMonitor.o PropellerID.o editor.o ctags.o mainspinwindow.o cbuildtree.o treemodel.o treeitem.o projecttree.o terminal.o termprefs.o properties.o newproject.o PortListener.o highlighter.o hardware.o help.o console.o asideconfig.o asideboard.o projectoptions.o replacedialog.o aboutdialog.o loader.o qextserialport.o qextserialenumerator.o buildc.o buildspin.o build.o spinhighlighter.o spinparser.o gdb.o highlightc.o hintdialog.o blinker.o buildstatus.o highlightbuild.o directory.o zip.o zipper.o StatusDialog.o workspacedialog.o rescuedialog.o xesp8266port.o qextserialport_unix.o qextserialenumerator_unix.o qrc_resources.o moc_mainspinwindow.o moc_PortConnectionMonitor.o moc_PropellerID.o moc_editor.o moc_ctags.o moc_highlighter.o moc_treemodel.o moc_PortListener.o moc_terminal.o moc_termprefs.o moc_properties.o moc_newproject.o moc_console.o moc_hardware.o moc_help.o moc_projectoptions.o moc_replacedialog.o moc_aboutdialog.o moc_loader.o moc_projecttree.o moc_qextserialenumerator.o moc_buildc.o moc_buildspin.o moc_build.o moc_spinhighlighter.o moc_gdb.o moc_qportcombobox.o moc_hintdialog.o moc_blinker.o moc_zipper.o moc_StatusDialog.o moc_workspacedialog.o moc_rescuedialog.o moc_xesp8266port.o   -lz -lQt5Network -lQt5PrintSupport -lQt5Widgets -lQt5Gui -lQt5Core -lGL -lpthread 
Creating Version SimpleIDE-1-1-1
bin  INSTALL.txt  license  setup.sh
proploader not found. Adding:
Cloning into '../proploader'...
remote: Counting objects: 1080, done.
remote: Compressing objects: 100% (12/12), done.
remote: Total 1080 (delta 0), reused 0 (delta 0), pack-reused 1068
Receiving objects: 100% (1080/1080), 337.15 KiB | 0 bytes/s, done.
Resolving deltas: 100% (795/795), done.
Checking connectivity... done.
~/SimpleIDE ~/SimpleIDE
VERSION v1.0-33 (2017-05-09 10:55:12 g0d30b50)
gcc -Wall -DVERSION=\""v1.0-33 (2017-05-09 10:55:12 g0d30b50)"\" -DLINUX -I/home/chrisl8/proploader-linux-build/obj tools/split.c -o /home/chrisl8/proploader-linux-build/bin/split
cd spin/; openspin -o /home/chrisl8/proploader-linux-build/obj/IP_Loader.binary IP_Loader.spin
/bin/sh: openspin: command not found
Makefile:154: recipe for target '/home/chrisl8/proploader-linux-build/obj/IP_Loader.h' failed
make: *** [/home/chrisl8/proploader-linux-build/obj/IP_Loader.h] Error 127
~/SimpleIDE
cp: cannot stat '../proploader-linux-build/bin/proploader': No such file or directory
../proploader-linux-build/bin/proploader is missing. Build it?
What is the procedure to install SimpleIDE on Linux these days?

Thank you!
«1

Comments

  • @ChrisL8,

    Thanks for bringing more attention to this. I still have the time and interest to get this going again, but completely forgot about it until now. I see I left the thread in a couple places, one of them was this comment about SimpleIDE being unable to enumerate ports. When I get home tonight I'll try to get on this again and see if I can reproduce the error or if it has magically disappeared.
  • A month later and still no working solution other than to dig up the abandoned installer on wayback machine and a valiant attempt from DavidZemon which ultimately fails.

    Has Parallax officially dropped support for Linux?
  • How does download the .deb packages, when there doesn't seem to be any?

    Even the instructions on GIThun say use the .deb packages.
  • ChrisL8ChrisL8 Posts: 127
    edited 2019-02-19 - 03:48:22
    Yes, Parallax has effectively abandoned Linux for almost two years now.

    The only place to get a working copy of SimpleIde for Linux is the Internet Archive:

    https://web.archive.org/web/20161005174013/http://downloads.parallax.com/plx/software/side/101rc1/simple-ide_1-0-1-rc1_amd64.deb
  • I think if Parallax mentions this on the http://learn.parallax.com/ sire, which they do.

    Then they should support it, or remove it and set it as archive somewhere.

    So if someone else wants to take up the idea and support it, they can.

    There are products such the RoboPI that is MADE for a Raspberry PI, which runs Linux and needs this to function correctly.

    And since I just bought one of these, it's important to me.
  • yetiyeti Posts: 732
    edited 2019-02-20 - 21:18:09
    You only need the compilers and RasPIan9 already has the other needed ingredients: Editors, shells, make and friends, ...

    An IDE is optional and probably hides stuff from you, that you should know.

    It still is possible (with some detours) to build PropGCC (natively) on RasPIan9. In fact it is easier there than on Debian9/Devuan2 because RasPIan9 still has GCC-4.6 available as alternative compiler.

    I think @DavidZemon has PropGCC (or PropellerGCC?) crossbuilds for RasPIan. Look for URLs in his signature.
  • yeti wrote: »
    I think @DavidZemon has PropGCC (or PropellerGCC?) crossbuilds for RasPIan. Look for URLs in his signature.

    Indeed I do, and now you have easy access to my signature. There are armv7hf (Raspberry Pi) builds available here: http://david.zemon.name:8111/viewType.html?buildTypeId=PropGCC5_Gcc4rpi&guest=1

    Once you have a compiler, you'll need a build system. That gets a little more complicated. You might be able to get PropWare working? Or, you might have to write your own Makefiles or shell script or whatever floats your boat. We can help with that if you decide to go that route and have specific questions. (Here's the thread for PropWare-specific questions.)
  • yeti wrote: »
    You only need the compilers and RasPIan9 already has the other needed ingredients: Editors, shells, make and friends, ...
    I think @DavidZemon has PropGCC (or PropellerGCC?) crossbuilds for RasPIan. Look for URLs in his signature.

    What is RasPIan9 ?

    And the point I was kind of trying to make was that learn.parallax.com says they support Linux, but they really don't.

    While I am pretty sure when push comes to shove I can get these things running.

    Since the learn.parallax.com says go download these packages and your golden, I and others should not have to build it all.

    And the worst part is for new Prop users who go to learn.parallax.com looking for this information and don't come here first will be sadly chasing links that don't work.

    From a community perspective the Propeller is a great chip, but from someone on the outside would seem to think that learn.parallax.com dropped the ball on some things.

    Parallax says they support something, then they SHOULD support it.

    Do it yourself, isn't support.

    Thank you all for the links and information, I will see what I can pull together and get working.

    JT

  • yetiyeti Posts: 732
    edited 2019-02-21 - 19:09:48
    Yes... I know this "Parallax-Blues" too well...

    But it just does not change anything to have it and only get frustrated.

    And I mirror the anger back (not focussed on an individual, more like a broadcast): There have been several attempts to get something on the legs to centralise information, documentation and software in a community driven way and all these just earned desinterst.

    If we don't move, nothing will change.

    And we is plural...

    What is RasPIan9 ?
    Raspbian9 aka Raspbian-Stretch.
  • sonic0021sonic0021 Posts: 20
    edited 2019-02-23 - 19:58:02
    ChrisL8 wrote: »
    I'm feeling a little abandoned here. :)

    There used to be a nice SimpleIDE package for Linux that I could install, but now the page sends me to Github where there are no instructions:
    http://learn.parallax.com/tutorials/language/propeller-c/propeller-c-set-simpleide/linux

    And the README.md on Github just says:
    Linux Build:
    More to come ....
    

    I tried running "plinrelease.sh", but I received this error:
    <snip much outptu>
    g++ -Wl,-O1 -o SimpleIDE mainspin.o PortConnectionMonitor.o PropellerID.o editor.o ctags.o mainspinwindow.o cbuildtree.o treemodel.o treeitem.o projecttree.o terminal.o termprefs.o properties.o newproject.o PortListener.o highlighter.o hardware.o help.o console.o asideconfig.o asideboard.o projectoptions.o replacedialog.o aboutdialog.o loader.o qextserialport.o qextserialenumerator.o buildc.o buildspin.o build.o spinhighlighter.o spinparser.o gdb.o highlightc.o hintdialog.o blinker.o buildstatus.o highlightbuild.o directory.o zip.o zipper.o StatusDialog.o workspacedialog.o rescuedialog.o xesp8266port.o qextserialport_unix.o qextserialenumerator_unix.o qrc_resources.o moc_mainspinwindow.o moc_PortConnectionMonitor.o moc_PropellerID.o moc_editor.o moc_ctags.o moc_highlighter.o moc_treemodel.o moc_PortListener.o moc_terminal.o moc_termprefs.o moc_properties.o moc_newproject.o moc_console.o moc_hardware.o moc_help.o moc_projectoptions.o moc_replacedialog.o moc_aboutdialog.o moc_loader.o moc_projecttree.o moc_qextserialenumerator.o moc_buildc.o moc_buildspin.o moc_build.o moc_spinhighlighter.o moc_gdb.o moc_qportcombobox.o moc_hintdialog.o moc_blinker.o moc_zipper.o moc_StatusDialog.o moc_workspacedialog.o moc_rescuedialog.o moc_xesp8266port.o   -lz -lQt5Network -lQt5PrintSupport -lQt5Widgets -lQt5Gui -lQt5Core -lGL -lpthread 
    Creating Version SimpleIDE-1-1-1
    bin  INSTALL.txt  license  setup.sh
    proploader not found. Adding:
    Cloning into '../proploader'...
    remote: Counting objects: 1080, done.
    remote: Compressing objects: 100% (12/12), done.
    remote: Total 1080 (delta 0), reused 0 (delta 0), pack-reused 1068
    Receiving objects: 100% (1080/1080), 337.15 KiB | 0 bytes/s, done.
    Resolving deltas: 100% (795/795), done.
    Checking connectivity... done.
    ~/SimpleIDE ~/SimpleIDE
    VERSION v1.0-33 (2017-05-09 10:55:12 g0d30b50)
    gcc -Wall -DVERSION=\""v1.0-33 (2017-05-09 10:55:12 g0d30b50)"\" -DLINUX -I/home/chrisl8/proploader-linux-build/obj tools/split.c -o /home/chrisl8/proploader-linux-build/bin/split
    cd spin/; openspin -o /home/chrisl8/proploader-linux-build/obj/IP_Loader.binary IP_Loader.spin
    /bin/sh: openspin: command not found
    Makefile:154: recipe for target '/home/chrisl8/proploader-linux-build/obj/IP_Loader.h' failed
    make: *** [/home/chrisl8/proploader-linux-build/obj/IP_Loader.h] Error 127
    ~/SimpleIDE
    cp: cannot stat '../proploader-linux-build/bin/proploader': No such file or directory
    ../proploader-linux-build/bin/proploader is missing. Build it?
    
    What is the procedure to install SimpleIDE on Linux these days?

    Thank you!

    What I would do is go into your software manager and search for "simpleide" in all categories. Then, click on the program that says "Simpleide". After that, click "Install".
    Kazam_screenshot_00000.png
    Kazam_screenshot_00001.png
    Kazam_screenshot_00002.png
    782 x 656 - 134K
    782 x 656 - 28K
    782 x 656 - 55K
  • That will only show up once it is already installed. For a normal system where SimpleIDE has not yet been installed, you will not be able to install via the standard package repositories.
  • DavidZemon wrote: »
    That will only show up once it is already installed. For a normal system where SimpleIDE has not yet been installed, you will not be able to install via the standard package repositories.

    Oh, that's my mistake. I forgot that it should say "Install" instead of "Remove". But, if you can't use the repositories, I guess there's no other way to do it. That was the way that I thought of. I was just trying to help, so I apologize if somebody was confused.
  • What I do not understand is that all the signs are there that Parallax supports Linux, you as the user have to go to GitHub and roll your own.

    This makes no sense if Parallax says they support something then they should get a contractor to clean up the learn site correct the links and put the packages up there.

    Or fix the learn site, and remove all wording of MAC and Linux.

    And then be done with it, but keep what they built up and hosted with all the other software. But at least we would have a place to go and the tools, even if there is really NO support.

    Just throwing out ideas..

    jt
  • yeti wrote: »

    Wow, after reading through those I can see this as a doomed effort. Sorry to have put more fuel on an already dead fire.

    But the problem still remains and I do not understand the lack of attention from Parallax in the fact that they say they are a teaching resource and yet these problems persist.

    It is very funny, it reminds me of the early days of Linux. In that time it was those who did, did. Those who could not asked for better documentation.

    20+ years later look where Linux has come, crazy progress. Yet, I see lots of arduino and Raspberry PIs and all sorts of PIs. But not many who are not from this forum know about the propeller. Maybe in 20 years we will look back and it will be different, but by that time my projects will be done and most likely forgotten.
  • I hate to necro an old post, but I am trying to use Ubuntu 20.04 now and it does not have the required libqtgui4 to install the old simple-ide_1-0-1-rc1_amd64.deb from the Internet Archive, so I'm a bit stuck.

    Is there any new word on building SimpleIDE for Linux these days?
  • ChrisL8 wrote: »
    I hate to necro an old post, but I am trying to use Ubuntu 20.04 now and it does not have the required libqtgui4 to install the old simple-ide_1-0-1-rc1_amd64.deb from the Internet Archive, so I'm a bit stuck.

    Is there any new word on building SimpleIDE for Linux these days?

    I'm not a Linux guy, but would this help?

    https://forums.parallax.com/discussion/171875/flatpak-for-propelleride#latest
  • SimpleIDE != PropellerIDE
  • And if not SimpleIDE can someone ELI5 to me how to set up a the command line tools to compile C code that was written in SimpleIDE and send it to a Propeller board on Linux?

    I've got no problem using my own editor and running command line tools, but I could use some hand holding in getting the build environment set up.
    I've stuck with SimpleIDE over the years because once it is installed it "just works". I don't even use it to edit code anymore. 😅
  • Look at the Makefiles of PropGCC's demos:
    —▷ https://github.com/parallaxinc/propgcc/tree/master/demos
  • ChrisL8 wrote: »
    I hate to necro an old post, but I am trying to use Ubuntu 20.04 now and it does not have the required libqtgui4 to install the old simple-ide_1-0-1-rc1_amd64.deb from the Internet Archive, so I'm a bit stuck

    Maybe this:
    https://pkgs.org/download/libqtgui4

  • @ChrisL8, for Linux + PropGCC, see PropWare
    https://david.zemon.name/PropWare
  • Ok, after finally finding the Propware download link that works (not the one on any web site on the Internet) I installed it but I admit I'm baffled as to what it even accomplishes.

    I was not able to build any of my C code that SimpleIDE could build, and I could not find any method to upload code to a Propeller board over USB (assuming I had built it).


    The reason I used and liked SimpleIDE was that I could put C code into it, and have it compiled and uploaded to the board in seconds. Every other suggestion so far has been a rabbit hole of frustration.

    Meanwhile Parallax claims to have Linux support for the Propeller board, but it hasn't worked for over three years.
  • DavidZemonDavidZemon Posts: 2,884
    edited 2020-07-21 - 15:16:29
    ChrisL8 wrote: »
    Ok, after finally finding the Propware download link that works (not the one on any web site on the Internet) I installed it but I admit I'm baffled as to what it even accomplishes.

    I was not able to build any of my C code that SimpleIDE could build, and I could not find any method to upload code to a Propeller board over USB (assuming I had built it).


    The reason I used and liked SimpleIDE was that I could put C code into it, and have it compiled and uploaded to the board in seconds. Every other suggestion so far has been a rabbit hole of frustration.

    Meanwhile Parallax claims to have Linux support for the Propeller board, but it hasn't worked for over three years.

    Yea, sorry about the link. I'll get that fixed soon.
    PropWare won't help you use SimpleIDE. PropWare is a conglomerate of a few different things: a build system, some C++ classes (in the "PropWare::" namespace), some more C++ classes (in the "libpropeller::" namespace) and some C objects (the "Simple" libraries). The build system part of PropWare replaces SimpleIDE's built-in "build system". It utilizes CMake and provides targets for you that make it easier to load and run programs. The Simple libraries available in SimpleIDE are also available from the PropWare installation package. The one key piece that is NOT provided by PropWare is a text editor. It is expected that you will find your own editor/IDE (VS Code, Eclipse, CLion, vim, whatever) and then either invoke CMake from the command-line or integrate CMake into your editor.

    I'd encourage you to take a look at the Getting Started page for PropWare, as it should walk you through the basics of writing a simple program, compiling it, then loading it on your board. Once you've done that, you'll want to review the various "Reference" material from the dropdown at the top of the website. And of course, ask any questions you have here or on the PropWare thread: http://forums.parallax.com/discussion/157005/fyi-propware-complete-build-system-and-library-for-propgcc
  • DavidZemon wrote: »
    I'd encourage you to take a look at the Getting Started page for PropWare, as it should walk you through the basics of writing a simple program, compiling it, then loading it on your board. Once you've done that, you'll want to review the various "Reference" material from the dropdown at the top of the website. And of course, ask any questions you have here or on the PropWare thread: http://forums.parallax.com/discussion/157005/fyi-propware-complete-build-system-and-library-for-propgcc

    Thanks. You have also been helpful in the direct messages.
    Once thing start to break down for me I get impatient, but I will try to work through the getting started section one bit at a time instead of jumping ahead.

    So far things are not working, but I will message you the errors I am getting.

    I am also going to have to learn how to make a working CMakeLists.txt for my old code, which SimpleIDE for some reason didn't require.
  • DavidZemonDavidZemon Posts: 2,884
    edited 2020-07-21 - 17:40:22
    ChrisL8 wrote: »
    I am also going to have to learn how to make a working CMakeLists.txt for my old code, which SimpleIDE for some reason didn't require.

    This is, actually, surprisingly simple most of the time. The "CMake by Example" page will likely have you up and running in no time: https://david.zemon.name/PropWare/#/reference/cmake-by-example

    And the reason SimpleIDE doesn't need a CMakeLists.txt file is because SimpleIDE has its own built-in build system. It parses files that end in a ".side" extension and then figures out how to invoke the compiler and linker based on that file. That's all fine and dandy.... until you want to use anything other than SimpleIDE.
  • I think I've got the environment all working, and it tries, but I'm getting a weird error:
    undefined reference to `_cexp'
    

    I've boiled down my inability to compile my code to this example. It works in SimpleIDE, but not in PropWare. It seems to be related to the use of the cos() and sin() functions:

    GettingStarted.cpp
    #include <PropWare/hmi/output/printer.h>
    #include "simpletools.h"
    #include "doSomeMath.h"
    
    int main () {
        float number = doSomeMath(25);
        pwOut << "Hello, world!";
        pwOut << number;
        return 0;
    }
    

    doSomeMath.h
    float doSomeMath(int input) {
        return cos(input) + sin(input);
    }
    

    CMakeLists.txt
    cmake_minimum_required(VERSION 3.12)
    find_package(PropWare REQUIRED)
    project(GettingStarted)
    
    create_simple_executable(${PROJECT_NAME} GettingStarted.cpp)
    

    When I try to build it, this is the result:
    # cmake -G "Unix Makefiles" ..
    -- Found PropWare: /usr/share/PropWare/CMakeModules/PropellerToolchain.cmake (found version "3.0.0.224") 
    -- The C compiler identification is GNU 4.6.1
    -- The CXX compiler identification is GNU 4.6.1
    -- Check for working C compiler: /opt/parallax/bin/propeller-elf-gcc
    -- Check for working C compiler: /opt/parallax/bin/propeller-elf-gcc -- works
    -- Detecting C compiler ABI info
    -- Detecting C compiler ABI info - done
    -- Detecting C compile features
    -- Detecting C compile features - done
    -- Check for working CXX compiler: /opt/parallax/bin/propeller-elf-gcc
    -- Check for working CXX compiler: /opt/parallax/bin/propeller-elf-gcc -- works
    -- Detecting CXX compiler ABI info
    -- Detecting CXX compiler ABI info - done
    -- Detecting CXX compile features
    -- Detecting CXX compile features - done
    -- Configuring done
    -- Generating done
    -- Build files have been written to: /home/chrisl8/Dev/GettingStarted/bin
    
    # make debug
    Scanning dependencies of target GettingStarted
    [ 50%] Building CXX object CMakeFiles/GettingStarted.dir/GettingStarted.cpp.obj
    [100%] Linking C executable GettingStarted.elf
    CMakeFiles/GettingStarted.dir/GettingStarted.cpp.obj: In function `doSomeMath(int)':
    (.text._Z10doSomeMathi+0x2c): undefined reference to `_cexp'
    collect2: ld returned 1 exit status
    make[3]: *** [CMakeFiles/GettingStarted.dir/build.make:88: GettingStarted.elf] Error 1
    make[2]: *** [CMakeFiles/Makefile2:140: CMakeFiles/GettingStarted.dir/all] Error 2
    make[1]: *** [CMakeFiles/Makefile2:255: CMakeFiles/debug.dir/rule] Error 2
    make: *** [Makefile:207: debug] Error 2
    

    If I remove the sin() and cos() functions it works just fine. If I use ONLY the sin() function it says:
    undefined reference to `_sin'
    
    and if I use only cos() it says:
    undefined reference to `_cos'
    
    So _cexp seems to be some combination of sin/cos, but even just using sin or cos does not work if they are in a .h file instead of in the main .c file.

    Do you have any idea what is causing this?
  • I don't remember if PropWare links against libm by default or not. My guess/hope is not, since that would result in the error you're seeing. Try adding, after "create_simple_executable(${PROJECT_NAME} GettingStarted.cpp)", a new line that reads "target_link_libraries(${PROJECT_NAME} m)" which will tell CMake that it needs to use libm when linking an executable by the name of "${PROJECT_NAME}".
  • @DavidZemon That cleared up that error.

    Everything I've written compiles and loads!!

    Now I guess I need to test everything for silent runtime errors, but at least this gives me some time while I convert everything to Arduino. 😅
Sign In or Register to comment.