Of course. We just don't have an actionable plan and money to make it happen.
Does that mean there is no budget, or that the budget sign off, is waiting on the Silicon test outcomes ? ( due when ? - must be closer )
A silicon revision gets first dibs on any budget....
But you do plan on having C tools at some point, right? Just like there is not a concrete plan for Spin tools for the Prop2, but you do plan on supporting Spin, correct?
Dave: Have you decided if you will improve p2asm to the point where it can handle the output of GCC2? That would eliminate the need to port binutils. You have a linker as well, right?
The combination of GCC1 and s2pasm produces code similar to what GCC2 would produce. I still need to add support for the various data sections and for the .balign pseudo-op in p2asm. These are currently converted into PASM code by s2pasm. I do have a linker, but it is very simple. It only links objects into hub memory. The cog portion of the program is a pre-assembled chunk of code that is just copied into the binary image. Of course, that can be improved so that cog objects could be linked also.
I think that a full GCC implementation should be done for the P2 with binutils and all. However, maybe it can be done in stages by using p2gcc as a basis, and slowly replacing components over time.
The combination of GCC1 and s2pasm produces code similar to what GCC2 would produce. I still need to add support for the various data sections and for the .balign pseudo-op in p2asm. These are currently converted into PASM code by s2pasm. I do have a linker, but it is very simple. It only links objects into hub memory. The cog portion of the program is a pre-assembled chunk of code that is just copied into the binary image. Of course, that can be improved so that cog objects could be linked also.
I think that a full GCC implementation should be done for the P2 with binutils and all. However, maybe it can be done in stages by using p2gcc as a basis, and slowly replacing components over time.
I just wanted to avoid the wasted effort of writing yet another P2 assembler if one that we already have would do. I suppose we need more than a simple linker though.
But you do plan on having C tools at some point, right? Just like there is not a concrete plan for Spin tools for the Prop2, but you do plan on supporting Spin, correct?
We certainly desire C tools for the Propeller 2, but we might not be in a position to pay for it this time. Of course we'd be thrilled to see a community effort get underway.
But you do plan on having C tools at some point, right? Just like there is not a concrete plan for Spin tools for the Prop2, but you do plan on supporting Spin, correct?
We certainly desire C tools for the Propeller 2, but we might not be in a position to pay for it this time. Of course we'd be thrilled to see a community effort get underway.
Ken Gracey
I would be willing to put some effort into a community project to build a P2 version of GCC. I don't want to be the only one working on it though. Any other takers?
Edit: Also, what level of support could we expect from Parallax? P2 development boards? FPGA boards in advance of silicon? I already have an FPGA board so I'm not asking that for myself.
But you do plan on having C tools at some point, right? Just like there is not a concrete plan for Spin tools for the Prop2, but you do plan on supporting Spin, correct?
We certainly desire C tools for the Propeller 2, but we might not be in a position to pay for it this time. Of course we'd be thrilled to see a community effort get underway.
Ken Gracey
I would be willing to put some effort into a community project to build a P2 version of GCC. I don't want to be the only one working on it though. Any other takers?
Edit: Also, what level of support could we expect from Parallax? P2 development boards? FPGA boards in advance of silicon? I already have an FPGA board so I'm not asking that for myself.
I'd imagine anyone developing software, gets to the front of the queue for very early silicon. Silicon can't be far off... and the Errata size there, will be key.
There seems to be quite a bit of P2 software around already, but some of it is more hidden that others.
Maybe a web-page/table of what flows exist already, and what part of those are being improved, would help avoid duplication, and avoid blind-spots ?
I did a trawl for Python Assemblers etc, and that did not find much of what would be called 'classic' Assembler/link flows, but it did uncover some interesting use of simulation.
A number of the packages I looked at, had simulators built in, and were able to run verification tests on the software.
I'll try and find an example link
I might be interested in helping out on a LLVM/Clang port to the Prop2. From looking at that in the past it seems like that would be easier than GCC. Last I looked the code for LLVM was cleaner and better structured.
I might be interested in helping out on a LLVM/Clang port to the Prop2. From looking at that in the past it seems like that would be easier than GCC. Last I looked the code for LLVM was cleaner and better structured.
That is likely. Have you worked with LLVM before? I've taken a quick look at it but it seems to me it has a steep learning curve. Do you feel like you could lead an LLVM effort?
The code base for LLVM is large and has a learning curve, yes, that is true. But it's at least sensibly organized.
Skimming that tutorial, I think one of the prerequisites might be to already have a working assembler that takes the gas format, though. But there is a section on a machine code emitter, so I'm not clear about the interaction there.
Oh, looks like the emitter is for JIT targeting. Not sure applicable here, really. So yes, first step is to have an assembler, I think. This tutorial seems somewhat relevant, though old so probably out of date.
I'd also have to get permission from my employer before contributing.
What?
Are you really saying that your employer controls what you can think, say and do? And the code code you write in your own free time?
I don't believe it.
If it is true, it's time to find a new job.
Well, actually, yes it is true, you better believe it ... if there is overlap between what you are paid to do at work, and what you release elsewhere, you do need to be very careful.
But you do plan on having C tools at some point, right? Just like there is not a concrete plan for Spin tools for the Prop2, but you do plan on supporting Spin, correct?
We certainly desire C tools for the Propeller 2, but we might not be in a position to pay for it this time. Of course we'd be thrilled to see a community effort get underway.
Ken Gracey
I would be willing to put some effort into a community project to build a P2 version of GCC. I don't want to be the only one working on it though. Any other takers?
Edit: Also, what level of support could we expect from Parallax? P2 development boards? FPGA boards in advance of silicon? I already have an FPGA board so I'm not asking that for myself.
Parallax support? As much as we can do! Tools, communication with Jeff and Chip, FPGAs and actual silicon are all the kinds of things we'd expect to provide to whoever participates in the tools.
P2 should have a different, better outcome than P1 in some ways. Specifically, we need more community to grow the interest.
I might be interested in helping out on a LLVM/Clang port to the Prop2. From looking at that in the past it seems like that would be easier than GCC. Last I looked the code for LLVM was cleaner and better structured.
Well, I guess that's a decision that will have to be made right up front. I have no experience with LLVM and I'm not sure I have time to get up to speed on it quickly. If we could find someone who already knows it then he/she could help us along. I agree it could be a better way to go than GCC though. We just need the right person or people who know LLVM to lead the effort.
David, Dave and other compiler gurus: as time gets closer and we have working P2s, we'll connect with you and talk about the compiler options you're discussing. We're very interested, not as knowledgeable as you, but wish to be involved and supportive of the effort.
So, around late October / November we'll probably be ready to join in.
David, Dave and other compiler gurus: as time gets closer and we have working P2s, we'll connect with you and talk about the compiler options you're discussing. We're very interested, not as knowledgeable as you, but wish to be involved and supportive of the effort.
So, around late October / November we'll probably be ready to join in.
I can see a risk element a round delays until "we have working P2s", but the P2 code runs now on FPGA platforms, and that's all that's needed for compiler work.
The tool flows that exist now do work, just not in a full coverage sense.
Looking at the whole tool chain, something like this attracts attention, as it includes a Debug Capability. SASM - simple crossplatform IDE for NASM, MASM, GAS and FASM assembly languages https://github.com/Dman95/SASM (.cpp source)
Below is a screen capture, showing step-debug on their supported x86 ASM, with memory watch and register view panes.
My understanding is that if you did do LLVM/Clang to get C/C++, you'd basically get most/all the other languages (that have LLVM front ends or whatever) as well.
I will help as/when I can. I think I need to do OpenSpin for P2 first.
Parallax support? As much as we can do! Tools, communication with Jeff and Chip, FPGAs and actual silicon are all the kinds of things we'd expect to provide to whoever participates in the tools.
P2 should have a different, better outcome than P1 in some ways. Specifically, we need more community to grow the interest.
On the Eval Board & Debug Tools front, this is recent news from 'Arduthing' land, and Microchip...
Has as local host/bridge a 300MHz SAME70 ARM, which has a HS-USB link to PC.
That's nice to have, but maybe at $7.60/3k, the SAME70 is an overkill... ?
For Python downloader speed tests using a more affordable CP2102N, ($1.15/1k) see the Python P2 Loader Thread
The CP2102N looks to be able to config to 6Mbd or 8Mbd in half duplex, with some rules.
My understanding is that if you did do LLVM/Clang to get C/C++, you'd basically get most/all the other languages (that have LLVM front ends or whatever) as well.
I will help as/when I can. I think I need to do OpenSpin for P2 first.
That's true of GCC as well. GCC stands for the "GNU Compiler Collection". We don't have all of the GCC languages on the P1 because no one took the time to port the runtime code. I think the compiler can probably generate code for other languages.
I can see a risk element a round delays until "we have working P2s", but the P2 code runs now on FPGA platforms, and that's all that's needed for compiler work.
This is true and work could start on this immediately if we can agree on an approach and have enough people. If we're going to use GCC we need to write a P2 code generator for the compiler as well as adding P2 support to GAS and LD. The debugger could come later. Luckily, it doesn't seem that we need to build a loader this time around since several exist already. At least one should probably be updated to understand the ELF executable format though.
Heater, it is not the claim at issue. The employer would lose.
What is at issue is the litigation.
Ah yes, sometime I forget there is a predominately American audience here. The land of the Free. Where the guy with the most money to pay the lawyers wins. If not by winning the argument but by starving the opponent to death.
The more authoritarian ones know that and use it as leverage to more completely own and lock in people they are paying.
Back in the day, when Galileo was making his telescope, the best glass in the world was made on some island in Greece. The guys that worked there were not allowed to leave the island. In case the secret of the glass making process escaped.
One might hope the world has moved on since then. Seems not.
Anyway, over here in Europe no employer could dream of such power.
Yes, freedom has wrinkles and ramifications way too many have yet to more fully consider.
I once had a potential employer make me a very compelling job offer. We got to the side projects part of the discussion. They said they would distribute and basically own software I had written and was selling prior.
Their reason was trade secrets.
My response ended that possibility:
One, my software does the "secret" tasks better. Two, they can take that as firm assurance I would not be shipping any of their IP. Three, I already know what the secrets are, meaning they already have a problem.
I detailed one as an example and let them know they were free to buy a license to evaluate my alternative.
Was 20 something and brash at the time. That company still really hates me. The whole thing was in the very early 90's. Talk about a grudge!
I think that can create both P1 and P2 flows, so that would/could mean users can support ROM.Spin2008 for P1 only legacy designs, and Spin2018 syntax, on both P1 and P2 ?
Comments
Does that mean there is no budget, or that the budget sign off, is waiting on the Silicon test outcomes ? ( due when ? - must be closer )
A silicon revision gets first dibs on any budget....
I think that a full GCC implementation should be done for the P2 with binutils and all. However, maybe it can be done in stages by using p2gcc as a basis, and slowly replacing components over time.
We certainly desire C tools for the Propeller 2, but we might not be in a position to pay for it this time. Of course we'd be thrilled to see a community effort get underway.
Ken Gracey
Edit: Also, what level of support could we expect from Parallax? P2 development boards? FPGA boards in advance of silicon? I already have an FPGA board so I'm not asking that for myself.
I'd imagine anyone developing software, gets to the front of the queue for very early silicon. Silicon can't be far off... and the Errata size there, will be key.
There seems to be quite a bit of P2 software around already, but some of it is more hidden that others.
Maybe a web-page/table of what flows exist already, and what part of those are being improved, would help avoid duplication, and avoid blind-spots ?
I did a trawl for Python Assemblers etc, and that did not find much of what would be called 'classic' Assembler/link flows, but it did uncover some interesting use of simulation.
A number of the packages I looked at, had simulators built in, and were able to run verification tests on the software.
I'll try and find an example link
There is a tutorial for writing a new backend: https://llvm.org/docs/WritingAnLLVMBackend.html
The code base for LLVM is large and has a learning curve, yes, that is true. But it's at least sensibly organized.
Skimming that tutorial, I think one of the prerequisites might be to already have a working assembler that takes the gas format, though. But there is a section on a machine code emitter, so I'm not clear about the interaction there.
https://www.embecosm.com/appnotes/ean10/ean10-howto-llvmas-1.0.html
Are you really saying that your employer controls what you can think, say and do? And the code code you write in your own free time?
I don't believe it.
If it is true, it's time to find a new job.
Well, actually, yes it is true, you better believe it ... if there is overlap between what you are paid to do at work, and what you release elsewhere, you do need to be very careful.
Perhaps if there is some "secret sauce" in what you are doing, maybe some business secrets, then yes I would expect ones employer to be concerned.
We are talking about a code generator for an Open Source compiler here. For a processor the employer has no doubt never heard of.
No way does any employer have a claim on that.
What is at issue is the litigation.
The more authoritarian ones know that and use it as leverage to more completely own and lock in people they are paying.
Parallax support? As much as we can do! Tools, communication with Jeff and Chip, FPGAs and actual silicon are all the kinds of things we'd expect to provide to whoever participates in the tools.
P2 should have a different, better outcome than P1 in some ways. Specifically, we need more community to grow the interest.
Ken Gracey
So, around late October / November we'll probably be ready to join in.
Ken Gracey
The tool flows that exist now do work, just not in a full coverage sense.
Looking at the whole tool chain, something like this attracts attention, as it includes a Debug Capability.
SASM - simple crossplatform IDE for NASM, MASM, GAS and FASM assembly languages
https://github.com/Dman95/SASM (.cpp source)
Below is a screen capture, showing step-debug on their supported x86 ASM, with memory watch and register view panes.
I will help as/when I can. I think I need to do OpenSpin for P2 first.
https://store.arduino.cc/usa/arduino-uno-wifi-rev2
This now has a full on-board Debug USB interface, so will work in Atmel Debuggers to Single Step / Break / Watch - and a new AVR, the Mega4809.
and Microchip has a new $15 Debug Module - MPLAB Snap
http://www.microchip.com/developmenttools/ProductDetails/PartNO/PG164100
https://www.microchipdirect.com/product/search/all/PG164100
Has as local host/bridge a 300MHz SAME70 ARM, which has a HS-USB link to PC.
That's nice to have, but maybe at $7.60/3k, the SAME70 is an overkill... ?
For Python downloader speed tests using a more affordable CP2102N, ($1.15/1k) see the Python P2 Loader Thread
The CP2102N looks to be able to config to 6Mbd or 8Mbd in half duplex, with some rules.
One might hope the world has moved on since then. Seems not.
Anyway, over here in Europe no employer could dream of such power.
Yes, freedom has wrinkles and ramifications way too many have yet to more fully consider.
I once had a potential employer make me a very compelling job offer. We got to the side projects part of the discussion. They said they would distribute and basically own software I had written and was selling prior.
Their reason was trade secrets.
My response ended that possibility:
One, my software does the "secret" tasks better. Two, they can take that as firm assurance I would not be shipping any of their IP. Three, I already know what the secrets are, meaning they already have a problem.
I detailed one as an example and let them know they were free to buy a license to evaluate my alternative.
Was 20 something and brash at the time. That company still really hates me. The whole thing was in the very early 90's. Talk about a grudge!
Lol
I like the changes in Spin2, but also have a lot of Spin1 code and understanding, so I'm not 100% sure which version of Spin would be best for me...
But, I imagine your plan is to convert Spin2, once it becomes available.
Maybe that's referring to this ? See EXTENSIONS area - some of those came from Chip's musings a while back.
https://github.com/totalspectrum/spin2cpp
I think that can create both P1 and P2 flows, so that would/could mean users can support ROM.Spin2008 for P1 only legacy designs, and Spin2018 syntax, on both P1 and P2 ?