=================================================================== RCS file: /home/cvs/OpenXM_contrib/gmp/doc/Attic/tasks.html,v retrieving revision 1.1 retrieving revision 1.1.1.2 diff -u -p -r1.1 -r1.1.1.2 --- OpenXM_contrib/gmp/doc/Attic/tasks.html 2000/09/09 14:12:20 1.1 +++ OpenXM_contrib/gmp/doc/Attic/tasks.html 2003/08/25 16:06:11 1.1.1.2 @@ -13,342 +13,888 @@ + +Copyright 2000, 2001, 2002 Free Software Foundation, Inc.

+This file is part of the GNU MP Library.

+The GNU MP Library is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published +by the Free Software Foundation; either version 2.1 of the License, or (at +your option) any later version.

+The GNU MP Library is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +License for more details.

+You should have received a copy of the GNU Lesser General Public License +along with the GNU MP Library; see the file COPYING.LIB. If not, write to +the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, +MA 02111-1307, USA. +
+ +
+ - An up-to-date html version of this file is available at + This file current as of 20 May 2002. An up-to-date version is available at http://www.swox.com/gmp/tasks.html. + Please send comments about this page to + bug-gmp@gnu.org. -

This file lists itemized GMP development tasks. Not all the tasks +

These are itemized GMP development tasks. Not all the tasks listed here are suitable for volunteers, but many of them are. Please see the projects file for more sizeable projects.

Correctness and Completeness

Machine Independent Optimization

Machine Dependent Optimization

New Functionality

Configuration

- For example, "sparc" is not very useful as a machine architecture - denotation. We want to distinguish old 32-bit SPARC without - multiply support from newer 32-bit SPARC with such support. We - want to recognize a SuperSPARC, since its implementation of the - UDIV instruction is not complete, and will trap to the OS kernel - for certain operands. And we want to recognize 64-bit capable - SPARC processors as such. While the assembly routines can use - 64-bit operations on all 64-bit SPARC processors, one can not use - 64-bit limbs under all operating system. E.g., Solaris 2.5 and - 2.6 doesn't preserve the upper 32 bits of most processor - registers. For SPARC we therefore sometimes need to choose GMP - configuration depending both on processor and operating system. -
  • Remember to make sure config.sub accepts any output from config.guess. - -
  • Find out whether there's an alloca available and how to use it. - AC_FUNC_ALLOCA has various system dependencies covered, but we - don't want its alloca.c replacement. (One thing current cpp - tests don't cover: HPUX 10 C compiler supports alloca, but - cannot find any symbol to test in order to know if we're on - HPUX 10. Damn.) -
  • Identify Mips processor under Irix: `hinv -c processor'. - config.guess should say mips2, mips3, and mips4. -
  • Identify Alpha processor under OSF: "/usr/sbin/sizer -c". - Unfortunately, sizer is not available before some revision of - Dec Unix 4.0, and it also returns some rather cryptic names for - processors. Perhaps the implver and - amask assembly instructions are better, but that - doesn't differentiate between ev5 and ev56. -
  • Identify Sparc processors. config.guess should say supersparc, - microsparc, ultrasparc1, ultrasparc2, etc. -
  • Identify HPPA processors similarly. -
  • Get lots of information about a Solaris system: prtconf -vp -
  • For some target machines and some compilers, specific options - are needed (sparcv8/gcc needs -mv8, sparcv8/cc needs -cg92, - Irix64/cc needs -64, Irix32/cc might need -n32, etc). Some are - set already, add more, see configure.in. -
  • Options to be passed to the assembler (via the compiler, using - whatever syntax the compiler uses for passing options to the - assembler). -
  • On Solaris 7, check if gcc supports native v9 64-bit - arithmetic. If not compile using "cc -fast -xarch=v9". - (Problem: -fast requires that we link with -fast too, which - might not be very good. Pass "-xO4 -xtarget=native" instead?) -
  • Extend the "optional" compiler arguments to choose the first - that works from from a set, so when gcc gets athlon support it - can try -mcpu=athlon, -mcpu=pentiumpro, or -mcpu=i486, - whichever works. -
  • Detect gcc >=2.96 and enable -march=pentiumpro for relevant - x86s. (A bug in gcc 2.95.2 prevents it being used - unconditionally.) -
  • Build multiple variants of the library under certain systems. - An example is -n32, -o32, and -64 on Irix. -
  • There's a few filenames that don't fit in 14 chars, if this - matters. -
  • Enable support for FORTRAN versions of mpn files (eg. for - mpn/cray/mulww.f). Add "f" to the mpn path searching, run AC_PROG_F77 if - such a file is found. Automake will generate some of what's needed in the - makefiles, but libtool doesn't know fortran and so rules like the current - ".asm.lo" will be needed. -
  • Only run GMP_PROG_M4 if it's needed, ie. if there's .asm files - selected from the mpn path. This might help say a generic C - build on weird systems. +

    Random Numbers

    + -

    In general, getting the exact right configuration, passing the -exact right options to the compiler, etc, might mean that the GMP -performance more than doubles. -

    When testing, make sure to test at least the following for all out -target machines: (1) Both gcc and cc (and c89). (2) Both 32-bit mode -and 64-bit mode (such as -n32 vs -64 under Irix). (3) Both the system -`make' and GNU `make'. (4) With and without GNU binutils. - -

    Miscellaneous

    -

    Aids to Debugging

    +

    Aids to Development

    @@ -359,21 +905,101 @@ and 64-bit mode (such as -n32 vs -64 under Irix). (3)
  • mpz_inp_str (etc) doesn't say when it stops reading digits. -
    - - - - - -
    - - Please send comments about this page to - tege@swox.com.
    - Copyright (C) 1999, 2000 Torbjörn Granlund. -
    -
    -
    +

    Bright Ideas

    +The following may or may not be feasible, and aren't likely to get done in the +near future, but are at least worth thinking about. + + +
    + + +