RSS/Atom feed Twitter
Site is read-only, email is disabled

Switch to Tiny-Fu, end of Script-Fu maintenance?

This discussion is connected to the gimp-developer-list.gnome.org mailing list which is provided by the GIMP developers and not related to gimpusers.com.

This is a read-only list on gimpusers.com so this discussion thread is read-only, too.

17 of 18 messages available
Toggle history

Please log in to manage your subscriptions.

Switch to Tiny-Fu, end of Script-Fu maintenance? Raphaël Quinet 05 Oct 10:10
  Switch to Tiny-Fu, end of Script-Fu maintenance? Sven Neumann 05 Oct 20:15
   Switch to Tiny-Fu, end of Script-Fu maintenance? Raphaël Quinet 06 Oct 11:38
   Switch to Tiny-Fu, end of Script-Fu maintenance? Kevin Cozens 10 Oct 01:55
    Switch to Tiny-Fu, end of Script-Fu maintenance? Sven Neumann 10 Oct 10:20
     LGM 2007 Montreal - Question for GIMP devels Louis Desjardins 11 Oct 22:08
     Switch to Tiny-Fu, end of Script-Fu maintenance? Kevin Cozens 13 Oct 17:42
      Switch to Tiny-Fu, end of Script-Fu maintenance? Raphaël Quinet 14 Oct 02:08
       Switch to Tiny-Fu, end of Script-Fu maintenance? Kevin Cozens 14 Oct 07:50
       BAY119-F28DCADF68D1F6D2DB8D... mobin joseph 15 Oct 16:33
        Switch to Tiny-Fu, end of Script-Fu maintenance? Alexandre Prokoudine 15 Oct 19:49
      Switch to Tiny-Fu, end of Script-Fu maintenance? Sven Neumann 15 Oct 16:15
       Switch to Tiny-Fu, end of Script-Fu maintenance? Kevin Cozens 16 Oct 07:20
       Switch to Tiny-Fu, end of Script-Fu maintenance? Kevin Cozens 16 Oct 22:16
      Switch to Tiny-Fu, end of Script-Fu maintenance? Sven Neumann 16 Oct 12:45
       Switch to Tiny-Fu, end of Script-Fu maintenance? Kevin Cozens 16 Oct 17:58
Switch to Tiny-Fu, end of Script-Fu maintenance? Saul Goode 06 Oct 06:10
  Switch to Tiny-Fu, end of Script-Fu maintenance? Sven Neumann 06 Oct 08:22
Raphaël Quinet
2006-10-05 10:10:31 UTC (over 17 years ago)

Switch to Tiny-Fu, end of Script-Fu maintenance?

Since last week, Tiny-Fu is able to run many of the old Script-Fu scripts unmodified: it reads files with the *.scm extension and uses the "script-fu-*" namespace so that it can process the calls to script-fu-register.

I tested Tiny-Fu with several third-party scripts or scripts that are not in the gimp module (e.g., scripts from gimp-gap). I tried a few dozen scripts written for GIMP 2.0 and 2.2, and most of them ran without problems: there were no difference when the scripts were executed with the old Script-Fu interpreter (siod) or with the new Tiny-Fu interpreter (tinyscheme). I only got problems in a couple of scripts that were not declaring variables correctly or were incorrectly mixing the scope of some variables (global/local). For example, this occured in the "smart remove object" script that came with with the resynthesizer plug-in. But most of the scripts worked fine with Tiny-Fu. In fact, some of them even worked better: for example, Script-Fu's text circle had problems processing text containing foreign characters, while Tiny-Fu processes these characters without problems.

Besides these improvements, the main visible difference is that Tiny-Fu registers some menu entries using the name "Tiny-Fu" instead of "Script-Fu". For example: Xtns -> Tiny-Fu -> Tiny-Fu Console. However, even that could be changed easily if most developers or documenters prefer to keep the old name for historical reasons.

From my point of view, Tiny-Fu is now ready to replace Script-Fu and I

would like to encourage everybody to make the switch so that we can fix any remaining bugs. Considering that Tiny-Fu solves some real problems (i18n), the sooner we can do the switch, the better.

