Re: [Plplot-devel] Still roughly on track for a February 12th release of 5.10.0

2014-02-11 Thread Arjen Markus
Hi Alan,

I wrote a small test program to determine where the compile errors with SWIG 
were coming from and to ensure that my MinGW/MSYS installation is indeed 32 
bits. The program is this:

/* test-compile.c --
   Test a few things with regards to the problems to compile SWIG
   under MinGW/MSYS

   -DSTAT: compile with the "struct stat" structure

   In any case: check the size of a pointer
*/
#include 

#ifdef STAT
#include 
#endif

int main( int argc, char *argv[] ) {

#ifdef STAT
struct stat st;
#endif

printf("Size of pointer: %d\n", sizeof(void *));

#ifdef STAT
printf("Size of struct stat: %d\n", sizeof(st));
#endif
}


I tried building this program under various environments with the -DSTAT flag. 
They all succeeded - no compile errors. The output from the programs was rather 
varied:

- Cygwin: pointer size 8, struc stat size 128 -- this is a 64-bits environment
- Windows+gcc 4.5.2: pointer size 4, struc stat size 36 -- a 32-bits environment
- Windows+MSVC/C++, 64-bits: pointer size 4, struc stat size 48 -- a 64-bits 
environment
- MinGW/MSYS+gcc 4.8.1: pointer size 4, struct stat size 48 - definitely a 
32-bits environment!

The error messages with SWIG come from the flag -ansi:

$ gcc -o test-compile test-compile.c -DSTAT -ansi
test-compile.c: In function 'main':
test-compile.c:18:17: error: storage size of 'st' isn't known
 struct stat st;
 ^

The real question is: where is the flag -ansi coming from? It appears together 
with -Wall -pedantic in the make files but I can not find its origins anywhere 
in PLplot or CMake (I have not checked the CMake executables, assuming all that 
sort of flags would be contained in the configuration files instead).

Okay, sofar that analysis. Now I will try your receipe.

Regards,

Arjen

> -Original Message-
> From: Alan W. Irwin [mailto:ir...@beluga.phys.uvic.ca]
> Sent: Monday, February 10, 2014 11:24 PM
> To: Arjen Markus
> Cc: PLplot development list
> Subject: Re: [Plplot-devel] Still roughly on track for a February 12th 
> release of 5.10.0
>
> Hi Arjen:
>
> Please use the improved epa_build instructions you get with revision 12993.  
> I have
> replaced the old ENABLE_COMPREHENSIVE_PLPLOT_TEST cmake option with
> COMPREHENSIVE_PLPLOT_TEST_INTERACTIVE and
> COMPREHENSIVE_PLPLOT_TEST_NONINTERACTIVE to make it more
> convenient to split up interactive and noninteractive testing.
>
> This morning I finally got around to doing
> COMPREHENSIVE_PLPLOT_TEST_INTERACTIVE=ON testing for
> MinGW/MSYS/Wine and I discovered some issues.  All but one of those are fixed 
> as
> of revision 12993.  So for example, the test_c_ntk, test_c_wingcc, and
> test_tclsh_standard_examples targets (all dependencies of the 
> test_interactive target)
> all work correctly.  However, the test_pltcl_standard_examples target (also 
> currently
> a dependency of the test_interactive target) generates an error with message 
> "wine:
> Unhandled page fault on read access to 0x00867490 at address 0x867490 (thread
> 0034)" right near the end of the final page of example 33 (or perhaps just 
> after that
> final page is completed).  So this issue might be similar to
> http://sourceforge.net/p/plplot/bugs/139/.  But there the wish environment 
> failed while
> the plserver did not show the issue, while for the present case it is pltcl 
> that shows
> the issue, while tclsh does not.
>
> I am now wondering whether this is just a Wine issue or a symptom of a a more
> general PLplot memory management issue whenever pltcl, plserver, tclsh, or 
> wish
> exit from the standard examples case. Of course, as with any memory management
> issue, you sometimes get symptomless (i.e., good) results despite the memory
> management issue.
> So this hypothesis would explain why we get both good and bad results on 
> different
> platforms and depending on whether the standard examples are being run by 
> pltcl,
> tclsh, plserver, or wish.  But, of course, the variety of results we are 
> getting for the
> standard examples do not completely prove the hypothesis so the hypothesis is 
> just
> something to keep in mind.
>
> From this bad interactive result for MinGW/MSYS/Wine your priority for this 
> release
> should be to make sure
> COMPREHENSIVE_PLPLOT_TEST_NONINTERACTIVE=ON works for the 32-bit
> Windows case like it currently does for MinGW/MSYS/Wine.  Your second priority
> after that (if you have time before Wednesday) should be to try
> COMPREHENSIVE_PLPLOT_TEST_INTERACTIVE=ON just to see if the same
> issue I just discovered on Wine shows up on 32-bit Microsoft Windows as well 
> or
> whether you can get all the way through the comprehensive interactive tests 
> on that
> platform.
>
> 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

