The sire language and dynamic process creation

XCore Project reviews, ideas, videos and proposals.
User avatar
nieuwhzn
Member++
Posts: 26
Joined: Sat Dec 12, 2009 6:45 am

Post by nieuwhzn »

Is there a particular reason that the new features in sire do not just get incorporated in XC?
Sorry, looks like you have a lot of fun developing this, but I'm kind of opposed to the proliferation of programming languages.
Did manage to build sire (after upgrading bison and flex) and I'll see if I can run your programs on my XMP-64. Looks like the start of a real multi-processor OS.


User avatar
Jamie
Experienced Member
Posts: 99
Joined: Mon Dec 14, 2009 1:01 pm

Post by Jamie »

Is there a particular reason that the new features in sire do not just get incorporated in XC?
Sorry, looks like you have a lot of fun developing this, but I'm kind of opposed to the proliferation of programming languages.
Sire is purely a platform on which to demonstrate the process creation mechanism; it incorporates only a small set of features such as channel communication and threading (borrowed from CSP/occam/XC etc.) to do this. It's not intended to be a *new* language at all.

It might have been possible to incorporate process creation into the XC language/implementation but there are several reasons why this wasn't the best choice. Firstly, it would have probably been much more involved than integration with a simple bespoke compiler (plus, building the compiler was a very useful learning experience for me). Secondly, it is important when making performance measurements that the implementation is both defined and predictable in order to produce accurate results. As the XC runtime is undocumented this is not so.
Did manage to build sire (after upgrading bison and flex) and I'll see if I can run your programs on my XMP-64.
Let me know how you get on :)
User avatar
nieuwhzn
Member++
Posts: 26
Joined: Sat Dec 12, 2009 6:45 am

Post by nieuwhzn »

Thanks for the information, just:

"As the XC runtime is undocumented this is not so."

I don't understand this statement.


I'll definitely start using sire, the XC monolith approach is just too restrictive for what I want to do. Basically I was stuck with predefined tasks on the cores and passing data to be processed around. Dynamically creating processes is much more elegant but unfortunately also a bit more prone to inefficiencies and deadlocks.
User avatar
Jamie
Experienced Member
Posts: 99
Joined: Mon Dec 14, 2009 1:01 pm

Post by Jamie »

Thanks for the information, just:

"As the XC runtime is undocumented this is not so."

I don't understand this statement.
I just meant that without knowing exactly what's going on under the bonnet with XC, any performance measurements made could be inaccurate.
I'll definitely start using sire, the XC monolith approach is just too restrictive for what I want to do. Basically I was stuck with predefined tasks on the cores and passing data to be processed around.
Great, although like I mentioned at the beginning of this thread, its purely an experimental implementation so I can't make any guarantees about how it will hold up!
Dynamically creating processes is much more elegant but unfortunately also a bit more prone to inefficiencies and deadlocks.
I would be really interested to know what kind of programs you are trying to write where this is a real benefit to you. Could you elaborate at all?