Unless anyone objects, I would like to commit a trivial patch tomorrow that disables Script-Fu by default in configure.in. It will still be possible to use the old interpreter by using --enable-script-fu explicitely, but otherwise Script-Fu should be considered as obsolete.

-Raphaël

Sven Neumann
2006-10-05 20:15:58 UTC (over 17 years ago)

Switch to Tiny-Fu, end of Script-Fu maintenance?

Hi,

On Thu, 2006-10-05 at 10:10 +0200, Raphaël Quinet wrote:

From my point of view, Tiny-Fu is now ready to replace Script-Fu and I would like to encourage everybody to make the switch so that we can fix any remaining bugs. Considering that Tiny-Fu solves some real problems (i18n), the sooner we can do the switch, the better.

First of all, I would like to hear Kevin on this. I have asked him to tell us about his goals for Tiny-Fu and in order to evaluate this question, we absolutely need to know what the goals are.

Then, I would suggest that instead of ending maintainance of Script-Fu that we switch the Scheme interpreter in Script-Fu to tiny-scheme. Instead of removing our only platform independent language binding, we should apply the changes that Kevin has done in the gimp-tiny-fu module to the plug-ins/script-fu directory in the GIMP tree. This should be a relatively small change since it only involves replacing the Scheme interpreter. The scripts itself and probably most of the UI code can be left untouched. Development on Script-Fu can then continue as usual and hopefully under the lead of Kevin and the tiny-fu CVS module has fulfilled its role and can be declared as merged and closed.

Unless anyone objects, I would like to commit a trivial patch tomorrow that disables Script-Fu by default in configure.in. It will still be possible to use the old interpreter by using --enable-script-fu explicitely, but otherwise Script-Fu should be considered as obsolete.

Definitely not. Not unless we have discussed this.

Sven

Saul Goode
2006-10-06 06:10:23 UTC (over 17 years ago)

Switch to Tiny-Fu, end of Script-Fu maintenance?

Unless anyone objects, I would like to commit a trivial patch tomorrow that disables Script-Fu by default in configure.in. It will still be possible to use the old interpreter by using --enable-script-fu explicitely, but otherwise Script-Fu should be considered as obsolete.

I should like to try out Tiny-fu on its own but I have been unable to compile the GIMP without Script-fu. I have performed an uninstall, make clean, and configured with the --disable-script-fu but SIOD is still installed.

Could you shed any light on what I am doing wrong?

-------- "It is amazing what you can accomplish if you do not care who gets the credit." -- Harry S. Truman

Sven Neumann
2006-10-06 08:22:40 UTC (over 17 years ago)

Switch to Tiny-Fu, end of Script-Fu maintenance?

Hi,

On Thu, 2006-10-05 at 21:10 -0700, Saul Goode wrote:

Unless anyone objects, I would like to commit a trivial patch tomorrow that disables Script-Fu by default in configure.in. It will still be possible to use the old interpreter by using --enable-script-fu explicitely, but otherwise Script-Fu should be considered as obsolete.

I should like to try out Tiny-fu on its own but I have been unable to compile the GIMP without Script-fu. I have performed an uninstall, make clean, and configured with the --disable-script-fu but SIOD is still installed.

You used 'make uninstall' after reconfiguring with --disable-script-fu, didn't you? Anyway, why don't you just manually remove the script-fu plug-in from the GIMP plug-ins directory?

Sven

Raphaël Quinet
2006-10-06 11:38:52 UTC (over 17 years ago)

Switch to Tiny-Fu, end of Script-Fu maintenance?

On Thu, 05 Oct 2006 20:15:58 +0200, Sven Neumann wrote:

On Thu, 2006-10-05 at 10:10 +0200, Raphaël Quinet wrote:

From my point of view, Tiny-Fu is now ready to replace Script-Fu and I would like to encourage everybody to make the switch so that we can fix any remaining bugs. Considering that Tiny-Fu solves some real problems (i18n), the sooner we can do the switch, the better.

[...]

Then, I would suggest that instead of ending maintainance of Script-Fu that we switch the Scheme interpreter in Script-Fu to tiny-scheme. Instead of removing our only platform independent language binding, we should apply the changes that Kevin has done in the gimp-tiny-fu module to the plug-ins/script-fu directory in the GIMP tree. [...]

