GCC / Eclipse and Propeller 2 - seeking developers
Ken Gracey
Posts: 7,401
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
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
Comments
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
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
I've sent you an email.
Ross.
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
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
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
@ 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
O.K. I didn't know that.
-dan
-Phil
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
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
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
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!
-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
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
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.
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.
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
GCC itself does not use .NET and Eclipse uses Java as does NetBeans I believe.
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:
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.
You know of course that .Net is basically a reinvention of Java.
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.