Operating System Interest Group for XMOS devices (XOSIG)

Archived group discussions. Please post all group discussions under their relevant XCore group page.
jhrose
Active Member
Posts: 40
Joined: Mon Dec 14, 2009 11:18 am

Post by jhrose »

Hei,
I'm having trouble opening the PDF
Hmm, it downloads and opens okay for me. It can also be had from
http://www.jhrose.dial.pipex.com/xmos/PiXC_0_2.pdf.
The PDF is exported from OpenOffice 3.1, and I use Adobe Reader 9.3.

I've also printed another PDF through PDFill tools and uploaded that to http://www.jhrose.dial.pipex.com/xmos/PiXC_0_2b.pdf if you want to try that.

Or if you have OpenOffice I can put the source on my website.


User avatar
Folknology
XCore Legend
Posts: 1274
Joined: Thu Dec 10, 2009 10:20 pm
Contact:

Post by Folknology »

Thanks Julian

http://www.jhrose.dial.pipex.com/xmos/PiXC_0_2.pdf.

Works for me, will be perusing through it

Regards
Al
User avatar
Folknology
XCore Legend
Posts: 1274
Joined: Thu Dec 10, 2009 10:20 pm
Contact:

Post by Folknology »

This is excellent I like the ethernet example, gonna need to read it a few times more..
User avatar
Folknology
XCore Legend
Posts: 1274
Joined: Thu Dec 10, 2009 10:20 pm
Contact:

Post by Folknology »

Julian what would it take to make something like PiXC real?

Does it require something from Xmos themselves or is it just a compiler enhancement project to make it real.

What is actually involved and what are the obstacles if there are any.

Just asking, I would love to see this happen..
jhrose
Active Member
Posts: 40
Joined: Mon Dec 14, 2009 11:18 am

Post by jhrose »

Hei,

Thanks for the helpful feedback as always.
what would it take to make something like PiXC real?
It will take several things to make something like PiXC happen. Off the cuff: in principle PiXC requires additions to the compiler - no changes are need to the XS-1 core. While I don't think these changes to the compiler are very large, they are neither small (e.g. revisions to the memory model) and with care this could perhaps be made smaller. PiXC does make significant changes to the XC language, which would need the involvement of XMOS. And to get PiXC right, so e.g. it could be ported to other target processors too, it would be beneficial to have an academic partner who knows Pi (e.g. Kent, Cambridge) involved in the language additions and semantics together with XMOS.

The first step is to engage the interest of xmos + academic partner in the idea - it is not really worth doing much more without this nod. Then we could clarify the ideas and start to draft a formal syntax. I would have thought realising Pi in a programming language should be enough to generate academic interest. Getting xmos' interest probably requires a commercial incentive - that PiXC would attract more custom then XC alone.

From my viewpoint PiXC remains a stepping stone to a distributed operating system, running in limited core memory...
User avatar
jonathan
Respected Member
Posts: 377
Joined: Thu Dec 10, 2009 6:07 pm
Contact:

Post by jonathan »

In principle PiXC requires additions to the compiler - no changes are need to the XS-1 core.
Therefore, access to compiler source would make it possible for a skilled programmer with some language/compiler background to make these additions.
PiXC does make significant changes to the XC language, which would need the involvement of XMOS.
The right path for the development of PiXC is not to try to come up with a compelling case for why XMOS would want to convert XC into PiXC, or even why there might be commercial interest in it. Both of these will be difficult.

The right path is to work out how you can get enough access to the XC compiler to branch PiXC out from it. I suspect the XC LLVM port is therefore your target.
And to get PiXC right, so e.g. it could be ported to other target processors too, it would be beneficial to have an academic partner who knows Pi (e.g. Kent, Cambridge) involved in the language additions and semantics together with XMOS.
I know there is interest within Kent and I can dig around inside Cambridge if you want me to. Who specifically were you interested in? Robin Milner? Peter Sewell? Alan Mycroft?

Realistically someone will need to take a strong lead to make this happen.

