How to contribute to Singularity ?

Mar 11, 2009 at 8:51 PM
I would like to know, if there is an open list of items available to contribute to Singularity? What would be the best way to contribute to Singularity? Also is there an opportunity to contribute somehow to Bartok which is used in this project?
Mar 14, 2009 at 1:03 PM
Edited Mar 14, 2009 at 1:13 PM

Hello krokas,

 

Yes, most CodePlex projects have an Issue Tracker section where the community may contribute to the project.

 

Singularity's RDK Issue Tracker resides on the CodePlex Web site at: http://singularity.codeplex.com/WorkItem/List.aspx

You will need to create a user account to post to the project.
To contribute to the Bartok compiler,
Microsoft Research Operating Systems Group developer Derrick Coetzee
is probably your first point of contact.

 

If you have compiler development experience,
you will likely have to get in touch with Galen Hunt
or the Advanced Compiler Technology Group at Microsoft.

 

Hope this Helps,

Richard

Mar 17, 2009 at 2:50 PM
I am not very interested in bug fixing. But contributing to really interesting things in Bartok would be interesting. I do have compiler development experience.
Mar 17, 2009 at 4:45 PM
And complexity of the task also does not matter for me. The more difficult it is the better.
Coordinator
Mar 20, 2009 at 12:29 AM
Hi krokas - I received your e-mail, apologies for the slow response to your post. Unfortunately, the source for the Bartok research compiler is not being made publically available, but if you're interested in compiler stuff, a future drop of the Singularity RDK will include source for the Sing# compiler (which compiles Sing# to MSIL). The best way to contribute to Singularity currently is via the "Upload Patch" option at:

http://singularity.codeplex.com/SourceControl/UploadPatch.aspx

Singularity is still being actively maintained, so we appreciate any contributions.
--
Derrick Coetzee
Microsoft Research Operating Systems Group developer

Mar 20, 2009 at 12:20 PM
Edited Mar 20, 2009 at 1:27 PM
Hi

Thank you for your reply. The idea to include source for the Sing# compiler in a future drop of the Singularity RDK is a very good one.

I do research in mathematics used in conversion of CIL to object /machine code. I have a lot of experience in JIT compilers and object code generation for various cpu architectures, including of course IA32 with all extensions, and ARM. Contribution to Bartok would be very useful for my research. The other projects like SharpOS, Cosmos have very limited support of CIL to object code transformation. I can guess that many tools used in the Singularity project are also written in CIL, so their source code is already almost there. I cannot of course and won't make any dissassembly of them without permission.

Coordinator
Mar 31, 2009 at 4:14 AM
Hi krokas - if you're looking for an open-source solution for generating machine code from MSIL, you may be interested in the Microsoft Shared Source CLI (Rotor), which you can find here:

http://www.microsoft.com/downloads/details.aspx?FamilyID=8c09fd61-3f26-4555-ae17-3121b4f51d4d&displaylang=en

This includes fjit, a simple JIT compiler for MSIL, which is documented in various Shared Source CLI documentation and books. Bartok is definitely a lot more sophisticated, but is unlikely to become publically available for the foreseeable future. I hope this helps.
--
Derrick Coetzee
Microsoft Research Operating Systems Group developer
Mar 31, 2009 at 3:15 PM
Edited Apr 12, 2009 at 12:20 PM
Hi dcoetzee. Thank you a lot for your reply. Both Rotor and Mono are not what I need. They are both technologically outdated and unsophisticated on todays technological standards. I know how JITing of Common Intermediate Language works, I have developed a JIT for CIL myself. What I am investigating theoretically, is if there is a way to build a backend for Singularity, that can replace Bartok? What is position of your team about this? I investigate to use libJIT for example and this project as a research startup http://code.google.com/p/libjit-linear-scan-register-allocator/ . Do you think it could be used for this task, that is build another backend for Singularity, replacing Bartok?
May 31, 2009 at 8:06 PM
Edited May 31, 2009 at 8:14 PM

I thought that the following information might be interesting to you.

There are benchmarks of .NET Framework. Mono, and a Portable.NET Just-In-Time compiler, which use libJIT Linear Scan Register Allocator 0.1.2.5+ at this link:

http://libjit-linear-scan-register-allocator.googlecode.com/files/benchmarks_of_libJIT_Linear_Scan_Register_Allocator_0.1.2.5%2B.pdf

At this link are diagrams how are connected various parts of libJIT Linear Scan Register Allocator:

http://libjit-linear-scan-register-allocator.googlecode.com/files/schemes_of_libJIT_Linear_Scan_Register_Allocator_0.1.2.5%2B.pdf

As you may see with libJIT library Portable.NET shows 26% better results in PNetMark than Mono 2.0, and 12,5% better than Mono 2.4.

Jun 13, 2009 at 8:28 AM
Edited Jun 13, 2009 at 8:48 AM

Hi

 

I will be participating at PLDI 2009 SRC (ACM Programming Language Design and Implementation, Student Research Competition) with my work "A Mathematical Apparatus for Aggressive Optimization of Register Allocation in a Library for Just-In-Time Compilation in Microsoft Common Intermediate Language Runtimes on Embedded Systems Software". The web page of this  conference is at http://www-plan.cs.colorado.edu/~pldi09/ . This conference will be held in Ireland, Dublin, Trinity College from 15 June to 20 June.

I think this might be a great opportunity to meet with other people, and discuss plans around using libJIT for machine code generation in Singularity. If somebody also will attend this conference, please let me know, so we may meet there.