> "Debugging Script-Fu scripts is only slightly less painful than stabbing
> yourself in the eye with a dull spoon.

indeed debugging gimp scripts is a pain and I encountered it several
times. There are several ways to make it easier to follow the
execution (defining some functions which will print all the arguments
passed to other functions) but I'm unaware of any interactive
debugging utility.

> As a more long term fantasy, has there been any discussion of an RPC
> portal to the Procedure Database.
> This would allow add-ons to be written in any language with a relatively
> small investment in each.  The big plus for the developers of add-on
> would be the ability to use existing IDEs with a DEBUGGER.

As far as I know, there are some plans to introduce javascript as the
new scripting language for GIMP. It was suggested for this year's
summmer of code, but eventually other projects were taken.

If the suggestion to move to javascript is likely to happen anywhere
in the near future, I'm not sure if it's worth it to try write a
scheme debugger. Also, a note from the manual of tinyscheme (the
scheme implementation GIMP currently uses):

> Decent debugging facilities are missing. Only tracing is supported
> natively.

So basically, I don't see any trivial way to implement debugging into
GIMP's scheme withou a serious re-write of GIMP's scheme.
I have only two solutions which are a quick and ugly but they'll work:

1. On my first programming course in the university we learned scheme,
and we wrote a scheme interpeter in scheme for learning purposes. I
think I can hack it and add debugging features to it as I still
remember it's code - then in order to debug a script, you would simply
pass the script as a to a function called "mc-eval". I'll need to ask
permission from my professor to distribute the code, but I'm pretty
sure he'll agree.

2. We can connect an external scheme implementation which supports
debugging (I have one which I wrote in java, and there are probably
more better existing ones) and allow it to run the script itself. When
it doesn't find a function, then it will invoke the aproppriate
procedure from GIMP using a call to the PDB (since if a script uses a
function which is not defined in it, it's probably a gimp procedure)

So, I see no way of implementing a scheme debugger in GIMP nativly,
but there are two tools which we can connect externally to provide
debugging options.
Back to javascript - I think that a debugger should be included on the
project's todo.

These are my thoughts - tell me if any of them seem interesting enough to try.

Gimp-developer mailing list

Reply via email to