I was just about to reply that OpenMP is supported in MSVC. I wouldn't have suggested it for MPIR otherwise as it wouldn't build. icc is free for non-commercial use on Linux, which this constitutes, and supports OpenMP too. However, I think it does some funny business with binaries i.e. optimising them per intel chipset and defaulting amd chips to the slowest, so maybe this is a nice to have rather than a most? Unless that feature can be disabled. I will download it again and look into it.
Available from: http://software.intel.com/en-us/articles/non-commercial-software-development/ Digital Mars is a free C/C++ compiler for Windows. I don't think many people use it, but I have in the past. In truth, I've no idea what it is like, really, I just thought wide support would be better than targeting say just gcc. (http://www.digitalmars.com/) I actually don't mind following any coding style... the GNU convention isn't my favourite but at the end of the day it's all C/C++/Assembly anyway, there's not much in it. Names was a bit of poor humour on my part. What it's called really doesn't matter - however, I think calling it mpir-something will be confusing, just as if we called mpir gmp-x, especially as this will be a near ground-up re-write. Hey, this is a debate for later stages though. I could look at the build system and see what I can come up with for an arch system? I can also admin a git repository on my vps if people want to, or we could use github or somewhere else. No matter, I can admin it if that is needed (to be honest once you've done git init --bare and git update-server-info there's not much else to do). Antony On 04/12/2010 11:16 PM, Bill Hart wrote: > Brian points out that MSVC has openMP support. As it is just pragmas > it'll be ignored by PCC (so long as we don't call OpenMP functions). > So yeah, why not. Let's fill the code with pragmas. > > So we should target pcc, gcc, MSVC and possibly icc. > > Six problems we have right off: > > * no longlong.h (so far I only use count_leading_zeros though) > * no TMP_ALLOC function > * no timing code (I suggest we use Dan Bernstein's library for this). > * no test framework > * no tuning framework > * no arch framework for assembly in my magic build system > > And all this is dependent on whether Jason Moxham is interested in > licensing his assembly BSD. We can't get within 50% of MPIR/GMP > without it. > > Bill. > > On 12 April 2010 23:05, Bill Hart <goodwillh...@googlemail.com> wrote: >> On 12 April 2010 21:04, Antony Vennard <antony.venn...@gmail.com> wrote: >>> Yes. >>> >>> Can we manage it with git? Is there a git repo already...? >> >> There's no git repo yet. But yes, we have to manage it with git. svn >> is too limiting. >> >> But we'd need to give very careful thought to how we do Windows >> support (git doesn't work very well on Windows GUI). >> >>> Can I write #pragma omp declarations all over it? I.e. can I start >>> parallelising things early on? >> >> This conflicts with one of your goals below. The only compilers which >> support OpenMP that I am aware of are the Intel compiler and GCC >> basically. Probably MSVC supports pthreads, not sure about OpenMP. >> >>> I'll license all contributions on MPIR as >>> BSD which is easily compatible with LGPLv3 then I'm good, really, >>> providing I don't duplicate any existing MPIR work. I shall be very >>> careful not to. >>> Can we make it build under various compilers i.e. pcc, gcc, icc, cl, >>> digital mars c etc? >> >> I think it is terribly important to target pcc and gcc, as you will >> get a lot more interest from BSD devels if you do that. I've never >> used icc personally, but I will be buying a copy some time soonish. So >> long as it does most of what gcc does, I don't see why not. I don't >> know anything about the others. I won't be buying copies. >> >> The main aim has got to be to get something working within 6-12 >> months. That means really restricting our goals. And that means not >> getting distracted with unimportant laundry lists of goals. Usually >> you find that if someone has an interest in doing something, they'll >> pop up and offer to do it. Just take them up on it when it happens, so >> long as it doesn't slow the whole project down. >> >> Can we get something working in 6-12 months. Yes we can, if we choose >> our goals carefully. >> >>> Obviously we might have to duplicate effort >>> sometimes, but one of my feelings for gnu software is that it can only >>> be compiled by gcc and I don't like that, or more specifically I don't >>> like being tied to one way of working should I want to change. >>> Can we not use the GNU coding style? The only reason for suggesting this >>> is I don't like it, there's no actual technical merit to it. I prefer >>> things with lots of braces in, 4-space tab width, functions all on one >>> line... you'll see when I start committing. >> >> Everyone has their preferred coding style. We'd have to agree on one, >> and it should be clear and readable. >> >>> >>> What's it gonna be called? >> >> I don't really care. So far I've had it called mpzz, libnt, mpir-bsd, >> flint3 and probably other things. I got sick of all of these pretty >> quick. >> >> I've already had far more off list interest in this idea than anything >> else we've floated. I'm leaning more and more towards actually doing >> it. >> >> Anything we come up with that is actually better than MPIR, we can >> insert into MPIR (so long as we keep the interface compatible enough), >> as BSD licensed code is still compatible with LGPL v3+. >> >> Bill. >> >> >>> >>> Antony >>> >>> On 04/12/2010 08:47 PM, Bill Hart wrote: >>>> Rather than talk about hypothetical code I wrote when I was thinking >>>> of producing BSD licensed library, I may as well expose it: >>>> >>>> http://sage.math.washington.edu/home/wbhart/mpir-bsd/ >>>> >>>> It has a magic makefile system such that if you drop files in, they >>>> just build automatically. >>>> >>>> Simply do make check to make it work (you have to edit the top level >>>> makefile to specify the location of MPIR and export LD_LIBRARY_PATH >>>> for MPIR and the top level source directory for this library). >>>> >>>> It is about the same speed as MPIR for multiplication up to about 100 >>>> limbs. Everywhere it was necessary to use assembly language, I just >>>> called MPIR, but these functions could be used in this library >>>> directly. >>>> >>>> Here's what I'd do if I were going to write a BSD library: >>>> >>>> For the first 6-12 months: >>>> >>>> * x86_64 only >>>> * linux, Windows and FreeBSD only >>>> * mpn layer only (what I've called nn) - the interface already exists, >>>> so work to it!! >>>> * no autotools >>>> * aim for performance within 20% of GMP/MPIR for everything up to 100 limbs >>>> * target PCC not GCC (a very clean and efficient BSD compiler which >>>> also works on Windows - trivial to port to Win64) >>>> * aim to have 5 regular committed contributors with 2 people able to >>>> manage releases by the end of 12 months >>>> * set up a donations system on the website with the aim of hiring >>>> contractors to address prespecified "bounties" >>>> * aim for the greatest possible simplicity of design, with performance >>>> a *secondary* goal >>>> * get the software architecture right from the start >>>> * very careful auditing of code for license, documentation and style >>>> (for the latter run it through indent) >>>> >>>> If it is judged a success at the 6 and 12 month stages, move the >>>> project forward and allow the goals to expand. >>>> >>>> Anyone interested? >>>> >>>> Bill. >>>> >>>> On 12 April 2010 14:57, Pierre Joye <pierre....@gmail.com> wrote: >>>>> hi Bill, >>>>> >>>>> Thanks for the extensive reply, very much appreciated. >>>>> >>>>> On Mon, Apr 12, 2010 at 1:55 PM, Bill Hart <goodwillh...@googlemail.com> >>>>> wrote: >>>>> >>>>> >>>>>> On 12 April 2010 11:18, Pierre Joye <pierre....@gmail.com> wrote: >>>>> >>>>>> The main appeal is that we can use code from GMP without replicating >>>>>> their efforts and accept code from developers who want to license >>>>>> their code v3+. It basically means less effort for us, and faster >>>>>> development times. It means that the bignum community is using a >>>>>> single license and is less fragmented. >>>>> >>>>> It makes sense, however I wonder if it is good for mpir users. But it >>>>> makes the work easier for mpir developers, that's a sure thing. >>>>> >>>>> I will have to split my reply as it is a rather large topic. >>>>> >>>>>> By "not compatible with the GPL", I assume you mean that you want to >>>>>> distribute PHP under terms that are more permissive than the GPL will >>>>>> allow. >>>>> >>>>> The GPL does not allow any GPL code to be linked with PHP Licensed >>>>> code, at least this restriction up to v2. For v3 there is a debate >>>>> about "linkage" and "usage" as in using GPL code in an external >>>>> process (calling a cmd line tool for example). But the whole v3 move >>>>> (gpl and lgpl) creates a lot of troubles lately for companies and >>>>> other OSS projects. The "or later" clause has also been ignored in the >>>>> past, but the v3 shows the implications and the direction the gpl >>>>> license takes is scary (no offense meant, only writing down my feeling >>>>> about the GPL movement for the last decade). >>>>> >>>>> Short reply but other will come in the next days :) >>>>> >>>>> Cheers, >>>>> -- >>>>> Pierre >>>>> >>>>> @pierrejoye | http://blog.thepimp.net | http://www.libgd.org >>>>> >>>>> -- >>>>> You received this message because you are subscribed to the Google Groups >>>>> "mpir-devel" group. >>>>> To post to this group, send email to mpir-de...@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. >>>>> >>>>> >>>> >>> >>> -- >>> You received this message because you are subscribed to the Google Groups >>> "mpir-devel" group. >>> To post to this group, send email to mpir-de...@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. >>> >>> >> > -- You received this message because you are subscribed to the Google Groups "mpir-devel" group. To post to this group, send email to mpir-de...@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.