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

From Lazarus wiki
(Categorization)
 
(15 intermediate revisions by 5 users not shown)
Line 3: Line 3:
 
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.
 
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==
+
=== Implement support for the extended RTTI  ===
  
===Finish the support for the new Unicode string in the compiler===
+
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 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.
+
The task would consist of implementing at least the Attributes and TValue support
  
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.
+
More info on the RTTI features:
  
Mentor: Florian?
+
http://www.malcolmgroves.com/blog/?p=476
  
==Tasks for the Free Component Library==
+
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 Lazarus==
  
 
===FPVectorial - Implement a CorelDraw importer===
 
===FPVectorial - Implement a CorelDraw importer===
Line 23: Line 37:
 
Mentor: Felipe Monteiro de Carvalho
 
Mentor: Felipe Monteiro de Carvalho
  
===FPTextDocuments - Initial implementation===
+
===LCL-CustomDrawn - Implement a custom drawn TCDListView, TCDGrid and other complex controls===
 +
 
 +
The Lazarus Custom Drawn Controls contains all basic controls already, but the more complex ones are still missing and they are very important.
 +
 
 +
More information here: [[Custom Drawn Interface]]
 +
 
 +
Mentor: Felipe Monteiro de Carvalho
 +
 
 +
===LazFreeType - Implement large new parts of the Pascal text rendering library===
 +
 
 +
The original FreeType was written in Pascal and we have resuscitated it. In this bounty the student should implement large new parts not only for glyph drawing of truetype fonts but also true text layouting including arabic support, chinese support, etc. It should be able to draw texts, calculate the partial widths of a text, calculate the metrics of texts (width, height, ascent, etc) and in general be able to execute all tasks which are required by the Lazarus Component Library for text drawing. This task should also include integrating it into the LCL-CustomDrawn widgetset to enable text support on it in all platforms.
 +
 
 +
More information here: [[Custom Drawn Interface]] and [[LazFreeType]]
 +
 
 +
Mentor: Circular
 +
 
 +
===LHelp and TurboPower iPro HTML component improvements===
 +
 
 +
We need people working in our LHelp CHM help viewer application and also in HTML rendering engine. The main bug of LHelp is slow startup when used with the LCL help CHM. iPro in general needs a lot of improvements for both CHM help viewing and general usage and those can be very easily tested with FPBrowser our web browser and LHelp.
 +
 
 +
Mentor: Andrew Haines?
 +
 
 +
==Tasks for the Free Pascal Application Suite==
 +
 
 +
===Implement the dynamic mode for X11, Windows 7 or Mac of the Virtual Magnifying Glass===
 +
 
 +
The Virtual Magnifying Glass is a The magnifier already has a dynamic mode for Windows 2000 throught Vista, but a dynamic mode would be very benefitial in all missing systems.
 +
 
 +
See: http://sourceforge.net/projects/magnifier/
 +
 
 +
Mentor: Felipe Monteiro de Carvalho
 +
 
 +
===Finishing the basic parts of the Free Pascal Window Manager===
 +
 
 +
The Free Pascal Window Manager already has its basic parts working, but it needs to have implemented a taskbar with system tray icon and a main button with a configurable menu and desktop icons. Also the Window decoration should be changed from the wm2 style to a more normal style close to what KDE has.
 +
 
 +
See: http://sourceforge.net/projects/fpwm/
 +
 
 +
Mentor: Felipe Monteiro de Carvalho
 +
 
 +
==See Also==
 +
 
 +
[[Google Summer of Code Application Template]]
  
Free Pascal already contains a spreadsheet importing / exporting library
+
[[Category:Promotion]]
 +
[[Category:Community]]

Latest revision as of 21:12, 27 January 2017

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.

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 Lazarus

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

LCL-CustomDrawn - Implement a custom drawn TCDListView, TCDGrid and other complex controls

The Lazarus Custom Drawn Controls contains all basic controls already, but the more complex ones are still missing and they are very important.

More information here: Custom Drawn Interface

Mentor: Felipe Monteiro de Carvalho

LazFreeType - Implement large new parts of the Pascal text rendering library

The original FreeType was written in Pascal and we have resuscitated it. In this bounty the student should implement large new parts not only for glyph drawing of truetype fonts but also true text layouting including arabic support, chinese support, etc. It should be able to draw texts, calculate the partial widths of a text, calculate the metrics of texts (width, height, ascent, etc) and in general be able to execute all tasks which are required by the Lazarus Component Library for text drawing. This task should also include integrating it into the LCL-CustomDrawn widgetset to enable text support on it in all platforms.

More information here: Custom Drawn Interface and LazFreeType

Mentor: Circular

LHelp and TurboPower iPro HTML component improvements

We need people working in our LHelp CHM help viewer application and also in HTML rendering engine. The main bug of LHelp is slow startup when used with the LCL help CHM. iPro in general needs a lot of improvements for both CHM help viewing and general usage and those can be very easily tested with FPBrowser our web browser and LHelp.

Mentor: Andrew Haines?

Tasks for the Free Pascal Application Suite

Implement the dynamic mode for X11, Windows 7 or Mac of the Virtual Magnifying Glass

The Virtual Magnifying Glass is a The magnifier already has a dynamic mode for Windows 2000 throught Vista, but a dynamic mode would be very benefitial in all missing systems.

See: http://sourceforge.net/projects/magnifier/

Mentor: Felipe Monteiro de Carvalho

Finishing the basic parts of the Free Pascal Window Manager

The Free Pascal Window Manager already has its basic parts working, but it needs to have implemented a taskbar with system tray icon and a main button with a configurable menu and desktop icons. Also the Window decoration should be changed from the wm2 style to a more normal style close to what KDE has.

See: http://sourceforge.net/projects/fpwm/

Mentor: Felipe Monteiro de Carvalho

See Also

Google Summer of Code Application Template