I took a look back at Graphics::Potrace.

It seems that about 9 years ago I started working on Graphics::Potrace:

0.1.0_03  2012-03-04 01:11:20 Europe/Rome
   - Checking for potrace executable before generating Makefile
   - Added to the project

It took me more than one year to release it though:

0.72      2013-08-03 20:10:30 Europe/Rome
   - Added one test on trace
   - release!

What the heck does it do, anyway? It is a thin wrapper around Potrace, a program (and a library) by Peter Selinger for Transforming bitmaps into vector graphics.

It’s been my first and I think only public venture into XS, which I don’t do any more since a long time. It has always felt a lot like black magic, but eventually the module worked and I was happy to release it.

Looking at the implementation, I think there is some relic code that is not used any more in the XS:

MODULE = Graphics::Potrace::Bitmap	PACKAGE = Graphics::Potrace::Bitmap	PREFIX = gpb_

SV *
gpb__trace (self, param, bitmap)
   SV *self
   SV *param
   SV *bitmap
      RETVAL = _trace((HV *)SvRV(param), (HV *)SvRV(bitmap));

The Graphics::Potrace::Bitmap module/package is nowhere to be found and apparently not used either; furthermore, the _trace function has its counterpart in the main module and as I see it it’s the one I used actually.

I can find cruft everywhere!

Comments? Octodon, Twitter, GitHub, Reddit, or drop me a line!