Grant Proposal: MySQL Support In RPerl Compiler
Tue, 13-Feb-2018 by
Coke
edit post
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
## Synopsis
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.
## Deliverables
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.
## Inch-stones
- 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.
## Bio
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.
Comments (2)
Note the current schism between DBD::MySQL and DBD::MariaDB:
https://www.nntp.perl.org/group/perl.dbi.users/2018/01/msg37584.html
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.