Difference between revisions of "GSoC - Google's Summer of Code"

From Liberty Eiffel Wiki
Jump to navigation Jump to search
Line 89: Line 89:
   
 
= How can I participate =
 
= How can I participate =
First you should register to the [[Get_in_touch mailing list]]. Last you should add a page here in this wiki to present your project proposal and communicate the following:
+
First you should register to the [[Get_in_touch|mailing list]]. Last you should add a page here in this wiki to present your project proposal and communicate the following:
 
* your name and contact data
 
* your name and contact data
 
* your background (other projects you are/have been involved
 
* your background (other projects you are/have been involved

Revision as of 00:22, 12 February 2016

This year we as LibertyEiffel want to participate in Google's Summer of Code Program. On this site we collect idea for projects. But let's give it all in correct order:

What is the Google Summer of Code?

Summer of Code is Google's program to give students stipends for a 3 months programming task in an open source. Every participating student gets a mentor assigned (early birds might even have a chance to select ;-) who supports with his experience from the community.

When will all this happen?

The timeline is quite terse but the most important dates are application before 25th of March and free time between May 23 and August 23 to work on coding.

Why choosing LibertyEiffel for the Google Summer of Code?

LibertyEiffel is the GNU compiler for the programming language Eiffel. It is based on the academic project SmartEiffel but evolved with the scope of being usable to real world programs. Eiffel in general is a very nice object oriented programming language which includes the specification of the program's functionality within the code. This is nice for debugging but also a step to be able to prove the program correct.

What could I do?

We are open to your ideas, as we are convinced that you will perform best in case you what your heart burns for. Feel free to suggest a project on the mailing list an we will find a mentor or subtasks to add or remove to make it appropriate. In case you just want to do something great for LibertyEiffel you can choose from the following ideas.


Ideas

Windows Support

suggested by: ramack
summary: LibertyEiffel in theory is running several platforms, but recent development was limited to a GNU/Linux environment and for Microsoft Windows no compiler is known to work. Target is to integrate a free C compiler (e. g. PellesC), including necessary fixes to generate accepted C code, add missing implementations for plugins (exec, net), create an installer, run test suite on MS Windows.
difficulty: Easy
skills: Experience with C programming on Windows, basic Eiffel knowledge
potential mentors: ramack, Hans Zwakenberg
notes:

Eclipse integration

suggested by: ramack
summary: Integrate LibertyEiffel into Eclipse with Syntax highlighting, compilation (and parsing the output) and the sedb debugger
difficulty: Easy
skills: Java knowledge, Eiffel knowledge, experience with Eclipse (plugin development) would be good
potential mentors: ramack
notes:

Standard C11 conform C code

suggested by: ramack
summary: Make the LibertyEiffel compiler emit C11 compatible C code.
difficulty: Advanced
skills: Deep experience in C programming, basic Eiffel knowledge
potential mentors: ramack, Hans Zwakenberg
notes: can be extended to apply additional static checkers like pclint, MISRA rules, high C compiler warning levels

ECMA conformance

suggested by: ramack
summary: many ECMA features are already supported, implement the missing ones
difficulty: Advanced
skills: Deep Eiffel knowledge, willingness to dig into the ECMA standard document
potential mentors: ramack,Cadrian
notes: obviously test cases shall also be derived for the new features

EiffelTest-NG

suggested by: ramack
summary: Implement a new version of the tool eiffeltest, to execute the test suite
difficulty: None/Easy/Advanced/Hard/Unmanageable
skills: Good Eiffel knowledge, interest in Software testing
potential mentors: ramack,Cadrian
notes: the features should include: parallel test execution, time/progress monitoring and estimation, improved test status (ET integration), Coverage measurement (different criteria like Branch, MC/DC)

Embedded Systems Readiness / Static Memory Allocation

suggested by: ramack
summary: Improve the applicability of LibertyEiffel programs to small embedded systems, by introduction of a mechanism to prevent dynamic memory allocation.
difficulty: Hard
skills: Deep understanding of Memory Managment, Eiffel experience
potential mentors: ramack
notes:

Resurrect the compile_to_jvm compiler

suggested by: ramack
summary: Back in the SmartEiffel times there was a JVM backend, which compiled Eiffel to Java bytecode. This should be made working again with an example to build an Android App in Eiffel.
difficulty: Hard
skills: Good Eiffel experience, Knowledge of Java Bytecode and Compiler technology.
potential mentors: ramack
notes:

Verification backend

suggested by: ramack
summary: generate proof obligations from contracts for formal verification, e. g. by generationg of ACSL specifications from the Eiffel contracts to use Frama-C as "verification backend"
difficulty: Hard
skills: background in formal verification, Eiffel experience
potential mentors: ramack
notes:

Idea Template Title

suggested by: ramack
summary: Summary of Project Idea (a few sentences)
difficulty: None/Easy/Advanced/Hard/Unmanageable
skills: what skills shall a student bring to do this?
potential mentors: ramack,Tybor,Cadrian
notes: anything further needs to be mentioned?


How can I participate

First you should register to the mailing list. Last you should add a page here in this wiki to present your project proposal and communicate the following:

  • your name and contact data
  • your background (other projects you are/have been involved
  • list of known programming languages (rate with a scale of 3-10, omit the ones you know less)
  • your background and interests (hobbies?)
  • your motivation
  • your timeline (idea is to have 12 week full time, but some planned absence for vacation or exams is acceptable, include milestones and project subtasks, duration of subtask should be in granularity of 1-2 weeks each)
  • your project (what you want to do, why, how, etc. - This is THE main thing we are talking about)

In between (first and last) feel free to discuss ideas and details on list or privately with potential mentors.

Afterwards we will decide which project to accept, based on the subjective estimation of the LibertyEiffel-GSoC-Ratio (benefit for LibertyEiffel * success rate / amount of mentor effort). Note: amount of mentor effort is not linear! Of course the mentors will support you as much as possible, but an Eiffel-newbie working on a compiler-core redesign is just no feasible...

What about additional questions?

See our Get_in_touch page for contact data to the LibertyEiffel community or check the FAQ provided by Google for this program.