Yes, that would be the best solution.

In restrospect, I think that it was not such a great idea to encourage Kevin to develop Tiny-Fu in a separate module: although it provided a "safe sandbox" for experimenting with the new interpreter without disturbing the existing scripts, it resulted in a lot of duplicated efforts and the main negative effect was that many people did not even try Tiny-Fu and it slowed down the replacement of siod by tinyscheme. If you compare this with the Python code or even with the SoC projects that were started in separate branches, it is obvious that developing code inside the gimp module leads to a much faster adoption and creates less conflicts. I would have been better to encourage Kevin to use the tinyscheme interpreter in the gimp tree (probably in a branch).

My suggestion to disable Script-Fu by default was basically made out of despair because I thought that you would not try Tiny-Fu otherwise. But if you agree to replace the interpreter, then that's even better.

But anyway, let's wait for Kevin's comments...

-Raphaël

Kevin Cozens
2006-10-10 01:55:36 UTC (over 17 years ago)

Switch to Tiny-Fu, end of Script-Fu maintenance?

Sven Neumann wrote:

First of all, I would like to hear Kevin on this. I have asked him to tell us about his goals for Tiny-Fu and in order to evaluate this question, we absolutely need to know what the goals are.

My goals re: Tiny-Fu have never changed. See my reply to the "devel docs" thread.

Instead of removing our only platform independent language binding, we should apply the changes that Kevin has done in the gimp-tiny-fu module to the plug-ins/script-fu directory in the GIMP tree.

You suggested moving Script-Fu (and pygimp) in to a module outside of the GIMP source tree in 2004. If you currently prefer to keep Script-Fu in the main source tree and roll the Tiny-Fu changes in to the existing Script-Fu plug-in, that could be done. It would also avoid any issues relating to where Script-Fu bugs should be filed in Bugzilla.

> This should be a > relatively small change since it only involves replacing the Scheme > interpreter. The scripts itself and probably most of the UI code can be

left untouched.

Define small. ;-) It isn't all that bad but it may not be as small a change as you think. I have done a quick global search/replace on a copy of the Tiny-Fu source files so I could run a diff against Script-Fu.

I'm still reviewing the changes listed in the diff to come up with a patch file for the main set of changes to the Script-Fu source. At the moment, there are 9 files that will be altered, a tenth (siod-wrapper.c) should be renamed in addition to changes, the siod directory will be removed, three directories with source will be added, and a few Makefile will need to be updated.

I would suggest using the Tiny-Fu scripts as they are known to work with Tiny-Fu. The Script-Fu ones may work but I haven't tested them recently and don't particularly feel like going through the process of testing 95+ scripts (again). I would also prefer to use the Tiny-Fu I had made some of the globally defined functions in the script files local to functions in the script. This avoids conflicts between scripts that defined a function with the same name but may not have been identical. In addition, I reformatted the Tiny-Fu scripts which makes it easier to see the syntax of the language. IMO this makes them better as example scripts, and makes it easier for the new or casual Script-Fu writer to write or modify a script as they won't have to waste a ton of time counting brackets to find out where they missed one (or more) brackets.

> Development on Script-Fu can then continue as usual and

hopefully under the lead of Kevin and the tiny-fu CVS module has fulfilled its role and can be declared as merged and closed.

I don't plan on going anywhere. In the short term, I would be about the only one familiar with the TinyScheme portion of a new Script-Fu. The Tiny-Fu could probably be closed after a merge although I wonder if it might still have any value as a sandbox for work relating to version 2.

I will work on creating a TinyScheme based Script-Fu. I will want a clear "go ahead" from the core developer(s) before a TinyScheme based version of Script-Fu gets commited to the main GIMP source tree. Once a merge takes place we will be commited to using "Tiny-Fu" due mainly to the number of changes and the hassle it would be to back out all the changes.

Sven Neumann
2006-10-10 10:20:47 UTC (over 17 years ago)

Switch to Tiny-Fu, end of Script-Fu maintenance?

Hi,

