FastCode: Difference between revisions
ErikHaugen (talk | contribs) We probably don't need this list of contributors, maybe just more notable ones if any? |
Reorganised introduction, pointed out uniqueness and value to Delphi / C++ Builder. Misc changes in language and structure. |
||
Line 5: | Line 5: | ||
{{Multiple issues|wikify = January 2011|orphan = January 2011|unreferenced=January 2011|notable=January 2011}} |
{{Multiple issues|wikify = January 2011|orphan = January 2011|unreferenced=January 2011|notable=January 2011}} |
||
'''FastCode''' is [[Computer programming|programming]] project aimed at providing enhanced [[runtime library]] routines for [[Embarcadero Delphi]]. |
'''FastCode''' is an [[open source]] [[Computer programming|programming]] project aimed at providing enhanced [[runtime library]] routines for [[Embarcadero Delphi]] and [[C++Builder|C++ Builder]]. Since it was started in 2003 by [[Dennis Kjaer Christensen]], it has contributed highly optimised functionality to the Embarcadero [[Runtime library|RTL]]. FastCode is unique among contributions to commercial compiler runtime libraries for its community-driven and open source nature. |
||
==Structure== |
|||
The current project home is at http://fastcode.sourceforge.net/ |
|||
The project is organized as a competition divided into challenges. Each challenge takes one function and optimizes it against a number of |
The project is organized as a competition divided into challenges. Each challenge takes one function and optimizes it against a number of targets. The project provides tools for [[benchmarking]] and validating each function contribution. One point is given per contribution (maximally one function per target is given points) and tens points are awarded for a target winner. A list with all contributors and their scores is maintained, and at the end of each year a winner is celebrated. [[Borland]], [[Codegear]] and [[Embarcadero]], the owners of Delphi and C++ Builder, have historically sponsored prizes. |
||
The majority of participants in the competition are assembler developers who often utilize processor-specific code and extra instruction sets |
The majority of participants in the competition are assembler developers who often utilize processor-specific code and extra instruction sets, such as [[SSE]] and [[SSE2]]<ref>http://www.gerixsoft.com/blog/delphi/fastcode</ref>. |
||
The project enjoys the support of Embarcadero who recognizes the contributions of the FastCode team and incorporates their code into the codebase for Delphi<ref>http://blogs.embarcadero.com/nickhodges/2006/11/27/29891</ref>. The default [[memory manager]] for [[Embarcadero Delphi]] is the winner of the FastCode Memory Manager challenge<ref>http://blogs.embarcadero.com/abauer/2005/09/28/21433</ref>. |
The project enjoys the support of [[Embarcadero]] who recognizes the contributions of the FastCode team and incorporates their code into the codebase for Delphi<ref>http://blogs.embarcadero.com/nickhodges/2006/11/27/29891</ref>. The default [[memory manager]] for [[Embarcadero Delphi]], FastMM4, is the winner of the FastCode Memory Manager challenge<ref>http://blogs.embarcadero.com/abauer/2005/09/28/21433</ref>. |
||
The project was first hosted on [[Robert Lee]]'s [[OptimalCode]] site, and its source code's current home is [http://fastcode.sourceforge.net/]. |
|||
== List of Challenges == |
== List of Challenges == |
||
The FastCode project has run |
The FastCode project has run the following challenges: |
||
*AES |
*AES |
||
*AnsiStringReplace |
*AnsiStringReplace |
||
Line 29: | Line 31: | ||
*CharPosRev |
*CharPosRev |
||
*CompareMem |
*CompareMem |
||
*CompareStr |
|||
*ComnpareStr |
|||
*CompareText |
*CompareText |
||
*Polar Complex Number Addition |
*Polar Complex Number Addition |
||
*Polar Complex Number Subtraction |
*Polar Complex Number Subtraction |
||
The FastMM memory manager used by Delphi and C++ Builder since 2007 is also the winner of a FastCode competition. |
|||
== Contributions to Delphi RTL == |
== Contributions to Delphi RTL == |
||
Line 38: | Line 42: | ||
*Delphi 2005: CompareText, Int64Div and FillChar |
*Delphi 2005: CompareText, Int64Div and FillChar |
||
*Delphi 2006: CompareText, Int64Div and FillChar, |
*Delphi 2006: CompareText, Int64Div and FillChar, FastMM4 memory manager <ref>http://blogs.embarcadero.com/abauer/2005/09/28/21433</ref> |
||
*Delphi 2007—Delphi XE: ArcCos, ArcSin, Power, PosEx, Move, Memory Manager, FillChar, Pos, __lldiv, LowerCase, UpperCase, CompareStr, CompareMem, CompareText, StrLen, StrCopy, StrComp. <ref>http://www.stevetrefethen.com/blog/CommunitycontributionsimproveDelphi2007RTLperformance.aspx</ref> |
*Delphi 2007—Delphi XE: ArcCos, ArcSin, Power, PosEx, Move, Memory Manager, FillChar, Pos, __lldiv, LowerCase, UpperCase, CompareStr, CompareMem, CompareText, StrLen, StrCopy, StrComp. <ref>http://www.stevetrefethen.com/blog/CommunitycontributionsimproveDelphi2007RTLperformance.aspx</ref> |
||
== The FastCode Library == |
== The FastCode Library == |
||
All the challenge winners are included in the FastCode library (http://fastcode.sourceforge.net/challenge_content/rtl_replcmnt_pkg.html). This library is [[open source]] released under the [[MPL license]]. |
All the challenge winners are included in the FastCode library (http://fastcode.sourceforge.net/challenge_content/rtl_replcmnt_pkg.html). This library is [[open source]], released under the [[MPL license]]. |
||
== References == |
== References == |
||
Line 49: | Line 53: | ||
{{Reflist}} |
{{Reflist}} |
||
[[Category:Computer_libraries]] |
|||
[[Category:Programming contests]] |
[[Category:Programming contests]] |
Revision as of 06:57, 20 January 2011
An editor has nominated this article for deletion. You are welcome to participate in the deletion discussion, which will decide whether or not to retain it. |
![]() | This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages)
No issues specified. Please specify issues, or remove this template. |
FastCode is an open source programming project aimed at providing enhanced runtime library routines for Embarcadero Delphi and C++ Builder. Since it was started in 2003 by Dennis Kjaer Christensen, it has contributed highly optimised functionality to the Embarcadero RTL. FastCode is unique among contributions to commercial compiler runtime libraries for its community-driven and open source nature.
Structure
The project is organized as a competition divided into challenges. Each challenge takes one function and optimizes it against a number of targets. The project provides tools for benchmarking and validating each function contribution. One point is given per contribution (maximally one function per target is given points) and tens points are awarded for a target winner. A list with all contributors and their scores is maintained, and at the end of each year a winner is celebrated. Borland, Codegear and Embarcadero, the owners of Delphi and C++ Builder, have historically sponsored prizes.
The majority of participants in the competition are assembler developers who often utilize processor-specific code and extra instruction sets, such as SSE and SSE2[1].
The project enjoys the support of Embarcadero who recognizes the contributions of the FastCode team and incorporates their code into the codebase for Delphi[2]. The default memory manager for Embarcadero Delphi, FastMM4, is the winner of the FastCode Memory Manager challenge[3].
The project was first hosted on Robert Lee's OptimalCode site, and its source code's current home is [1].
List of Challenges
The FastCode project has run the following challenges:
- AES
- AnsiStringReplace
- ArcCos
- ArcSin
- Ceil32
- Ceil64
- CharPos
- CharPosIEx
- CharPosEy
- CharPosRev
- CompareMem
- CompareStr
- CompareText
- Polar Complex Number Addition
- Polar Complex Number Subtraction
The FastMM memory manager used by Delphi and C++ Builder since 2007 is also the winner of a FastCode competition.
Contributions to Delphi RTL
FastCode functions included in the Delphi RTL:
- Delphi 2005: CompareText, Int64Div and FillChar
- Delphi 2006: CompareText, Int64Div and FillChar, FastMM4 memory manager [4]
- Delphi 2007—Delphi XE: ArcCos, ArcSin, Power, PosEx, Move, Memory Manager, FillChar, Pos, __lldiv, LowerCase, UpperCase, CompareStr, CompareMem, CompareText, StrLen, StrCopy, StrComp. [5]
The FastCode Library
All the challenge winners are included in the FastCode library (http://fastcode.sourceforge.net/challenge_content/rtl_replcmnt_pkg.html). This library is open source, released under the MPL license.
References
- ^ http://www.gerixsoft.com/blog/delphi/fastcode
- ^ http://blogs.embarcadero.com/nickhodges/2006/11/27/29891
- ^ http://blogs.embarcadero.com/abauer/2005/09/28/21433
- ^ http://blogs.embarcadero.com/abauer/2005/09/28/21433
- ^ http://www.stevetrefethen.com/blog/CommunitycontributionsimproveDelphi2007RTLperformance.aspx