1. Gain access to the source of an XC compiler - on which PiXC can be built
2. Get a team of 3-4 (very knowledgeable) people to agree on the PiXC specification
3. Find 1-2 programmers with some language/compiler experience who have the time (I'm thinking academic/research assistant etc) and skills to create PiXC as a branch of XC
4. Demonstrate what a cool language it is by chucking in plenty of example applications
5. Demonstrate how to write programs that use PiXC and normal XC together

I am more than happy to help to make this a reality.
Image
jhrose
Active Member
Posts: 40
Joined: Mon Dec 14, 2009 11:18 am

Post by jhrose »

Hei,

Thanks Jonathon for the very positive feedback again.

From all that you write, I think PiXC would best be served if it is extracted from XOSIG and set up as a new independent project. The project could start with PiXC 0.2 and freely re-develop it.

I would happily support you where I can, as a contributor, reviewer and antagonist, but the project would have a higher profile with you, Jonathon, as project owner. And with PiXC being developed, XOSIG could start to design a distributed OS and provide case studies for PiXC.

Your suggestion to develop the XC LLVM port is good. PiXC should be a version controlled branch from the main XC trunk (is it subversion you use?), so its base is kept current. Added:On the point of LLVM license http://llvm.org/docs/FAQ.html#license, availability of the source code for PiXC is to be made available at a well-known place, like xcore-exchange for example.

From your 5-pointed list it seems the KRoC team would be able to fulfil the project lifetime well, given funding. Do you think Peter Welch would be willing to take the strong lead? Or help to refine PiXC 0.2 into something we can take forwards?

With a bit of prior refinement, I do think the PiXC language and its implementation need to be steered by an independent Pi-semantics expert for several reasons. One of which is a desire to avoid something like the complex process-based semantics given to channels in Occam-pi (channel bundles and such), not meaning to take anything away from the quality work done on Occam-pi. From the Cambridge website, Robin Milner is semi-retired and more interested in bi-graphs these days, which do encompass Pi; but maybe Peter Sewell or Alan Mycroft could afford more interest in a Pi implementation. There is also David Walker at Oxford. But if none of these leading experts would be interested or available, we could try specialists such as Jon Kerridge at Napier who was once my external supervisor and a good mentor, and is well-published on WOTUG; or there is Matthew Hennessy at Sussex, or researchers at Edinburgh to try. Any thoughts?
jhrose
Active Member
Posts: 40
Joined: Mon Dec 14, 2009 11:18 am

Post by jhrose »

Hei,

You can find XOSIG IndexOfIdeas version 0.3 and PiXC version 0.2.1 on the Group thread. It repositions PiXC as a general purpose programming language, ready to be spun out of XOSIG as a standalone project, and briefly introduces a dynamic operating system PiXOS which will be implemented in PiXC. A full description of PiXOS will follow later.
Attachments
PiXC 0_2_1.pdf
(254.29 KiB) Downloaded 798 times
PiXC 0_2_1.pdf
(254.29 KiB) Downloaded 798 times
XOSIG IoI 0_3.pdf
(138.13 KiB) Downloaded 736 times
XOSIG IoI 0_3.pdf
(138.13 KiB) Downloaded 736 times
jhrose
Active Member
Posts: 40
Joined: Mon Dec 14, 2009 11:18 am

Post by jhrose »

XOSIG IoI 0.3.1 which adds an entry for Bianco's FreeRTOS XS-1 port.
Attachments
XOSIG_IoI_0_3_1.pdf
(144.07 KiB) Downloaded 809 times
XOSIG_IoI_0_3_1.pdf
(144.07 KiB) Downloaded 809 times
jhrose
Active Member
Posts: 40
Joined: Mon Dec 14, 2009 11:18 am

Post by jhrose »

Hei,

I've added a description of protocols in PiXC 0.3. Notices of any bugs spotted or general feedback is welcome.
PiXC 0_3.pdf
(262.63 KiB) Downloaded 899 times
PiXC 0_3.pdf
(262.63 KiB) Downloaded 899 times
Locked