On Mon, 2006-10-09 at 19:55 -0400, Kevin Cozens wrote:

You suggested moving Script-Fu (and pygimp) in to a module outside of the GIMP source tree in 2004.

Well, that was two years ago and lots of people have expressed their opinion that splitting up the gimp tree into stand-alone modules would be a bad idea. Let's say that I was convinced...

I would suggest using the Tiny-Fu scripts as they are known to work with Tiny-Fu. The Script-Fu ones may work but I haven't tested them recently and don't particularly feel like going through the process of testing 95+ scripts (again).

Fine with me. But I was assuming that the scripts are identical anyway. If you prefer to use the ones in Tiny-Fu, you will have to make sure that you incorporate the recent changes, in particular the blurb review.

I will work on creating a TinyScheme based Script-Fu. I will want a clear "go ahead" from the core developer(s) before a TinyScheme based version of Script-Fu gets commited to the main GIMP source tree. Once a merge takes place we will be commited to using "Tiny-Fu" due mainly to the number of changes and the hassle it would be to back out all the changes.

Well, Tiny-Fu basically won't exist any longer then. Script-Fu will just have gotten a major overhaul and a new Scheme interpreter. Given that this change works well, and I am pretty sure that it will, we will not want to go back.

I would like to review the patch before it gets committed. But in general I vote for doing the change. If anyone else has strong objections for doing this switch now, please speak up.

Sven

Louis Desjardins
2006-10-11 22:08:32 UTC (over 17 years ago)

LGM 2007 Montreal - Question for GIMP devels

Hello to all,

As you might already know, LGM 2007 will be held in Montreal, Canada, May 4-5-6 2007.

As I am getting the sponsors in for this event, I need to know (or at least have a fair idea) of how many people from the GIMP's devel team will be travelling to Montreal and in the need of sponsorship for travel expenses (flights, buses, cars?). This will help establishing what amount of money we need to gather from all the sponsors.

BTW I am also working on having low-rates rooms available for anyone in need of that too. But rooms and meals are to the travellers expenses. The good news is we are planning a big "Get Together" on Friday night, supper included (and maybe a beer! :o) )... I will keep you posted!

We aim at having a great event in Montreal so we'll do the best we can to get as many people as we can onboard! Let me hear of you!

Cheers,

Louis

Kevin Cozens
2006-10-13 17:42:25 UTC (over 17 years ago)

Switch to Tiny-Fu, end of Script-Fu maintenance?

Sven Neumann wrote:

Fine with me. But I was assuming that the scripts are identical anyway. If you prefer to use the ones in Tiny-Fu, you will have to make sure that you incorporate the recent changes, in particular the blurb review.

I tried using the Script-Fu scripts and immediately ran in to a minor problem. SIOD uses 'the-environment' where TinyScheme uses 'current-environment'. I have reviewed the strings changes applied to Script-Fu and commited the changes to the Tiny-Fu scripts.

I would like to review the patch before it gets committed. But in general I vote for doing the change. If anyone else has strong objections for doing this switch now, please speak up.

My source tree of CVS GIMP now contains a Tiny-Fu'd version of Script-Fu. The changes are available as patch files ready to be reviewed. I am now waiting on a final ok before the changes will be commited to CVS.

Sven suggested I provide the URL to where I have placed information and patches regarding updating Script-Fu as some other people may wish to review the changes.

The URL is http://www.interlog.com/~kcozens/software/gimp/patches/.

At that location you will find a README file and three patches. The README file contains some basic information about the patch files and how they are to be used. As stated in the README, you will also need three directories and a few other files from Tiny-Fu. The total size of the patch files is about 928k.

Do NOT use bugzilla to report issues related to these Script-Fu patches as these changes are not yet part of the official GIMP sources. If you think you have found a bug, e-mail me directly or send the information to the mailing list.

On the other hand, if you can verify that the problem exists in Tiny-Fu, then you may file a bug report against the gimp-tiny-fu in bugzilla.

Raphaël Quinet
2006-10-14 02:08:38 UTC (over 17 years ago)

Switch to Tiny-Fu, end of Script-Fu maintenance?

On Fri, 13 Oct 2006 11:42:25 -0400, Kevin Cozens wrote:

