From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 5502 invoked by alias); 21 Aug 2009 20:42:50 -0000 Received: (qmail 5492 invoked by uid 22791); 21 Aug 2009 20:42:49 -0000 X-SWARE-Spam-Status: No, hits=-1.8 required=5.0 tests=AWL,BAYES_00,SPF_PASS X-Spam-Check-By: sourceware.org Received: from mail.network-theory.co.uk (HELO mail.network-theory.co.uk) (66.199.228.187) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 21 Aug 2009 20:42:43 +0000 Date: Fri, 21 Aug 2009 20:42:00 -0000 Message-ID: From: Brian Gough To: Tuomo Keskitalo Cc: GSL Discuss Mailing List Subject: Re: GSL 2.0 roadmap In-Reply-To: <4A7ADFDC.9080408@iki.fi> References: <48E25CA9.6080306@iki.fi> <490DE4BD.7070907@iki.fi> <497B00F6.2080400@iki.fi> <498727E5.6080407@iki.fi> <49AA9DB5.6030908@iki.fi> <49FB01D1.30000@iki.fi> <4A7ADFDC.9080408@iki.fi> User-Agent: Wanderlust/2.14.0 (Africa) Emacs/22.2 Mule/5.0 (SAKAKI) MIME-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset=US-ASCII X-Message-Mac: 76b9c2d77e1cb327bb26b9ecb928ada2 Mailing-List: contact gsl-discuss-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gsl-discuss-owner@sourceware.org X-SW-Source: 2009-q3/txt/msg00018.txt.bz2 Sorry for the delay in replying. Here's a list of the changes from the NOTES file and my own org file. I plan to make a branch for release 2.0 after the next release 1.13 which will hopefully be next week. The 1.x branch should probably be maintained in parallel with any bug fixes for a release or two but hopefully those are just minor things now which we can easily merge. * Changes for Release 2.0 Break binary compatibility, but keep source compatibility. ** Add a 'void *' to all workspaces, to allow for future changes. ** Disable deprecated functions ** Fix up the workspace_alloc functions so they have consistent names (add functions where needed, don't remove) ** Standardize function names, in particular VERB vs NOUN (e.g. _invert vs _inverse). Also adopt a convection for functions which can operate in place vs use of workspace (e.g linalg_solve functions). ** gsl_sf_ellint_D - remove useless argument n? ** Change default generator to Ranlxd (check seeding) or look at improved seeding for MT ** Vegas struct is too large and control variables should go at the beginning ** Remove use of long double internally, e.g. as an accumulator in loops. It introduces variation between platforms which is undesirable. It should be replaced with a preprocessor variable ACC_DOUBLE so that the user can compile the library with the old long double behavior if desired. ** Eliminate use of volatile where it has been used to force rounding (integration/). It is better to write the code to avoid dependence on rounding. ** Constant objects (like gsl_roots_fsolver_brent) ought to have constant pointers (const gsl_roots_fsolver_type * const gsl_roots_fsolver_brent) ** Make the return value EINVAL vs EDOM consistent for invalid parameters. EDOM means a domain error (i.e. float or mathematically undefined), EINVAL means invalid (i.e. zero length) ** Change return 0 to return GSL_SUCCESS, and return -1 to GSL_FAILURE throughout, where appropriate. Similarly change any if(...) checks of return values to use == GSL_SUCCESS, if they are checking for zero. N.B. want to be careful about accidentally omitting error conditions if using something like == GSL_FAILURE when function returns a different error code. ** Make sure that all #defines are fully wrapped in ()'s, especially the outermost layer which may have been missed. Everything should be of the form #define foo(x) (....) so there is no possibility of bad parsing. Need a perl script to check this! ** Convert to BZR? (check GPG signing and integrity guarantees) * Release "1.14" backwards compatible ** Add error code to all linalg svx type functions for singular matrix ** Merge integ-glfixed branch ** Fix bug #25383 use GSL_ENOPROG instead of GSL_CONTINUE in lmiterate.c ** compare new erf function ** Export dwt.c/dwt_step ** Fix relative error in integration check