Fetching the latest programs, projects, and workspace data.
Cross-platform C#/F#/.NET runtime and tools
Showing 5 of 8 projects. Click any project card for scope, mentors, and proposal studio.
Mentors: Student: Anubhav
<p>Addin system of MonoDevelop/Xamarin Studio (<a href="http://www.monodevelop.com/download" target="_blank">http://www.monodevelop.com/download</a>) is very flexible and allow the developers to add or extend any feature in the IDE .CBinding addin allow the developers to use C/C++ for writing the solution. However, there are still many features that are missing, some of them are :-</p> <p>1) Ability of the CBinding to use compilers present on Windows (GCC/MSVC/MinGW32), this will also require support for CMake as that's the only project format CBinding currently has .</p> <p>2) Implement support and switching between various Toolchains available in CMake.</p> <p>3) Detect missing dependencies (libclang, CMake etc) and prompt the user to install them.</p> <p>4) Adding various refactoring features .</p> <p>There are many other things that can be done to make it even more better like improving project and file templates, improving code completion, adding a test suite etc . Since old "MD1" project system is no longer supported so it can also be removed.</p> <p>Main purpose of this proposal is to come up with an idea to implement some of these features and make changes to the existing ones.</p>
Mentors: Student: Armin Hasitzka
<p>Unlike proposed, I will evaluate Clang's ThreadSanitizer as well as the AddressSanitizer as these two sanitizers seem more pressing to the Mono community. First, I will look into ways to inject these sanitizers into the Mono runtime and get a feeling for the feedback that they provide. Depending on the feedback, I will then try to fix races / overflows myself or - at least - file bug reports and discuss those issues with the community. Besides working on the races and overflows themselves, I plan to write two articles for the website; one of the articles should explain using the ThreadSanitizer in combination with the Mono runtime and the other one should explain the AddressSanitizer.</p>
Mentors: Student: Mohit Mohta
<p>CppSharp is a tool and set of libraries which allows programmers to use C/C++ libraries with high-level programming languages (such as C#). It is a tool that takes C/C++ header and library files and generates the necessary glue to surface the native API as a managed API. Such an API can be used to consume an existing native library in your high-level code or add scripting support to a native codebase. The supported target languages at present are C# and C++/CLI. It can also be used as a library to parse native code into a syntax tree with a rich declaration and type information model. This, thus, demands a lot of improvements and maintenance tasks as per the feedback from the users over the course of time. So, I'll try to fix as many bugs as I can and add as many new useful features that I can.</p>
Mentors: Student: Alexander Efremov
<p>The goal is to replace Mono's BCL implementation of <strong>System.Threading.EventWaitHandle</strong>, <strong>System.Threading.Mutex</strong> and <strong>System.Threading.Semaphore</strong> synchronization primitives by CoreRT ones. This would allow us to get closer to .NET Core code quality and behaviour.</p> <p><strong>System.Threading.EventWaitHandle</strong> – class allows threads to communicate with each other by signaling and by waiting for signals. Event wait handles are wait handles that can be signaled in order to release one or more waiting threads. After it is signaled, an event wait handle is reset either manually or automatically.</p> <p><strong>System.Threading.Mutex</strong> – one of the synchronization primitive that is an implementation of synchronization mechanism for enforcing limits on access to a resource in an environment where there are many threads of execution.</p> <p><strong>System.Threading.Semaphore</strong> – one of the synchronization primitive used to control access to a common resource by multiple processes in a concurrent system such as a multiprogramming operating system.</p>
Mentors: Student: Daniel Calancea
<h4>When you think about it ccache is a simple feature, however we shouldn't underestimate it's power. This tool is very handy for improving waiting time and resource usage. Even if nowadays a lot of computational power and resources a simple tool like this can make a huge difference in big or even small projects. In my opinion this tool is a MUST in every compiler.</h4> <p>After looking at the tool that is available for C/C++ i can say for sure that we can implement this in Mono. Thanks to the deterministic inputs from Roslyn this won't be a pain in the back and we can simply port the libraries from C++ or make our own.</p>