Greetings, all.

The topic of Tiny-Fu as a replacement for Script-Fu surfaced once again. This time in comment #2 of bug #329443 in Bugzilla. This was followed up in comment #4 with:

In response to comment #2: I have no idea what Kevin is waiting for. It seems that he lost interest in doing this change. I also have no idea if he has restored Script-Fu compatibility. Last I checked this wasn't the case and Tiny-Fu wasn't ready to replace Script-Fu.

I wasn't waiting for anything but I'm not going to make such a big change to GIMP without an ok and plan on how this should be done from the core developers. I also haven't lost interest in Tiny-Fu. I was busy on an important project for a client for the better part of a year. Once that project slowed down and I had some free time once again I was working on some other projects that had been put off for a while.

Basic information about, and status of, Tiny-Fu
Tiny-Fu is stable and has been working well for some time now for both the 2.2 and CVS versions of GIMP. Most of the recent changes being made were to keep in line with changes made in Script-Fu. All of the scripts which accompany Script-Fu are available and working for Tiny-Fu except for the spyrogimp script.

Tiny-Fu is not, and will not be, a 100% compatible drop-in replacement for Script-Fu due to differences in the Scheme interpreter used vs. the one used in Script-Fu.

Differences and problems compared to Script-Fu
1. The filenames of Tiny-Fu scripts must end in .sct to avoid conflicts with Script-Fu scripts. 2. Scripts must use Tiny-Fu/tiny-fu instead of Script-Fu/script-fu in public function names and in the register block.
3. Variables must be defined before first use.
4. Local variables are local in scope and not global as they are in Script-Fu. 5. Parsing (and execution of scripts?) seems a bit slower compared to Tiny-Fu.
6. Tiny-Fu includes many of the SIOD functions via a compatability layer.

Comments regarding the above points
1. The tools used to extract strings marked for translation do not recognize the .sct extension as indicating a file containing Scheme code. This means that no strings are extracted from the scripts unless you patch intltools. 2. This means a certain minor amount of work is required for any script which is to be run with Tiny-Fu. 3. This results in another incompatability with Script-Fu as it allows variables to be used that were not previously defined.
5. This may be due in part to the support for UTF-8.
6. Not all of the SIOD functions available in Script-Fu are available in Tiny-Fu. Also, due to differences between the two interpreters some SIOD functions can not be implemented in Tiny-Fu.

Advantages of Tiny-Fu vs. Script-Fu
o Uses a Scheme interpreter which is still being developed.
o Easier to debug scripts by turning tracing on and off.
o Better compliance with the R5RS Scheme standard making it a little easier to use if you are already familiar with Scheme.
o Handles UTF-8 coded characters and strings.
o String arrays are handled as arrays just like the other array types.
This can save a lot of data nodes (ie. memory) compared to using a list which is used in Script-Fu. o Extra date, time, and file-handling routines. Also regex based pattern matching. A contact sheet script demonstrates some of the new possibilities for scripts that may not be possible to write with standard Script-Fu.
o Support for SF-RADIO parameter in register blocks
 This is a work in progress and is not yet in CVS. It should be ready soon.
o Ability to use run-time loadable extensions.
This feature is currently disabled. I am considering re-enabling it as part of the work for version 2.0 of Tiny-Fu.

What next?
Script-Fu should be removed from the GIMP source tree and made available as a separately developed project. This would allow the first two issues listed under "Differences" to be easily solved. It would also make it easier to transition from Script-Fu to Tiny-Fu. Packagers and users would be free to choose whether they wanted to continue using Script-Fu or if they would prefer to use the newer Tiny-Fu plug-in.

There have been some previous discussions about removing Script-Fu from the main GIMP source tree. It would be up to packagers of GIMP as to how they will package it and which projects in CVS they include in their packages. The GIMP web site can provide information as to the moving of Script-Fu out of the main source tree in to a separate tree.

In regards to some people thinking that moving Script-Fu out of the GIMP source tree is going to make some people feel Script-Fu is being retired they would be correct. A number of the GIMP developers have been wanting Script-Fu to die for some time. It has just been a question of when, rather than if, it will happen.

I think that about covers the issues relating to Tiny-Fu. What is needed now is some consensus as to how best to proceed in light of the 2.4 release of GIMP which is getting closer.



Kevin.  (

Owner of Elecraft K2 #2172        |"What are we going to do today, Borg?"
E-mail:kcozens at interlog dot com|"Same thing we always do, Pinkutus:
Packet:[EMAIL PROTECTED]|  Try to assimilate the world!"
#include <disclaimer/favourite>   |              -Pinkutus & the Borg

Gimp-developer mailing list

Reply via email to