Re: [Plplot-devel] Still roughly on track for a February 12th release of 5.10.0

2014-02-11 Thread Arjen Markus
Hi Alan,

I forgot to mention that the flag -ansi does not cause this error message under 
Cygwin.

Regards,

Arjen

> -Original Message-
> From: Arjen Markus [mailto:arjen.mar...@deltares.nl]
> Sent: Tuesday, February 11, 2014 10:13 AM
> To: Alan W. Irwin
> Cc: PLplot development list
> Subject: Re: [Plplot-devel] Still roughly on track for a February 12th 
> release of 5.10.0
>
> Hi Alan,
>
> I wrote a small test program to determine where the compile errors with SWIG 
> were
> coming from and to ensure that my MinGW/MSYS installation is indeed 32 bits. 
> The
> program is this:
>
> /* test-compile.c --
>Test a few things with regards to the problems to compile SWIG
>under MinGW/MSYS
>
>-DSTAT: compile with the "struct stat" structure
>
>In any case: check the size of a pointer */ #include 
>
> #ifdef STAT
> #include 
> #endif
>
> int main( int argc, char *argv[] ) {
>
> #ifdef STAT
> struct stat st;
> #endif
>
> printf("Size of pointer: %d\n", sizeof(void *));
>
> #ifdef STAT
> printf("Size of struct stat: %d\n", sizeof(st)); #endif }
>
>
> I tried building this program under various environments with the -DSTAT 
> flag. They
> all succeeded - no compile errors. The output from the programs was rather 
> varied:
>
> - Cygwin: pointer size 8, struc stat size 128 -- this is a 64-bits environment
> - Windows+gcc 4.5.2: pointer size 4, struc stat size 36 -- a 32-bits 
> environment
> - Windows+MSVC/C++, 64-bits: pointer size 4, struc stat size 48 -- a 64-bits
> environment
> - MinGW/MSYS+gcc 4.8.1: pointer size 4, struct stat size 48 - definitely a 
> 32-bits
> environment!
>
> The error messages with SWIG come from the flag -ansi:
>
> $ gcc -o test-compile test-compile.c -DSTAT -ansi
> test-compile.c: In function 'main':
> test-compile.c:18:17: error: storage size of 'st' isn't known
>  struct stat st;
>  ^
>
> The real question is: where is the flag -ansi coming from? It appears 
> together with -
> Wall -pedantic in the make files but I can not find its origins anywhere in 
> PLplot or
> CMake (I have not checked the CMake executables, assuming all that sort of 
> flags
> would be contained in the configuration files instead).
>
> Okay, sofar that analysis. Now I will try your receipe.
>
> Regards,
>
> Arjen
>
> > -Original Message-
> > From: Alan W. Irwin [mailto:ir...@beluga.phys.uvic.ca]
> > Sent: Monday, February 10, 2014 11:24 PM
> > To: Arjen Markus
> > Cc: PLplot development list
> > Subject: Re: [Plplot-devel] Still roughly on track for a February 12th
> > release of 5.10.0
> >
> > Hi Arjen:
> >
> > Please use the improved epa_build instructions you get with revision
> > 12993.  I have replaced the old ENABLE_COMPREHENSIVE_PLPLOT_TEST
> cmake
> > option with COMPREHENSIVE_PLPLOT_TEST_INTERACTIVE and
> > COMPREHENSIVE_PLPLOT_TEST_NONINTERACTIVE to make it more
> convenient to
> > split up interactive and noninteractive testing.
> >
> > This morning I finally got around to doing
> > COMPREHENSIVE_PLPLOT_TEST_INTERACTIVE=ON testing for
> MinGW/MSYS/Wine
> > and I discovered some issues.  All but one of those are fixed as of
> > revision 12993.  So for example, the test_c_ntk, test_c_wingcc, and
> > test_tclsh_standard_examples targets (all dependencies of the
> > test_interactive target) all work correctly.  However, the
> > test_pltcl_standard_examples target (also currently a dependency of the
> test_interactive target) generates an error with message "wine:
> > Unhandled page fault on read access to 0x00867490 at address 0x867490
> > (thread 0034)" right near the end of the final page of example 33 (or
> > perhaps just after that final page is completed).  So this issue might
> > be similar to http://sourceforge.net/p/plplot/bugs/139/.  But there
> > the wish environment failed while the plserver did not show the issue,
> > while for the present case it is pltcl that shows the issue, while tclsh 
> > does not.
> >
> > I am now wondering whether this is just a Wine issue or a symptom of a
> > a more general PLplot memory management issue whenever pltcl,
> > plserver, tclsh, or wish exit from the standard examples case. Of
> > course, as with any memory management issue, you sometimes get
> > symptomless (i.e., good) results despite the memory management issue.
> > So this hypothesis would explain why we get both good and bad results
> > on different platforms and depending on whether the standard examples
> > are being run by pltcl, tclsh, plserver, or wish.  But, of course, the
> > variety of results we are getting for the standard examples do not
> > completely prove the hypothesis so the hypothesis is just something to keep 
> > in
> mind.
> >
> > From this bad interactive result for MinGW/MSYS/Wine your priority for
> > this release should be to make sure
> > COMPREHENSIVE_PLPLOT_TEST_NONINTERACTIVE=ON works for the 32-bit
> > Windows case like it currently does for MinGW/MSYS/Wine.  Your second
> > priority after 

