On Apr 9, 6:09 pm, Cactus <rieman...@gmail.com> wrote: > On Apr 9, 5:52 pm, Jason <ja...@njkfrudils.plus.com> wrote: > > > > > > > On Saturday 09 April 2011 17:15:45 Cactus wrote: > > > > The mpz.get_ux/sx and mpz..set_ux/sx tests now fail on MSVC (they used > > > to work) because the stdint.h include in the test files has been > > > guarded with HAVE_STDINT_H. > > > > But since these test files don't include config.h, HAVE_STDINT_H is > > > not defined so stdint.h is not included and the function definitions > > > in mpir.h are hence bypassed. > > > > The use of the HAVE_STDINT_H guard in these test files is wrong since > > > these tests are NOT internal MPIR tests but tests of the external API > > > where end users will expect the inclusion of stdint.h alone to be > > > sufficient. > > > > Jason, I assume you added these guards. If so, can you let me know > > > why they are needed as I think it is a mistake if they are. > > > > Brian > > > Yeah , for the guard to be of any use we would also need to put > > #include "config.h" in these specific tests which I forgot , I do notice > > that a > > few other tests have it in > > grep -e config.h $(find -name \*.c) > > ./spinner.c:#include "config.h" > > ./mpn/t-get_d.c:#include "config.h" > > ./mpn/t-invert.c:#include "config.h" > > ./devel/try.c:#include "config.h" > > ./misc/t-scanf.c:#include "config.h" > > ./misc/t-locale.c:#include "config.h" > > ./misc/t-printf.c:#include "config.h" > > ./mpf/t-inp_str.c:#include "config.h" > > ./misc.c:#include "config.h" > > ./cxx/clocale.c:#include "config.h" > > ./mpz/t-io_raw.c:#include "config.h" > > ./mpz/io.c:#include "config.h" > > ./mpz/t-inp_str.c:#include "config.h" > > ./mpq/t-aors.c:#include "config.h" > > ./mpq/t-inp_str.c:#include "config.h" > > > it's either put it in or write some configure code(and batch file stuff) to > > exclude all these new tests. Linux has had stdint for probably at least 10 > > years , not sure about darwin,solaris, etc , the only one I know of > > definitely > > is VS <=2008 > > Including this guard and including config.h , should not affect the test , > > the > > user will just include stdint.h if needed and can ignore config.h , like we > > do > > the the other tests that include it > > > Jason > > I now see that the same problem also occurs in the six files within > MPIR that implement these new functions. > > We would have to include config.h in all of these files even though we > already include it in mpir.h anyway. > > This would be a horrible kludge since the contorted relationships > between the various headers is already a nightmare (I support your > efforts to clean some of this up!). > > If VS <= 2008 is the only issue, we can exclude the whole file by > using a specific _MSC_VER version number. > > Brian
If I use the guard: #if defined( _MSC_VER ) && _MSC_VER >= 1600 || defined( HAVE_STDINT_H ) in all the new mpz_sx/ux files (in MPIR and in the tests) all is then well for VS 2010. But I can't test VS 2008 nowadays. Within MPIR the above guard results in an empty source code file when it evaluates to FALSE. Is this an issue? In the sx/ux tests there will be an output of 99 when this guard is FALSE. I haven't put any of this in SVN yet though, in case it will cause obvious problems. Brian -- You received this message because you are subscribed to the Google Groups "mpir-devel" group. To post to this group, send email to mpir-devel@googlegroups.com. To unsubscribe from this group, send email to mpir-devel+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/mpir-devel?hl=en.