Skip to main content

Learning PERL to do Ruby?

I’m looking at whomping up a project called GIRLS, the Gimp Interface to Ruby Language Scripting, and it makes sense to me to auto-generate as much of the actual bindings code as possible.

Ruby returns multiple values, so it looks like it’s a better fit to the various GIMP functions than C or Python.

However, the incestuous PERL code in tools/pdbgen/ which the hard-working, bright and patient JamesH has in part mutated to do some of the heavy lifting for his gimp-python extension is threatening to make my head explode. Stuff like...

# The actual parser (in a string so we can eval it in another namespace)

...for a parser that does what? Why, writes hunks of PERL code out for later execution, of course.

It looks like being easier for me to post-process the .pdb files to cherry-pick the information I want. It might be simpler to post-process the C headers instead, but some information gets filed off on the way to becoming a C header. In many cases it should be easy enough to guess which are inputs and which are outputs (const anything is an input, anything not a pointer is an input, all other simple types are likely outputs, structures can be guessed as usually inputs). Or possibly parse the .pdbs for hints and then parse the .h files with those hints in hand. Urgh.

Surely there’s a simpler method? Somewhere in this convoluted and cross-referential stack of Makefiles, there must be an easier control point. But if JamesH didn’t find one, my hopes are not high.

Comments

Popular posts from this blog

every-application-is-part-of-a-toolkit at work

I have a LibreOffice Impress slideshow that I wish to turn into a narrated video. 1. export the slideshow as PNG images (if that is partially broken — as at now — at higher resolutions, Export Directly as PDF then use ‘pdftoppm’ (from the poppler-utils package) to do the same). 2. write a small C program (63 lines including comments) to display those images one at a time, writing a config file entry for Imagination (default transition: ‘cross fade’) based on when the image-viewer application (‘display,’ from the GraphicsMagick suite) is closed on each one; run that, read each image aloud, then close each image in turn. 3. run ‘Imagination’ over the config file to produce a silent MP4 video with the correct timings. 4. run ‘Audacity’ to record speech while using ‘SMPlayer’ to display the silent video, then export that recording as a WAV file. 4a. optionally, use ‘TiMIDIty’ to convert a non-copyright-encumbered MIDI tune to WAV, then import that and blend it with the speech (as a quiet b

new life for an old (FTX) PSU, improved life for one human

the LEDs on this 5m strip happen to emit light centred on a red that does unexpectedly helpful things to (and surprisingly deeply within) a human routinely exposed to it. it has been soldered to a Molex connector, plugged into a TFX power supply from a (retired: the MoBo is cactus) Small Form Factor PC, the assorted PSU connectors (and loose end from the strip) have been taped over. the LED strip cost $10.24 including postage, the rest cost $0, the PSU is running at 12½% of capacity, consumes less power than a laptop plug-pack despite running a fan. trial runs begin today.

boundaries

pushing the actual boundaries of the physical (not extremes, the boundaries themselves) can often remove barriers not otherwise perceived. one can then often resolve an issue itself, rather than merely stonewalling at the physical consequences of the issue.