My source tree of CVS GIMP now contains a Tiny-Fu'd version of Script-Fu. The changes are available as patch files ready to be reviewed. I am now waiting on a final ok before the changes will be commited to CVS.

Consider this to be a conditional OK from my side. I have discovered a number of bugs in your patches, but they can be fixed easily so I trust you for fixing them before committing them.

Sven suggested I provide the URL to where I have placed information and patches regarding updating Script-Fu as some other people may wish to review the changes.

The URL is http://www.interlog.com/~kcozens/software/gimp/patches/.

At that location you will find a README file and three patches. The README file contains some basic information about the patch files and how they are to be used. As stated in the README, you will also need three directories and a few other files from Tiny-Fu. The total size of the patch files is about 928k.

Anybody who tries to apply these patches would be well advised to pay close attention to the README file first. ;-) Maybe it will be updated to cover some of the points that I will mention in this message, but for the moment you also have to take care of the following: - script-fu.patch and wrapper.patch have to be applied from one level above your top gimp dir, or from the top dir using "-p1" - But scripts.patch should be applied from within plug-ins/script-fu/scripts - The README does not mention that you also have to copy contactsheet.scm, tiny-fu-set-cmap.scm, ts-helloworld.scm from tiny-fu's scripts dir (and rename tinu-fu=* to script-fu-*)
- You have to run "make" at least once from the top-level directory so that configure rebuilds your Makefiles (if you are in maintainer mode). You can also re-rerun autogen.sh.

Once this is done, you will probably discover a couple of bugs (they might be fixed by the time you read this): - gimp-labels.scm is missing a quote at the end of lines 130 and 145 - sota-chrome-logo.scm has a "e" instead of "(" before line 200 - Some scripts such as waves-anim.scm or spinning-globe.scm do not initialize some variables that should be initialized to 0. When you run them, you will get an error saying that ">" or "" or "t worry very much when these changes were in Tiny-Fu CVS because I thought that it would be changed back later, but now it looks like these changes are here to stay. The old style makes the code more compact and easier to read (IMHO). Besides, my old LISP professor told me to avoid (set! ...) whenever possible and claimed that LISP machines worked better when the declarations were in the (let ...). I have never verified that dubious claim, but I still try to avoid set! whenever possible.

Anyway, I assume that these bugs will be fixed soon because most of them are rather minor. Once they have fixed, you have my OK for committing (unless someone else objects). I will probably be away for about one week so I will not be able to comment further on this in the next few days.

-Raphaël

Kevin Cozens
2006-10-14 07:50:34 UTC (over 17 years ago)

Switch to Tiny-Fu, end of Script-Fu maintenance?

Raphaël Quinet wrote:

Anybody who tries to apply these patches would be well advised to pay close attention to the README file first.

I had updated the README file and the scripts.patch file last night but had not uploaded the new versions to the web site. The new files have now been uploaded.

- Some scripts such as waves-anim.scm or spinning-globe.scm do not initialize some variables that should be initialized to 0.

Several scripts have been fixed where the initialization had gotten lost. I'm still reviewing the patch file and will fix any other cases where initialization has gone missing.

