Now that v2.2 is almost ready for release (just waiting to test on a few more
machines ie gcc-farm , should be done by mid next week) , we should think
about what should go in to v2.3 , here are some of the things I hope to do.
1) Quicker release , say no more than 3 months until release (2.1 to 2.2 took
5.5 months.
2) Try the latest autotools to see if they fix a Jeff's gcc-3.4.6 problem and
the MinGW64 c++ shared make check fail
3) General clean-up , an endless task...
4) New assembler code(and some related C code) for x86_64 (*)
5) Try to get a complete list of cpu types for cpuid.c
6) Command line MSVC build
7) Python code for cpu path selection , to share between autotools and MSVC ,
MSVC builds would then only need one project.
8) Some of the changes we have made , have not been finished , finish them. (*)
9) Split configure into two , ie standard and MPIR specific , should make the
maintenance easier , this is fairly ambitious :) Actually I can't see this
happening at all (*)
10) When we update stuff , there are many places where you have to fill in the
same info , make it automatic (autotools can do this , it's just not been set
up that way) (*)
11) Update the test scripts to try make install(local install) so we can build
mpfr,mpc,pari,flint,(sage is too big) against the library
12) try autoupdate: which updates configure.in to the latest spec , there
appear to be some windows dll updates.
13) Clean up the ABI selection code
(*) is from the list of things to do in v2.2 that did not get done.
Any other suggestions? , or volunteers?
Jason
The new FFT would hopefully provide a speedup for all asymptotically
fast operations anyway even without rewriting any of them to make use
of the new interface that will be provided.
Bill.
> --
> You received this message because you are subscribed to the Google Groups "mpir-devel" group.
> To post to this group, send email to mpir-...@googlegroups.com.
> To unsubscribe from this group, send email to mpir-devel+...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/mpir-devel?hl=en.
>
>
Nice , point out any needed mpn_linear ops that could benefit from asm
One other thing to consider is that we could take advantage of more unrolling
for functions that are only used for FFT , and even better if the lengths are
always a multiple of the unroll factor , then we dont have to bother with
feedin/wind-down or jump-in code.
Jason
14) There is some asm code out (for non-x86*) there which we can use as it is
under a compatible license
15) Compilers are far more "intelligent" , the macro mul_ppmm is almost
certainly faster in C (since gcc-3.4), perhaps the same for divide , although
for add_ssaaaa I not at all sure , use intrinsic's and ignore crap code from
old compilers.
Jason
16) Whoops, Bill's new FFT , of which I had completely forgotten about :( ,
Dam'it I going to have to deliver on my small size improvements of perhaps 10%
17) Use emulators for different cpu's (although whether they can trap on
unknown opcode's ? (but not a large problem in my experience)) and OS'es ,
this I think will mainly expose autotools problems (by us or FSF)
Trying to think of future problems (ie the ones that will never bite)(and it's
Friday night....)
Good Night...
Jason
Ah , OK , I thought it was just a missing DLL__EXPORT in gmp-h that was
stopping make check on dll's
Thanks
Jason
As far as I know the space issue only matters if it is in the mpir build path
, I dont think it matters where mingw64 is installed , and then only for make
check , the build worked OK for me with as space in the path. This was also
with the old autotools , perhaps with the new one they have fixed it ? I'll try
it now
Thanks
Jason
Yeah , the build works fine with a space in the path , it's just make check
that fails. There is a later autotools which I can try once we have fixed our
makefiles to comply with the latest spec
Jason
> Thanks
> Jason
Yep , use the MSYS shell and cd to mpir/trunk say and just to be on the safe
side
mkdir briantest
cd briantest
../configure
make
make check
for a native static build , make distclean to clean up
../configure --disable-static --enable-shared
and/or
../configure --build=netburst-w64-mingw32
to pretend we are a netburst (use "none" for a C build)
or
../configure --enable-fat
--enable-assert is another good option
Jason
Just ignore the error and continue building , this is meant for a fat build
but it does it unconditionally , I'll change it , mine builds so fast I never
saw it :)
>
> It didn't find Python either - I have Python 2.7 (win32) and Python
> 3.2 (x64) installed.
>
> Brian
Yeah , I forgot about that , linux doesn't find it either but we dont use it ,
so we can ignore that warning.
Could you send a bit more context , ie some lines that preceded this
cheers
Jason
The script devel/regen fills in some of this information for you , at the
moment it works for mpz mpz mpq printf scanf and it fills in the Makefile.am's
When doing this I noticed we were missing an entry for mpf/clears in the
Makefile.am , this is the kind of thing we dont have to worry about any more :)
Jason
Yeah , it didn't recognize it's 64 bit , the part of config.guess is a compile
time test of this
main(){
#ifdef _WIN64
printf("-w64-mingw32\n");
#endif
return 0;}
It looks like there is no compiler in path , you could try
CC=pathandexefor64gcc
There seems to be many different ways that mingw64 can be/has been installed ,
I was thinking of supplying a zip file with a known working config of Mingw64 or
at least until it settles down into a known standard configuration. I had to
rename my gcc executibles , but I didn't adjust the environment to fit mpir.
Jason
Before we can do the same for the mpn functions , we need to split up the C
files so that we only have one function per file.I'll get started on that along
with re-doing the nehalem timings now we have accurate measurements. Brian as
we split the files we will need to adjust the MSVC build to follow.I'll post
each change.
Jason
Hi
I've split the multifunction file popham.* into popcount.* and hamdist.* as
part of the process of one function=one file , I havent done the build.vc*
directory's or the three files below(as I'm not familiar with the YASM syntax)
./mpn/x86w/pentium4/mmx/popham.asm
./mpn/x86w/p6/mmx/popham.asm
./mpn/x86w/p6/p3mmx/popham.asm
Jason
These multifunction files have also now been removed and replaced with separate
files
lorrshift
aorslsh1_n
rsh1aors_n
aors_err?_n
There is nothing to do for windows for the above functions
Jason
The last lot in the mpn directory have now been done ie logops.* except for
the build.vc* directorys
I'll clear up the mulfunction prologue code and after that we will have none
and will not be able to use multifunction files in then "build". NOTE: We can
still use them , but we have to do it manually ie
Someone writes a multifunction files as before , say aors_n.asm , then all we
have to do is
cp aors_n.asm add_n.asm
mv aors_n.asm sub_n.asm
and prepend
define(OPERATION_add_n,1) to add_n.asm
and
define(OPERATION_sub_n,1) to sub_n.asm
Thats it.
We could automate this in the devel/regen script , but its probably not worth
it as so few files can take advantage.
Jason
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-...@googlegroups.com.
To unsubscribe from this group, send email to mpir-devel+...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/mpir-devel?hl=en.
Hi
Yeah , I agree , if they dont work get rid of them , and if someone volunteers
we can easily put them back. Remember cygwin or Mingw32 can do 32bit builds if
you dont have Visual Studio 2010 , and except for gmp_printf(I think?) it is
easy to use with any MSVC . The adaptation of our autotools to use use MSVC is
fairly straight forward but it looks like I wont have the time to do it this
release (2.3) , the other quick way is to write a simple batch file to use
CL.EXE and LINK.EXE on a predetermined directory that has all the asm and C
files , it should be possible to knock one up in a few hours. And perhaps more
term , is to use a python? script to select cpu path that can be fed into a
single MSVC 2010 project , the maintaince of the MSVC builds would be greatly
reduced.
Jason
Approx March 1st was my plan for the release of the next MPIR 2.3 , that's in
about 2.5 weeks. I haven't done most of what I planed or wanted but I think a
regular(although not rigid) release schedule is important. What does everyone
else think ?
Bill , how's the new fft going?
Thanks
Jason
There's a few little bits I can do between now and 1st March and I'd like to
get a few confirmations that MPIR does build on MINGW64 properly as detailed in
the other thread , also the Windows batch build , although as I only have
VS2008 I can't help with that one either.
Thanks
Jason
Better make the cutoff tomorrow/monday for new code as all the x86_64 will need
re-tuning.
Jason
I've retuned all the x86_64 arch's , the only other one that has changed is
mips , which hopefully I can tune on the gcc-farm. Brian , I suppose you just
copy the linux params to windows?
We can then release an RC1 later today
Jason
I cant tune on gcc42 mips just like skynet's cato , so that's it , I believe I
can cook up an RC1 when the windows tuning params go in.
jason
OK
> As I have retired all my non nehalem machines, I can't directly test
> the tuning on other processors. But unless we have evidence that the
> current Windows tuning values need to be changed, I would be inclined
> to leave them alone.
>
OK
> I have tested the new Windows assembler code for k8, core2 and nehalem
> and all tests pass.
I can test netburst/penryn etc under a fake mingw64
> The command line WIndows build is close to
> working but MSBUILD doesn't run the final file copying phase
> correctly.
>
Shame , I'll spin a RC1 anyway , and if you manage to fix it we may have to run
a few tests again. I'm going to run our standard test suite on skynet/gcc-
farm/washington-cluster/mine and also try tests on available x64 machines
> Brian
It doesn't affect mingw32/64 , so my guess is that some MSVC change just
happens to bite cygwin as well
Jason
Thanks
Jason
Brian
--
eno on skynet has had it's autotools upgraded and our Makefiles are not yet
compatible, I dont know how much work this will involve , but I doubt it's
difficult , although I would like to take a few weeks testing it , too see if it
throws up any wobbles. I suggest we release 2.3.0 with the current autotools ,
which we know is stable , and after a month or so (or 2.4.0) we can upgrade to
the latest autotools. Current autotools is available on my machine and I
suppose another on skynet (sage cluster is too old).
Comments ?
Thanks
Jason
skynet machines are either the old version or the newer version for autotools
, so my machine has the only "current" version.
> Thanks
> Jason