[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: MiniBidi Makeover!
- To: Development Discussions <developer at arabeyes dot org>
- Subject: Re: MiniBidi Makeover!
- From: Nadim Shaikli <shaikli at yahoo dot com>
- Date: Sat, 12 Jun 2004 00:55:16 -0700 (PDT)
--- Ahmad Khalifa <ahmad at khalifa dot ws> wrote:
> As you all know MiniBidi is scheduled for an upgrade which should
> probably start in 2 days. So if any of you has any suggestions or ideas
> concerning MiniBidi, now is the time to say them.
This would be more Behdad's arena as he is an expert in this field and
I'm sure his 5-10 minutes would go a long way.
> I already have a list of issues that i need the general consensus on, so
> please vote or give you opinion on them. everybody please participate.
> 1- Should MiniBidi handle chars beyond 0xFFFF ?
> Putty and CUPS and a lot of programs only handle 2 byte characters,
> so this useless there. This is probably faster using a 2byte datatype
> in MiniBidi, and less memory consumption.
> 2- Should MiniBidi become a Library ?
> i.e built as external libraries
Both, a lib and something that is embedded-able.
> 3- Should Shaping be done in a separate file ?
> to make it easier for developers in need of only shaping code to
> just grab 1 file. this probably wont be needed after FriBidi gets
> shaping done.
It would be nice to have clean/clear delineation in case someone wants
to study the matter.
> 4- Mirroring.
> How to store the mirrored chars and apply mirroring. for an example
> see the function doMirror() in minibidi.c
Again as a study issue - sure why not (ifdef it out if need be).
> 5- Any suggestions about Optimizations ?
> Anything to make it run faster or in less RAM.
> Other than that here is what I already have planned besides total
> - Implement rule L3.
> - Improve Explicit Marks handling.
> - Ask nadim or others for scripts to generate compressed type table and
> mirroring function.
Fire away privately I guess - I doubt anyone wants to hear your script
requirements as they (all scripts) tend to be mundane.
> - Make an external table of conversions from 0x06XX to presentation
> forms, and store it with source.
> - Make a Benchmark application to test and compare random strings.
> - Make GetParagraphLevel() utility function.
> - Make GetType() utility function.
> - Use unsigned short as the data type.
> - Change interface from doBidi() and doShape() to GetVisualOrder() with
> a flag to indicate wether to shape.
> - Add and use extension datatypes. to allow MiniBidi to work on any
> defined datatype by just changing the declaration. (very usefull in
> CUPS and other apps with their own complex datatype)
> - Optimize speed.
Make sure the code is well-written and well-documented. As noted it would
be ideal to have this be a simplistic study case for those just learning.
Do you Yahoo!?
Friends. Fun. Try the all-new Yahoo! Messenger.