Parrot Grant from NLNet

History

In 2005, the Perl Foundation asked NLNet, a Dutch foundation, for a grant to fund long-term work on Parrot, with the goal of getting Parrot to 1.0 release. The grant was divided into four milestones. In April of 2005, NLNet agreed to provide $70,000 worth of funding to the Perl Foundation for the first two milestones of this grant, $35,000 per milestone.

The grant's structure was slightly modified in Fall of 2007 in order to add more subsystems, and to remove the start and end of milestone payments.

As of mid-2008, this grant is now administered by The Parrot Foundation. Since the other TPF doesn't yet have a website, we will continue to host this page here for the time being.

Grant Structure

As mentioned above, the grant is divided into four milestones:

  • Design
  • Stub (initial implementation)
  • Complete implementation
  • Parrot 1.0 release

Each milestone is further divided into critical Parrot subsystems:

  • AST interface
  • Bytecode format
  • Character sets
  • Compiler tools
  • Concurrency model (Threads)
  • Events
  • Exceptions
  • Garbage collection
  • I/O
  • Multimethod dispatch
  • Object support
  • PMCs (core data types)
  • Security model

Obviously, there is more to Parrot than just these subsystems, but these are the hardest of the core pieces of Parrot, without which it simply cannot be considered finished.

Originally, payments were also made at the start of a milestone ($10k), for each subsystem in a milestone ($2k), and for the end of a milestone ($7k), but this part of the grant structured was removed in Fall of 2007.

At first, the grant specified Leo and Chip as the recipients of the grant. However, as the core contributors to Parrot have changed so have the grant recipients. Currently, anyone can receive a payment for their contributions to Parrot.

Grant Management

Dave Rolsky has been acting as the Parrot Grant Manager since December of 2005. His job is to provide reports every two months to NLNet, and to coordinate grant payments with the Perl Foundation as necessary.

Earlier grant reports were posted on The Perl Foundation news blog. Currently grant reports are posted to the Parrot Foundation web site.

Payments

Please note that this table is only updated once every 2 months or so.

The table below shows payments made so far, and those still available. The recipient of a payment is decided by Dave Rolsky, the Parrot Grant Manager, primarily based on input from Allison Randal (Parrot Architect) and Will Coleda (Parrot Project Manager).

  M1 - Design (PDDs) M2 - Stub implementation M3 - Complete Implementation M4 - Parrot 1.0
Start of milestone ($10k) Chip Salzenberg - $5k - 2005-04 Leo Tötsch - $10k - 2005-04 and 2005-12, $5k each    
AST interface Patrick Michaud - $2k - 2007-10 Patrick Michaud - $2k - 2007-12    
Bytecode format completed, no payments 3 Jonathan Worthington - $2k - 2008-03    
Character sets Simon Cozens - $2k - 2008-06 Allison & Simon Cozens - $1k each - 2009-03    
Compiler tools Andrew Whitworth - $2k - 2009-03 Patrick Michaud - $2k - 2008-03    
Concurrency model (Threads) Allison 2 - $2k - 2007-12 Allison 2 and chromatic - $1k each - 2008-08    
Events Allison 2 - $2k - 2007-10 Allison 2 and chromatic - $1k each - 2007-12    
Exceptions Chip Salzenberg - $2k 2006-08 1 Jerry Gay & Kevin Tewk - $1k each - 2007-12    
Garbage collection Allison 2 - $2k - 2008-03 chromatic ($1,500) and Andrew Whitworth ($500) - $2k - 2009-01    
IO Jerry Gay - $2k - 2007-03 Allison - $2k - 2008-12    
Multimethod dispatch Allison 2 - $2k - 2007-12 Allison ($1,500) and chromatic ($500) - 2008-11    
Object support Jonathan Worthington - $2k - 2007-05 Leo Tötsch - $2k - 2005-12    
PMCs Allison 2 - $2k - 2007-09 Allison & chromatic - $1k each - 2008-03    
Security model Allison 2 - $2k - 2008-03 Allison - $2k - 2009-03    
  1. Actually, Chip only received $1k in 2006-08, due to some confusion on the part of the Grant Manager. The remaining $1k was paid in May of 2007.
  2. As an officer of the Perl Foundation Allison was not eligible to receive grant payments in the past. Instead, the money she would receive was set aside in a fund to help her do work on Parrot. This included things like development hardware and travel expenses for conferences and hackathons. Under the Parrot Foundation, she is eligible to receive direct payments.
  3. Some milestones were completed before the grant milestones were restructured, and so were never eligible for payments.

