On Aug 21, 2012, at 10:53 AM, Jed Brown <jedbrown at mcs.anl.gov> wrote:
> On Tue, Aug 21, 2012 at 10:39 AM, Matthew Knepley <knepley at > ci.uchicago.edu> wrote: > Wolfgang is not wrong here. I was against the name change :) > > I complained about this in May when it was pushed. Then who the fuck changed this. It sure as hell wasn't me. Barry > > > Matt > > ---------- Forwarded message ---------- > From: Wolfgang Bangerth <bangerth at math.tamu.edu> > Date: Mon, Aug 20, 2012 at 10:30 PM > Subject: Changes in PETSc > To: Matthew Knepley <knepley at ci.uchicago.edu>, "Toby D. Young" <tyoung at > ippt.gov.pl> > > > > Hi Matt, > I ran across something today that I believe perfectly illustrates the kind of > thing that drives everyone completely mad about PETSc's habit of changing > everything in every release. I was staring for a long time at a patch by one > of our contributors labeled "fix catastrophic typo" that reads like this: > ........................... > - int ierr = KSPSetType (ksp, const_cast<char *>(KSPCHEBYSHEV)); > + // set the type of solver. > + int ierr; > + > +#ifdef DEAL_II_PETSC_VERSION_LT(3,3,0) > + ierr = KSPSetType (ksp, const_cast<char *>(KSPCHEBYCHEV)); > > They can get rid of the const_cast. > > Also, instead of the magic version nonsense, they can write > > #ifndef KSPCHEBYSHEV > # define KSPCHEBYSHEV KSPCHEBYCHEV > #endif > > and then always use the new version in their code. > > Also, a package like deal.II would be better off snooping the list of valid > parameters using PetscFListGet() so that they would *automatically* support > *all* KSPs and PCs in PETSc. > > +#else > + ierr = KSPSetType (ksp, const_cast<char *>(KSPCHEBYSHEV)); > +#endif > ........................... > It took me minutes to find the difference: before 3.3, the name was spelled > chebyChev, after that chebyShev. That's really a completely unnecessary > change -- but hugely disruptive because not compatible, incredible difficult > to see, and it also has no real value at all: whether you want to spell the > name the French or the American way really makes no difference at all. Worst > of all, it would have been absolutely trivial to make the change backward > compatible by simply doing > #define KSPCHEBYSHEV KSPCHEBYCHEV > but that didn't happen. > > So why do it? Sorry for venting, but it just doesn't make sense to me... > Best > W. > > -- > ------------------------------------------------------------------------ > Wolfgang Bangerth email: bangerth at math.tamu.edu > www: http://www.math.tamu.edu/~bangerth/ > > > > > -- > What most experimenters take for granted before they begin their experiments > is infinitely more interesting than any results to which their experiments > lead. > -- Norbert Wiener >