From: Vince D. <vi...@sa...> - 2002-06-24 16:15:51
|
I've been out of touch with plplot development for some time, but was wondering what the current status of the 'Tk' driver is, and whether anything from the 'tea' branch I contributed to (a long time ago) has actually been incorporated into plplot? * new 'tkwin.c' driver which works on Win/Unix/MacOS with Tk * better plframe widget * better Itcl extended plframe megawidgets * fixes to colour palettes, etc. * fixes to other parts of Tcl<->plplot interaction anyone ever looked at that again? cheers, -- Vince <http://www.santafe.edu/~vince> |
From: Maurice L. <mj...@ga...> - 2002-06-25 05:05:27
|
Vince Darley writes: > I've been out of touch with plplot development for some time, but was > wondering what the current status of the 'Tk' driver is, and whether > anything from the 'tea' branch I contributed to (a long time ago) has > actually been incorporated into plplot? > > * new 'tkwin.c' driver which works on Win/Unix/MacOS with Tk > * better plframe widget > * better Itcl extended plframe megawidgets > * fixes to colour palettes, etc. > * fixes to other parts of Tcl<->plplot interaction I integrated the color palette stuff in Jan with enhancement to work with DirectColor visuals & related support. As for the rest, my plan is to continue moving it over piecemeal as I get to it. The TEA build will have to wait until our build paradigm is changed to be compatible, i.e. Rafael's AM/LT work. -- Maurice LeBrun mj...@ga... Research Organization for Information Science and Technology of Japan (RIST) |
From: Vince D. <vi...@sa...> - 2002-06-28 11:08:23
|
Can the current plplot be compiled as one or more Tcl extensions on Unix? (i.e. so 'package require plplot' does something useful in a standard Tk shell)? If so, then at least integrating the first two items below should be relatively easy. On Tue, 25 Jun 2002, Maurice LeBrun wrote: > Vince Darley writes: > > I've been out of touch with plplot development for some time, but was > > wondering what the current status of the 'Tk' driver is, and whether > > anything from the 'tea' branch I contributed to (a long time ago) has > > actually been incorporated into plplot? > > > > * new 'tkwin.c' driver which works on Win/Unix/MacOS with Tk > > * better plframe widget > > * better Itcl extended plframe megawidgets > > * fixes to colour palettes, etc. > > * fixes to other parts of Tcl<->plplot interaction > > I integrated the color palette stuff in Jan with enhancement to work with > DirectColor visuals & related support. As for the rest, my plan is to > continue moving it over piecemeal as I get to it. The TEA build will have > to wait until our build paradigm is changed to be compatible, i.e. Rafael's > AM/LT work. > > -- > Maurice LeBrun mj...@ga... > Research Organization for Information Science and Technology of Japan (RIST) > |
From: Geoffrey F. <fu...@ga...> - 2002-06-28 15:51:53
|
Vince Darley writes: > Can the current plplot be compiled as one or more Tcl extensions on Unix? > (i.e. so 'package require plplot' does something useful in a standard Tk > shell)? If so, then at least integrating the first two items below should > be relatively easy. No one has done TEA yet (on the main branch), if that's what you're asking. The details are foggy in my brain at this point. I remember looking in some detail at the TEA branch a year or so ago, and being concerned about some aspect of how the TEA branch interacted with device selection. I remember there was discussion about it at the time, and I remember being personally convinced that a better solution was possible, but by now it has been so long since the discussion that I cannot remember the details of the problem or of the discussed solutions. I have some TEA work ahead of me in my day job, so it is possible that I will become engrossed in the whole thing sometime this summer/fall, but it hasn't percolated to "top priority" quite yet. BTW, you are welcome to selectively integrate things from your list below, into the main branch yourself, if you wish. IMHO, part of the problem with the TEA branch is that too much happened on it. Reviewing the changes between TEA and main, is too big a task. If the first two items depend on the TEA integration, perhaps you could just take the bottom three, and move that out of the TEA branch and into main (assuming they are suitably mature for production use by the wide world of PLplot folk). I'm a big fan of named branches, for focused work. But if the TEA branch has roughly 5 major tasks all within it, I think that results, on a purely human level, in an impediment to getting it merged. Especially if the merge is left to others than the developer(s) on the branch. It seems to me that perhaps some of this could've been done directly on main, or that perhaps a few named branches, each with more limited scope, could've been employed. Actually moving over to TEA, is probably a substantive effort, and surely deserving of a named branch. But the rest of the stuff, I would think, should be pretty independent of the TEA work, per se. > On Tue, 25 Jun 2002, Maurice LeBrun wrote: > > Vince Darley writes: > > > I've been out of touch with plplot development for some time, but was > > > wondering what the current status of the 'Tk' driver is, and whether > > > anything from the 'tea' branch I contributed to (a long time ago) has > > > actually been incorporated into plplot? > > > > > > * new 'tkwin.c' driver which works on Win/Unix/MacOS with Tk > > > * better plframe widget > > > * better Itcl extended plframe megawidgets > > > * fixes to colour palettes, etc. > > > * fixes to other parts of Tcl<->plplot interaction > > > > I integrated the color palette stuff in Jan with enhancement to work with > > DirectColor visuals & related support. As for the rest, my plan is to > > continue moving it over piecemeal as I get to it. The TEA build will have > > to wait until our build paradigm is changed to be compatible, i.e. Rafael's > > AM/LT work. |
From: Vince D. <vi...@sa...> - 2002-07-01 09:50:53
|
On Fri, 28 Jun 2002, Geoffrey Furnish wrote: > Vince Darley writes: > > Can the current plplot be compiled as one or more Tcl extensions on Unix? > > (i.e. so 'package require plplot' does something useful in a standard Tk > > shell)? If so, then at least integrating the first two items below should > > be relatively easy. > No one has done TEA yet (on the main branch), if that's what you're > asking. That's not exactly what I was asking, but I think you've answered the question anyway. There are many parts to TEA: a particular way of building, the use of Tcl/Tk's 'stubs' tables, etc. > The details are foggy in my brain at this point. I remember looking > in some detail at the TEA branch a year or so ago, and being concerned > about some aspect of how the TEA branch interacted with device > selection. I remember there was discussion about it at the time, and > I remember being personally convinced that a better solution was > possible, but by now it has been so long since the discussion that I > cannot remember the details of the problem or of the discussed > solutions. I must say I don't remember anything about device selection, but this was a long time ago... > I have some TEA work ahead of me in my day job, so it is possible that > I will become engrossed in the whole thing sometime this summer/fall, > but it hasn't percolated to "top priority" quite yet. > > BTW, you are welcome to selectively integrate things from your list > below, into the main branch yourself, if you wish. IMHO, part of the > problem with the TEA branch is that too much happened on it. > Reviewing the changes between TEA and main, is too big a task. If > the first two items depend on the TEA integration, perhaps you could > just take the bottom three, and move that out of the TEA branch and > into main (assuming they are suitably mature for production use by the > wide world of PLplot folk). I've uploaded a patch to sourceforge which contains the first set of changes needed to cvs head. Assuming that doesn't break anything, then that patch, plus a few new files, will allow a first build of plplot against Windows Tk. I'd appreciate it if someone could check whether that patch breaks anything (note: the patch has windows eols (\r\n) so care is needed to apply it correctly on Unix). > I'm a big fan of named branches, for focused work. But if the TEA > branch has roughly 5 major tasks all within it, I think that results, > on a purely human level, in an impediment to getting it merged. > Especially if the merge is left to others than the developer(s) on the > branch. It seems to me that perhaps some of this could've been done > directly on main, or that perhaps a few named branches, each with more > limited scope, could've been employed. It really has two major tasks in it: new build technique, and addition of support for Tk cross platform. In my mind the latter is far more important than the former. cheers, Vince. |
From: Alan W. I. <ir...@be...> - 2002-07-01 16:52:58
|
On Mon, 1 Jul 2002, Vince Darley wrote: > I've uploaded a patch to sourceforge which contains the first set of > changes needed to cvs head. Assuming that doesn't break anything, then > that patch, plus a few new files, will allow a first build of plplot > against Windows Tk. > > I'd appreciate it if someone could check whether that patch breaks > anything (note: the patch has windows eols (\r\n) so care is needed to > apply it correctly on Unix). The line endings problem was easily fixed using the tr -d '\r' <file.in >file.out command. Once that change was made, the patch applied cleanly, and plplot was configured and built without errors and similarly for make cdemos fdemos cxxdemos tkdemos Furthermore, all my tk interactive tests worked fine (and I liked the page control you now have for the tkdemos.tcl demos). However, pltcl no longer works. ./pltcl -dev xwin application-specific initialization failed: Can't find a usable plplot.tcl in the following directories: /usr/lib/plplot5.1 /home/software/plplot_cvs/HEAD/plplot_darley/lib/plplot5.1 /home/software/plplot_cvs/HEAD/lib/plplot5.1 /home/software/plplot_cvs/HEAD/plplot_darley/library /home/software/plplot_cvs/HEAD/library /home/software/plplot_cvs/HEAD/plplot5.1/library /home/software/plplot_cvs/plplot5.1/library This probably means that plplot wasn't installed properly. This is undoubtedly a configuration issue. The point is that stuff built in plplot_darley/tmp should just work without installation so long as you stay in that directory. (Once plplot is installed, that should work as well with whatever install location prefix is used, but I haven't gotten that far, yet.) Note, there is a plplot.tcl in the current directory, /home/software/plplot_cvs/HEAD/plplot_darley/tmp. Vince, what environment variable do I need to set (or what change to source files) to put the current directory on the list of directories to be searched for plplot.tcl? Once this is sorted out so I can successfully run pltcl, then that will complete my tests, and I intend to commit your patch to cvs so others can give it a try. Alan |
From: Vince D. <vi...@sa...> - 2002-07-01 17:01:33
|
On Mon, 1 Jul 2002, Alan W. Irwin wrote: > Note, there is a plplot.tcl in the current directory, > /home/software/plplot_cvs/HEAD/plplot_darley/tmp. > Vince, what environment variable do I need to set (or what change to source > files) to put the current directory on the list of directories to be > searched for plplot.tcl? Once this is sorted out so I can successfully > run pltcl, then that will complete my tests, and I intend to commit > your patch to cvs so others can give it a try. Thanks for trying this Alan. PL_LIBRARY is the environment variable you can set (see tclAPI.c: static char initScript[] = "tcl_findLibrary plplot 5.1 \"\" plplot.tcl PL_LIBRARY pllibrary"; ). Alternatively the 'pllibrary' Tcl variable can be set. Basically 'PlbasicInit' needs to be able to find 'plplot.tcl' and source it. 'tcl_findLibrary' is a standard Tcl command which simplifies this task. cheers, Vince. |
From: Alan W. I. <ir...@be...> - 2002-07-01 19:14:26
|
On Mon, 1 Jul 2002, Vince Darley wrote: > PL_LIBRARY is the environment variable you can set (see tclAPI.c: > static char initScript[] = > "tcl_findLibrary plplot 5.1 \"\" plplot.tcl PL_LIBRARY pllibrary"; > ). Alternatively the 'pllibrary' Tcl variable can be set. > OK. setenv PL_LIBRARY . made everything work fine in plplot/tmp. You will probably have to set that environment variable to something else for the installed version to work on Linux if you use a non-standard prefix. Anyhow, because everything is working I committed your 11 file changes to CVS. I am afraid I used one giant commit with a rather generic commit message for all 11 files because I didn't follow the details of your changes, but in future to make it easier for all of us to follow the changes it would be better to have more fine-grained commit messages appropriate to much smaller groups of files that were being committed at one time. Vince, you are a full member of the core developer team for plplot so I assume you have full access to cvs. I was glad to help in this case to get the line-endings right, but I assume you can do that for yourself from now on. Therefore I am going to ignore your subsequent patch since you can put that into cvs yourself. Note the informal rule on file line endings is Linux/Unix line endings "nl" everywhere in the tree except the windows specific part of the tree such as sys/win32/msdev/ where windows line endings "cr nl" should be used. I have Linux programmes that change Linux line endings to windows line endings and I use the tr command to go from windows line endings to Linux line endings. Here is the c code for Linux to windows, and I am sure you can adapt it to go the other way (or use the tr command if that is available on your system). #include <stdio.h> /* copy input to output exactly except for translating \n to \r\n. * Thus, this code is a utility for translating a file from unix line * termination to windows line termination. */ main() { int c; int cr = '\r'; while ((c = getchar()) != EOF) { if (c == '\n') putchar(cr); putchar(c); } } Happy Canada Day! Alan |
From: Maurice L. <mj...@ga...> - 2002-07-02 03:35:24
|
Alan W. Irwin writes: > On Mon, 1 Jul 2002, Vince Darley wrote: > > > PL_LIBRARY is the environment variable you can set (see tclAPI.c: > > static char initScript[] = > > "tcl_findLibrary plplot 5.1 \"\" plplot.tcl PL_LIBRARY pllibrary"; > > ). Alternatively the 'pllibrary' Tcl variable can be set. > > > > OK. > > setenv PL_LIBRARY . > > made everything work fine in plplot/tmp. You will probably have to set that > environment variable to something else for the installed version to work on > Linux if you use a non-standard prefix. I don't like this at all. Why isn't the current directory being searched? -- Maurice LeBrun mj...@ga... Research Organization for Information Science and Technology of Japan (RIST) |
From: Alan W. I. <ir...@be...> - 2002-07-02 06:14:56
|
On Mon, 1 Jul 2002, Maurice LeBrun wrote: > Alan W. Irwin writes: > > On Mon, 1 Jul 2002, Vince Darley wrote: > > > > > PL_LIBRARY is the environment variable you can set (see tclAPI.c: > > > static char initScript[] = > > > "tcl_findLibrary plplot 5.1 \"\" plplot.tcl PL_LIBRARY pllibrary"; > > > ). Alternatively the 'pllibrary' Tcl variable can be set. > > > > > > > OK. > > > > setenv PL_LIBRARY . > > > > made everything work fine in plplot/tmp. You will probably have to set that > > environment variable to something else for the installed version to work on > > Linux if you use a non-standard prefix. > > I don't like this at all. Why isn't the current directory being searched? I agree it is slightly inconvenient for users to set an environment variable so this should ultimately be fixed. What specifically do you suggest? I was tempted to put a "." in the list that Vince mentioned above, but I wasn't sure that was the right syntax to use or even if tcl experts such as yourself really did want the local directory always searched for this file or if so, in what order? For example, there might be security implications in always automatically searching the current directory first (or at all) since it is a very similar situation to putting "." in your path. Anyhow, I would appreciate you and Vince thinking about all this and making the final decision. Until this minor fix is finalized, setting the environment variable should be okay for testing purposes on CVS. When you actually try the latest CVS version are there any other concerns that need to be addressed? Alan |
From: Maurice L. <mj...@ga...> - 2002-07-02 09:10:58
|
Alan W. Irwin writes: > On Mon, 1 Jul 2002, Maurice LeBrun wrote: > > > Alan W. Irwin writes: > > > On Mon, 1 Jul 2002, Vince Darley wrote: > > > > > > > PL_LIBRARY is the environment variable you can set (see tclAPI.c: > > > > static char initScript[] = > > > > "tcl_findLibrary plplot 5.1 \"\" plplot.tcl PL_LIBRARY pllibrary"; > > > > ). Alternatively the 'pllibrary' Tcl variable can be set. > > > > > > > > > > OK. > > > > > > setenv PL_LIBRARY . > > > > > > made everything work fine in plplot/tmp. You will probably have to set that > > > environment variable to something else for the installed version to work on > > > Linux if you use a non-standard prefix. > > > > I don't like this at all. Why isn't the current directory being searched? > > I agree it is slightly inconvenient for users to set an environment variable > so this should ultimately be fixed. > > What specifically do you suggest? I was tempted to put a "." in the list > that Vince mentioned above, but I wasn't sure that was the right syntax to > use or even if tcl experts such as yourself really did want the local > directory always searched for this file or if so, in what order? For > example, there might be security implications in always automatically > searching the current directory first (or at all) since it is a very similar > situation to putting "." in your path. Anyhow, I would appreciate you and > Vince thinking about all this and making the final decision. Setting PL_LIBRARY is the best solution but I think "." should be searched last, as a last-ditch effort to find plplot.tcl. Just so that you don't ever have to set PL_LIBRARY if all you're doing is building/testing. -- Maurice LeBrun mj...@ga... Research Organization for Information Science and Technology of Japan (RIST) |
From: Vince D. <vi...@sa...> - 2002-07-02 09:31:55
|
>>> Setting PL_LIBRARY is the best solution but I think "." should be searched last, as a last-ditch effort to find plplot.tcl. Just so that you don't ever have to set PL_LIBRARY if all you're doing is building/testing. >>> Unfortunately, the nice function we're using (tcl_findLibrary) is a standard Tcl library function which doesn't search '.'. All I can think of that we add a check just before that initScript to check if PL_LIBRARY is set, and if not, then to set it to '.'. Either that, or running 'pltcl' from the build directory should simply require you to set PL_LIBRARY to . first. (You can even add make targets to do that). What is 'pltcl' supposed to do, from the build directory, if 'PL_LIBRARY' is set? Presumably it should use that and ignore what is in '.' anyway. I'm in the middle of committing the other parts of the first set of changes, in small pieces. cheers, -- Vince <http://www.santafe.edu/~vince> |
From: Maurice L. <mj...@ga...> - 2002-07-02 10:05:02
|
Vince Darley writes: > >>> > Setting PL_LIBRARY is the best solution but I think "." should be > searched > last, as a last-ditch effort to find plplot.tcl. Just so that you don't > ever > have to set PL_LIBRARY if all you're doing is building/testing. > >>> > > Unfortunately, the nice function we're using (tcl_findLibrary) is a > standard Tcl library function which doesn't search '.'. All I can think > of that we add a check just before that initScript to check if PL_LIBRARY > is set, and if not, then to set it to '.'. OK, sure. > What is 'pltcl' supposed to do, from the build directory, if 'PL_LIBRARY' > is set? Presumably it should use that and ignore what is in '.' anyway. Right. -- Maurice LeBrun mj...@ga... Research Organization for Information Science and Technology of Japan (RIST) |
From: Vince D. <vi...@sa...> - 2002-07-02 10:16:56
|
Note: If desired I can upload a simple binary .zip archive of a package which should be loadable into a standard Tk interpreter (i.e. drop unzipped directory into your Tcl tree on any windows machine, and 'package require Plplotter' will work). However, I don't currently have appropriate permissions on the plplot project. You can grab it from ftp://ftp.ucsd.edu/pub/alpha/tcl/extensions/plplot5.1a.zip if you'd like to test/upload/whatever. -- Vince <http://www.santafe.edu/~vince> |
From: Alan W. I. <ir...@be...> - 2002-07-02 16:09:11
|
Vince, I won't be able to test the package you mention below because I don't have access to a windows machine. However, I did make a fresh checkout/configure/build, and there were no obvious problems with your recent round of changes from the Linux perspective. I do still have to setenv PL_LIBRARY . in the plplot/tmp directory to get the tcl stuff to work there. I must say I didn't understand the discussion between Maurice and you on this issue. I would be perfectly happy to use the above command in the tmp area so long as the installed version that most of our users will be using does not require setting an environment variable. For an installation prefix of /usr/local/plplot the plplot.tcl is installed in /usr/local/plplot/lib/plplot5.1.0/tcl on Linux systems. However, the *installed version* of pltcl now gives the following error: *********** application-specific initialization failed: Can't find a usable plplot.tcl in the following directories: . /usr/lib/plplot5.1 /usr/local/plplot/lib/plplot5.1 /usr/local/lib/plplot5.1 /usr/local/plplot/library /usr/local/library /usr/local/plplot5.1/library /usr/plplot5.1/library This probably means that plplot wasn't installed properly. *********** This error goes away if you setenv PL_LIBRARY /usr/local/plplot/lib/plplot5.1.0/tcl BTW, I also tried setenv PL_LIBRARY /usr/local/plplot/lib/plplot5.1.0 but the tcl on the end is necessary. From the above error message pltcl automatically searchs $prefix/lib/plplot5.1 now. Vince, how can that be changed to $prefix/lib/plplot5.1.0/tcl, instead so setting the environment variable is not necessary on the installed version. Alan email: ir...@be... phone: 250-727-2902 FAX: 250-721-7715 snail-mail: Dr. Alan W. Irwin Department of Physics and Astronomy, University of Victoria, P.O. Box 3055, Victoria, British Columbia, Canada, V8W 3P6 __________________________ Linux-powered astrophysics __________________________ On Tue, 2 Jul 2002, Vince Darley wrote: > Note: If desired I can upload a simple binary .zip archive of a package > which should be loadable into a standard Tk interpreter (i.e. drop > unzipped directory into your Tcl tree on any windows machine, .... |
From: Vince D. <vi...@sa...> - 2002-07-02 16:39:30
|
I've committed a minor change to tclAPI.c to try to get it to look both in '.' (should solve the build test problem) and to look for tcl/plplot.tcl (should solve the default install problem). hope that helps, -- Vince <http://www.santafe.edu/~vince> |
From: Alan W. I. <ir...@be...> - 2002-07-02 17:35:06
|
On Tue, 2 Jul 2002, Vince Darley wrote: > I've committed a minor change to tclAPI.c to try to get it to look both in > '.' (should solve the build test problem) and to look for tcl/plplot.tcl > (should solve the default install problem). > > hope that helps, That certainly works now in plplot/tmp. But the installed version still does not work. Here is the message. application-specific initialization failed: Can't find a usable tcl/plplot.tcl in the following directories: /usr/plplot5.1/library I have looked at your changes to tclAPI.h, and I believe they should be very close to working for the installed version (in fact I got something similar to this to work on install simply by modifying initScript, but you beat me to check-in, and your solution is more sophisticated in that it is meant to work both on windows and linux). The only question I have is your change to the treatment of libDir. Is that new treatment somehow limiting the search to just the one directory above for the installed version? If you go back to the old treatment, I think that the installed version will work on Linux (but of course that might blast the success you now have with plplot/tmp so I leave it to you to figure this out in a general way). Alan |
From: Vince D. <vi...@sa...> - 2002-07-02 17:46:42
|
On Tue, 2 Jul 2002, Alan W. Irwin wrote: > application-specific initialization failed: Can't find a usable > tcl/plplot.tcl in the following directories: > /usr/plplot5.1/library > > I have looked at your changes to tclAPI.h, and I believe they should be very > close to working for the installed version (in fact I got something similar > to this to work on install simply by modifying initScript, but you beat me > to check-in, and your solution is more sophisticated in that it is meant to > work both on windows and linux). > > The only question I have is your change to the treatment of libDir. Is that > new treatment somehow limiting the search to just the one directory above > for the installed version? If you go back to the old treatment, I think > that the installed version will work on Linux (but of course that might > blast the success you now have with plplot/tmp so I leave it to you to > figure this out in a general way). I don't think it should restrict the search to one directory, but it seems to be doing just that. Perhaps your solution is better. What were you going to change 'initScript' to? cheers, Vince. |
From: Alan W. I. <ir...@be...> - 2002-07-02 18:58:58
|
On Tue, 2 Jul 2002, Vince Darley wrote: > On Tue, 2 Jul 2002, Alan W. Irwin wrote: > > > application-specific initialization failed: Can't find a usable > > tcl/plplot.tcl in the following directories: > > /usr/plplot5.1/library > > > > I have looked at your changes to tclAPI.h, and I believe they should be very > > close to working for the installed version (in fact I got something similar > > to this to work on install simply by modifying initScript, but you beat me > > to check-in, and your solution is more sophisticated in that it is meant to > > work both on windows and linux). > > > > The only question I have is your change to the treatment of libDir. Is that > > new treatment somehow limiting the search to just the one directory above > > for the installed version? If you go back to the old treatment, I think > > that the installed version will work on Linux (but of course that might > > blast the success you now have with plplot/tmp so I leave it to you to > > figure this out in a general way). > > I don't think it should restrict the search to one directory, but it seems > to be doing just that. Perhaps your solution is better. What were you > going to change 'initScript' to? I didn't do anything particularly sophisticated. 3 versions ago (i.e., for version 1.32), this worked fine for install (but not for built version in plplot/tmp). static char initScript[] = "tcl_findLibrary plplot 5.1.0/tcl \"\" plplot.tcl PL_LIBRARY pllibrary"; i.e., I just replaced 5.1 by 5.1.0/tcl for just this line in 1.32. So I was essentially just doing what you are now doing with initScriptExtended, and I therefore think your current approach should work fine except for some additional changes you made to libDir. Here is the diff I am talking about between version 1.32 and version 1.35. I may have it wrong, but I think I understand the initScriptExtended stuff so by elimination I think it is the changed libDir stuff that is causing the trouble. Alan ******************* Index: tclAPI.c =================================================================== RCS file: /cvsroot/plplot/plplot/bindings/tcl/tclAPI.c,v retrieving revision 1.32 retrieving revision 1.35 diff -u -3 -p -r1.32 -r1.35 --- tclAPI.c 2 Jul 2002 11:30:36 -0000 1.32 +++ tclAPI.c 2 Jul 2002 16:44:25 -0000 1.35 @@ -1,4 +1,4 @@ -/* $Id: tclAPI.c,v 1.32 2002/07/02 11:30:36 vincentdarley Exp $ +/* $Id: tclAPI.c,v 1.35 2002/07/02 16:44:25 vincentdarley Exp $ Copyright 1994, 1995 Maurice LeBrun mj...@di... @@ -313,6 +313,15 @@ loopbackCmd(ClientData clientData, Tcl_I static char defaultLibraryDir[200] = PL_LIBRARY; extern char* plplotLibDir; +#if (!defined(MAC_TCL) && !defined(__WIN32__)) +/* + * Use an extended search for installations on Unix where we + * have very likely installed plplot so that plplot.tcl is + * in /usr/local/plplot/lib/plplot5.1.0/tcl + */ +#define PLPLOT_EXTENDED_SEARCH +#endif + /* * PlbasicInit * @@ -326,7 +335,11 @@ PlbasicInit( Tcl_Interp *interp ) { static char initScript[] = "tcl_findLibrary plplot 5.1 \"\" plplot.tcl PL_LIBRARY pllibrary"; - char *libDir; +#ifdef PLPLOT_EXTENDED_SEARCH + static char initScriptExtended[] = + "tcl_findLibrary plplot 5.1.0 \"\" tcl/plplot.tcl PL_LIBRARY pllibrary"; +#endif + char *libDir = NULL; #ifdef USE_TCL_STUBS /* * We hard-wire 8.1 here, rather than TCL_VERSION, TK_VERSION because @@ -359,16 +372,48 @@ PlbasicInit( Tcl_Interp *interp ) #endif Tcl_SetVar(interp, "plversion", "5.1", TCL_GLOBAL_ONLY); - if(Tcl_Eval(interp, initScript)) + if (Tcl_Eval(interp, initScript) != TCL_OK) { +#ifdef PLPLOT_EXTENDED_SEARCH + if (Tcl_Eval(interp, initScriptExtended) != TCL_OK) { + /* Last chance, look in '.' */ + Tcl_DString ds; + if (Tcl_Access("plplot.tcl", 0) != 0) { + return TCL_ERROR; + } + if (Tcl_EvalFile(interp, "plplot.tcl") != TCL_OK) { + return TCL_ERROR; + } + /* It is in the current directory */ + libDir = Tcl_GetCwd(interp, &ds); + if (libDir == NULL) { + return TCL_ERROR; + } + libDir = strdup(libDir); + Tcl_DStringFree(&ds); + } + /* + * Clear the result so the user isn't confused by an error + * message from the previous failed search + */ + Tcl_ResetResult(interp); +#else return TCL_ERROR; +#endif + } - libDir = Tcl_GetVar(interp, "pllibrary", TCL_GLOBAL_ONLY); if (libDir == NULL) { - Tcl_SetVar(interp, "pllibrary", defaultLibraryDir, TCL_GLOBAL_ONLY); + libDir = Tcl_GetVar(interp, "pllibrary", TCL_GLOBAL_ONLY); + if (libDir == NULL) { + /* I don't believe this path can ever be reached now */ + Tcl_SetVar(interp, "pllibrary", defaultLibraryDir, TCL_GLOBAL_ONLY); + libDir = defaultLibraryDir; + } } else { - /* Used by init code in plctrl.c */ - plplotLibDir = strdup(libDir); + Tcl_SetVar(interp, "pllibrary", libDir, TCL_GLOBAL_ONLY); } + + /* Used by init code in plctrl.c */ + plplotLibDir = strdup(libDir); #ifdef TCL_DIR if (libDir == NULL) { ******************* |
From: Vince D. <vi...@sa...> - 2002-07-03 13:47:32
|
The first tcl demo, 'x01.tcl' has a problem if it is called after drawing a previous demo --- the four plots overwrite whatever was previously drawn rather than clearing the plot page first. My reading of the manual: Advances to the next subpage if sub=0, performing a page advance if there are no remaining subpages on the current page. If subwindowing isn't being used, pladv(0) will always advance the page. If sub>0, PLplot switches to the specified subpage. Note that this allows you to overwrite a plot on the specified subpage; if this is not what you intended, use pleop followed by plbop to first advance the page. This routine is called automatically (with sub=0) by plenv, but if plenv is not used, pladv must be called after initializing PLplot but before defining the viewport. suggests that '$w cmd pladv 0' (as used in x02.tcl, in fact) is the right fix to this problem. (Since x01.tcl doesn't use plenv, "pladv must be called..."). Is this right? -- Vince <http://www.santafe.edu/~vince> |
From: Alan W. I. <ir...@be...> - 2002-07-03 15:29:16
|
Thanks for drawing that problem to my attention. I confirm it here as well with the sequence of commands: pltcl -dev xwin plinit source tcldemos.tcl 2 1 However, inserting an extra pladv is only a superficial fix that will cause problems elsewhere (IMO) because in fact x01.tcl does call pladv already (in plot1 and plot2 indirectly via plenv and directly in plot3). I have now narrowed the problem down to plssub. If you comment that out the overwriting problem disappears. So perhaps there is a deeper lying bug in plssub that should be addressed. I will look deeper into this. Alan email: ir...@be... phone: 250-727-2902 FAX: 250-721-7715 snail-mail: Dr. Alan W. Irwin Department of Physics and Astronomy, University of Victoria, P.O. Box 3055, Victoria, British Columbia, Canada, V8W 3P6 __________________________ Linux-powered astrophysics __________________________ On Wed, 3 Jul 2002, Vince Darley wrote: > The first tcl demo, 'x01.tcl' has a problem if it is called after drawing > a previous demo --- the four plots overwrite whatever was previously drawn > rather than clearing the plot page first. > > My reading of the manual: > > Advances to the next subpage if sub=0, performing a page advance if there > are no remaining subpages on the current page. If subwindowing isn't being > used, pladv(0) will always advance the page. If sub>0, PLplot switches to > the specified subpage. Note that this allows you to overwrite a plot on > the specified subpage; if this is not what you intended, use pleop > followed by plbop to first advance the page. This routine is called > automatically (with sub=0) by plenv, but if plenv is not used, pladv must > be called after initializing PLplot but before defining the viewport. > > suggests that '$w cmd pladv 0' (as used in x02.tcl, in fact) is the right > fix to this problem. (Since x01.tcl doesn't use plenv, "pladv must be > called..."). > > Is this right? > > -- Vince > > <http://www.santafe.edu/~vince> > > > > > > ------------------------------------------------------- > This sf.net email is sponsored by:ThinkGeek > No, I will not fix your computer. > http://thinkgeek.com/sf > _______________________________________________ > Plplot-devel mailing list > Plp...@li... > https://lists.sourceforge.net/lists/listinfo/plplot-devel > |
From: Vince D. <vi...@sa...> - 2002-07-03 15:56:31
|
My reading of the manual is that you _do_ need a pladv before plssub because there is no plenv. The plenv after plssub refers to the subpage set up by plssub and is therefore (I would argue, but this may be nonsense!) nothing to do with the 'plenv' that the man page says you need. but this could be completely wrong ;-) -- Vince <http://www.santafe.edu/~vince> On Wed, 3 Jul 2002, Alan W. Irwin wrote: > Thanks for drawing that problem to my attention. I confirm it here as well > with the sequence of commands: > > pltcl -dev xwin > plinit > source tcldemos.tcl > 2 > 1 > > However, inserting an extra pladv is only a superficial fix that will cause > problems elsewhere (IMO) because in fact x01.tcl does call pladv already (in > plot1 and plot2 indirectly via plenv and directly in plot3). > > I have now narrowed the problem down to plssub. If you comment that out > the overwriting problem disappears. So perhaps there is a deeper lying > bug in plssub that should be addressed. > > I will look deeper into this. > > Alan > > email: ir...@be... > phone: 250-727-2902 FAX: 250-721-7715 > snail-mail: > Dr. Alan W. Irwin > Department of Physics and Astronomy, > University of Victoria, P.O. Box 3055, > Victoria, British Columbia, Canada, V8W 3P6 > __________________________ > > Linux-powered astrophysics > __________________________ > > On Wed, 3 Jul 2002, Vince Darley wrote: > > > The first tcl demo, 'x01.tcl' has a problem if it is called after drawing > > a previous demo --- the four plots overwrite whatever was previously drawn > > rather than clearing the plot page first. > > > > My reading of the manual: > > > > Advances to the next subpage if sub=0, performing a page advance if there > > are no remaining subpages on the current page. If subwindowing isn't being > > used, pladv(0) will always advance the page. If sub>0, PLplot switches to > > the specified subpage. Note that this allows you to overwrite a plot on > > the specified subpage; if this is not what you intended, use pleop > > followed by plbop to first advance the page. This routine is called > > automatically (with sub=0) by plenv, but if plenv is not used, pladv must > > be called after initializing PLplot but before defining the viewport. > > > > suggests that '$w cmd pladv 0' (as used in x02.tcl, in fact) is the right > > fix to this problem. (Since x01.tcl doesn't use plenv, "pladv must be > > called..."). > > > > Is this right? > > > > -- Vince > > > > <http://www.santafe.edu/~vince> > > > > > > > > > > > > ------------------------------------------------------- > > This sf.net email is sponsored by:ThinkGeek > > No, I will not fix your computer. > > http://thinkgeek.com/sf > > _______________________________________________ > > Plplot-devel mailing list > > Plp...@li... > > https://lists.sourceforge.net/lists/listinfo/plplot-devel > > > > |
From: Alan W. I. <ir...@be...> - 2002-07-03 19:36:23
|
Vince, your instincts were completely right, but I don't see how you got the correct solution from the documentation which is somewhat ambiguous....;-) I looked at the code and also did some experiments with the python front end which has exactly the same cross-talk problem. Ordinarily, plssub is called before plinit (see plstart, etc.) But sometimes it must be called afterward as in the present situation for the first and second examples (whether tcl or python). In the old days, plssub called plP_eop() and then plP_bop which generated empty pages for some drivers before I commented out those calls. plP_subpInit (called both by plssub and plinit) sets cursub to 0. So when the first or second examples are executed in isolation without the initial pladv(0) before plssub(2,2) everything is fine. However, if these examples are called after another example as occurs both for the python and tcl demos, then you have to finish the last page of the previous example by a call to pladv(0). This required extra pladv(0) (for both the first and second examples in python and tcl) does not generate an extra blank page if the examples are run in isolation (or first) because of special logic already in place in pladv. Thus, your fix was correct so I have reinstated that as well as the same fix for the first python example. As you state, the extra pladv(0) is already in the second (tcl and python) example, but I also put some commentary in there as to why. Thanks for drawing my attention to this problem. Alan email: ir...@be... phone: 250-727-2902 FAX: 250-721-7715 snail-mail: Dr. Alan W. Irwin Department of Physics and Astronomy, University of Victoria, P.O. Box 3055, Victoria, British Columbia, Canada, V8W 3P6 __________________________ Linux-powered astrophysics __________________________ On Wed, 3 Jul 2002, Vince Darley wrote: > My reading of the manual is that you _do_ need a pladv before plssub > because there is no plenv. The plenv after plssub refers to the subpage > set up by plssub and is therefore (I would argue, but this may be > nonsense!) nothing to do with the 'plenv' that the man page says you need. > > but this could be completely wrong ;-) > > -- Vince > > <http://www.santafe.edu/~vince> > > > On Wed, 3 Jul 2002, Alan W. Irwin wrote: > > > Thanks for drawing that problem to my attention. I confirm it here as well > > with the sequence of commands: > > > > pltcl -dev xwin > > plinit > > source tcldemos.tcl > > 2 > > 1 > > > > However, inserting an extra pladv is only a superficial fix that will cause > > problems elsewhere (IMO) because in fact x01.tcl does call pladv already (in > > plot1 and plot2 indirectly via plenv and directly in plot3). > > > > I have now narrowed the problem down to plssub. If you comment that out > > the overwriting problem disappears. So perhaps there is a deeper lying > > bug in plssub that should be addressed. > > > > I will look deeper into this. > > > > Alan > > > > email: ir...@be... > > phone: 250-727-2902 FAX: 250-721-7715 > > snail-mail: > > Dr. Alan W. Irwin > > Department of Physics and Astronomy, > > University of Victoria, P.O. Box 3055, > > Victoria, British Columbia, Canada, V8W 3P6 > > __________________________ > > > > Linux-powered astrophysics > > __________________________ > > > > On Wed, 3 Jul 2002, Vince Darley wrote: > > > > > The first tcl demo, 'x01.tcl' has a problem if it is called after drawing > > > a previous demo --- the four plots overwrite whatever was previously drawn > > > rather than clearing the plot page first. > > > > > > My reading of the manual: > > > > > > Advances to the next subpage if sub=0, performing a page advance if there > > > are no remaining subpages on the current page. If subwindowing isn't being > > > used, pladv(0) will always advance the page. If sub>0, PLplot switches to > > > the specified subpage. Note that this allows you to overwrite a plot on > > > the specified subpage; if this is not what you intended, use pleop > > > followed by plbop to first advance the page. This routine is called > > > automatically (with sub=0) by plenv, but if plenv is not used, pladv must > > > be called after initializing PLplot but before defining the viewport. > > > > > > suggests that '$w cmd pladv 0' (as used in x02.tcl, in fact) is the right > > > fix to this problem. (Since x01.tcl doesn't use plenv, "pladv must be > > > called..."). > > > > > > Is this right? > > > > > > -- Vince > > > > > > <http://www.santafe.edu/~vince> > > > > > > > > > > > > > > > > > > ------------------------------------------------------- > > > This sf.net email is sponsored by:ThinkGeek > > > No, I will not fix your computer. > > > http://thinkgeek.com/sf > > > _______________________________________________ > > > Plplot-devel mailing list > > > Plp...@li... > > > https://lists.sourceforge.net/lists/listinfo/plplot-devel > > > > > > > > > > > ------------------------------------------------------- > This sf.net email is sponsored by:ThinkGeek > No, I will not fix your computer. > http://thinkgeek.com/sf > _______________________________________________ > Plplot-devel mailing list > Plp...@li... > https://lists.sourceforge.net/lists/listinfo/plplot-devel > |
From: Vince D. <vi...@sa...> - 2002-07-04 15:24:05
|
I've committed changes which should resolve all of these issues, I think. The bit I'm not 100% clear on is whether RunAllDemos.tcl will work with plserver, since I don't have a plserver to test on (I tried to compile plplot on sourceforge's compile farm, but couldn't get it to find tcl, tk and got some python compile errors (couldn't find 'swig' I think)). cheers, -- Vince <http://www.santafe.edu/~vince> |
From: Alan W. I. <ir...@be...> - 2002-07-04 17:36:26
|
On Thu, 4 Jul 2002, Vince Darley wrote: > I've committed changes which should resolve all of these issues, I think. Thanks very much for these efforts. The new way of dealing with PLPLOT_VERSION works fine and will make my life much easier at release time. ./plserver source ../examples/tk/runAllDemos.tcl is almost entirely working now. Interestingly, for this environment I get the same first-page skip bug if a multi-page demo (such as 8) is plotted first. Do you get that for your non-plserver environment? If not, that will be another clue for Maurice when he attempts to figure out this long-standing bug. One glitch in runAllDemos.tcl is the page button does not work. Here is the stack trace delivered by plserver bad option "nextpage": must be closelink, cmd, configure, draw, gcmap0, gcmap1, info, openlink, orient, page, print, redraw, save, scmap0, scmap1, scol0, scol1, view, xscroll, or yscroll while executing ".p.plwin nextpage" invoked from within ".bnextpage invoke" ("uplevel" body line 1) invoked from within "uplevel #0 [list $w invoke]" (procedure "tkButtonUp" line 7) invoked from within "tkButtonUp .bnextpage " (command bound to event) Also the shell button does not work invalid command name "console" while executing "console show" invoked from within ".cshell invoke" ("uplevel" body line 1) invoked from within "uplevel #0 [list $w invoke]" (procedure "tkButtonUp" line 7) invoked from within "tkButtonUp .cshell " (command bound to event) Finally, as a wish list item it would be nice to have the plot window completely separate from the buttons (or the buttons much smaller so the plot window is not so crowded on the screen). I also tried runExtendedDemos.tcl since your commit message said it was changed to work under plserver. However, it doesn't. ./plserver % source ../examples/tk/runExtendedDemos.tcl invalid command name "Plplotwin" The other remaining issue I forgot to mention last time was the bindings/tcl/pltclgen perl script that won't work for you because of line-ending issues. I assume that should be straightforward since perl has had to deal with these sorts of issues forever. However, that will probably take somebody familiar with perl (Geoffrey?) to figure this out. > The bit I'm not 100% clear on is whether RunAllDemos.tcl will work with > plserver, since I don't have a plserver to test on (I tried to compile > plplot on sourceforge's compile farm, but couldn't get it to find tcl, tk > and got some python compile errors (couldn't find 'swig' I think)). Thanks for trying the compile farm, but it is probably a no-hoper except for testing the very innermost core of plplot with just the postscript driver. Yes, the compile farm probably didn't have swig at all or swig-1.1 rather than the required swig-1.3. Of course you could have worked around that by the --disable-python configure option. The missing tk and tcl headers (which I assume is what the problem is) on the compile farm are the real showstoppers. But for unknown reasons SF have a long track record of excluding essential developer packages from their compile-farm machines. <rant on> A year ago when I complained about tk, tcl, and X (!) headers being missing, on the compile farm boxes, the SF support people claimed it would be too much work to download and install them. I got a similar response when I noticed some of their essential packages were way out of date and therefore vulnerable to security holes. Their responses were complete nonsense of course since their compile farm box was a Debian machine where the packages were just an apt-get away from being installed or updated to the latest version. Personally, I have never been impressed with sourceforge "support". I certainly like all the tools they give us to play with such as the forums, mailing lists, file release area, cvs, webcvs, etc., but if anything goes wrong you are largely on your own, and God help you if you ever want anything extra (such as Tcl/Tk headers on the compile farm boxes). Fundamentally, I believe the problem is they hired most of their staff during the Linux bubble, and they got some really lame support people as a result who have always had the senority and who have always set a really bad tone of coming up with excuse after excuse for inaction. Because their support is so bad I don't see much long-term viability for SourceForge even if they could overcome their monetary losses. SourceForge do provide a lot of nice toys so I am willing to stick with them until their demise, however. <rant off> In my opinion, if you had access to a low-end PC that is otherwise not used for much you would be much better off converting it to Linux using say RedHat 7.3 (a distribution used heavily by our astrogroup) or Debian woody (my preferred distribution). Then you are in complete control and can download anything you need. But if you have no access to a box you could convert to Linux, then I am here to help.... Alan |