Re: [Plplot-devel] Still roughly on track for a February 12th release of 5.10.0

2014-02-11 Thread Alan W. Irwin
On 2014-02-11 09:12- Arjen Markus wrote:

> The error messages with SWIG come from the flag -ansi:
>
> $ gcc -o test-compile test-compile.c -DSTAT -ansi
> test-compile.c: In function 'main':
> test-compile.c:18:17: error: storage size of 'st' isn't known
> struct stat st;
> ^
>
> The real question is: where is the flag -ansi coming from? It appears 
> together with -Wall -pedantic in the make files but I can not find its 
> origins anywhere in PLplot or CMake (I have not checked the CMake 
> executables, assuming all that sort of flags would be contained in the 
> configuration files instead).
>

Remember, although epa_build is configured with CMake, that is just a
convenient but rather thin layer over the configure and build done by
a project's native build system.  In the swig case, that native build
system is autotools, and the configuration is done with a "configure"
script that is set up by autotools. That script is where the above
flags are coming from.  However, those flags gave me absolutely no
trouble for the swig build on MinGW/MSYS/Wine.

I hope that explanation helps.

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
__

--
Android apps run on BlackBerry 10
Introducing the new BlackBerry 10.2.1 Runtime for Android apps.
Now with support for Jelly Bean, Bluetooth, Mapview and more.
Get your Android app in front of a whole new audience.  Start now.
http://pubads.g.doubleclick.net/gampad/clk?id=124407151&iu=/4140/ostg.clktrk
___
Plplot-devel mailing list
Plplot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-devel


Re: [Plplot-devel] Still roughly on track for a February 12th release of 5.10.0

2014-02-11 Thread Arjen Markus
Hi Alan,

> -Original Message-
> From: Alan W. Irwin [mailto:ir...@beluga.phys.uvic.ca]
>
> Remember, although epa_build is configured with CMake, that is just a 
> convenient
> but rather thin layer over the configure and build done by a project's native 
> build
> system.  In the swig case, that native build system is autotools, and the 
> configuration
> is done with a "configure"
> script that is set up by autotools. That script is where the above flags are 
> coming
> from.  However, those flags gave me absolutely no trouble for the swig build 
> on
> MinGW/MSYS/Wine.
>
> I hope that explanation helps.
>

That does indeed help. I was simply looking in the wrong place.

However, if it works for you, then is it possible you have a different version 
of GCC?
Mine is (output from "gcc -v"):

Using built-in specs.
COLLECT_GCC=c:\mingw\bin\gcc.exe
COLLECT_LTO_WRAPPER=c:/mingw/bin/../libexec/gcc/mingw32/4.8.1/lto-wrapper.exe
Target: mingw32
Configured with: ../gcc-4.8.1/configure --prefix=/mingw --host=mingw32 
--build=mingw32 --without-pic --enable-shared --enable-static --with-gnu-ld 
--enable-lto --enable-libssp --disable-multilib 
--enable-languages=c,c++,fortran,objc,obj-c++,ada --disable-sjlj-exceptions 
--with-dwarf2 --disable-win32-registry --enable-libstdcxx-debug 
--enable-version-specific-runtime-libs 
--with-gmp=/usr/src/pkg/gmp-5.1.2-1-mingw32-src/bld 
--with-mpc=/usr/src/pkg/mpc-1.0.1-1-mingw32-src/bld --with-mpfr= 
--with-system-zlib --with-gnu-as --enable-decimal-float=yes --enable-libgomp 
--enable-threads --with-libiconv-prefix=/mingw32 --with-libintl-prefix=/mingw 
--disable-bootstrap LDFLAGS=-s CFLAGS=-D_USE_32BIT_TIME_T
Thread model: win32
gcc version 4.8.1 (GCC)

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.

