On 4/6/14 11:13 PM, Staffan Larsen wrote:
Curious: What does NPT stand for?

This is from Kelly:

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.


Thanks,
Serguei


On 4 apr 2014, at 18:52, Kelly O'Hair <kellyoh...@gmail.com> 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.

Reply via email to