Kelly,

Thank you for the background.

-Dmitry

On 2014-04-04 20:52, Kelly O'Hair wrote:
> Just as background information...  
> 
> The serviceability team should do what they think is right here, I'll just 
> provide some history... ;)
> 
> The original purpose of this library was to provide some generic native 
> platform tools for dealing with things that will happen BEFORE the JVM is 
> started and Java code can be called.
> 
> This was necessary for JVM agents (hprof, debugger backend, jvmti demo 
> agents) and any native code that was executed before the JVM had gotten off 
> the ground.
> Doing  arbitrary character encoding conversions to/from the various flavors 
> of UTF-8 is a nightmare outside Java.
> And since the characters typed in on a java commandline is in the OS's 
> default platform  encoding, and not in UTF-8, they need to be converted.
> Since this native code was not part of hotspot, and was written in C, using 
> the hotspot functionality for this was not possible at the time.
> 
> This logic was isolated because it was so OS specific and ugly, and we (maybe 
> just me) had visions of needed more in this library, and that maybe we could 
> limit the ifdef-mania to this library rather than scatter the same 
> ifdef-mania all over the rest of the JDK native code that lives outside 
> hotspot.
> So it seemed natural to isolate it as a separate little library that could be 
> unit tested on it's own.
> 
> It's extremely likely that it could be trimmed down, and as more and more OS 
> default encodings become UTF-8, maybe it' will eventually become obsolete.
> 
> Hope this helps.
> 
> -kto
> 
> On Apr 4, 2014, at 9:28 AM, Dmitry Samersoff wrote:
> 
>> Hi Everybody,
>>
>>  We have an libnpt.so[1] in JDK. This library contains bunch of UTF
>> related functions. On a brief investigation it looks like most of these
>> functions are not used. Six functions below called one time each from
>> share/back/* and hprof_init.c [2]
>>
>>  Should I file a CR to have it cleaned up - remove npt library as a
>> separate entity and move few utf functions that really used to place
>> where it actually called.
>>
>>
>> [1] Library sources location
>>
>> src/share/npt
>> src/solaris/npt
>> src/windows/npt
>>
>> [2] Library usage
>>
>> src/share/back/transport.c:
>>
>> utf8FromPlatform
>> utf8ToPlatform
>>
>> src/share/back/inStream.c:
>>
>> utf8sToUtf8m
>> utf8sToUtf8mLength
>>
>> src/share/back/outStream.c:
>>
>> utf8mToUtf8s
>> utf8mToUtf8sLength
>>
>>
>> src/share/demo/jvmti/hprof/hprof_init.c
>>
>> utf8ToPlatform
>>
>>
>> -Dmitry
>>
>> -- 
>> Dmitry Samersoff
>> Oracle Java development team, Saint Petersburg, Russia
>> * I would love to change the world, but they won't give me the sources.
> 


-- 
Dmitry Samersoff
Oracle Java development team, Saint Petersburg, Russia
* I would love to change the world, but they won't give me the sources.

Reply via email to