--
Android apps run on BlackBerry 10
Introducing the new BlackBerry 10.2.1 Runtime for Android apps.
Now with support for Jelly Bean, Bluetooth, Mapview and more.
Get your Android app in front of a whole new audience.  Start now.
http://pubads.g.doubleclick.net/gampad/clk?id=124407151&iu=/4140/ostg.clktrk
___
Plplot-devel mailing list
Plplot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-devel


Re: [Plplot-devel] Still roughly on track for a February 12th release of 5.10.0

2014-02-11 Thread Alan W. Irwin
On 2014-02-11 14:10- Arjen Markus wrote:

> Hi Alan,
>
>> -Original Message-
>> From: Alan W. Irwin [mailto:ir...@beluga.phys.uvic.ca]
>>
>> Remember, although epa_build is configured with CMake, that is just a 
>> convenient
>> but rather thin layer over the configure and build done by a project's 
>> native build
>> system.  In the swig case, that native build system is autotools, and the 
>> configuration
>> is done with a "configure"
>> script that is set up by autotools. That script is where the above flags are 
>> coming
>> from.  However, those flags gave me absolutely no trouble for the swig build 
>> on
>> MinGW/MSYS/Wine.
>>
>> I hope that explanation helps.
>>
>
> That does indeed help. I was simply looking in the wrong place.
>
> However, if it works for you, then is it possible you have a different 
> version of GCC?
> Mine is (output from "gcc -v"):
>
> Using built-in specs.
> COLLECT_GCC=c:\mingw\bin\gcc.exe
> COLLECT_LTO_WRAPPER=c:/mingw/bin/../libexec/gcc/mingw32/4.8.1/lto-wrapper.exe
> Target: mingw32
> Configured with: ../gcc-4.8.1/configure --prefix=/mingw --host=mingw32 
> --build=mingw32 --without-pic --enable-shared --enable-static --with-gnu-ld 
> --enable-lto --enable-libssp --disable-multilib 
> --enable-languages=c,c++,fortran,objc,obj-c++,ada --disable-sjlj-exceptions 
> --with-dwarf2 --disable-win32-registry --enable-libstdcxx-debug 
> --enable-version-specific-runtime-libs 
> --with-gmp=/usr/src/pkg/gmp-5.1.2-1-mingw32-src/bld 
> --with-mpc=/usr/src/pkg/mpc-1.0.1-1-mingw32-src/bld --with-mpfr= 
> --with-system-zlib --with-gnu-as --enable-decimal-float=yes --enable-libgomp 
> --enable-threads --with-libiconv-prefix=/mingw32 --with-libintl-prefix=/mingw 
> --disable-bootstrap LDFLAGS=-s CFLAGS=-D_USE_32BIT_TIME_T
> Thread model: win32
> gcc version 4.8.1 (GCC)
>

I used gcc-4.7.2 (see the description of my test in README.release).
So that _could_ be a source of a possible difference between us, but
that seems fairly unlikely to me.

However, in your previous post you did seem able to prove that
MinGW was definitely producing 32-bit results for your present
environment.  And you went on to say

> Okay, sofar that analysis. Now I will try your receipe.

Does that mean you have gone ahead with the epa_build comprehensive
test?  If so, what are those 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
__

--
Android apps run on BlackBerry 10
Introducing the new BlackBerry 10.2.1 Runtime for Android apps.
Now with support for Jelly Bean, Bluetooth, Mapview and more.
Get your Android app in front of a whole new audience.  Start now.
http://pubads.g.doubleclick.net/gampad/clk?id=124407151&iu=/4140/ostg.clktrk
___
Plplot-devel mailing list
Plplot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-devel


[Plplot-devel] Release planned for approximately 24 hours from now

2014-02-11 Thread Alan W. Irwin
On 2014-02-11 09:41-0800 Alan W. Irwin wrote:

