[Nix-dev] New-style Marc Weber proposal

Lluís Batlle i Rossell viriketo at gmail.com
Tue Apr 20 17:42:24 CEST 2010


On Tue, Apr 20, 2010 at 04:24:12PM +0100, Tony White wrote:
> On 20 April 2010 11:05, Peter Simons <simons at cryp.to> wrote:
> > Marc Weber 2
> > ============
> >
> > If you like it, we can deprecate Marc Weber soon. Right now, both can be used.
> >
> > Many of you have gotten used to the version of Marc Weber that has been around
> > for so long, but lets face the fact that there are problems: (a) it actually
> > works and (b) I haven't written it. So I decided to do something about that.
> > First, I tried to patch the existing version, but that only made things worse,
> > so I re-wrote everything from scratch. This allowed me to format the entire
> > source code according to my personal taste without being bothered by style
> > guides or group consensus.
> >
> > Previously, Marc Weber had the serious disadvantage that
> >
> >  [       a + 3                 1                  1         ]
> >  [  ---------------   - ---------------  - ---------------  ]
> >  [  (a - 1) (a + 4)     (a - 1) (a + 4)    (a - 1) (a + 4)  ]
> >  [                                                          ]
> >  [          1               a + 3                 1         ]
> >  [ - ---------------   ---------------   - ---------------  ]
> >  [   (a - 1) (a + 4)   (a - 1) (a + 4)     (a - 1) (a + 4)  ]
> >  [                                                          ]
> >  [          1                  1               a + 3        ]
> >  [ - ---------------  - ---------------   ---------------   ]
> >  [   (a - 1) (a + 4)    (a - 1) (a + 4)   (a - 1) (a + 4)   ]
> >
> > while also being
> >
> >  (mmm-add-classes
> >   '((literate-haskell-bird
> >      :submode text-mode
> >      :front "^[^>]"
> >      :include-front true
> >      :back "^>\\|$"
> >      )))
> >
> > and this lead to
> >
> >  template<unsigned int i, typename x, typename xs>
> >  struct sieve_multiples_of< i, typelist<x,xs> >
> >  {
> >    typedef typename ifelse
> >      < x::value % i != 0u
> >      , typelist<x, typename sieve_multiples_of<i, xs>::result>
> >      , typename sieve_multiples_of<i, xs>::result
> >      >::result result;
> >  };
> >
> > which is really bad! In my new version, however, this all becomes:
> >
> >    a!#_{a]|_aa23 23 / 8ZZZZ{}````5@ a!#_{a]|_aa23 23 / 8ZZZZ{}``
> >    ``5@ a!#_{a]|_aa23 23 / 8ZZZZ{}````5@ a!#_{a]|_aa23 23 /
> >    8ZZZZ{}`` ``5@ a!#_{a]|_aa23 23 / 8ZZZZ{}````5@ a!#_{a]|_aa23
> >    23 / 8ZZZZ{}`` ``5@ a!#_{a]|_aa23 23 / 8ZZZZ{}````5@
> >    a!#_{a]|_aa23 23 / 8ZZZZ{}`` ``5@ a!#_{a]|_aa23 23 /
> >    8ZZZZ{}````5@ a!#_{a]|_aa23 23 / 8ZZZZ{}`` ``5@
> >
> > I hope this explanation helps you understand why the re-written version is
> > superior.
> >
> > At this point, my new code is undocumented, untested, unfinished, unreadable,
> > unnecessarily complex, unmaintained, and it doesn't work, so I checked it right
> > in for your convenience. If the change causes any problems for you, it's
> > probably easiest if you try to fix them yourself. I may be able to assist you
> > with your efforts. If it so happens that you can't fix the problems yourself,
> > please just let me know! I'll make an effort to deflect all responsibility with
> > flimsy excuses in the nick of time.
> >
> > Generally speaking, I plan to develop this project into something really major,
> > like ... I dunno ... maybe a car or a moon rocket, but because of the other
> > five dozen unfinished projects I'm involved in, I'm not actually going to do
> > it. As always, I appreciate feedback (unless I don't like it) and I'll try to
> > fix my bugs ASAP (unless they don't bother me).
> >
> > Have a nice day,
> > Peter Simons
> >
> > _______________________________________________
> > nix-dev mailing list
> > nix-dev at cs.uu.nl
> > https://mail.cs.uu.nl/mailman/listinfo/nix-dev
> >
> 
> Hi Peter,
> I don't think that your comments are fair.
> 
> If someone makes a mistake or adopts an unsuitable method as a
> solution to a problem, please communicate with them in a civilised
> manner about it, try to reason with them and maybe even try to suggest
> a better solution.
>
> Mistakes don't need to be ridiculed. They just need to be fixed.
> Especially when someone has all the right intention.

I also found Peter's letter disgusting, given the trouble we have at hands.



More information about the nix-dev mailing list