Shop OBEX P1 Docs P2 Docs Learn Events
GCC / Eclipse and Propeller 2 - seeking developers — Parallax Forums

GCC / Eclipse and Propeller 2 - seeking developers

Ken GraceyKen Gracey Posts: 7,401
edited 2011-10-23 11:59 in Propeller 1
Hey there,

Parallax Semiconductor is interested in assembling a small team of developers familiar with the GCC compiler suite and perhaps the Eclipse plug-in. The objective is create an open-source cross-platform compatible compiler suite for Propeller 2 (code name) supporting Spin, C/C++ and possibly other languages. A GUI such as Eclipse would be customized to make use of the GCC optimizer.

This is the approach we envisioned:

(a) Identify 4-5 qualified developers and a few with GCC/Eclipse/Propeller user experience.
(b) Invite them into a discussion with some of our team (including Chip of course) via webinar
(c) Identify the scope of work, roles, and build a small team to do the development.

Speaking with Chip about how Propeller 2's design could be used with LMM is very encouraging, but this insight must be conveyed to those with experience working with these tools. We aren't aiming for a committee-based approach with a strange outcome, but one that empowers developers to work together with some pretty clear roles and complimentary functions.

This forum has many of the right people, just to name a couple with potential interest like Bill Henning, jazzed, David Betz, and RossH. To you this topic is likely far from new and you may wonder what takes us so long.

Don't take my knowledge of this subject too seriously since I'm learning, but feel free to place a bet on the fact that we're going to come to a conclusion about proceeding fairly quickly. Should we proceed I will ensure that the team has coordination, incentive and delivery according to a schedule. Of course the effort would be open as well.

This effort does not eliminate an expansion of our current Windows Propeller Tool to support Propeller 2. We will need these tools to program the Propeller before any GCC efforts are completed. Some customers may not be interested in a GCC set of tools.

You are welcome to use this thread to comment or share ideas.

If you are interested in possibly being part of our team then please contact me via e-mail. Provide a bit of background including complete contact information.

In a week or so I would organize and plan a meeting with Chip. Often that's entertaining on it's own.

Sincerely,

Ken Gracey
«13456722

