Stability Levels
DTrace provides two types of stability attributes for entities such as built-in variables,
functions, and probes: a stability level and an architectural dependency class. The DTrace stability level
assists you in making risk assessments when developing scripts and tools based on
DTrace by indicating how likely an interface or DTrace entity is to change
in a future release or patch. The DTrace dependency class tells you whether
an interface is common to all Solaris platforms and processors, or whether the
interface is associated with a particular architecture such as SPARC processors only. The
two types of attributes used to describe interfaces can vary independently.
The stability values used by DTrace appear in the following list in order
from lowest to highest stability. The more stable interfaces can be used by
all D programs and layered applications because Sun will endeavor to ensure that
these continue to work in future minor releases. Applications that depend only on
Stable interfaces should reliably continue to function correctly on future minor releases and
will not be broken by interim patches. The less stable interfaces allow experimentation,
prototyping, tuning, and debugging on your current system, but should be used with
the understanding that they might change incompatibly or even be dropped or replaced
with alternatives in future minor releases.
The DTrace stability values also help you understand the stability of the software
entities you are observing, in addition to the stability of the DTrace interfaces
themselves. Therefore, DTrace stability values also tell you how likely your D programs
and layered tools are to require corresponding changes when you upgrade or change
the software stack you are observing.
- Internal
The interface is private to DTrace and represents an implementation detail of DTrace. Internal interfaces might change in minor or micro releases.
- Private
The interface is private to Sun and represents an interface developed for use by other Sun products that is not yet publicly documented for use by customers and ISVs. Private interfaces might change in minor or micro releases.
- Obsolete
The interface is supported in the current release but is scheduled to be removed, most likely in a future minor release. When support of an interface is to be discontinued, Sun will attempt to provide notification before discontinuing the interface. The D compiler might produce warning messages if you attempt to use an Obsolete interface.
- External
The interface is controlled by an entity other than Sun. At Sun's discretion, Sun can deliver updated and possibly incompatible versions of such interfaces as part of any release, subject to their availability from the controlling entity. Sun makes no claims regarding either source or binary compatibility for External interfaces between any two releases. Applications based on these interfaces might not work in future releases, including patches that contain External interfaces.
- Unstable
The interface is provided to give developers early access to new or rapidly changing technology or to an implementation artifact that is essential for observing or debugging system behavior for which a more stable solution is anticipated in the future. Sun makes no claims about either source or binary compatibility for Unstable interfaces from one minor release to another.
- Evolving
The interface might eventually become Standard or Stable but is still in transition. Sun will make reasonable efforts to ensure compatibility with previous releases as it evolves. When non-upward compatible changes become necessary, they will occur in minor and major releases. These changes will be avoided in micro releases whenever possible. If such a change is necessary, it will be documented in the release notes for the affected release, and when feasible, Sun will provide migration aids for binary compatibility and continued D program development.
- Stable
The interface is a mature interface under Sun's control. Sun will try to avoid non-upward-compatible changes to these interfaces, especially in minor or micro releases. If support of a Stable interface must be discontinued, Sun will attempt to provide notification and the stability level changes to Obsolete.
- Standard
The interface complies with an industry standard. The corresponding documentation for the interface will describe the standard to which the interface conforms. Standards are typically controlled by a standards development organization, and changes can be made to the interface in accordance with approved changes to the standard. This stability level can also apply to interfaces that have been adopted without a formal standard by an industry convention. Support is provided for only the specified versions of a standard; support for later versions is not guaranteed. If the standards development organization approves a non-upward-compatible change to a Standard interface that Sun decides to support, Sun will announce a compatibility and migration strategy.