declarations like this:
(let ((var1 (expr1))
(var2 (expr2)
...)
...)
were rewritten in the following way: (let ((var1)
(var2)
...)
(set! var1 (expr1))
(set! var2 (expr2))
...)
I prefer the old style, especially when the expressions are relatively short.

I also prefer the old style. Examples of the above will be fixed as they are found. The patch file for the scripts will be updated once the initial review of the changes is complete.

Sven Neumann
2006-10-15 16:15:15 UTC (over 17 years ago)

Switch to Tiny-Fu, end of Script-Fu maintenance?

Hi Kevin,

On Fri, 2006-10-13 at 11:42 -0400, Kevin Cozens wrote:

My source tree of CVS GIMP now contains a Tiny-Fu'd version of Script-Fu. The changes are available as patch files ready to be reviewed. I am now waiting on a final ok before the changes will be commited to CVS.

Sven suggested I provide the URL to where I have placed information and patches regarding updating Script-Fu as some other people may wish to review the changes.

The URL is http://www.interlog.com/~kcozens/software/gimp/patches/.

I had a look at the patches and they look good to me. There are a number of minor coding style glitches and one or two minor user interface problems but those can easily be dealt with as soon as the patches are in CVS. So please go ahead and commit the changes.

Sven

Alexandre Prokoudine
2006-10-15 19:49:04 UTC (over 17 years ago)

Switch to Tiny-Fu, end of Script-Fu maintenance?

On 10/15/06, mobin joseph wrote:

please take me out of the mailing list thank you.

Since noone took you here, why should someone take you out of here?

Bottom line of every email in this list is:

https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-developer

Please go there and remove yourself from the list.

Alexandre

Kevin Cozens
2006-10-16 07:20:40 UTC (over 17 years ago)

Switch to Tiny-Fu, end of Script-Fu maintenance?

Sven Neumann wrote:

I had a look at the patches and they look good to me. There are a number of minor coding style glitches and one or two minor user interface problems but those can easily be dealt with as soon as the patches are in CVS. So please go ahead and commit the changes.

The changes have been commited to CVS. It was certainly my biggest ever single commit. Many things to Saul Goode (saul on IRC) and Raphael Quinet for their assistance in reviewing the proposed changes to the script files.

Now to sit back and wait for the kudos, complaints, bug reports, and general comments. :-)

I will update the Tiny-Fu web page in the next day or so to reflect that it is no longer in active development now that it has been rolled in to CVS GIMP's Script-Fu plug-in. Tiny-Fu is still valid for the 2.2 versions of GIMP but the only changes for 2.2 will be bug fixes.

The main development relating to use of Scheme as a scripting language will be handled in Script-Fu. Tiny-Fu will now be used primarily as a test bed for future versions of Script-Fu. There are a couple of things being considered for future versions of Script-Fu but I don't know yet whether the ideas would require the use of Tiny-Fu to aid in accomplishing the future goals.

Sven Neumann
2006-10-16 12:45:01 UTC (over 17 years ago)

Switch to Tiny-Fu, end of Script-Fu maintenance?

Hi Kevin,

On Fri, 2006-10-13 at 11:42 -0400, Kevin Cozens wrote:

I tried using the Script-Fu scripts and immediately ran in to a minor problem. SIOD uses 'the-environment' where TinyScheme uses 'current-environment'.

I ran into this problem as well. On one of my machines, the script image-structure.scm was still found in the scripts search path (it has been removed during the 2.3 development cycle). This causes a warning at startup and when the Script-Fu Console is being launched. Is there some way we can work around this? It would be nice if scripts that use 'the-environment' would continue to work.

Sven

Kevin Cozens
2006-10-16 17:58:48 UTC (over 17 years ago)

Switch to Tiny-Fu, end of Script-Fu maintenance?

Sven Neumann wrote:

On Fri, 2006-10-13 at 11:42 -0400, Kevin Cozens wrote:

I tried using the Script-Fu scripts and immediately ran in to a minor problem. SIOD uses 'the-environment' where TinyScheme uses 'current-environment'.

Is there some
way we can work around this? It would be nice if scripts that use 'the-environment' would continue to work.

I thought I had fixed that a few days ago when I ran across it but it appears to have gotten lost in all the chaos of the last few days. A fix for this has been commited to CVS.

Kevin Cozens
2006-10-16 22:16:28 UTC (over 17 years ago)

Switch to Tiny-Fu, end of Script-Fu maintenance?

Sven Neumann wrote:

I had a look at the patches and they look good to me. There are a number of minor coding style glitches and one or two minor user interface problems but those can easily be dealt with as soon as the patches are in CVS. So please go ahead and commit the changes.

I have no problem with changes being made to ensure the files follow GIMP coding styles with one exception. I would prefer that the format of the source files in the tinyscheme directory do NOT get reformatted.

The version of TinyScheme I am using is a slightly modified copy of the official version of TinyScheme. Leaving the formatting as is makes it easier for me to apply changes in the official TinyScheme interpreter to the version that is used in Tiny-Fu and now used in Script-Fu. Fortunately, most changes in TinyScheme have been relatively small over the last several versions since I started using it.