Grant Proposal: MySQL Support In RPerl Compiler


The Grants Committee has received the following grant proposal for the January/February round. Before the Committee members vote, we would like to solicit feedback from the Perl community on the proposal.

Review the proposal below and please comment here by February 20th, 2018. The Committee members will start the voting process following that and the conclusion will be announced the last week of February.

MySQL Support In RPerl Compiler

  • Name:

    Richard D. Johnson

  • Amount Requested:

    USD $650


I want to implement basic MySQL support for Perl code compiled using the RPerl optimizing compiler.

This will allow Perl software which depends upon MySQL to be compiled into very fast C++ code.

Benefits to the Perl Community

MySQL is one of the most popular databases among Perl programmers.

Many different kinds of Perl software utilize MySQL, so this grant has a potentially wide applicability in the Perl community.

Often, software which depends upon a database is itself performance critical in some way, and this grant will directly benefit such cases where MySQL is the database of choice.


We will release a new version of the RPerl compiler, containing the new MySQL support.

Project Details

Implementing this project requires knowledge of DBI, MySQL, Perl, C++, and RPerl compiler internals.

I have already started writing out the manually-compiled example code in both Perl and C++, which is an important first step.

I am working directly with the RPerl project leader, Will Braswell, to ensure all code is merged into the main RPerl code base on GitHub and CPAN.


  • Write manually-compiled source code examples in both Perl and C++.
  • Enable use DBI; found in RPerl input source code.
  • Parse and validate DBI operations found in RPerl input source code.
  • Enable MySQL C++ driver in RPerl compiler internals.
  • Map RPerl input source code to C++ output source code.
  • Support the following MySQL operations:
    • Open Database
    • Create Table
    • Insert Record
    • Select Record
    • Update Record
    • Delete Record

Project Schedule

I expect this project to be completed within 60 to 90 days after we officially begin.

I can begin work immediately.

Completeness Criteria

This task will be considered complete when the new version of RPerl is released to CPAN, containing the specified features.


I am a Perl programmer who works directly with Will Braswell, the RPerl development team lead.

I have attended the last 2 YAPC/TPC conferences in North America, and I plan to attend again this year.

I live in Austin like Mr. Braswell, and we do much of our programming in a shared office in the same physical location.

I will be able to seek the daily guidance and support of Mr. Braswell while working on this project.


Thank you for the input on the DBD::MySQL and DBD::MariaDB situation.

We will take this into careful consideration when this grant is approved.

About TPF

The Perl Foundation - supporting the Perl community since 2000. Find out more at

About this Entry

This page contains a single entry by Coke published on February 13, 2018 2:44 PM.

Grant Proposal: Curating and improving Perl6 documentation was the previous entry in this blog.

Grant Proposal: List Operators In RPerl Compiler is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.


OpenID accepted here Learn more about OpenID
Powered by Movable Type 6.2.2