We have received the following grant application. Please leave feedback in the comments field by March 22nd, 2014.
Automated generation of DWIM Perl
DWIM Perl is a "batteries included" Perl distribution
for Microsoft Windows and for Linux.
On Windows it is based on Strawberry Perl, on Linux it is compiled from the
source released by the Perl 5 Porters.
Both versions include a few hundred additional modules from CPAN.
The grant will enable me to further work on it, and specifically to
finish automating the release of new versions.
Benefits to the Perl Community
DWIM Perl can make it much easier and faster for beginners to get started using Perl.
It is useful both for people who would like to program in Perl,
and for people who "just" want to run existing scripts or applications.
DWIM Perl makes it much easier and faster to set up a server running a Perl-based application.
For example on a $5/month VPS. This reduces the advantage other languages might have
in the area of deployment.
DWIM Perl can be the foundation of a "Perl Cloud", where people can
develop on either a Windows or Linux based machine, and then
easily deploy to a cheap VPS that has the same version of Perl with
the same set of CPAN modules.
The grant will allow me to cerate a tool for automated releases and
semi-automated upgrade of the parts. This will allow me (or anyone
else) to easily create a new, up-to-date release of DWIM Perl.
It will also make it easy to create similar "batteries included"
Perl distributions for the needs of companies, or open source projects
- A script that given a configuration file can build
a DWIM Perl distribution for Linux and for Windows.
- Configuration files ready to build DWIM Perl for Linux using 5.18.2,
and for Windows using Strawberry 188.8.131.52.
- A new release of DWIM Perl for Windows based
on Strawberry Perl 184.108.40.206 using a scripted generation.
- A new version of DWIM Perl for Linux based on 5.18.2
- DWIM Perl for Linux based on 5.19.X.
- Bug reports or even patches to modules that don't install cleanly.
- All the source will be placed on GitHub.
The Windows version will be an installation process. The Linux version will
be a tar.gz file to be unzipped.
In order to get started using Perl with any reasonable modernity, people need to
find and install hundreds of CPAN modules. This is an additional obstacle to getting
started with Perl.
Not only can it take hours to install all the required modules, there is always a chance
that the current version of some of the modules on CPAN do not install cleanly.
Several important CPAN modules require additional, non-perl packages. Locating and
installing them can be additional issue.
Having a Perl distribution with "batteries included" means
that newbies can download, install, and run.
A lot less friction in getting started with Perl.
Each DWIM Perl distribution will include
The Windows version will also include wxPerl and Padre.
The Linux version will include Starman.
On Linux, there is already a relatively good script,
located at https://github.com/dwimperl/dwimperl-5-18-linux,
but there are several modules that require external dependencies,
that are not included.
In the Windows version, Strawberry already includes these "problematic"
modules so the main thing that is missing is the automation.
For both versions the handling of the stable CPAN snapshot is missing.
- Research how the CPAN snapshot should be handled:
Options that should be checked are:
- Do a "market research" asking people for lists of prerequisites
they have in their Perl-based applications.
Both open source and closed-source applications.
This will provide valuable input as to what needs to be included
in DWIM Perl.
Create a new release of both versions using a simple
script, and with one module in the CPAN snapshot.
The Linux script will be based on
Add tests that can be run post installation to verify
the problematic modules work. (Mostly the ones that require
- Write script to update the sh-bang lines of the perl scripts
after relocation. (This might be submitted to p5p as well.)
- Include DBD::mysql in Linux.
- Include DBD::Pg in Linux.
- Include POE in Linux.
- Include PAR::Packer in Linux.
- Include XML::Parser in Linux.
There will be several intermediate DWIM Perl releases, marking the finish
of each inch-stone.
I can start immediately after the grant is accepted on March 31, 2014.
I expect the project to be done within 2-3 months.
Assuming the evaluator has access to the right operating system (MS Windows or Linux)
she will be able to run the build script and create a new version of DWIM Perl
with minimal manual intervention.
I have created the DWIM Perl project in 2011, originally as a vehicle to distribute Padre, the Perl IDE on Windows.
Later the Linux version was added in order make it easy to deploy Perl-based applications on Linux-based servers.
I have been using Perl since 1995 and teaching it since 2000. I am the original author of Padre, the Perl IDE.
I am also the maintainer of a number of modules on CPAN https://metacpan.org/author/SZABGAB.
In addition, I run the Perl Weekly newsletter and the
Perl Maven site.