[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Debian Installer?



--- Behdad Esfahbod <behdad at cs dot toronto dot edu> wrote:
> I tried to show that minibidi is not a real bidi implementation
> by mentioning a few things it misses.  Just a short list out of
> top of my head:
> 
> * Takes \Theta(N^2) time for an string of length N.
> * Does not implement rule L3 at all.
> * Is not portable: uses wchar_t.
> * Just works for BMP (plane 0) (in fact dumps core for chars beyond BMP).
> * Has known bugs handling explicit marks.
> * Char type lookup is slow as hell.
> * Is not tested AT ALL.
> * Updating to later Unicode versions is not any easy.
> * Has quite a bad design:  Table in header file.
> * Does not expose all functionality of the bidi algorithm.
> * Has no build system.  Is not a library.
> * Does not follow the standard with respect to line-breaking,
>   shaping, and bidi interaction.
> 
> And note that this last one is really hard to implement, and is
> why shaping is not in FriBidi yet...  As I already have said lots
> of times:  Bidi/Shaping is not done line by line...
> 
> And I can express how important these points are, and how much
> evil is it to duplicate code in different projects.  Right now we
> have only 6 bidi implementations used widely (FriBidi, KDE,
> Mozilla, OO.o, Java, ICU), and we've got enough headache with
> them, now go on and send this ugly hack all over different
> projects...  So, in short, is not conforming to standard in any
> level.

Noted.  I think it would be more productive to stay away from
harsh/offending language (this only backfires in the future).
In terms of missing functionality those need to be added in
(no ifs/buts about it) and in terms of bugs, there have been
plenty of requests to get feedback (and review the code), so
hearing about 'em now is a good thing and they need to be fixed.

As for the 2 remaining points (comments later),

 + Shaping - in lieu of having shaping in fribidi we end-up doing
   shaping word-by-word (let alone line-by-line) and so what
   minibidi is doing is what we've done so far by hand, it just
   captured it into an implementation we can point to.  I agree
   that we need to be perfect and do the optimal/correct thing,
   but meanwhile we can't simply just wait.  The idea, as with
   fribidi, is that if you extrapolate this code to be its own
   external'ish entity you can handle that better in the future
   hopefully (that's a tall order esp. when the API is involved
   when you're going from single lines/words to paragraphs).

 + Library - this idea sprung from the PuTTY work (as you know) and
   it was a means to simply study and get more proficient in the
   algorithm (it was/is never meant to replace anything).

With that said, I'm all for improving miniBidi to conform better and
to improve speed and get a better code framework (for future changes
and revisions) as a learning process.  I think the shaping portion of
it will continue to be controversial until a better solution is put
forth or until fribidi finally adopts/incorporates it.

Salam.

 - Nadim



	
		
__________________________________
Do you Yahoo!?
Yahoo! Domains – Claim yours for only $14.70/year
http://smallbusiness.promotions.yahoo.com/offer