RE: ICU4D

George Rhoten <[email protected]> Wed, 25 Aug 2004 11:08:13 -0700
Newsgroups gmane.comp.lib.icu.general
Message-ID <OF3E102D85.855999B3-ON86256EFB.00611109-88256EFB.00638982@us.ibm.com>
I can't comment on the "officialness" of getting ICU4D on the ICU web site 
or linking to a specific ICU4D site, but I will comment on something like 
ICU4C#, ICU4JNI or COBOL wrappers.

I've noticed that C# has the ability to use the C++ code by using managed 
extensions.  I've had limited success with such an approach.  I believe 
certain keywords have to precede the function declaration to export the 
function correctly.  Microsoft can manage the C#, C++ and Visual Basic 
compilers at the same time, which is probably more resources than you 
have.  If there were some sort of C++ extension or templates that would 
allow D to access the C++ API, like maybe COM or CORBA, you could consider 
that approach, which I think would be the easiest and most generic, but 
hopefully it wouldn't become something as complicated as ATL. 

If that can't be done, you would have one of two traditional wrapper 
approaches.  Write something like ICU4JNI, or forward declare the C 
functions, like in Pascal or C# for direct access.  The second approach 
has a thinner wrapper.

I'm sure you've already thought about all this, but I thought I'd mention 
it anyway.  I personally prefer to avoid forking as much as possible.

George Rhoten
IBM Globalization Center of Competency/ICU  San José, CA, USA
ICU main website: http://oss.software.ibm.com/icu/index.html



[email protected] 
Sent by: [email protected]
08/25/2004 06:50 AM

To
[email protected]
cc
[email protected]
Subject
RE: ICU4D






Thank you for replying.
-----Original Message-----
From: Steven R.Loomis [mailto:[email protected]]
Sent: Wednesday, August 25, 2004 2:18 PM
To: [email protected]
Cc: [email protected]
Subject: Re: ICU4D

Do you know which parts of ICU do you need? 
Yes. All of it. Everything that Java has, D must have too.
 Some parts of ICU, such as character properties which you mention, are 
written in C and the C++ api in ICU is just a wrapper. 
I would think that to avoid maintenance and forks whenever ICU code 
changes, that you would want to write thin D object wrappers for ICU 
calling to the C apis.  
That would be appropriate in some places, but certainly not everywhere. 
Maintainance and forks whenever ICU code changes probably can't be 
avoided. The D API would have to be kept up to date, just as the Java API 
has to be kept up to date. But we don't really regard that as a problem.
 Obviously this could be evaluated on a per service basis. If you have 
inline expansion the wrappers could end up being very thin at run time. 

See the readme (with the source) and userguide for some items on 
organization and porting issues. 
Yes, but those notes in the readme refer to porting the existing project 
to a new platform. That's not what I'm talking about, so you may have 
misunderstood. D is not a platform, it is a programming language. I'm 
talking about creating a version of ICU with relevant parts written in D, 
just as the Java version has relevant parts written in Java. I'm talking 
about a language-port, not a platform-port.
 
hope this helps,  
It doesn't help really, although I thank you for replying. You seem to 
have answered as though I had asked "how do I write the code?" That isn't 
quite what I meant - I can write code. I know how to make wrappers, when 
they might be needed, and when they are inappropriate. What I was trying 
to ask, is: How do I start a fork of ICU called ICU4D, with the same 
status on the ICU web site as ICU4C or ICU4J? How do we make this an 
"official" project? To whom do we have to talk? etc.
Jill
 
 


For Aculab's privacy policy and E-Mail disclaimer, Click Here : 
http://www.aculab.com/company/legal_notice.htm.