Difference between revisions of "Projects for the Google Summer of Code"

From Lazarus wiki
(Finish the MIPS port)
(Tasks for the Free Pascal Compiler)
Line 40: Line 40:
  
 
http://robstechcorner.blogspot.com/2009/09/so-what-is-rtti-rtti-is-acronym-for-run.html
 
http://robstechcorner.blogspot.com/2009/09/so-what-is-rtti-rtti-is-acronym-for-run.html
 +
 +
Mentor: ?
 +
 +
=== Implement anonymous methods  ===
 +
 +
Anonymous methods (aka closures) feature was introduced in Delphi 2009
 +
 +
http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/devcommon/anonymousmethods_xml.html
  
 
Mentor: ?
 
Mentor: ?

Revision as of 11:59, 11 February 2011

Main page: Contests

This page should list ideas of projects to be implemented in the Google Summer of Code, provided that we get funding. Tasks can be related to Free Pascal, Lazarus and the libraries deployed with them.

Tasks for the Free Pascal Compiler

Finish the support for the new Unicode string in the compiler

The new Unicode string handling for Free Pascal will enable the creation of a Unicode Runtime Library and is therefore of extremely important. An experimental branch in Free Pascal has already been started to implement the new Unicode string, but the development has stalled. This task should involve creating a set of tests in the Free Pascal test suite defining how the new string handling should work and then finish it's implementation it in this experimental branch.

If the task proves easier then expected, it might be expanded to include also writing the support for this new string type in the RTL.

Mentor: Florian?

Support for dynamic linking packages

This task would involve adding support for the compiler to Delphi-style dynamic packages, which are compiled as libraries and then share the same RTL.

This question is extensively described here: packages#Delphi_packages

Mentor: ?

Finish the MIPS port

A large body of code is already present in the compiler, now fine tunning and finishing is required. The passing criteria would be being able to to run Lazarus without problems on the platform. We have 1 MIPS device available.

Mentor: Florian?

Implement support for the extended RTTI

Delphi 2010 introduced an enhanced RTTI system that adds Attributes (similar to Java Annotations), an type-value framework (TValue) and ability to easily call methods with parameters (through TRttiMethod.Invoke).

The task would consist of implementing at least the Attributes and TValue support

More info on the RTTI features:

http://www.malcolmgroves.com/blog/?p=476

http://www.malcolmgroves.com/blog/?p=530

http://robstechcorner.blogspot.com/2009/09/so-what-is-rtti-rtti-is-acronym-for-run.html

Mentor: ?

Implement anonymous methods

Anonymous methods (aka closures) feature was introduced in Delphi 2009

http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/devcommon/anonymousmethods_xml.html

Mentor: ?

Tasks for the Free Component Library

FPVectorial - Implement a CorelDraw importer

A importer capable of reading the CorelDraw format would be highly desirable for many users of the FPVectorial Vectorial Graphics reading/writing and manipulating library. A initial implementation is already available in our subversion, but it hasn't even got past decompressing the file contents. A large database of CDR files can be found in the the web, which can be used as a test suite to test the reading of the files. There is no documentation about the CDR file format, but there are some free software projects written in other languages which can read it. They are, however, unsuitable for being used in Free Pascal application because external dependencies are highly undesirable, so we wish for a 100% Object Pascal solution. The applicant should read and understand how another project reads the CorelDraw files and then implement our own reader module in FPVectorial. The target version would initially be CorelDraw X13, but if the task proves easier then expected it might be expanded for other versions as well.

More information here: fpvectorial#CorelDraw

Mentor: Felipe Monteiro de Carvalho