On Mon, 29 Jan 2007 16:05:26 +0200, Alexander Rabtchevich <[EMAIL PROTECTED]> 
> Many 3-rd side script-fu scripts, working in 2.3.12, refused to work in 
> 2.3.14 on Windows. One of them even kills Gimp at program start.
> Where can I read what has changed in script-fu specifications to adapt 
> scripts? Or has the API changed?

As you can read in the NEWS file, the Scheme interpreter for Script-Fu
has been replaced in 2.3.13.  The old one (SIOD) was replaced by a better
one (TinyScheme).  TinyScheme offers a better support for the Scheme
standard and for foreign languages: the old Script-Fu based on SIOD did
not work well with UTF-8 strings.

The old interpreter tolerated some poor programming constructs that are
not tolerated anymore by the new one.  The main difference is that all
variables have to be declared before being used.  The old interpreter
allowed you to do a (set! ...) on a variable without declaring it first
and without giving it an appropriate scope in a (let ...) or (let* ...).

Besides encouraging bad programming style ("global variables"), this
resulted in some namespace pollution and even in some bugs due to
undetected spelling errors in variable names.  The new interpreter does
not accept these errors anymore, so if you have a script that was
abusing set!, then you should fix the bugs in your script and ensure
that all variables are given an appropriate scope using let.

Maybe we should retroactively change the NEWS file and add another
line to the 2.3.13 entry saying something like "all variables in
script-fu should be declared before being used"?

Gimp-developer mailing list

Reply via email to