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
>