I have 8 minutes before I need to go out again, so here is 8 minutes
worth of FAQ, based on what people have actually asked me (or I'd
secretly like them to ask) about development:

MPIR (Multiple Precision Integers and Rationals)

Frequently Asked Questions
-----------------------------------------

Q. What is MPIR?

A. MPIR is a library for multiple precision integer arithmetic based
on the GMP (GNU Multi Precision) Library.

Q. What is MPIR all about?

A. MPIR has the following special features:

- Support for building under MSVC
- We test regularly on Solaris and OSX 64 bit
- Developer friendly community
- Developers retain copyright of code they submit
- LGPL v2+
- Used by the extremely popular Sage open source mathematical project,
PHP, gmpy and other significant projects
- We aim to provide support for parallel processing

Q. What is this about the license of MPIR being LGPL v2+

A. The LGPL version 2 specifically allows a commercial project (of
which most of the big mathematical software products are) to link
statically against MPIR and make a written offer to make a dynamically
linked version available. This specific provision is removed from LGPL
version 3. Most of the major mathematical software companies which
have need of open source integer libraries are commercial companies
which want to distribute statically linked versions of the software
for usability and performance reasons and do not want the extra hassle
the LGPL v3+ entails for their users.

Specific clauses in the LGPL version 3 are aimed specifically at
eroding the patent protection agreements of Microsoft and similar
companies. They are unable legally to become contractual parties to
such a license by supporting it. Thus their employees may not
distribute software bound by those terms.

Microsoft Research have on the other hand been ardent supporters of
Sage, Open Source mathematical software, contributing algorithms and
the like and are well respected in the mathematical community.

Sage and a number of other major open source mathematical projects
have remained LGPL v2+.

Continuing to remain with LGPL v2+ is a strategic step for MPIR, and
we will revisit the issue should it become a hindrance to the project.

Q. How can I contribute code?

A. There are three ways currently supported.

    1. Download the source tarball from the website, make your
modifications and put the modified version on the files upload section
of our mpir-devel group.
    2. Using svn, check out our repository, make your changes, then
either commit to the repository if we give you write access, or send
us a diff.
    3. Using git, check out the repository, make your changes, then
either send us a patch bundle or share your changes with other
developers (git is distributed revision control, so you do not need to
check in through a central repository to share your patches with other
developers).

Gotta go. More later....

Bill.


2009/7/1 Bill Hart <[email protected]>:
> Hi all,
>
> to get things moving again after a short hiatus, I propose four things:
>
> ************ AN FAQ **************
>
>  I'd like to have accessible on our website a shiny new FAQ. As MPIR
> is a library, i.e. primarily aimed at other developers, I'd like to
> have the FAQ focus on MPIR development and how people can contribute.
> In particular I'd like to answer a lot of questions which people have
> asked on and off list about the direction MPIR is heading, and some of
> the key benefits of the MPIR package (we are developing support for
> parallelism, we support Windows MSVC, we test on OSX (64 bit for now)
> and Solaris).
>
> I'd also like to aim to answer the many questions prospective
> developers have about how to contribute. So far two ways have become
> popular. The core developers have been happily using svn. Numerous
> others have offered code on the google group files upload section. We
> should officially recognise both. But we also have a GIT repository,
> and I'd like to encourage people to contribute via that, who feel more
> comfortable with distributed revision control.
>
> Do people have questions they'd like answered? Let's make a start here
> at this post. I'm willing to put in some hours to begin writing this.
> Who'd like to help?
>
> ************* SKIP MPIR 1.2.2 : LET'S START ON MPIR 1.3!! ***************
>
> (Because major releases are more fun. :-) )
>
>  I propose we ditch the 1.2.2 release, which was slated to contain
> Robert Gerbicz's fast root test code. It still remains a priority to
> get this in, and I have rewritten most of what he submitted in mpn
> format. But we need numerous other functions implemented at the mpn
> level before this code will work. So let's not hold up development on
> account of some artificial requirement that this be done before the
> very next release.
>
> Instead we should go straight to version 1.3. I think it is actually
> possible to include crude parallel support in this version with a
> configure option --enable-mt, though some things like tuning code may
> be broken for now. The test code will have to be fixed though.
>
> Alternatively we can refocus on further core development, such as
> writing mulmid_basecase in assembly and getting David Harvey's superb
> new middle product code in, on improving Toom 3 further, and faster
> extended GCD and GCD.
>
> I also think we should include better development documentation. There
> is already documentation about how to add files to MPIR and have them
> build. But a nice pdf file accessible from the webpage called MPIR
> Development would be really nice, explaining the nuts and bolts to
> potential developers, particularly with respect to mpn level coding.
>
> But let's put in version 1.3 whatever is ready.
>
> ************** NEW BENCHMARK UTILITY ****************
>
> We should also release a new benchmark utility, which Brian has been
> working away on furiously. I would like to float the idea of not
> having an overall score, but merely scores for each section,
> Multiplication, Division, GCD, Real World Benchmarks. That way
> deciding on weighting factors is not important. To some developers 1
> and 2 limb stuff is the most important thing, to others it is extended
> GCD, to others real world performance, to others, multiplication is
> the only thing which really matters. Actually a survey was done of the
> number of calls to mathematical operations in code and multiplication
> far and above accounted for the majority of such calls. Fast
> multiplication must remain the priority (though we should not fall
> behind in development in other areas either).
>
> Ultimately our benchmarks will have to measure per core performance.
> Multicore support is clearly the only way to beat Moore's law that is
> on the horizon. We must embrace it.
>
>
> ************** PUT THE GIT REPO ON THE WEBPAGE *********************
>
>  As mentioned, let's get the GIT repo updated on the main website and
> start encouraging people to check it out. I'd also like to have an
> html commit log, similar to what the GMP project gets from its HG. It
> doesn't matter if that comes from svn or GIT, either way it is useful.
> I propose that the core devs (and anyone else interested) also get all
> commit messages emailed to them by default so that we can begin
> scrutinising each other's code more easily.
>
> ************** FORTNIGHTLY MPIR DIGEST ****************
>
>  At least once a fortnight or ever three weeks we should have an MPIR
> digest which summarises what development has taken place, and what
> projects people can be involved in, also proposed improvements which
> others might like to volunteer to work on. This Digest would include a
> short Most Wanted list, of most wanted features. I volunteer to write
> the digest, though I'd be happy to share the responsibility with
> anyone. It will be posted to mpir-devel.
>
> Comments? Questions? Suggestions?
>
> Bill.
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"mpir-devel" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/mpir-devel?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to