Comments

  • KyeKye Posts: 2,200
    edited 2011-05-04 15:41
    Excellent!
  • Ken GraceyKen Gracey Posts: 7,401
    edited 2011-05-04 15:55
    Kye wrote: »
    Excellent!

    Ah. First responder, one of the key persuaders and leaders of this effort who shall also be on our team for the summer by the end of May (no kidding!).

    Welcome, Kwabena.

    Ken Gracey
  • jazzedjazzed Posts: 11,803
    edited 2011-05-04 16:57
    Hi Ken.

    This is a very exciting item :) Thank you for seriously considering GNU/GCC.
    I've sent you a PM. Maybe you'll get it before travelling to San Jose.

    I look forward to humbly serving you any way that I can.

    --Steve
  • RossHRossH Posts: 5,516
    edited 2011-05-04 17:11
    Hi Ken,

    I've sent you an email.

    Ross.
  • David BetzDavid Betz Posts: 14,516
    edited 2011-05-04 20:13
    Hi Ken,

    I'm very interested in helping to bring GCC to the Propeller! I have a lot of experience with language design and implementation but it has mostly been with small "scripting languages" and not highly optimizing compilers. I have certainly used GCC a lot and have spent a little time looking over what is necessary to port it to a new target processor. It might also be interesting to see how hard it would be to make a Spin frontend for GCC that would allow Spin code to be optimized with the GCC language-independent optimizer. I imagine it might even be possible to directly link C and Spin using that approach. However, I think the GCC backend generating LMM and/or XMM code for the Propeller would be the obvious first step.

    This project sounds like it's going to be exciting!

    Thanks,
    David
  • william chanwilliam chan Posts: 1,326
    edited 2011-05-04 20:22
    Will the new tools support Chinese language as well?
  • LeonLeon Posts: 7,620
    edited 2011-05-04 21:06
    I think that Eclipse supports Chinese characters. Perhaps you could do the translation.
  • Ken GraceyKen Gracey Posts: 7,401
    edited 2011-05-04 22:02
    The folks who've arrived at this thread are the exact people I was hoping to interest.

    By Monday we'll move this topic to the next stage. Tomorrow isn't going to be very productive since we're at the ESC show. And Friday we'll have a number of guests at Parallax. I'm pretty sure this project would enable the variety of roles like Leon was talking about above, such as providing the English to Chinese translation that William could use. At least that's my experience with some other software projects - the translation was supported by creating additional text files. The people serving those roles found their jobs to be quite easy and were quickly looking for more to do.

    Thanks, Ken
  • Roy ElthamRoy Eltham Posts: 3,000
    edited 2011-05-04 22:26
    I'm interested in this, although I'm not an Eclipse or GCC fan. :)
    I'd like to be involved at some level. Like I mentioned to Jeff Martin already, I think an addon for VS2008/2010 would be good also. I know a lot of people here seem to hate anything Microsoft, but when it comes to the professional arena, Visual Studio is a very common tool.

    Also, I'm trying to understand what you are trying to make... I assume you want something that targets Spin/PASM first and foremost, but it sounds like you also want to make something that will take C/C++ to LMM/XMM?

    Roy
  • icepuckicepuck Posts: 466
    edited 2011-05-05 12:22
    Does this mean that GCC/linux code could be used? I've been experimenting with OpenEmedded and GCC lately is why I'm asking.

    @ Roy
    If some thing could be done for the Express .NET(free) editions it could be a good idea for those who "have to/or want to" use MS products with out have spend a lot of money. Just a thought.
    -dan
  • Roy ElthamRoy Eltham Posts: 3,000
    edited 2011-05-05 12:41
    The express editions of Visual Studio do not support addins or extensions. So it's not really possible to support them with something like this.
  • icepuckicepuck Posts: 466
    edited 2011-05-05 12:52
    Roy Eltham wrote: »
    The express editions of Visual Studio do not support addins or extensions. So it's not really possible to support them with something like this.

    O.K. I didn't know that.
    -dan
  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2011-05-05 14:24
    I'm sure Parallax would not support the development of an IDE/compiler suite that required the bloated .NET framework. At least I hope not.

    -Phil
  • Roy ElthamRoy Eltham Posts: 3,000
    edited 2011-05-05 14:30
    Phil, I know you have a very negative opinion of .NET. but it's a very big part of the commercial world, and supported across several platforms now. Developing applications for .NET is rapid and easy, and there is a HUGE amount of support for it across the board.

    So, I take it you have never used Viewport, and don't like it on principle? That's kind of disappointing really, considering how awesome a tool it is for debugging Propeller applications.

    Honestly, I think Parallax would be making a big mistake if they avoid .NET. Of course, they will have tools that do not use or require .NET, but would it really bother you if they also had some that did?

    Roy
  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2011-05-05 15:39
    Roy Eltham wrote:
    So, I take it you have never used Viewport, and don't like it on principle? That's kind of disappointing really, considering how awesome a tool it is for debugging Propeller applications.
    I have Viewport but I've never used it. Until last week, I was using WinXP SP1, which doesn't support the current .NET. I've since upgraded to SP3, but I probably still won't install .NET. I'm sure Viewport is a very nice debugger, but I really don't have much use for debuggers in general. As I stated in another thread, I found long ago that my programming skills never improved as long as I had a debugger to lean on.
    Roy Eltham wrote:
    Of course, they will have tools that do not use or require .NET, but would it really bother you if they also had some that did?
    Yes it would. The bloat that it entails and the dependence it creates upon the whims of Microsoft would not be a good thing either for Parallax or for its customers. I would urge Parallax to avoid it like the plague.

    -Phil
  • Roy ElthamRoy Eltham Posts: 3,000
    edited 2011-05-05 16:30
    Phil,
    You obviously don't know much about .NET. It entails far less bloat in actual deliverables (since the framework is installed on the system independently and shared) verses native applications. The CLR/CIL is managed by a standards group and you are not subject to MS whims if you use it. If you (for example) use .NET 3.0 for your application it will continue to work just fine no matter what Microsoft does with newer versions. This holds true for any existing version. It'll also work across platforms that have support for that version (via Mono and other implementations).

    Building a tool in C# (for example) using .NET would be rapid, and afford far more features and benefits to the users as well as Parallax than choosing a native route. Urging Parallax to avoid it like the plague is urging them to choose a path that will take longer, require more resources (that are harder to find), and provide fewer features in the end results. I think it is a serious mistake. One need only look at what pretty much every other commercial company is doing for application development to see the huge mistake it would be to avoid .NET like the plague.

    Roy
  • Bill HenningBill Henning Posts: 6,445
    edited 2011-05-05 17:09
    Hi Ken,

    This is great news, I'll be glad to help on a design/advisory level; I've already started some work on a much improved LMM for the Prop2 based on the little information I have.

    Once I have working silicon (or at least a good emulation) with full information about all the architectural PASM changes I can do a lot better.

    FYI - I did not email this or PM as you requested as I seem to be having some problem getting emails through to you recently - can you check your spam filter? I send from a gmail address. Or it could just be that you have not gotten to them yet... I know you are very busy with the launch!

    The first suggestion I have is have the code generator be very flexible, and clearly documented - that way as peoples experience with the P2 grows, it will be possible to generate even better code.

    The good news is that even a primitive LMM2 will be able to do about 20 LMMIPS based just on clock speed improvement and eight clock hub access!
    Ken Gracey wrote: »
    Hey there,

    Parallax Semiconductor is interested in assembling a small team of developers familiar with the GCC compiler suite and perhaps the Eclipse plug-in. The objective is create an open-source cross-platform compatible compiler suite for Propeller 2 (code name) supporting Spin, C/C++ and possibly other languages. A GUI such as Eclipse would be customized to make use of the GCC optimizer.

    This is the approach we envisioned:

    (a) Identify 4-5 qualified developers and a few with GCC/Eclipse/Propeller user experience.
    (b) Invite them into a discussion with some of our team (including Chip of course) via webinar
    (c) Identify the scope of work, roles, and build a small team to do the development.

    Speaking with Chip about how Propeller 2's design could be used with LMM is very encouraging, but this insight must be conveyed to those with experience working with these tools. We aren't aiming for a committee-based approach with a strange outcome, but one that empowers developers to work together with some pretty clear roles and complimentary functions.

    This forum has many of the right people, just to name a couple with potential interest like Bill Henning, jazzed, David Betz, and RossH. To you this topic is likely far from new and you may wonder what takes us so long.

    Don't take my knowledge of this subject too seriously since I'm learning, but feel free to place a bet on the fact that we're going to come to a conclusion about proceeding fairly quickly. Should we proceed I will ensure that the team has coordination, incentive and delivery according to a schedule. Of course the effort would be open as well.

    This effort does not eliminate an expansion of our current Windows Propeller Tool to support Propeller 2. We will need these tools to program the Propeller before any GCC efforts are completed. Some customers may not be interested in a GCC set of tools.

    You are welcome to use this thread to comment or share ideas.

    If you are interested in possibly being part of our team then please contact me via e-mail. Provide a bit of background including complete contact information.

    In a week or so I would organize and plan a meeting with Chip. Often that's entertaining on it's own.

    Sincerely,

    Ken Gracey
  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2011-05-05 19:44
    Roy Eltham wrote:
    Phil, You obviously don't know much about .NET. ...
    Roy, I seem to have touched a raw nerve, but I'll happily concede that assertion. What little I know about .NET is that it requires a 50+ megabyte installation on the users' part before they can even begin using programs written for it. To my thinking, this is a barrier for customers who just want to download software and use it, as they can with the current IDE -- notwithstanding its documented shortcomings. And, BTW, when I query Google with ".NET" bloatware, I get more than 350K hits, so I know I'm not alone in my uninformed views. As a supplier of dev tools, Parallax needs to understand that customer perceptions will always trump whatever facts may be contrary to those preconceived notions.

    -Phil
  • Roy ElthamRoy Eltham Posts: 3,000
    edited 2011-05-05 20:34
    Phil,
    You only have to install something for .net if you are on XP. It's there by default for Vista and Win7, and Mono is quite a bit smaller for the Mac and Linux. Also, when you google something like that without the + in front of the bloatware word, you'll get a lot of hits that don't include the term bloatware. Also, most people running XP and that keep it up to date will also have .net already installed. There are literally millions of .NET apps, so it's likely that most customers already have it. In fact, it's likely you are one of the very few Windows users that doesn't have it installed. :)

    It's also pretty trivial to get whatever .NET stuff the user needs installed as part of your installation process.

    Roy
  • tdlivingstdlivings Posts: 437
    edited 2011-05-05 20:57
    I hope the propellent.dll is maintained and done again for Prop II.
    I think the concept of the propellent.dll for Windows platform and something equivalent for other platforms is the key to creating IDE's for each platform.
    Parallax cannot do an IDE for every platform but I think they need to control the code generation
    part for there own sanity. Parallax could reduce their software effort to producing and testing the
    individual propellent.dll or API's that an expert in any given platform could wrap an IDE around using
    each platforms bell's and whistles and glitz. I know a lot like the idea of open source C code but I am
    not sure you want to many cooks in the kitchen, maybe it is the only way to cover everyone.

    It is a project of it's own to decide what should be in the dll or api so an IDE could be created using it.

    GCC/Eclipse good that you picked one, they all have up sides and down sides and you have to
    start somewhere. I think I read awhile back from Leon I think, that Micochip uses that combination and
    that would be a sales point for your new parallaxsemiconductor to be doing something similar.

    I cannot help with GCC/Eclipse I am a Delphi person .

    Good Luck
    Tom
  • LeonLeon Posts: 7,620
    edited 2011-05-05 22:19
    Microchip is using NetBeans rather than Eclipse for their new cross-platform IDE. It has several advantages over the latter.
  • Erik FriesenErik Friesen Posts: 1,071
    edited 2011-05-06 04:18
    I think NetBeans has some potential, the editor is quite good, at least in my use of mplab X. It seems that it is more capable in terms of embedded integration, at least to me. I suppose it would be too late to change though...
  • LeonLeon Posts: 7,620
    edited 2011-05-06 05:57
    That's why Microchip chose it over Eclipse, and to differentiate them from the competition which mainly uses Eclipse. They also got a great deal of support from Oracle. The current version of NetBeans needed some hacking to make it suitable for MCU development, so it would involve a lot of work for Parallax. The next version should work "out of the box", though. The user interface is much "cleaner" than Eclipse, making it easier to use.

    Interestingly, Atmel, after saying that their new AVR Studio IDE would use Eclipse, surprised everybody by choosing MS VisualStudio, and got a lot of stick because it isn't cross-platform. It isn't bad, though.

    My favourite IDE is Rowley CrossStudio. Rowley is a tiny company, but CrossStudio is superb. It's cross-platform, and was written using Qt. I very much doubt if they will supply it to anyone else, though.
  • Chris SavageChris Savage Parallax Engineering Posts: 14,406
    edited 2011-05-06 10:01
    BTW, when I query Google with ".NET" bloatware, I get more than 350K hits, so I know I'm not alone in my uninformed views. As a supplier of dev tools, Parallax needs to understand that customer perceptions will always trump whatever facts may be contrary to those preconceived notions. -Phil

    Phil,

    I just wanted to comment that we do understand the customer perceptions...it is those very perceptions that keep some customers from using the Propeller chip in their designs or even giving it a second look. I'm not taking sides on the main topic of this thread, but I do know Roy knows what Parallax knows about customer perception because he runs the Savage Circuits IRC channel which has, in the past had engineer guests who have voiced their opinions on the Propeller chip. The common theme? Most people have very bad misconceptions about the Propeller. A few engineers thought it was only programmed in BASIC. Others thought it was useless because it had no interrupts (without the benefit of understanding that multiple cores supcedes that need). And a host of other things that were simply wrong. It's up to all of us as a supporting community to make sure that we don't spread the misinformation and try to correct it when possible. It is the clearest way to ensure a successful future for our favorite microcontroller.
  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2011-05-06 10:28
    Chris or Roy,

    Just so I'm clear on the facts: how necessary is .NET to the implementation of a GCC/Eclipse dev platform? Are they separable or hopelessly intertwined? How compatible is Mono on other platforms with .NET in Windows? Do programs have to be tweaked for each new platform? Can it run under any desktop manager that the user chooses (e.g. Gnome, KDE, XFCE), or is it tied to one? Does it have to run under X on OS/X, or is it a native OS/X platform? Will it run on PowerPC Macs?

    Thanks,
    -Phil
  • Sal AmmoniacSal Ammoniac Posts: 213
    edited 2011-05-06 10:49
    Those who don't understand .NET are bound to re-implement it over and over and over...
  • David BetzDavid Betz Posts: 14,516
    edited 2011-05-06 10:57
    Chris or Roy,

    Just so I'm clear on the facts: how necessary is .NET to the implementation of a GCC/Eclipse dev platform? Are they separable or hopelessly intertwined? How compatible is Mono on other platforms with .NET in Windows? Do programs have to be tweaked for each new pl;atform? Can it run under any desktop manager that the user chooses (e.g. Gnome, KDE, XFCE), or is it tied to one? Does it have to run under X on OS/X, or is it a native OS/X platform? Will it run on PowerPC Macs?

    Thanks,
    -Phil

    GCC itself does not use .NET and Eclipse uses Java as does NetBeans I believe.
  • Heater.Heater. Posts: 21,230
    edited 2011-05-06 12:37
    This announcement is excellent news.

    Can't resist a couple of comments though. As you may know I brought GCC to the Propeller in my cheapskate way by adopting the ZPU GCC target and creating a ZPU VM for the Prop. So whilst I'm no compiler developer I have been reading around these things.

    1) There seems to be a growing movement among open source compiler developers to move away from GCC and replace it with the Clang compiler front end and the LLVM (Low Level Virtual Machine) back end. Both of which are now included in the LLVM releases which are sponsored by Apple and released under a free software license. Of course the final generated code in the Propeller target would be real LMM PASM.

    A good place to start researching Clang/LLVM is the wikipedia article where we read:
    GCC is a large and somewhat cumbersome system to develop; as one long-time GCC developer put it, "Trying to make the hippo dance is not really a lot of fun."
    http://en.wikipedia.org/wiki/Low_Level_Virtual_Machine

    2) I'm not much happy with Eclipse. It's big and slow and complicated to use. It gives me headaches when I use it for Android development or for the chip from the X... company. Eclipse is not recomended for the beginner/casual/hobbyist user. But I guess it is popular amoung proffessional developers and is here to stay. Luckily there is the LLVM plugin for eclpse already: http://code.google.com/p/llvm4eclipsecdt/

    3) Please can we stay away from .NET. On Linux we already have the possibility of Eclipse in Java. Why would we want yet another gigantic framework? .NET would probably tie the thing to Windows. Not good. There are plenty of Linux and Mac users out here. And what happens when I want to develop on an ARM or other CPU some day?

    4) This development is truly amazing. Remember that when the Propeller chip came out the LLM technique had not been invented. The whole concept of a C compiler for PASM was considered impossible. I remember the LMM idea being announced for the first time by Billing Henning. And now we have Parallax basing some serious work on that idea.

    5) Does this project replace the previously announced proposal for a "not quite C" compiler for the Propeller?

    Sadly I don't really have the skills to contribute to this effort but will follow it enthusiastically.
  • Heater.Heater. Posts: 21,230
    edited 2011-05-06 12:43
    Sal Ammoniac,
    Those who don't understand .NET are bound to re-implement it over and over and over...
    I can't work out if you are joking or not. Is that a twisted version of the famous statement by Henry Spencer "Those who don't understand UNIX are doomed to reinvent it, poorly."

    You know of course that .Net is basically a reinvention of Java.
  • Heater.Heater. Posts: 21,230
    edited 2011-05-06 12:51
    Phil,
    how necessary is .NET to the implementation of a GCC/Eclipse dev platform? Are they separable or hopelessly intertwined? How compatible is Mono on other platforms with .NET in Windows? Do programs have to be tweaked for each new platform? Can it run under any desktop manager that the user chooses (e.g. Gnome, KDE, XFCE), or is it tied to one? Does it have to run under X on OS/X, or is it a native OS/X platform? Will it run on PowerPC Macs?

    Fear not.
    .NET is completely irrelevant to GCC and Eclipse.
    GCC has been around for a decade or more before .NET was ever dreamed of.
    Eclipse is implemented in Java.
    GCC can of course be used from the command line or with other IDE's.
    GCC runs on many platforms. Of course it has to be compiled for them but that is bot such a big deal.
    Java runs on many platforms.
    None of them rely on any desktop manager. Java/Eclipse work all over the place.

    No idea about PowerPC MAC.
Sign In or Register to comment.