Schedule for Remaining Work, September 2007

Allison Randal has come up with a schedule for the remaining work on milestones 1 and 2 of Parrot. Allison will be working on Parrot full-time through the end of 2007, and half-time through all of 2008. This schedule was revised in August, 2008.

September 15, 2007 – M1 PMCs (core data types) – Allison Randal

Complete and deliver the design document specifying the structure and behavior of Parrot's core data types (PMCs) and low-level composition features (Roles).

October 1, 2007 – M1 AST interface – Patrick Michaud

Complete and deliver the design document specifying the high-level abstract syntax tree interface used by language implementations targeting Parrot.

October 15, 2007 – M1 Events – Allison Randal

Complete and deliver the design document specifying Parrot's system for event dispatch and handling.

November 1, 2007 – M2 Exceptions – Kevin Tew & Jerry Gay

Complete and deliver a functional implementation of Parrot's system for exception dispatch and handling.

November 1, 2007 – M2 AST interface – Patrick Michaud

Complete and deliver a functional implementation of the high-level abstract syntax tree interface used by language implementations targeting Parrot.

November 15, 2007 – M1 Concurrency model (threads) - Allison Randal

Complete and deliver the design document specifying Parrot's fundamental concurrency (threading) model.

November 15, 2007 – Request second USD 35k from NLNet

At this stage of development, we will have distributed all of the first half of the grant and will request the second half from NLNet.

December 1, 2007 – M2 Events – Allison Randal & chromatic

Complete and deliver a functional implementation of Parrot's system for event dispatch and handling.

December 15, 2007 – M1 Multimethod dispatch – Allison Randal

Complete and deliver the design document specifying Parrot's multimethod dispatch system.

January 1, 2008 – M2 PMCs (core data types) – Allison Randal & chromatic

Complete and deliver a functional implementation of the structure and behavior of Parrot's core data types (PMCs) and low-level composition features (Roles).

January 15, 2008 – M1 Garbage collection – Allison Randal

Complete and deliver the design document specifying Parrot's garbage collection system.

February 1, 2008 – M2 Bytecode format – Jonathan Worthington

Complete and deliver a functional implementation of the new bytecode packfile format, packing and unpacking functionality, and integration with the Parrot core system.

February 15, 2008 – M1 Security model – Allison Randal

Complete and deliver the design document specifying Parrot's sandboxing security model.

March 15, 2008 – M1 Character sets – Simon Cozens

Complete and deliver the design document specifying Parrot's usage of multiple character sets within strings (including Unicode).

April 15, 2008 – M2 Compiler tools – Patrick Michaud

Complete and deliver a functional implementation of the suite of tools that Parrot provides for compiler writers.

August 1, 2008 – M2 Concurrency model (threads) - Allison Randal & chromatic

Complete and deliver a functional implementation of Parrot's fundamental concurrency (threading) model.

September 1, 2008 – M2 Multimethod dispatch – Allison Randal & chromatic

Complete and deliver a functional implementation of Parrot's multimethod dispatch system.

September 15, 2008 – M2 I/O – Jerry Gay & Allison Randal

Complete and deliver a functional implementation of Parrot's synchronous and asynchronous I/O subsystem.

September 15, 2008 – M1 Compiler tools – Patrick Michaud & Klaas-Jan Stol

Complete and deliver the design document specifying the suite of tools that Parrot provides for compiler writers.

October 1, 2008 – M2 Character sets – Allison Randal

Complete and deliver a functional implementation of Parrot's usage of multiple character sets within strings (including Unicode).

October 15, 2008 – M2 Garbage collection – Allison Randal & chromatic

Complete and deliver a functional implementation of Parrot's garbage collection system.

November 1, 2008 – M2 Security model – Allison Randal

Complete and deliver a functional implementation of Parrot's sandboxing security model.

Summary of Milestone Completion Dates

All milestones have been completed.

tags: