These developer notes are for the benefit of those working on adding Perl support to CinePaint...
Image courtesy of photographer Terry Lane
There's no Perl in CinePaint now. In CVS I have a little Perl batch script I wrote to create thumbnailed web pages from a directory of images, but that uses GraphicsMagick.
There are two open Perl CinePaint tasks. One is to add CinePaint support for Cons, a clever 3-thousand-line Perl script that replaces Make and Autotools. The other is to support Perl as a scripting language in CinePaint.
CinePaint supports Scheme and Python as scripting languages now. We want to add Perl (and also Java). Perl's been implemented for GIMP, although active support there seems to have ceased. It should be feasible to adapt GIMP code to bring Perl into CinePaint.
O'Reilly "Advanced Perl Programming" has a chapter on embedding Perl. You may want to review that before starting. Limited C knowledge should be sufficient. Embedding Perl is integration of existing code from GIMP, not a coding project.
IMPORTANT! Do not post any plea for assistance from GIMP. They
consider CinePaint their rival. It just makes them mad to mention we exist.
We probably want to use recent GIMP source code and may also want to refer to GIMP 1.0.4 from 1999 (when CinePaint was forked from GIMP). There hasn't been much attention to GIMP Perl. It may be nothing has changed in a decade.
Building CinePaint Using Perl Cons
We need to create Cons build files for CinePaint. We want to use Cons before getting into improving it. You can look at the existing CMake or Autotools build scripts for clues what to put in the Cons build files.
Cons is in CinePaint CVS. Cons is orphan open source software. There is no support. There is documentation with it in our CVS. Using Cons 2.2.0, the last stable version.
At this point, don't worry about getting fancy with detecting library paths in Cons, just go ahead and specify those absolutely to your distro locations. Unless somebody discovers a secret auto-detect mechanism in Cons, we will create an auto-detect function later using pkg-config. After we get Cons to build CinePaint, we can look into Cons code clean-up, which is needed for readability and extendability.
Love you guys!