From: Alan W. I. <ir...@be...> - 2013-11-14 00:32:37
|
Hi Arjen: I have made a lot of progress in the last week or so fixing a fairly large number of PLplot issues for Tcl and friends (Tcl, Tk, Itcl, Itk, and Iwidgets). I will only list the ones I remember here, but there were many more. * There have been lots of improvements to the version consistency checking for tcl and friends that is implemented by our build system. This new build-system logic works great for me both for my system version and built version of Tcl and friends. But others should test this new build system logic as well to make sure everything that is found is the expected consistent version, and there are no WARNINGS concerning missing components that are actually installed and which should be found by our build system. * A long-standing issue where Tcl example 33 character escape codes sometimes were ignored turned out to have a simple solution (revision 12693). * A long-standing issue for the ::PLPLOT:: namespace hex constants has now been fixed by converting those to integers * A long-standing issue with making those constants properly accessible in all cases has been fixed. Arjen, this is one (I mentioned that ::PLPLPLOT::PL_PI was sometimes not accessible) of the ones I asked you to investigate, but by accident I spotted the solution today (revision 12695), The other issue I asked you to investigate still remains; the incredible hack in tkdemos.tcl (and accompanying instructions in examples/tk/README.tkdemos to make that incredible hack work) to distinguish between the cases when tkdemos is sourced from a plserver environment or a wish environment needs to be fixed. I have just (as of revison 12695) finished a comprehensive check of Tcl and friends for PLplot using "make test_interactive" in the build tree and all the additional tests mentioned in examples/tcl/README.tcldemos and examples/tk/README.tkdemos. Everything works except for some minor exceptions for the tclsh and wish tests. The tclsh exception is example 14 errors out when it attempts to start the second device. Wish has that exception and two others; example 2 gives the error message Couldn't parse color 76 and example 24 gives the error message illegal number of colors in cmap0: red I have no idea what is causing those color issues. Will you be willing to take a look at those? Note, that before you do the tclsh and wish tests you should run the test_interactive AND all targets to get all the required dependencies built that are required for the tests. All the above tests were for my system version (Debian wheezy) of Tcl8.5 and friends. I plan to repeat all these same tests for the Tcl8.6 and friends that I have built, but preliminary versions of those tests have been looking good (thanks to getting all the PLplot build-system issues straightened out that I mentioned above). More later on those additional test results for Tcl8.6 and friends. Alan __________________________ Alan W. Irwin Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca). Programming affiliations with the FreeEOS equation-of-state implementation for stellar interiors (freeeos.sf.net); the Time Ephemerides project (timeephem.sf.net); PLplot scientific plotting software package (plplot.sf.net); the libLASi project (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project (lbproject.sf.net). __________________________ Linux-powered Science __________________________ |
From: Arjen M. <Arj...@de...> - 2013-11-14 07:17:21
|
Hi Alan, yes, I have seen the various commit messsages. Many thanks for this work! I will have a look at the color issues and the hack in tkdemos. Meanwhile, I have been looking at the Pltk issue - mainly to see how I can reproduce it. So far, I have not succeeded with this. I can try in three different ways: - Using Cygwin - Using one of the Linux machines I have access to (none running Debian) - Using a virtual machine running Debian The latter is perhaps the most direct way, but it is also the most demanding one. Anyway I hope to make some progress with that this week. I will also get rid of the "TclFormatInt" issue today. Regards, Arjen > -----Original Message----- > From: Alan W. Irwin [mailto:ir...@be...] > Sent: Thursday, November 14, 2013 1:32 AM > To: Arjen Markus; PLplot development list > Cc: Maurice LeBrun > Subject: Status of Tcl and friends > > Hi Arjen: > > I have made a lot of progress in the last week or so fixing a fairly large number of > PLplot issues for Tcl and friends (Tcl, Tk, Itcl, Itk, and Iwidgets). I will only list the > ones I remember here, but there were many more. > > * There have been lots of improvements to the version consistency checking for tcl > and friends that is implemented by our build system. > This new build-system logic works great for me both for my system version and built > version of Tcl and friends. But others should test this new build system logic as well > to make sure everything that is found is the expected consistent version, and there > are no WARNINGS concerning missing components that are actually installed and > which should be found by our build system. > > * A long-standing issue where Tcl example 33 character escape codes sometimes > were ignored turned out to have a simple solution (revision 12693). > > * A long-standing issue for the ::PLPLOT:: namespace hex constants has now been > fixed by converting those to integers > > * A long-standing issue with making those constants properly accessible in all cases > has been fixed. Arjen, this is one (I mentioned that ::PLPLPLOT::PL_PI was > sometimes not accessible) of the ones I asked you to investigate, but by accident I > spotted the solution today (revision 12695), > > The other issue I asked you to investigate still remains; the incredible hack in > tkdemos.tcl (and accompanying instructions in examples/tk/README.tkdemos to > make that incredible hack work) to distinguish between the cases when tkdemos is > sourced from a plserver environment or a wish environment needs to be fixed. > > I have just (as of revison 12695) finished a comprehensive check of Tcl and friends > for PLplot using "make test_interactive" in the build tree and all the additional tests > mentioned in examples/tcl/README.tcldemos and examples/tk/README.tkdemos. > Everything works except for some minor exceptions for the tclsh and wish tests. The > tclsh exception is example 14 errors out when it attempts to start the second device. > Wish has that exception and two others; example 2 gives the error message > > Couldn't parse color 76 > > and example 24 gives the error message > > illegal number of colors in cmap0: red > > I have no idea what is causing those color issues. Will you be willing to take a look > at those? Note, that before you do the tclsh and wish tests you should run the > test_interactive AND all targets to get all the required dependencies built that are > required for the tests. > > All the above tests were for my system version (Debian wheezy) of > Tcl8.5 and friends. I plan to repeat all these same tests for the > Tcl8.6 and friends that I have built, but preliminary versions of those tests have been > looking good (thanks to getting all the PLplot build-system issues straightened out > that I mentioned above). > > More later on those additional test results for Tcl8.6 and friends. > > Alan > __________________________ > Alan W. Irwin > > Astronomical research affiliation with Department of Physics and Astronomy, > University of Victoria (astrowww.phys.uvic.ca). > > Programming affiliations with the FreeEOS equation-of-state implementation for > stellar interiors (freeeos.sf.net); the Time Ephemerides project (timeephem.sf.net); > PLplot scientific plotting software package (plplot.sf.net); the libLASi project > (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); and the Linux Brochure > Project (lbproject.sf.net). > __________________________ > > Linux-powered Science > __________________________ DISCLAIMER: This message is intended exclusively for the addressee(s) and may contain confidential and privileged information. If you are not the intended recipient please notify the sender immediately and destroy this message. Unauthorized use, disclosure or copying of this message is strictly prohibited. The foundation 'Stichting Deltares', which has its seat at Delft, The Netherlands, Commercial Registration Number 41146461, is not liable in any way whatsoever for consequences and/or damages resulting from the improper, incomplete and untimely dispatch, receipt and/or content of this e-mail. |
From: Arjen M. <Arj...@de...> - 2013-11-14 12:19:08
|
Hi Alan, Maurice, running the Tk part of PLplot is a new experience for me, but it is running now on Windows/Cygwin. Drawing is rather slow and I had to adapt the pkgIndex.tcl file for the Cygwin platform, but it is working, including such things as Save/As and Orient/90 and Zoom - the latter produce the plot very fast, whereas otherwise I can see the plot being built up. With this going, I am in a position to check the open issues. Regards, Arjen > -----Original Message----- > From: Arjen Markus [mailto:Arj...@de...] > Sent: Thursday, November 14, 2013 8:17 AM > To: Alan W. Irwin; PLplot development list > Subject: Re: [Plplot-devel] Status of Tcl and friends > > Hi Alan, > > yes, I have seen the various commit messsages. Many thanks for this work! > > I will have a look at the color issues and the hack in tkdemos. > > Meanwhile, I have been looking at the Pltk issue - mainly to see how I can reproduce > it. > So far, I have not succeeded with this. I can try in three different ways: > - Using Cygwin > - Using one of the Linux machines I have access to (none running Debian) > - Using a virtual machine running Debian The latter is perhaps the most direct way, > but it is also the most demanding one. > > Anyway I hope to make some progress with that this week. > > I will also get rid of the "TclFormatInt" issue today. > DISCLAIMER: This message is intended exclusively for the addressee(s) and may contain confidential and privileged information. If you are not the intended recipient please notify the sender immediately and destroy this message. Unauthorized use, disclosure or copying of this message is strictly prohibited. The foundation 'Stichting Deltares', which has its seat at Delft, The Netherlands, Commercial Registration Number 41146461, is not liable in any way whatsoever for consequences and/or damages resulting from the improper, incomplete and untimely dispatch, receipt and/or content of this e-mail. |
From: Alan W. I. <ir...@be...> - 2013-11-15 02:35:39
|
On 2013-11-14 12:18-0000 Arjen Markus wrote: > Hi Alan, Maurice, > > running the Tk part of PLplot is a new experience for me, but it is running now on > Windows/Cygwin. Drawing is rather slow and I had to adapt the pkgIndex.tcl file for > the Cygwin platform, but it is working, including such things as Save/As and Orient/90 > and Zoom - the latter produce the plot very fast, whereas otherwise I can see the > plot being built up. > > With this going, I am in a position to check the open issues. Excellent news, indeed! Alan __________________________ Alan W. Irwin Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca). Programming affiliations with the FreeEOS equation-of-state implementation for stellar interiors (freeeos.sf.net); the Time Ephemerides project (timeephem.sf.net); PLplot scientific plotting software package (plplot.sf.net); the libLASi project (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project (lbproject.sf.net). __________________________ Linux-powered Science __________________________ |
From: Alan W. I. <ir...@be...> - 2013-11-15 08:24:12
|
Hi Arjen: On 2013-11-13 16:32-0800 Alan W. Irwin wrote: > The other issue I asked you to investigate still remains; the > incredible hack in tkdemos.tcl (and accompanying instructions in > examples/tk/README.tkdemos to make that incredible hack work) to > distinguish between the cases when tkdemos is sourced from a plserver > environment or a wish environment needs to be fixed. > > I have just (as of revison 12695) finished a comprehensive check of > Tcl and friends for PLplot using "make test_interactive" in the build > tree and all the additional tests mentioned in > examples/tcl/README.tcldemos and examples/tk/README.tkdemos. > Everything works except for some minor exceptions for the tclsh and > wish tests. The tclsh exception is example 14 errors out when it > attempts to start the second device. Wish has that exception and two > others; example 2 gives the error message > > Couldn't parse color 76 > > and example 24 gives the error message > > illegal number of colors in cmap0: red > > I have no idea what is causing those color issues. Will you be > willing to take a look at those? Note, that before you do the tclsh > and wish tests you should run the test_interactive AND all targets to > get all the required dependencies built that are required for the > tests. Those color issues are still there, but currently example 2 and example 4 are commented out in the configured wish_standard_examples script so that the script can complete without running into those issues. That has allowed me to automate all interactive Tcl and friends tests under the overall "test_interactive" target. To focus _just_ on Tcl and friends in the interests of speed I use the following cmake configuration: rm -rf /home/software/plplot_svn/HEAD/build_dir/* \ /home/software/plplot_svn/installcmake cd /home/software/plplot_svn/HEAD/build_dir cmake -DCMAKE_INSTALL_PREFIX=/home/software/plplot_svn/installcmake \ -DDEFAULT_NO_CAIRO_DEVICES=ON -DPLD_wxwidgets=OFF -DBUILD_TEST=ON \ -DDEFAULT_NO_BINDINGS=ON -DENABLE_tcl=ON -DENABLE_itcl=ON \ -DENABLE_tk=ON -DENABLE_itk=ON -DUSE_INCRTCL_VERSION_4=OFF \ ../plplot_allura >& cmake.out > All the above tests were for my system version (Debian wheezy) of > Tcl8.5 and friends. I just repeated all those tests using simply make test_noninteractive >& test_noninteractive.out make test_interactive >& test_interactive.out The captured output showed no errors, and I didn't notice any obvious rendering issues as the examples flew by. > I plan to repeat all these same tests for the > Tcl8.6 and friends that I have built. This just involved changing my PATH to point to the installed Tcl8.6 version of tclsh. Then repeat all the above steps exactly. The new version of tclsh pulled in the rest of the components that were consistent with Tcl8.6 (thanks to my recent PLplot build system upgrades). Those components included version 3 of Itcl and Itk (linked against Tcl/Tk8.6 and not linked against the system versions of those libraries), and version 4.0.1 of Iwidgets because of -DUSE_INCRTCL_VERSION_4=OFF above. (Note that option is OFF by default in any case so users will not need to specify -DUSE_INCRTCL_VERSION_4=OFF in order to assure they are dealing with version 3 of Itcl and friends.) The results were identical to the results above for the Tcl8.5 and friends system versions. So I am happy with that result and other would-be Tcl8.6 and PLplot users should be happy as well! More later on the -DUSE_INCRTCL_VERSION_4=ON case which proved to be much less boring than the above good results. :-) Alan __________________________ Alan W. Irwin Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca). Programming affiliations with the FreeEOS equation-of-state implementation for stellar interiors (freeeos.sf.net); the Time Ephemerides project (timeephem.sf.net); PLplot scientific plotting software package (plplot.sf.net); the libLASi project (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project (lbproject.sf.net). __________________________ Linux-powered Science __________________________ |
From: Alan W. I. <ir...@be...> - 2013-11-15 08:51:16
|
Hi Arjen (again): On 2013-11-15 00:24-0800 Alan W. Irwin wrote: > [...]I use the following cmake configuration: > > rm -rf /home/software/plplot_svn/HEAD/build_dir/* \ > /home/software/plplot_svn/installcmake > > cd /home/software/plplot_svn/HEAD/build_dir > > cmake -DCMAKE_INSTALL_PREFIX=/home/software/plplot_svn/installcmake \ > -DDEFAULT_NO_CAIRO_DEVICES=ON -DPLD_wxwidgets=OFF -DBUILD_TEST=ON \ > -DDEFAULT_NO_BINDINGS=ON -DENABLE_tcl=ON -DENABLE_itcl=ON \ > -DENABLE_tk=ON -DENABLE_itk=ON -DUSE_INCRTCL_VERSION_4=OFF \ > ../plplot_allura >& cmake.out > > I just repeated all those tests using [...] >> Tcl8.6 and friends that I have built. > > This just involved changing my PATH to point to the installed Tcl8.6 > version of tclsh. Then repeat all the above steps exactly. The new > version of tclsh pulled in the rest of the components that were > consistent with Tcl8.6 (thanks to my recent PLplot build system > upgrades). Those components included version 3 of Itcl and Itk > (linked against Tcl/Tk8.6 and not linked against the system versions > of those libraries), and version 4.0.1 of Iwidgets because of > -DUSE_INCRTCL_VERSION_4=OFF above. (Note that option is OFF by > default in any case so users will not need to specify > -DUSE_INCRTCL_VERSION_4=OFF in order to assure they are dealing with > version 3 of Itcl and friends.) The results were identical to the > results above for the Tcl8.5 and friends system versions. So I am > happy with that result and other would-be Tcl8.6 and PLplot users > should be happy as well! > > More later on the -DUSE_INCRTCL_VERSION_4=ON case which proved > to be much less boring than the above good results. :-) So here is the continuation of that post which is important but somewhat long because the results for -DUSE_INCRTCL_VERSION_4=ON are not boringly perfect. That CMake option pulled in version 4 or Itcl/Itk (also linked against Tcl/Tk8.6) and version 4.1 of Iwidgets. If I applied the following local build-system patch: Index: examples/CMakeLists.txt =================================================================== --- examples/CMakeLists.txt (revision 12702) +++ examples/CMakeLists.txt (working copy) @@ -1013,7 +1013,7 @@ if(FILE_DEPENDS_xwin) add_dependencies(test_tk_02 test_xwin_dyndriver) endif(FILE_DEPENDS_xwin) - list(APPEND targets_examples_tk test_tk_02) +# list(APPEND targets_examples_tk test_tk_02) add_custom_target(test_tk_04 COMMAND xtk04 -f ${CMAKE_CURRENT_BINARY_DIR}/tk/tk04 @@ -1027,7 +1027,7 @@ if(FILE_DEPENDS_xwin) add_dependencies(test_tk_04 test_xwin_dyndriver) endif(FILE_DEPENDS_xwin) - list(APPEND targets_examples_tk test_tk_04) +# list(APPEND targets_examples_tk test_tk_04) endif(ENABLE_itk) endif(ENABLE_tk AND PLD_tk) to exclude these two targets from being dependencies of the test_interactive target, then the test_interactive target ran without any error message or non-zero return codes. However, there were some subtle issues with those results that are not present in the version 3 case. The Iwidgets file chooser (which you can get access to by clicking on "Plot->save->as" for -dev tk) emits an error message that starts as cannot inherit from "iwidgets::Dialog" (cannot inherit from "iwidgets::Dialogshell" (cannot inherit from "iwidgets::Shell" (cannot inherit from "itk::Toplevel" (can't create object "itk::Toplevel": command already exists with that nameITCL: cannot create Tcl_NewObjectInstance for class "::itk::Toplevel")))) .... There is also the same message for part of Plot->Palettes->Palette 0 and Plot->Palettes->Palette 1 if you attempt to "Save Palette" or "Load Palette". I assume that is because those buttons also attempt to run the Iwidgets file chooser (which works well for Version 3 of Itcl and friends). Note that version 4 of Itcl and friends (i.e., version 4 of Itcl and Itk and version 4.1.0 of Iwidget) work well otherwise for the colour palette case; I was able to demonstrate (with the exception of "Save Palette" and "Load Palette") that all the many different colour palette sliders and buttons work in detail for both the Palette 0 and 1 cases just like they do for version 3 of Itcl and friends. This good result is consistent with the extremely small set of differences between Iwidgets-4.0.1 and Iwidgets-4.1.0 which can be seen in cmake/build_projects/iwidgets/iwidgets4.1.patch. This small set of changes allows Iwidgets-4.1.0 to work (with version 4 of Itcl and Itk) as well as Iwidgets-4.0.1 works (with version 3 of Itcl and Itk). (I have demonstrated that by trying the Iwidgets calendar and watch demos in both cases with no issues.) Similarly, I hope only small changes will be required of our own scripts to get the Iwidgets file chooser dialog working again. (More below about that.) The final two tests I made for version 4 of Itcl and friends were to run the two explicit Itcl tests that I locally removed from the above "test_interactive" target. Here are the results for the test_tk_02 target: software@raven> make test_tk_02 [ 0%] Built target tclmatrixd [ 0%] Built target plhershey-unicode-gen [ 4%] Built target plhershey-unicode.h_built [ 4%] Built target csirocsa [ 12%] Built target csironn [ 16%] Built target deltaT-gen [ 16%] Built target deltaT.h_built [ 20%] Built target tai-utc-gen [ 20%] Built target tai-utc.h_built [ 20%] Built target qsastime [ 52%] Built target plplotd [ 60%] Built target plplottcltkd [ 60%] Built target xtk02 [ 60%] Built target plplot.tcl_target [ 60%] Built target tclIndex_tcl [ 76%] Built target tcl_files [ 92%] Built target tclIndex_tk [ 96%] Built target xwin [ 96%] Built target test-drv-info [100%] Built target test_xwin_dyndriver cannot inherit from "PLWin" (cannot inherit from "itk::Widget" (can't create object "itk::Widget": command already exists with that nameITCL: cannot create Tcl_NewObjectInstance for class "::itk::Widget")) while executing "inherit PLWin" (class "Pltkwin" body line 2) invoked from within "itcl::class Pltkwin { inherit PLWin constructor {args} {} protected method plwin {} { return $itk_interior.plwin } public method..." (file "/home/software/plplot_svn/HEAD/build_dir/bindings/tk/Pltkwin.tcl" line 41) invoked from within "source /home/software/plplot_svn/HEAD/build_dir/bindings/tk/Pltkwin.tcl" (in namespace eval "::" script line 1) invoked from within "namespace eval :: $auto_index($name)" (procedure "auto_load" line 13) invoked from within "auto_load $name [uplevel 1 {::namespace current}]" (autoloading "Pltkwin") (procedure "::unknown" line 22) invoked from within "Pltkwin .plw" (file "/home/software/plplot_svn/HEAD/build_dir/examples/tk/tk02" line 49) invoked from within "source /home/software/plplot_svn/HEAD/build_dir/examples/tk/tk02" make[3]: *** [examples/CMakeFiles/test_tk_02] Error 1 make[2]: *** [examples/CMakeFiles/test_tk_02.dir/all] Error 2 make[1]: *** [examples/CMakeFiles/test_tk_02.dir/rule] Error 2 make: *** [test_tk_02] Error 2 software@raven> make test_tk_04 [ 0%] Built target tclmatrixd [ 0%] Built target plhershey-unicode-gen [ 4%] Built target plhershey-unicode.h_built [ 4%] Built target csirocsa [ 12%] Built target csironn [ 16%] Built target deltaT-gen [ 16%] Built target deltaT.h_built [ 20%] Built target tai-utc-gen [ 20%] Built target tai-utc.h_built [ 20%] Built target qsastime [ 52%] Built target plplotd [ 60%] Built target plplottcltkd Scanning dependencies of target xtk04 [ 60%] Building C object examples/tk/CMakeFiles/xtk04.dir/xtk04.c.o Linking C executable xtk04 [ 60%] Built target xtk04 [ 60%] Built target plplot.tcl_target [ 60%] Built target tclIndex_tcl [ 76%] Built target tcl_files [ 92%] Built target tclIndex_tk [ 96%] Built target xwin [ 96%] Built target test-drv-info [100%] Built target test_xwin_dyndriver Scanning dependencies of target test_tk_04 cannot inherit from "PLWin" (cannot inherit from "itk::Widget" (can't create object "itk::Widget": command already exists with that nameITCL: cannot create Tcl_NewObjectInstance for class "::itk::Widget")) while executing "inherit PLWin" (class "PLXWin" body line 2) invoked from within "itcl::class PLXWin { inherit PLWin constructor {args} { eval PLWin::constructor $args } { # Set up defaults plw::setup_defaults $h..." (file "/home/software/plplot_svn/HEAD/build_dir/bindings/tk/PLXWin.itk" line 8) invoked from within "source /home/software/plplot_svn/HEAD/build_dir/bindings/tk/PLXWin.itk" (in namespace eval "::" script line 1) invoked from within "namespace eval :: $auto_index($name)" (procedure "auto_load" line 13) invoked from within "auto_load $name [uplevel 1 {::namespace current}]" (autoloading "PLXWin") (procedure "::unknown" line 22) invoked from within "PLXWin .plw" (file "/home/software/plplot_svn/HEAD/build_dir/examples/tk/tk04" line 37) invoked from within "source /home/software/plplot_svn/HEAD/build_dir/examples/tk/tk04" make[3]: *** [examples/CMakeFiles/test_tk_04] Error 1 make[2]: *** [examples/CMakeFiles/test_tk_04.dir/all] Error 2 make[1]: *** [examples/CMakeFiles/test_tk_04.dir/rule] Error 2 make: *** [test_tk_04] Error 2 So all three error messages are different, but similar. As I commented about the first (truncated) error message above concerning the file chooser, I hope from the small changes between Iwidgets 4.1.0 versus 4.0.1 that a small change to our scripts will solve these issues. Furthermore, a google search for <"cannot inherit from" "command already exists with that"> found http://sourceforge.net/p/incrtcl/bugs/182/. I didn't understand that discussion much (note I don't understand OO concepts tha well) except that the incrtcl (i.e., version 4 of Itcl and Itk) developers didn't view the issue as a bug. But if you understand that discussion it may lead to an easy solution for what changes we have to make to become completely compatible with Itcl4 and friends. In sum, when you get to the point (which I assume will be quite some time from now) of trying out version 4 of Itcl and Itk and version 4.1.0 of Iwidgets, I hope you will be willing to try to fix the above errors. I am fairly sure those fixes will be straightforward for the reasons I mentioned, but I am not in a good position to do those fixes myself because although I know how to fix up the part of the build system dealing with Tcl and friends and know how to build Tcl8.6 and friends, I don't really understand the Tcl language (or OO concepts) that well. Alan __________________________ Alan W. Irwin Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca). Programming affiliations with the FreeEOS equation-of-state implementation for stellar interiors (freeeos.sf.net); the Time Ephemerides project (timeephem.sf.net); PLplot scientific plotting software package (plplot.sf.net); the libLASi project (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project (lbproject.sf.net). __________________________ Linux-powered Science __________________________ |
From: Alan W. I. <ir...@be...> - 2013-11-15 09:35:11
|
Hi Arjen: This is a response to one of your older messages that I initially missed in the mail mess I was dealing with. On 2013-11-14 07:17-0000 Arjen Markus wrote: > Hi Alan, > > yes, I have seen the various commit messsages. Many thanks for this work! > > I will have a look at the color issues and the hack in tkdemos. > > Meanwhile, I have been looking at the Pltk issue - mainly to see how I can reproduce it. > So far, I have not succeeded with this. I can try in three different ways: > - Using Cygwin > - Using one of the Linux machines I have access to (none running Debian) > - Using a virtual machine running Debian > The latter is perhaps the most direct way, but it is also the most demanding one. I got Debian stable (a.k.a wheezy) covered and Andrew has Debian unstable and the similar Ubuntu covered. And from your subsequent posts you have Cygwin covered nicely (and running well but extremely slowly due to the (expected) performance issues of X on Cygwin.) However, you really need speed to do comprehensive interactive tests. So I suggest the second option (non-Debian Linux) is the one you should try to give you a speedy interactive platform that complements the Linux platforms that Andrew and I already have access to. I think you will be absolutely astounded at the speed of the Linux interactive results relative to Cygwin. Of course, that is an obvious result since X is designed specifically to be extremely fast on Linux, but such speed gains are hard to appreciate until you have actually tried running "make test_interactive" on Linux. >From your prior experience with Cygwin bash and MinGW/MSYS bash.exe, command-line Linux should not be a large issue for you. But in any case I would be happy to answer (off list) any remaining questions you might have about the practicalities of running Linux from the command line within some terminal application such as xterm that you can run from any Linux desktop environment. By the way, I just figured out I now have almost 18 years of Linux command-line experience and 8 years of Unix command-line experience before that. So I am over-qualified to give you advice, but I would be happy to do it anyway.... :-) Alan __________________________ Alan W. Irwin Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca). Programming affiliations with the FreeEOS equation-of-state implementation for stellar interiors (freeeos.sf.net); the Time Ephemerides project (timeephem.sf.net); PLplot scientific plotting software package (plplot.sf.net); the libLASi project (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project (lbproject.sf.net). __________________________ Linux-powered Science __________________________ |
From: Andrew R. <and...@us...> - 2013-11-15 10:04:48
|
On Friday 15 Nov 2013 01:35:04 Alan W. Irwin wrote: > Hi Arjen: > > This is a response to one of your older messages that I initially missed > in the mail mess I was dealing with. > > On 2013-11-14 07:17-0000 Arjen Markus wrote: > > Hi Alan, > > > > yes, I have seen the various commit messsages. Many thanks for this work! > > > > I will have a look at the color issues and the hack in tkdemos. > > > > Meanwhile, I have been looking at the Pltk issue - mainly to see how I can > > reproduce it. So far, I have not succeeded with this. I can try in three > > different ways: - Using Cygwin > > - Using one of the Linux machines I have access to (none running Debian) > > - Using a virtual machine running Debian > > The latter is perhaps the most direct way, but it is also the most > > demanding one. > I got Debian stable (a.k.a wheezy) covered and Andrew has Debian > unstable and the similar Ubuntu covered. And from your subsequent > posts you have Cygwin covered nicely (and running well but extremely > slowly due to the (expected) performance issues of X on Cygwin.) > > However, you really need speed to do comprehensive interactive tests. So I > suggest the second option (non-Debian Linux) is the one you should try > to give you a speedy interactive platform that complements the Linux > platforms that Andrew and I already have access to. I think you will be > absolutely astounded at the speed of the Linux interactive results > relative to Cygwin. Of course, that is an obvious result since X is > designed specifically to be extremely fast on Linux, but such speed > gains are hard to appreciate until you have actually tried running > "make test_interactive" on Linux. Just for reference, I've just run make test_interactive with the latest svn version using my current Ubuntu setup (latest release). This is still tcl8.5, but with all the changes everything still runs fine. Always good to know. > >From your prior experience with Cygwin bash and MinGW/MSYS bash.exe, > > command-line Linux should not be a large issue for you. But in any > case I would be happy to answer (off list) any remaining questions you > might have about the practicalities of running Linux from the command > line within some terminal application such as xterm that you can run > from any Linux desktop environment. By the way, I just figured > out I now have almost 18 years of Linux command-line experience > and 8 years of Unix command-line experience before that. So I > am over-qualified to give you advice, but I would be happy > to do it anyway.... :-) Crumbs, and it's nearly 20 years since I first installed Linux on my first PC as a student, just let loose on this new-fangled internet thing. Where does the time go? Andrew |
From: Alan W. I. <ir...@be...> - 2013-11-15 13:41:39
|
On 2013-11-14 07:17-0000 Arjen Markus wrote: > I will have a look at the color issues and the hack in tkdemos. Hi Arjen: Before I sign off to get some delayed sleep, I have just had an idea about a replacement for that hack. If tkdemos.tcl has access to the wish and plserver command line, then the 0 index argument value should include "wish" somewhere in the string and otherwise "plserver" somewhere in the string. But I don't have a clue whether the command line arguments are accessible, and if they are what the Tcl syntax would be to find whether wish or plserver is a substring of the first (zero) argument. But if that is possible, I am looking forward to you fleshing out the idea with actual Tcl logic so I can replace the hack in tkdemos.tcl and and associated logic bits elsewhere (e.g., see FIXME in examples/CMakeLists.txt) that help to support that. Alan __________________________ Alan W. Irwin Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca). Programming affiliations with the FreeEOS equation-of-state implementation for stellar interiors (freeeos.sf.net); the Time Ephemerides project (timeephem.sf.net); PLplot scientific plotting software package (plplot.sf.net); the libLASi project (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project (lbproject.sf.net). __________________________ Linux-powered Science __________________________ |
From: Arjen M. <Arj...@de...> - 2013-11-15 13:45:56
|
Hi Alan, the full command-line is split up into pieces, where argv0 is the name of the script that is being run and argv the list of command-line arguments - so a trifle different than the C convention. The name of the executable is found in [info nameofexecutable]. While that could be anything, within PLplot we can be reasonably sure it is "plserver" or something else. Yes, that might be the way to implement the distinction. I will definitely keep this in mind! Regards, Arjen > -----Original Message----- > From: Alan W. Irwin [mailto:ir...@be...] > Sent: Friday, November 15, 2013 2:42 PM > To: Arjen Markus > Cc: PLplot development list; Maurice LeBrun > Subject: RE: Status of Tcl and friends > > On 2013-11-14 07:17-0000 Arjen Markus wrote: > > > I will have a look at the color issues and the hack in tkdemos. > > Hi Arjen: > > Before I sign off to get some delayed sleep, I have just had an idea about a > replacement for that hack. If tkdemos.tcl has access to the wish and plserver > command line, then the 0 index argument value should include "wish" somewhere in > the string and otherwise "plserver" > somewhere in the string. But I don't have a clue whether the command line > arguments are accessible, and if they are what the Tcl syntax would be to find > whether wish or plserver is a substring of the first > (zero) argument. But if that is possible, I am looking forward to you fleshing out the > idea with actual Tcl logic so I can replace the hack in tkdemos.tcl and and associated > logic bits elsewhere (e.g., see FIXME in examples/CMakeLists.txt) that help to > support that. > > Alan > > __________________________ > Alan W. Irwin > > Astronomical research affiliation with Department of Physics and Astronomy, > University of Victoria (astrowww.phys.uvic.ca). > > Programming affiliations with the FreeEOS equation-of-state implementation for > stellar interiors (freeeos.sf.net); the Time Ephemerides project (timeephem.sf.net); > PLplot scientific plotting software package (plplot.sf.net); the libLASi project > (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); and the Linux Brochure > Project (lbproject.sf.net). > __________________________ > > Linux-powered Science > __________________________ DISCLAIMER: This message is intended exclusively for the addressee(s) and may contain confidential and privileged information. If you are not the intended recipient please notify the sender immediately and destroy this message. Unauthorized use, disclosure or copying of this message is strictly prohibited. The foundation 'Stichting Deltares', which has its seat at Delft, The Netherlands, Commercial Registration Number 41146461, is not liable in any way whatsoever for consequences and/or damages resulting from the improper, incomplete and untimely dispatch, receipt and/or content of this e-mail. |
From: Alan W. I. <ir...@be...> - 2013-11-16 03:08:23
|
On 2013-11-15 13:45-0000 Arjen Markus wrote: > Hi Alan, > > the full command-line is split up into pieces, where argv0 is the name of the script that is being > run and argv the list of command-line arguments - so a trifle different than the C convention. > The name of the executable is found in [info nameofexecutable]. While that could be anything, > within PLplot we can be reasonably sure it is "plserver" or something else. > > Yes, that might be the way to implement the distinction. I will definitely keep this in mind! Thanks for being willing to look at this, but with that hint from you that I was on the right track, I have now (revision 12704) solved this issue completely following what web Tcl tutorials and also the string man page say about using the string command to figure out whether "plserver" or "wish" are in $argv0. So that horrible hack is now gone as well as all the scattered bits and pieces that helped to support that hack. At the same time, the test_wish_standard_examples target is suddenly displaying properly. I am not exactly sure what solved that, but I did fix one dependency on xwin today so that might have been the issue. I have no clue why there is a dependency on xwin since the display of all the plots is via wish. But for a fresh build of just the test_wish_standard_examples target to test its dependencies were done correctly there was a complaint from the PLplot core that xwin could not be loaded (because at the time xwin had not been built since it wasn't an official dependency). Adding xwin as a dependency for that target fixed that complaint, and may have affected the display issue in a positive way. The result is both make -j4 test_wish_standard_examples and make test_wish_standard_examples (both commands starting from a fresh configuration) now build everything they need and then render all plots except the few that have been commented out (see examples/tk/wish_standard_examples.in for details) until a segfault (also recently discussed on plplot-general) occurs _after_ example 33 has finished. Over the next few days, I plan to do the following: * Try once more to get the nopause option to work for the test_tk_standard_examples case (since it works fine for the largely equivalent test_wish_standard_examples case), * Test the installed examples case and fix it if necessary. * Take a look at the segfault noted above. * Try installing Tcl8.6 without private headers to see whether PLplot can build against that. * Deal with a few other non-Tcl PLplot issues such as the f77 expunge. That activity should still leave plenty for you to do whenever you have time to work on PLplot. Here is the complete list (as far as I know) of issues that I am leaving for you to look at. (For details look at my e-mail for the last week or so, but I think everything else mentioned in those e-mails is now taken care of.) * Implement a test of runAllDemos.tcl as well as making that GUI a lot more relevant, i.e., including all our possible standard examples from 0 to 33 with the non-working (2, 24, etc.,) and the non-existent ones (32) dealt with in some manner (greyed out or return an appropriate text string). * Figure out the color issues for examples 2 and 24. * Figure out the three issues for version 4 of Itcl and friends that I discussed previously. * Do "make test_interactive" on the Cygwin and Linux platforms you have access to, and report/deal with any issues those tests show. This last issue is probably the most immediately important since you are our ownly active developer with access to Cygwin, and you may be our only active developer with access to non-Debian forms of Linux. Alan __________________________ Alan W. Irwin Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca). Programming affiliations with the FreeEOS equation-of-state implementation for stellar interiors (freeeos.sf.net); the Time Ephemerides project (timeephem.sf.net); PLplot scientific plotting software package (plplot.sf.net); the libLASi project (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project (lbproject.sf.net). __________________________ Linux-powered Science __________________________ |
From: Alan W. I. <ir...@be...> - 2013-11-16 21:40:22
|
Hi Arjen: I took a look at the segfault that was occurring at the end of running the test_wish_standard_examples target. The segfault persisted even if I eliminated running all examples, and finally I discovered that the "plframe .plw" command (part of tkdemos.tcl that is executed in the wish case) was the crux of the issue. So here is the simplest test case: software@raven> wish % lappend auto_path /home/software/plplot_svn/HEAD/build_dir/bindings/tk /usr/share/tcltk/tcl8.5 /usr/lib /usr/local/lib/tcltk /usr/local/share/tcltk /usr/lib/tcltk /usr/share/tcltk /usr/share/tcltk/tk8.5 /usr/share/tcltk/tk8.5/ttk /home/software/plplot_svn/HEAD/build_dir/bindings/tk % package require Pltk 5.9.10 % plframe .plw .plw % exit Segmentation fault If I don't run the "plframe .plw" command, exit produces no segfault (as expected). Here are the corresponding valgrind results. software@raven> valgrind wish ==27948== Memcheck, a memory error detector ==27948== Copyright (C) 2002-2011, and GNU GPL'd, by Julian Seward et al. ==27948== Using Valgrind-3.7.0 and LibVEX; rerun with -h for copyright info ==27948== Command: wish ==27948== % lappend auto_path /home/software/plplot_svn/HEAD/build_dir/bindings/tk /usr/share/tcltk/tcl8.5 /usr/lib /usr/local/lib/tcltk /usr/local/share/tcltk /usr/lib/tcltk /usr/share/tcltk /usr/share/tcltk/tk8.5 /usr/share/tcltk/tk8.5/ttk /home/software/plplot_svn/HEAD/build_dir/bindings/tk % package require Pltk 5.9.10 % plframe .plw .plw % exit ==27948== Use of uninitialised value of size 8 ==27948== at 0x54A2124: pthread_mutex_lock (pthread_mutex_lock.c:50) ==27948== by 0x5701F96: XrmDestroyDatabase (in /usr/lib/x86_64-linux-gnu/libX11.so.6.3.0) ==27948== by 0x56E9C39: _XFreeDisplayStructure (in /usr/lib/x86_64-linux-gnu/libX11.so.6.3.0) ==27948== by 0x56D702E: XCloseDisplay (in /usr/lib/x86_64-linux-gnu/libX11.so.6.3.0) ==27948== by 0x4E9238D: ??? (in /usr/lib/libtk8.5.so.0) ==27948== by 0x4E761AD: ??? (in /usr/lib/libtk8.5.so.0) ==27948== by 0x51ECEDD: Tcl_FinalizeThread (in /usr/lib/libtcl8.5.so.0) ==27948== by 0x51ECDC7: Tcl_Finalize (in /usr/lib/libtcl8.5.so.0) ==27948== by 0x51ECC59: Tcl_Exit (in /usr/lib/libtcl8.5.so.0) ==27948== by 0x51B5A9E: ??? (in /usr/lib/libtcl8.5.so.0) ==27948== by 0x51ACDBD: ??? (in /usr/lib/libtcl8.5.so.0) ==27948== by 0x51EF4BD: ??? (in /usr/lib/libtcl8.5.so.0) ==27948== ==27948== Invalid read of size 4 ==27948== at 0x54A2124: pthread_mutex_lock (pthread_mutex_lock.c:50) ==27948== by 0x5701F96: XrmDestroyDatabase (in /usr/lib/x86_64-linux-gnu/libX11.so.6.3.0) ==27948== by 0x56E9C39: _XFreeDisplayStructure (in /usr/lib/x86_64-linux-gnu/libX11.so.6.3.0) ==27948== by 0x56D702E: XCloseDisplay (in /usr/lib/x86_64-linux-gnu/libX11.so.6.3.0) ==27948== by 0x4E9238D: ??? (in /usr/lib/libtk8.5.so.0) ==27948== by 0x4E761AD: ??? (in /usr/lib/libtk8.5.so.0) ==27948== by 0x51ECEDD: Tcl_FinalizeThread (in /usr/lib/libtcl8.5.so.0) ==27948== by 0x51ECDC7: Tcl_Finalize (in /usr/lib/libtcl8.5.so.0) ==27948== by 0x51ECC59: Tcl_Exit (in /usr/lib/libtcl8.5.so.0) ==27948== by 0x51B5A9E: ??? (in /usr/lib/libtcl8.5.so.0) ==27948== by 0x51ACDBD: ??? (in /usr/lib/libtcl8.5.so.0) ==27948== by 0x51EF4BD: ??? (in /usr/lib/libtcl8.5.so.0) ==27948== Address 0x10 is not stack'd, malloc'd or (recently) free'd ==27948== ==27948== ==27948== Process terminating with default action of signal 11 (SIGSEGV) ==27948== Access not within mapped region at address 0x10 ==27948== at 0x54A2124: pthread_mutex_lock (pthread_mutex_lock.c:50) ==27948== by 0x5701F96: XrmDestroyDatabase (in /usr/lib/x86_64-linux-gnu/libX11.so.6.3.0) ==27948== by 0x56E9C39: _XFreeDisplayStructure (in /usr/lib/x86_64-linux-gnu/libX11.so.6.3.0) ==27948== by 0x56D702E: XCloseDisplay (in /usr/lib/x86_64-linux-gnu/libX11.so.6.3.0) ==27948== by 0x4E9238D: ??? (in /usr/lib/libtk8.5.so.0) ==27948== by 0x4E761AD: ??? (in /usr/lib/libtk8.5.so.0) ==27948== by 0x51ECEDD: Tcl_FinalizeThread (in /usr/lib/libtcl8.5.so.0) ==27948== by 0x51ECDC7: Tcl_Finalize (in /usr/lib/libtcl8.5.so.0) ==27948== by 0x51ECC59: Tcl_Exit (in /usr/lib/libtcl8.5.so.0) ==27948== by 0x51B5A9E: ??? (in /usr/lib/libtcl8.5.so.0) ==27948== by 0x51ACDBD: ??? (in /usr/lib/libtcl8.5.so.0) ==27948== by 0x51EF4BD: ??? (in /usr/lib/libtcl8.5.so.0) ==27948== If you believe this happened as a result of a stack ==27948== overflow in your program's main thread (unlikely but ==27948== possible), you can try to increase the size of the ==27948== main thread stack using the --main-stacksize= flag. ==27948== The main thread stack size used in this run was 8388608. ==27948== ==27948== HEAP SUMMARY: ==27948== in use at exit: 2,819,910 bytes in 2,158 blocks ==27948== total heap usage: 14,790 allocs, 12,632 frees, 6,780,366 bytes allocated ==27948== ==27948== LEAK SUMMARY: ==27948== definitely lost: 0 bytes in 0 blocks ==27948== indirectly lost: 0 bytes in 0 blocks ==27948== possibly lost: 2,564,017 bytes in 147 blocks ==27948== still reachable: 255,893 bytes in 2,011 blocks ==27948== suppressed: 0 bytes in 0 blocks ==27948== Rerun with --leak-check=full to see details of leaked memory ==27948== ==27948== For counts of detected and suppressed errors, rerun with: -v ==27948== Use --track-origins=yes to see where uninitialised values come from ==27948== ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 28 from 6) Killed I have traced what is going on this far.... The "package require Pltk" command calls the Pltk_Init (bindings/tk/Pltk_Init.c) routine which defines the Tcl plframe command using Tcl_CreateCommand( interp, "plframe", (Tcl_CmdProc *) plFrameCmd, (ClientData) NULL, (Tcl_CmdDeleteProc *) NULL ); where plFrameCmd is a C routine defined in bindings/tk/plframe.c. So I suspect something in that C routine or the way that the above Tcl_CreateCommand is called is the source of the segfault trouble when the Tcl exit command is called. But that is about the limit of my knowledge so I hope you will be willing to look at this further. Meanwhile, because this segfault interferes with other tests, I have temporarily dropped (revision 12707) the test_wish_standard_examples target from the test_interactive target dependencies. That still allows running test_wish_standard_examples directly to aid in the investigation of this segfault. Alan __________________________ Alan W. Irwin Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca). Programming affiliations with the FreeEOS equation-of-state implementation for stellar interiors (freeeos.sf.net); the Time Ephemerides project (timeephem.sf.net); PLplot scientific plotting software package (plplot.sf.net); the libLASi project (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project (lbproject.sf.net). __________________________ Linux-powered Science __________________________ |
From: Alan W. I. <ir...@be...> - 2013-11-17 01:21:46
|
On 2013-11-16 13:40-0800 Alan W. Irwin wrote: > Hi Arjen: > > I took a look at the segfault that was occurring at the end of running > the test_wish_standard_examples target. The segfault persisted even if > I eliminated running all examples, and finally I discovered that > the "plframe .plw" command (part of tkdemos.tcl that is > executed in the wish case) was the crux of the issue. So here > is the simplest test case: > > software@raven> wish > % lappend auto_path /home/software/plplot_svn/HEAD/build_dir/bindings/tk > /usr/share/tcltk/tcl8.5 /usr/lib /usr/local/lib/tcltk /usr/local/share/tcltk /usr/lib/tcltk /usr/share/tcltk /usr/share/tcltk/tk8.5 /usr/share/tcltk/tk8.5/ttk /home/software/plplot_svn/HEAD/build_dir/bindings/tk > % package require Pltk > 5.9.10 > % plframe .plw > .plw > % exit > Segmentation fault > [....] > Meanwhile, because this segfault interferes with other tests, I have > temporarily dropped (revision 12707) the test_wish_standard_examples target from the > test_interactive target dependencies. That still allows > running test_wish_standard_examples directly to aid in the investigation > of this segfault. Hi Arjen: One other symptom is that the configured wish_standard_examples script that is run by the test_wish_standard_examples target sometimes displays plots OK and sometimes loses them completely. For example, the build tree version of test_wish_standard_examples target didn't show plots a few days ago, but now does. Currently, the installed examples version does not show plots. I am virtually positive these intermittent plot display symptoms that occur for this target alone are the result of the same memory management issues that are causing the above segfault. Alan __________________________ Alan W. Irwin Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca). Programming affiliations with the FreeEOS equation-of-state implementation for stellar interiors (freeeos.sf.net); the Time Ephemerides project (timeephem.sf.net); PLplot scientific plotting software package (plplot.sf.net); the libLASi project (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project (lbproject.sf.net). __________________________ Linux-powered Science __________________________ |
From: Arjen M. <Arj...@de...> - 2013-11-18 11:47:38
|
Hi Alan, I promised to tell more about my experiences with Tcl/Tk on Cygwin yesterday. Here goes: 1. I can run the examples via wish, but not via plserver. I am currently trying to figure out why it does not work, but the symptom is that it brings up the default window within the X Window display and then nothing seems to happen. (I have contacted one of the Tcl/Tk maintainers about it - he is quite knowledgeable about the Cygwin platform, so I expect I will be able to sort it out within a reasonable period of time.) 2. The examples all seem to work fine via Tcl/Tk's standard wish. No colour issues or segfaults. That is encouraging, but it makes it rather hard to solve the problems you are seeing. Perhaps I should try it directly on Linux. A bit more work, but doable. 3. I need to adapt the pkgIndex.tcl file for Cygwin, I have not sorted out yet how best to do that for the general case. Anyway, this is a summary of my experiences so far. Will be continued. Regards, Arjen > -----Original Message----- > From: Alan W. Irwin [mailto:ir...@be...] > > One other symptom is that the configured wish_standard_examples script that is run > by the test_wish_standard_examples target sometimes displays plots OK and > sometimes loses them completely. For example, the build tree version of > test_wish_standard_examples target didn't show plots a few days ago, but now does. > Currently, the installed examples version does not show plots. I am virtually positive > these intermittent plot display symptoms that occur for this target alone are the result > of the same memory management issues that are causing the above segfault. > DISCLAIMER: This message is intended exclusively for the addressee(s) and may contain confidential and privileged information. If you are not the intended recipient please notify the sender immediately and destroy this message. Unauthorized use, disclosure or copying of this message is strictly prohibited. The foundation 'Stichting Deltares', which has its seat at Delft, The Netherlands, Commercial Registration Number 41146461, is not liable in any way whatsoever for consequences and/or damages resulting from the improper, incomplete and untimely dispatch, receipt and/or content of this e-mail. |
From: Alan W. I. <ir...@be...> - 2013-11-18 18:32:56
|
Hi Arjen: On 2013-11-18 11:47-0000 Arjen Markus wrote: > Hi Alan, > > I promised to tell more about my experiences with Tcl/Tk on Cygwin yesterday. > Here goes: > > 1. I can run the examples via wish, but not via plserver. I am currently trying to figure > out why it does not work, but the symptom is that it brings up the default window > within the X Window display and then nothing seems to happen. > (I have contacted one of the Tcl/Tk maintainers about it - he is quite knowledgeable > about the Cygwin platform, so I expect I will be able to sort it out within a reasonable > period of time.) To simplify that bug hunt (always a good thing to do), what happens when you use plserver in the build tree by hand, e.g., ../../bindings/tk/plserver source tkdemos.tcl 0 1 .... ? If the "0", "1", etc., commands return and don't hang, then the issue is likely that the connection between plserver and your display is somehow broken on Cygwin. But if those commands are hanging, there is probably something worse going on. Note, in order to get all the dependencies of the above commands built first, you need to run "make test_tk_standard_examples" (and interrupt when it hangs) or "make all" first. What happens for the four simple Tk tests you can do by individually running the four targets test_tk_0[1-4] ? (Those automatically run as dependencies of the test_interactive target, but you may not have gotten those tests executed before the test_tk_standard_examples target failed to display any results.) Each of those is an independent test under different conditions so those individual test results will be most interesting. > > 2. The examples all seem to work fine via Tcl/Tk's standard wish. No colour issues or > segfaults. That is encouraging, but it makes it rather hard to solve the problems you > are seeing. Perhaps I should try it directly on Linux. A bit more work, but doable. Making PLplot work under wish was a contribution by Vince Darley back in 1992 with some help from me to do the testing on the Linux side. But I could never get anyone else in the PLplot community to try it after we were done. So it is most gratifying that my further work in the last week or so to get rid of the bit rot for this case has resulted in you being able to get essentially perfect results with the method on Cygwin. And I would very much appreciate your expert backup in the Linux case to get rid of the last issues in that case as well. > > 3. I need to adapt the pkgIndex.tcl file for Cygwin, I have not sorted out yet how best > to do that for the general case. > > Anyway, this is a summary of my experiences so far. Will be continued. Thanks very much for your Tcl/Tk testing efforts which continue to be a big help. Alan __________________________ Alan W. Irwin Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca). Programming affiliations with the FreeEOS equation-of-state implementation for stellar interiors (freeeos.sf.net); the Time Ephemerides project (timeephem.sf.net); PLplot scientific plotting software package (plplot.sf.net); the libLASi project (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project (lbproject.sf.net). __________________________ Linux-powered Science __________________________ |
From: Arjen M. <Arj...@de...> - 2013-11-18 19:27:37
|
Hi Alan, > -----Original Message----- > From: Alan W. Irwin [mailto:ir...@be...] > > To simplify that bug hunt (always a good thing to do), what happens when you use > plserver in the build tree by hand, e.g., > Actually, with the help of Jan Nijtmans and a closer look at the source code I solved the immediate problem with plserver: The thing is that Cygwin acts more UNIX-like than I thought, which means that a wish-like application like plserver can indeed take commands from the ordinary terminal/console. On Windows this is not the case and you open a special window via the "console show" command (*). So after removing "!defined(__CYGWIN__)" from the plserver.c file and rebuilding it is now working fine. Another thing I thought was going wrong was simply my mistake. The window has to be positioned before plserver can take any commands. So it is now happily running the runAllDemos.tcl program that brings up a window with a range of buttons to run the examples one by one. Running the standard examples via wish is a different matter though. I think there we are running into the problem of the Windows philosophy versus the Linux philosophy I alluded to above. Well, that should be solvable. > > Making PLplot work under wish was a contribution by Vince Darley back in 1992 with > some help from me to do the testing on the Linux side. > But I could never get anyone else in the PLplot community to try it after we were > done. So it is most gratifying that my further work in the last week or so to get rid of > the bit rot for this case has resulted in you being able to get essentially perfect results > with the method on Cygwin. And I would very much appreciate your expert backup > in the Linux case to get rid of the last issues in that case as well. > Tcl/Tk has gone through quite some evolution since then. But I do appreciate Vince's work. > > > > 3. I need to adapt the pkgIndex.tcl file for Cygwin, I have not sorted out yet how > best > > to do that for the general case. > > > > Anyway, this is a summary of my experiences so far. Will be continued. > > Thanks very much for your Tcl/Tk testing efforts which continue to be a big help. > Well, it is a whole new set of puzzles to solve :). I have used the Tcl part on Windows, but not Tk. With Cygwin that has become possible. Maybe it will be possible to port it to bare Windows as well. First though, an update of the plserver program. I think that will solve the segfault you have been seeing - look for the calls to Tcl_VarEval(). Regards, Arjen DISCLAIMER: This message is intended exclusively for the addressee(s) and may contain confidential and privileged information. If you are not the intended recipient please notify the sender immediately and destroy this message. Unauthorized use, disclosure or copying of this message is strictly prohibited. The foundation 'Stichting Deltares', which has its seat at Delft, The Netherlands, Commercial Registration Number 41146461, is not liable in any way whatsoever for consequences and/or damages resulting from the improper, incomplete and untimely dispatch, receipt and/or content of this e-mail. |
From: Arjen M. <Arj...@de...> - 2013-11-18 20:23:19
|
> -----Original Message----- > From: Arjen Markus [mailto:Arj...@de...] > Running the standard examples via wish is a different matter though. I think there we > are running into the problem of the Windows philosophy versus the Linux philosophy > I alluded to above. Well, that should be solvable. > One of the strange effects I saw was due to the plframe window not getting a proper size. Using ".plw configure -width 500 -height 500" before running the examples solved that problem. Now I have to incorporate that neatly in the program code. Regards, Arjen DISCLAIMER: This message is intended exclusively for the addressee(s) and may contain confidential and privileged information. If you are not the intended recipient please notify the sender immediately and destroy this message. Unauthorized use, disclosure or copying of this message is strictly prohibited. The foundation 'Stichting Deltares', which has its seat at Delft, The Netherlands, Commercial Registration Number 41146461, is not liable in any way whatsoever for consequences and/or damages resulting from the improper, incomplete and untimely dispatch, receipt and/or content of this e-mail. |
From: Alan W. I. <ir...@be...> - 2013-11-19 18:30:06
|
On 2013-11-18 20:23-0000 Arjen Markus wrote: >> -----Original Message----- >> From: Arjen Markus [mailto:Arj...@de...] > > >> Running the standard examples via wish is a different matter though. I think there we >> are running into the problem of the Windows philosophy versus the Linux philosophy >> I alluded to above. Well, that should be solvable. >> > > One of the strange effects I saw was due to the plframe window not getting a proper > size. Using ".plw configure -width 500 -height 500" before running the examples solved > that problem. Now I have to incorporate that neatly in the program code. Hi Arjen: I also see that bad default geometry (just a few pixels in width) on Linux for the wish case. (The default plserver geometry is fine.) To work around the issue of a bad default wish geometry I used the wish -geometry option, see line 986 of examples/CMakeLists.txt. But obviously that solution is a superficial one that only works for the case of the test_wish_standard_examples target and not when you run the demos by hand so I look forward to seeing your commit with a more fundamental solution that provides a reasonable default geometry for wish in all cases. Alan __________________________ Alan W. Irwin Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca). Programming affiliations with the FreeEOS equation-of-state implementation for stellar interiors (freeeos.sf.net); the Time Ephemerides project (timeephem.sf.net); PLplot scientific plotting software package (plplot.sf.net); the libLASi project (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project (lbproject.sf.net). __________________________ Linux-powered Science __________________________ |
From: Arjen M. <Arj...@de...> - 2013-11-20 07:20:53
|
Hi Alan, > -----Original Message----- > From: Alan W. Irwin [mailto:ir...@be...] > > I also see that bad default geometry (just a few pixels in width) on Linux for the wish > case. (The default plserver geometry is fine.) > > To work around the issue of a bad default wish geometry I used the wish -geometry > option, see line 986 of examples/CMakeLists.txt. But obviously that solution is a > superficial one that only works for the case of the test_wish_standard_examples > target and not when you run the demos by hand so I look forward to seeing your > commit with a more fundamental solution that provides a reasonable default > geometry for wish in all cases. > Hm, it should not be that difficult to hunt down the geometry issue - I guess that within the plserver environment it is the plstdwin that is explicitly setting the geometry. In the wish environment the plframe widget alone is responsible instead. Well, that is a relatively easy starting point :). Regards, Arjen DISCLAIMER: This message is intended exclusively for the addressee(s) and may contain confidential and privileged information. If you are not the intended recipient please notify the sender immediately and destroy this message. Unauthorized use, disclosure or copying of this message is strictly prohibited. The foundation 'Stichting Deltares', which has its seat at Delft, The Netherlands, Commercial Registration Number 41146461, is not liable in any way whatsoever for consequences and/or damages resulting from the improper, incomplete and untimely dispatch, receipt and/or content of this e-mail. |
From: Alan W. I. <ir...@be...> - 2013-11-20 08:18:50
|
Hi Arjen: On 2013-11-15 19:08-0800 Alan W. Irwin wrote: > [...]Over the next few days, I plan to do the following: > > * Try once more to get the nopause option to work for the > test_tk_standard_examples case (since it works fine for the largely > equivalent test_wish_standard_examples case), Nothing I tried worked here. > * Take a look at the segfault noted above. That segfault (that happens while the Tcl exit command is being executed) is still with us. Which makes sense since it was a segfault using the wish environment, and you only changed the plserver code. So I suspect you are on the right track, but need to apply a similar fix elsewhere as well. > > * Try installing Tcl8.6 without private headers to see whether PLplot > can build against that. That build and install includes itcl3.x which does not work because it requires the private headers to build. So I cannot test this case for PLplot. OTOH, the Fedora report after your change to remove dependence on a private macro was once again good so I think we are OK here. I also did some additional Tcl and friends work. * Tested the ntk device. No display (unlike ~5 years ago when this simple device worked with no issues). Probably some updating of the Tk calls is required to get the display working again. * Linked tkwin and libplplottcltkd against the stub version of the Tcl and Tk library by default. (If you want to try an experiment without this, use -DUSE_TCL_TK_STUBS=OFF.) The stub versions are the recommended libraries to link to, but the PLplot work to make that happen required a number of code cleanups including splitting off the "Main" routines into their own separate library, plplottcktk_Maind since those routines interfere with using libplplottcktkd as a pure Tcl/Tk extension and in any case are only required for linking executables such as pltcl and plserver. * For some reason plserver -h segfaults if it is linked to Tcl/Tk8.6. On the other hand, it is valgrind clean against Tcl/Tk8.5. I could get nowhere with this. * Suddenly runAllDemos.tcl (under wish) errors out when I press a button with a message concerning x01 (or whatever) being an invalid command. (the plserver version is fine). That makes no sense since x01.tcl is right there in the current directory. So the issue is probably due to some regression I recently introduced, but -DUSE_TCL_TK_STUBS=OFF, for example, makes no difference, and I could get nowhere further with this. I suggest when you test my recent changes you stick to the dynamic drivers/shared library case in the build tree for a little bit because that is the only case I have tested so far. But tomorrow, I plan to do a full set of comprehensive tests to discover and deal with any recent issues I have introduced for other cases. But after that is done I have no more work planned for the Tcl and friends bindings and examples in the near future principally because this aspect of PLplot is probably in its best shape ever, and because I can make no further progress with the remaining issues due to lack of Tcl/Tk expertise. So from now on, Tcl/Tk is going to necessarily be mostly your responsibility (because of your much larger Tcl/Tk expertise). However, I would be happy to test any further Tcl (and friends) changes you make and help out with any build system issues you discover. I also plan to work some more on build_projects (principally making it easier to use) which should help you to build and test Tcl8.6 and friends when you get to the stage of working on the issues specific to those versions. Note I haven't forgotten about the f77 purge which will likely occur late this week. Alan __________________________ Alan W. Irwin Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca). Programming affiliations with the FreeEOS equation-of-state implementation for stellar interiors (freeeos.sf.net); the Time Ephemerides project (timeephem.sf.net); PLplot scientific plotting software package (plplot.sf.net); the libLASi project (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project (lbproject.sf.net). __________________________ Linux-powered Science __________________________ |
From: Arjen M. <Arj...@de...> - 2013-11-21 09:27:24
|
Hi Alan, > -----Original Message----- > From: Alan W. Irwin [mailto:ir...@be...] > Sent: Wednesday, November 20, 2013 9:19 AM > To: Arjen Markus > Cc: PLplot development list > Subject: Re: [Plplot-devel] Status of Tcl and friends > > Hi Arjen: > > On 2013-11-15 19:08-0800 Alan W. Irwin wrote: > > > [...]Over the next few days, I plan to do the following: > > > > * Try once more to get the nopause option to work for the > > test_tk_standard_examples case (since it works fine for the largely > > equivalent test_wish_standard_examples case), > > Nothing I tried worked here. > I know one thing: The <<EOF does not prevent the substitution of variables by the bash shell, so that the commands that plserver gets are not the intended commands: .../plserver <<EOF ... $plwin cmd plspause 0 ... EOF gets passed to plserver as "cmd plspause 0" - causing a runtime error as there is no command "cmd". I have changed it to <<'EOF' to prevent the substitution by bash. That still does not work, but at least the commands are passed correctly. Searching further ... > > * Take a look at the segfault noted above. > > That segfault (that happens while the Tcl exit command is being executed) is still with > us. Which makes sense since it was a segfault using the wish environment, and you > only changed the plserver code. So I suspect you are on the right track, but need to > apply a similar fix elsewhere as well. > Hm, that remains a tough one, as it does not seem to happen on my system. Well, I will try and see what can be done about it. Regards, Arjen DISCLAIMER: This message is intended exclusively for the addressee(s) and may contain confidential and privileged information. If you are not the intended recipient please notify the sender immediately and destroy this message. Unauthorized use, disclosure or copying of this message is strictly prohibited. The foundation 'Stichting Deltares', which has its seat at Delft, The Netherlands, Commercial Registration Number 41146461, is not liable in any way whatsoever for consequences and/or damages resulting from the improper, incomplete and untimely dispatch, receipt and/or content of this e-mail. |
From: Arjen M. <Arj...@de...> - 2013-11-21 10:45:39
|
Hi Alan, > -----Original Message----- > From: Arjen Markus [mailto:Arj...@de...] > I know one thing: > The <<EOF does not prevent the substitution of variables by the bash shell, so that > the commands that plserver gets are not the intended commands: > .../plserver <<EOF > ... > $plwin cmd plspause 0 > ... > EOF > > gets passed to plserver as "cmd plspause 0" - causing a runtime error as there is no > command "cmd". > > I have changed it to <<'EOF' to prevent the substitution by bash. That still does not > work, but at least the commands are passed correctly. > Well, that method was abandoned already - I was staring at the wrong code, but after some more searching I found the real reason for the pausing: the plxframe widget used by plserver waits for the user to press the enter key. I have adapted the code so that it is now possible to influence that from the outside. I will do some more testing and then submit my changes. Regards, Arjen DISCLAIMER: This message is intended exclusively for the addressee(s) and may contain confidential and privileged information. If you are not the intended recipient please notify the sender immediately and destroy this message. Unauthorized use, disclosure or copying of this message is strictly prohibited. The foundation 'Stichting Deltares', which has its seat at Delft, The Netherlands, Commercial Registration Number 41146461, is not liable in any way whatsoever for consequences and/or damages resulting from the improper, incomplete and untimely dispatch, receipt and/or content of this e-mail. |
From: Arjen M. <Arj...@de...> - 2013-11-21 12:51:07
|
Hi Alan, > -----Original Message----- > From: Alan W. Irwin [mailto:ir...@be...] > > * Tested the ntk device. No display (unlike ~5 years ago when this simple device > worked with no issues). Probably some updating of the Tk calls is required to get the > display working again. > That is definitely something to look at. > * Linked tkwin and libplplottcltkd against the stub version of the Tcl and Tk library by > default. (If you want to try an experiment without this, use - > DUSE_TCL_TK_STUBS=OFF.) The stub versions are the recommended libraries to > link to, but the PLplot work to make that happen required a number of code cleanups > including splitting off the "Main" routines into their own separate library, > plplottcktk_Maind since those routines interfere with using libplplottcktkd as a pure > Tcl/Tk extension and in any case are only required for linking executables such as > pltcl and plserver. I have rebuilt PLplot with this option on and it seems to be doing fine. > > * For some reason plserver -h segfaults if it is linked to Tcl/Tk8.6. On the other hand, > it is valgrind clean against Tcl/Tk8.5. I could get nowhere with this. > I have noticed that too. It is somehow happening in Tk_ParseArgv, but why that should be is completely unclear right now. It happens if you specify -help or a prefix like -h or -he. Really odd. > * Suddenly runAllDemos.tcl (under wish) errors out when I press a button with a > message concerning x01 (or whatever) being an invalid command. > (the plserver version is fine). That makes no sense since x01.tcl is right there in the > current directory. So the issue is probably due to some regression I recently > introduced, but -DUSE_TCL_TK_STUBS=OFF, for example, makes no difference, > and I could get nowhere further with this. > I have not seen this error. I did have to introduce a "plstdwin ." command to have the window display at a reasonable size, but then it worked fine. > I suggest when you test my recent changes you stick to the dynamic drivers/shared > library case in the build tree for a little bit because that is the only case I have tested > so far. But tomorrow, I plan to do a full set of comprehensive tests to discover and > deal with any recent issues I have introduced for other cases. But after that is done I > have no more work planned for the Tcl and friends bindings and examples in the > near future principally because this aspect of PLplot is probably in its best shape > ever, and because I can make no further progress with the remaining issues due to > lack of Tcl/Tk expertise. > > So from now on, Tcl/Tk is going to necessarily be mostly your responsibility (because > of your much larger Tcl/Tk expertise). > However, I would be happy to test any further Tcl (and friends) changes you make > and help out with any build system issues you discover. I also plan to work some > more on build_projects (principally making it easier to use) which should help you to > build and test > Tcl8.6 and friends when you get to the stage of working on the issues specific to > those versions. > Okay, I will simply continue testing and improving the Tcl/Tk stuff. Right now, I am making small changes only but it is getting better. I may need your help later on, especially with the segfault at exit time. Regards, Arjen DISCLAIMER: This message is intended exclusively for the addressee(s) and may contain confidential and privileged information. If you are not the intended recipient please notify the sender immediately and destroy this message. Unauthorized use, disclosure or copying of this message is strictly prohibited. The foundation 'Stichting Deltares', which has its seat at Delft, The Netherlands, Commercial Registration Number 41146461, is not liable in any way whatsoever for consequences and/or damages resulting from the improper, incomplete and untimely dispatch, receipt and/or content of this e-mail. |
From: Arjen M. <Arj...@de...> - 2013-11-21 13:32:30
|
Hi Alan, > > -----Original Message----- > > From: Alan W. Irwin [mailto:ir...@be...] > > > > * Tested the ntk device. No display (unlike ~5 years ago when this > > simple device worked with no issues). Probably some updating of the > > Tk calls is required to get the display working again. > > > > That is definitely something to look at. > I got a very fast and surprising display with the C examples for this device: I can actually leaf through the various pages. Even example 33 takes only a very small amount of time, quite different from the xwin and tk devices. I do have to set the DISPLAY environment variable first, otherwise the program simply stops and says it could not initialise Tk. For the Tcl examples, the default toplevel window remains empty. But that may be due to not mapping the plot window correctly. Maybe that is what is happening on your system? I will dive further into this. Regards, Arjen DISCLAIMER: This message is intended exclusively for the addressee(s) and may contain confidential and privileged information. If you are not the intended recipient please notify the sender immediately and destroy this message. Unauthorized use, disclosure or copying of this message is strictly prohibited. The foundation 'Stichting Deltares', which has its seat at Delft, The Netherlands, Commercial Registration Number 41146461, is not liable in any way whatsoever for consequences and/or damages resulting from the improper, incomplete and untimely dispatch, receipt and/or content of this e-mail. |
From: Arjen M. <Arj...@de...> - 2013-11-21 14:16:54
|
Hi Alan, > -----Original Message----- > From: Arjen Markus > > For the Tcl examples, the default toplevel window remains empty. But that may be > due to not mapping the plot window correctly. Maybe that is what is happening on > your system? > > I will dive further into this. > I think I know what is going on: When I use the ntk device with a Tcl interpreter program like tclsh or pltcl, this device will still create a new Tcl interpreter which is completely independent of the one in the original program. Not sure where that will lead to, but that is at least one important difference with the C examples. Regards, Arjen DISCLAIMER: This message is intended exclusively for the addressee(s) and may contain confidential and privileged information. If you are not the intended recipient please notify the sender immediately and destroy this message. Unauthorized use, disclosure or copying of this message is strictly prohibited. The foundation 'Stichting Deltares', which has its seat at Delft, The Netherlands, Commercial Registration Number 41146461, is not liable in any way whatsoever for consequences and/or damages resulting from the improper, incomplete and untimely dispatch, receipt and/or content of this e-mail. |