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.