Portable C Compiler Fund
BSD Fund is pleased to announce that it has partnered with software engineer and researcher Anders Magnusson to bring the Portable C Compiler "pcc" to 1.0 release status. Originally written by Stephen C. Johnson of Bell Labs in the 1970's, pcc is today valued by developers for its speed, simplicity, BSD license and of course, portability. Mr. Magnusson has worked with pcc since 2002 and been project maintainer since 2007.
Work description
Improved Static Single Assignment form conversion functionality
Convert the expression trees in a function to SSA form and back.
SSA form conversions require:
- Creating the Control-Flow Graph (CFG)
- Building a dominator tree
- Calculating the dominance frontiers
- Inserting phi functions
- Renumbering temporary variables
Improved C99 functionality
Improved complex numbers: Support the _Complex and _Imaginary data types introduced in C99.
Improved dynamic arrays in function headers/prototypes: Support exists for automatic dynamic arrays but not yet fixed for function headers/prototypes.
Improved abstract dynamic declarations: Support the ability to use abstract declarators everywhere allowed.
Improved GCC compatibility
attribute(): Support parsing of the attribute() syntax and test for commonly used extensions.
typeof(): Support the typeof() keyword.
Case number ranges: Support giving number ranges to case statements.
Incomplete Enums: Support forward declaration of enums.
Unnamed struct/union fields: Support the use of unnamed members compatible with both GCC and the historical use of it.
AMD64 Port
Port the Portable C Compiler to the AMD64 architecture.
Implement code generation
Implement FPU code generation
Implement fPIC code generation
Progress
Watch for completed items above and you can watch commits here.
Future Work
Upon completion and community acceptance of this work, BSD Fund will consider a pcc roadmap that specifies additional features and architecture ports, plus external toolchain components.
Budget
SSA Conversions: $2,900
C99 Improvements: $4,800
GCC Improvements: $1,900
AMD64 Support: $2,400
Total donations needed to complete this work: $12,000
Donations received to date: $7,972
Donate with Google Checkout
|
Donate with PayPal
|
Donate by Check, Money Order or BillPay
Donations by check can be addressed to "BSD Fund" and mailed to:
BSD Fund
560 SE Alexander Ave
Corvallis OR 97333-1933
USA
Please include "pcc Fund" on the check plus your e-mail address so we can send you a receipt for tax purposes.
Donate a Donor
If you are already contributing code or have a limited budget, a referral to a sympathetic employer or philanthropist can be priceless.
Such potential donors can contact dexter at bsdfund dot org for more information about this and other BSD Fund efforts.
BSD Fund is a 501(c)(3) non-profit organization and donations are tax-deductible within the limitations of U.S. federal income tax laws.
We will e-mail US taxpayers a receipt using the information provided by Google Checkout or PayPal.
Please e-mail donations at bsdfund dot org if you have any questions.
BSD Fund is a DBA of Linux Fund, Inc.
EIN: 93-1275966 - IRS 501(c)(3) effective 9/29/2006
|