> On 2014-02-11 14:10- Arjen Markus wrote:
>
>> Hi Alan,
>>
>>> -Original Message-
>>> From: Alan W. Irwin [mailto:ir...@beluga.phys.uvic.ca]
>>>
>>> Remember, although epa_build is configured with CMake, that is just a 
>>> convenient
>>> but rather thin layer over the configure and build done by a project's 
>>> native build
>>> system.  In the swig case, that native build system is autotools, and the 
>>> configuration
>>> is done with a "configure"
>>> script that is set up by autotools. That script is where the above flags 
>>> are coming
>>> from.  However, those flags gave me absolutely no trouble for the swig 
>>> build on
>>> MinGW/MSYS/Wine.
>>>
>>> I hope that explanation helps.
>>>
>>
>> That does indeed help. I was simply looking in the wrong place.
>>
>> However, if it works for you, then is it possible you have a different 
>> version of GCC?
>> Mine is (output from "gcc -v"):
>>
>> Using built-in specs.
>> COLLECT_GCC=c:\mingw\bin\gcc.exe
>> COLLECT_LTO_WRAPPER=c:/mingw/bin/../libexec/gcc/mingw32/4.8.1/lto-wrapper.exe
>> Target: mingw32
>> Configured with: ../gcc-4.8.1/configure --prefix=/mingw --host=mingw32 
>> --build=mingw32 --without-pic --enable-shared --enable-static --with-gnu-ld 
>> --enable-lto --enable-libssp --disable-multilib 
>> --enable-languages=c,c++,fortran,objc,obj-c++,ada --disable-sjlj-exceptions 
>> --with-dwarf2 --disable-win32-registry --enable-libstdcxx-debug 
>> --enable-version-specific-runtime-libs 
>> --with-gmp=/usr/src/pkg/gmp-5.1.2-1-mingw32-src/bld 
>> --with-mpc=/usr/src/pkg/mpc-1.0.1-1-mingw32-src/bld --with-mpfr= 
>> --with-system-zlib --with-gnu-as --enable-decimal-float=yes --enable-libgomp 
>> --enable-threads --with-libiconv-prefix=/mingw32 
>> --with-libintl-prefix=/mingw --disable-bootstrap LDFLAGS=-s 
>> CFLAGS=-D_USE_32BIT_TIME_T
>> Thread model: win32
>> gcc version 4.8.1 (GCC)
>>
>
> I used gcc-4.7.2 (see the description of my test in README.release).
> So that _could_ be a source of a possible difference between us, but
> that seems fairly unlikely to me.
>
> However, in your previous post you did seem able to prove that
> MinGW was definitely producing 32-bit results for your present
> environment.  And you went on to say
>
>> Okay, sofar that analysis. Now I will try your receipe.
>
> Does that mean you have gone ahead with the epa_build comprehensive
> test?  If so, what are those results?

Hi Arjen:

Never mind.  I have reread what you said, and I think I understand it
better now. You assumed my new recipe might help out with the swig
build issue, but in fact the new recipe only introduces some
convenience options for the -DBUILD_THE_BUILDTOOLS=OFF case so should
have no effect for the -DBUILD_THE_BUILDTOOLS=ON case (which is used
for the swig build). Furthermore, I assumed you were testing a new
configuration of your MinGW-4.8.1 compiler, but in fact I now believe
you were testing the old configuration that generated the build errors
for swig.  So basically your tests have proved the swig build issue
you have found some time ago was for a 32-bit platform and therefore
could not have anything to do with possible 64-bit issues.

So now I have done what I should have done long ago which was to
do a google search for your swig build error message:

unknown type name 'off64_t'

The first hit is http://sourceforge.net/p/mingw/bugs/2104/
which is classified as a duplicate of http://sourceforge.net/p/mingw/bugs/2046/.

The comments on bug 2046 are interesting.  There appears to be no
fundamental MinGW 4.8.1 bug here except possibly the need to implement
a more user-friendly way to deal with detected violations of compiler
standards by the package being compiled (in this case swig) when
standards compliancy is being checked by compiling the code with a
standards-compliant flag such as -ansi (or -std=c99).

Finally there is this quote:


FWIW, I also consider it to be a build system bug, when any such
conformity checking option is unconditionally applied to a release
build; they are intended primarily for developers, to allow them to
check for non-conforming usage in their code, so that it may be
compiled by the widest possible range of compilers. They are not
intended to create obstacles for users of more capable compilers.


So from the MinGW developer perspective, the -ansi flag introduced by
the autotools-based build system used to build swig is a fundamental
bug for that build system. And I must say I agree.  Just because -ansi
produced no errors for some compiler the swig developers checked (say
MinGW-4.7.2) does not mean an even stricter compiler (such as
MinGW-4.8.1) might find something else that was not ansi compliant.
And I particularly agree with the last sentence of the quote above!

So I think the fundamental solution here is for epa_build to patch the
swig autotools build system so it does not generate the -ansi flag.
And assuming that works for us, we should send that patch t