On Mon, 29 Jan 2007 16:05:26 +0200, Alexander Rabtchevich <alexander.v.rabtchevich@xxxxxxxxxxxxxxx> wrote: > 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"? -Raphaël _______________________________________________ Gimp-developer mailing list Gimp-developer@xxxxxxxxxxxxxxxxxxxxxx https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-developer