Sun Java Solaris Communities My SDN Account Join SDN

Downloads

Sun Studio Express - July 2008 README

 

Contents

1. Sun Studio Express - July 2008 Build
2. System and Hardware Requirements
3. Installing This Sun Studio Express Build
4. New and Changed Features Since Sun Studio 12 Release
5. Update Notification
6. Additional Notes
7. Features That Have Been Removed in This Release
8. Usage Tracking Enabled


1. Sun Studio Express -- July 2008 Build

 

Welcome to the Sun Studio Express Program: your opportunity to get a window into our early development process and to shape future decisions by giving us your feedback.

It is our top priority to hear what you have to say. Experiment with the bits, participate in forums, and let us know what you think. This build is just one in a continuous program and some functionality is still missing or isn't fully implemented yet. Despite these limitations we think that what's available is interesting enough to make it worth downloading the bits. We encourage you to install and try this Sun Studio Express build.

We welcome your feedback. The »Sun Studio Forums is the place to get answers to your questions from our engineers as well as the community, and to leave feedback about what what worked and what didn't, and what we should improve.

The man pages and other documentation in the Sun Studio Express July 2008 build have not all been updated yet. The »Sun Studio Information Center links to all the manuals, man pages, and readmes for the Sun Studio 12 software release, on which this express build is based.

Additional information about this express build can be found on the »Express wiki pages.

2. System and Hardware Requirements

 

The minimum system and hardware requirements for this Sun Studio Express build are:

Hardware

  • Minimum on SPARC: Sun Ultra 60 (450 MHz, UltraSPARC II processor)
  • Minimum on x86/x64: Pentium III 500-MHz or any AMD64 Opteron or Athlon
  • Memory: Recommended 1 to 2 GBytes
    • Minimum: 512 Mbyte
  • Swap: 1 Gbyte
  • Disk space:
    • SPARC platforms: 1.6 GBytes
    • x86 platforms: 1.1 GBytes
    • Linux platforms: 1 GBytes


Operating Systems

  • Solaris versions:
    • Solaris 9
    • Solaris 10 01/06 or later update
    • OpenSolaris
  • Linux versions:
    • SuSE Linux Enterprise Server 9 with Service Pack 3 (or later)
    • Red Hat Enterprise Linux 4

    If you want to try Sun Studio Express on OpenSolaris or on any Linux distribution that minimally has the 2.6.X Linux kernel and 2.3.3+ glibc, we would very much like to receive your input.

Note: The Sun Studio IDE and Analyzer require JDK 6.0 Update 3 or higher, which can be downloaded from the »Java SE Downloads site if the required version is not available on your target platform.


3. Installing This Sun Studio Express Build

 

This Sun Studio Express release is available only as a self-extracting script. No package installation is required and you do not need to have root access to run this script.

Install the Sun Studio Express release as follows:

  1. Download the installer script from the »Sun Studio Express page into a scratch DOWNLOAD-DIRECTORY such as /var/tmp.
    Make the installer script executable by typing the following command:
    $ chmod +x ./installer-script-name

  2. Install Sun Studio Express by running the script in the directory where you want the Express release to be installed:
    $ cd INSTALL-DIRECTORY
    $ sh DOWNLOAD-DIRECTORY/StudioExpress-OS-PLATFORM-DATE-ii.sh
    Do not attempt to install this Express release in a directory that already contains a previous Sun Studio or Sun Studio Express release. The script will detect this and issue an error message.

After installation, the script opens a web browser and asks you to use your Sun Online Account to register your copy of Sun Studio with the Sun Inventory. Registration is not required, but it allows you to organize your products in the Sun Inventory and receive timely information from Sun.

When you click the Register button on the Registration page, you might receive the following error message:

Not Found
The requested object does not exist on this server. The link you followed is either outdated,
inaccurate, or the server has been instructed not to let you have it.

If you receive this message, clear your browser cache, and click the Register button again. If you still receive the error message, delete your .mozilla file, and click the Register button again.

The script also registers this copy of Sun Studio in your local Service Tags database (if this service is available). »Read more about Sun Inventory and Service Tags.

Before using Sun Studio compilers and tools, you will need to update your PATH and MANPATH shell variables to the installation and documentation directories or modify your home directory's .cshrc file (for C shell) or .profile file (for Bourne or Korn shells) to make these changes permanent.

If you use csh:

% setenv PATH INSTALL-DIRECTORY/bin:$PATH

% setenv MANPATH INSTALL-DIRECTORY/man:$MANPATH

If you use sh (or ksh):

% PATH=INSTALL-DIRECTORY/bin:$PATH; export PATH

% MANPATH=INSTALL-DIRECTORY/man:$MANPATH; export MANPATH

Test your installation by launching the Sun Studio IDE. From a terminal command-line prompt, type:

% sunstudio


4. New and Changed Features

 

Here is an overview of some of the new features in this Express build of Sun Studio compilers and tools. Note that most of these features might not be documented in the Sun Studio man pages in this build.

Some of these features are experimental and might not be available in future releases. Some of these features might change significantly in future releases. The documentation is also preliminary and might not reflect the full range of functionality or problems and workarounds.

You will find more detail on these features on the »Express Details wiki pages.

Performance Analyzer

The Performance Analyzer introduces major enhancements for analyzing MPI programs:

  • The collect command has a new -M on option that is used to collect data on MPI programs. The target program should be mpirun, from Sun HPC ClusterTools 8, although mpirun from other Open MPI implementations might also work.
  • The Analyzer GUI includes the following new features:
    • MPI Timeline, which shows a view of an MPI program's data over time. The MPI Timeline tab shows a set of bars, one for each MPI rank, indicating when each process is in user code and when it is in MPI code, and displaying messages sent among the processes.
    • MPI Charts, which you can use to generate different displays of the data to analyze. The MPI Charts tab shows a variety of one- and two-dimensional plots of data and other aggregated data concerning MPI processing.
    • Zooming and filtering capabilities to focus on particular aspects of the data in the MPI Timeline and MPI Charts tabs.
    • With applications created using Sun HPC ClusterTools 8 Early Access 2, clock-profiling MPI experiments show two new metrics, MPI Work Time and MPI Wait Time.

You can find details about how to use the new features in the Sun Studio Performance Analyzer for MPI programs on the »MPI Analyzer wiki page.

Additional Changes to the Performance Analyzer Tools

  • Changes to experiment format to support MPI experiments and to support MPI Work and MPI Wait metrics from Sun HPC ClusterTools 8 Early Access 2.
  • Changes to the collect command (in addition to MPI change):
    • The -I and -N options are accepted when -c (count) profiling is specified.
    • The -J option for Java profiling can support multiple arguments to the JavaTM Virtual Machine (JVM) as a quoted string containing blank or tab separated arguments. (The terms "Java Virtual Machine" and "JVM" mean a Virtual Machine for the Java platform.)
    • Hardware counter profiling has better support for Intel Core2 and AMD Family 10h processors.
  • The collector command in the dbx debugger has better support for Intel Core2 and AMD Family 10h processors.
  • Changes to the Performance Analyzer GUI (in addition to MPI changes):
    • The Show/Hide dialog box now supports a third option, API-only.
    • The tabs directive in an .er.rc file now specifies tab order as well as tab visibility.
  • Changes to the er_print command:
    • A new object_api command enables API-only processing of call stacks from the named objects.
    • You can include the object_show, object_hide, and object_api commands in .er.rc files.
    • A new objects_default command resets the default for all shared objects. You cannot include this command in .er.rc files.
    • The tabs directive in an .er.rc file now specifies tab order as well as tab visibility.
    • With Sun HPC ClusterTools 8 Early Access 2, clock-profiling MPI experiments show two new metrics, MPI Work Time and MPI Wait Time.
    • Compiler commentatrt controls, the cc, scc, and doc commands, have been extended to all control over whether the compiler options used to build the object are shown at the bottom of the source display.
    • er_print has been ported to 64-bits, and will run the 64-bit version on any system capable of supporting it. This enables er_print and Analyzer to read much larger experiments on such systems.
  • Two APIs have been added to the Thread Analyzer:
    • tha_check_datarace_mem instructs the Thread Analyzer to monitor or ignore accesses to a specified block of memory when doing data race detection.
    • tha_check_datarace_thr instructs the Thread Analyzer to monitor or ignore memory accesses by one or more specified threads when doing data race detection.

IDE

  • Based on NetBeans IDE 6.1
  • The Include-Hierarchy window lets you inspect the hierarchy of source and header files
  • The Type-Hierarchy window lets you inspect all supertypes and subtypes of a class
  • A new toolbar button lets you toggle between corresponding source and header files
  • Code completion now works for #include directives
  • The new Go to Type menu item lets you find a type (class, struct, enum, or typedef) by its name or prefix
  • The new Go to Include menu item lets you go directly to a file that is included in a source or header file
  • The new Go to Function or Variable menu item lets you find a function or variable by its name or prefix
  • Project dependencies can be created for projects from existing code
  • A choice of formatting styles for your source code
  • The new Threads window shows you all the threads in the current debugging session
  • The new Disassembler window displays the assembly instructions for the current source file
  • The new Usages window shows you everywhere a class (structure), function, variable, macro, or file is used in your project's source code

C, C++, and Fortran Compilers

  • The -xarch=ssse3 option adds the SSSE3 instruction set to the SSE3 instruction set.
  • The -xarch=sse4_1 option compiles for the SSE4.1 ISA.
  • The -xarch=sse4_2 option compiles for the SSE4.2 ISA.
  • The -xarch=sparcima option compiles for the sparcima version of the SPARC-V9 instruction set, plus the UltraSPARC extensions.
  • The -xchip=core2 option optimizes for the core2 processor.
  • The -xchip=sparc64vii option optimizes for the SPARC64 VII processor.
  • The -xchip=penryn option optimizes for the Intel Penryn processor.
  • The -xchip=nehalem option optimizes for the Intel Nehalem processor.
  • The -xcrossfile=1 option becomes an alias of the -xipo=1 option. The -xcrossfile=0 option no longer has any effect. Specifically, -xcrossfile=1 and -xcrossfile=0 results in -xipo=1.
  • On Solaris platforms, the -xpec[=yes|no] option generates a PEC binary that is recompilable for use with the Automatic Tuning System (ATS).
  • The -xtarget=woodcrest option expands to -xarch=ssse3 -xchip=core2 -xcache=32/64/8:4096/64/16.
  • The -xtarget=sparc64vii option expands to -xarch=sparcima -xchip=sparc=sparc64vii -xcache=64/64/2:5120/256/10.
  • The -xtarget=penryn option expands to -xarch=sse4_1 -xchip=penryn -xcache=32/64/8:6144/64/24.
  • The -xtarget=nehalem option expands to -xarch=sse4_2 -xchip=nehalem -xcache=generic.
  • The -Y option does not accept i as an argument.
  • On SPARC® platforms, the -xdepend option is now implicitly enabled for optimization levels -x03 or higher, and is no longer included in the expansion of the -fast option.
  • Support for OpenMP 3.0 in this Express release includes a libmtsk library. OpenMP programs will link with this library by default instead of the libmtsk library in the Solaris OS.
  • -xannotate[=yes|no]
    (SPARC platforms only) Instructs the compiler to create binaries that can be transformed later by binary modification tools like binopt(1).

C Compiler

  • The -W option does not accept i as an argument.
  • The -xsb and -xsbfast options are obsolete and have been removed.
  • A new flag has been added to the -xcheck option, [no%]init_local.
  • __FUNCTION__ is a predefined identifier that contains the name of the lexically-enclosing function. It is functionally equivalent to the c99 predefined identifier, __func__. On Solaris platforms, __FUNCTION__ is not available in -Xs and -Xc modes.
  • In standard C, a case label in a switch statement can have only one associated value. The Sun Studio C compiler allows an extension found in some compilers known as case ranges.
  • The second operand in a conditional expression can be omitted. If the first operand is then non-zero, the value of the conditional expression is that of the first operand.
  • For the -features=[no%]conststrings option, which enables and disables string literal placement in read-only memory, the default is -features=conststrings, which replaces the deprecated -xstrconst option.

C++ Compiler

  • The -xia option is now supported on the Solaris OS on x86 platforms.
  • The -xipo archive option is now supported on the Solaris OS on x86 platforms and on the Linux OS on x86 platforms.
  • The -Qoption option does not accept ube_ipa as an argument.
  • The expansion of the -fast option now includes -D_MATHERR_ERRNO_DONTCARE.
  • The -xvpara option, which shows parallelization warning messages, is now supported.
  • The -sb, -sbfast, -xsb and -xsbfast options are obsolete and have been removed.
  • The compiler now inlines code when you specify the -g option with any -0 or -x0 values as long as you do not also specify +d.
  • The pragma must_have_frame is now supported.
  • In standard C++, a case label in a switch statement can have only one associated value. The Sun Studio C++ compiler allows an extension found in some compilers known as case ranges.
  • The compiler normally creates temporary files in the /tmp directory. You can specify another directory by setting the TMPDIR environment variable.
  • The following attributes of functions are now supported:
     _attribute_((const))
     _attribute_((constructor))
     _attribute_((destructor))
    
    
  • The following attribute of variables is now supported for struct and enum types only:
     _attribute_((packed))
    
  • Universal Character Names are now supported.
  • Loop pragmas are now supported.
  • User-defined names for macro variadic arguments are now supported.

Fortran Compiler

  • The -Qoption option does not accept ube_ipa as an argument.
  • The -xvpara option, which shows parallelization warning messages, is now supported.
  • The -sb, -sbfast, -xsb and -xsbfast options are obsolete and have been removed.
  • The compiler normally creates temporary files in the /tmp directory. You can specify another directory by setting the TMPDIR environment variable.
  • The behavior of the cpu_time() Fortran 95 intrinsic routine is different between Solaris and Linux platforms.
  • The Fortran 2003 IMPORT statement is implemented.

Compilers and Assemblers on x86 Platforms

  • SSSE3 Assembly syntax/semantic and corresponding compiler intrinsics
  • SSE4.1 Assembly syntax/semantic and corresponding compiler intrinsics (Rev 1.0)
  • SSE4.2 Assembly syntax/semantic and corresponding compiler intrinsics
  • Two new assembler options: -C and -a32
  • The -b option, which generates extra symbol table information for the SourceBrowser, is now obsolete.

dbx Debugger

  • Runtime checking (RTC) now gives information about array out-of-bounds access on the Solaris OS on x86 platforms.
  • Runtime Checking (RTC) now supports access, leaks, and memuse checking on the following Linux platforms: SLES10, RHEL5.

Sun Performance Library

  • LAPACK routine are updated to conform to the latest specification of LAPACK 3.1.1
  • Support for Woodcrest CPUs is available.
  • Support for SPARC64-VI and SPARC64-VII CPUs is available.

OpenMP 3.0

Support for OpenMP 3.0 features in the C, C++, and Fortran compilers:

  • libmtsk library
  • Tasking
  • Loop collapse
  • Runtime routines for nesting support
  • Runtime routines for runtime schedule
  • Environment variables OMP_STACKSIZE and OMP_WAIT_POLICY
  • AUTO loop schedule
  • Enhanced threadprivate support in C++
  • Threadprivate static class member (C++)
  • Unsigned int loop control variable (C and C++)
  • New value for _OPENMP macro (200805L)

For more detail on these features, see the »Express Details wiki pages.

D-Light Tool

The D-Light tool offers a variety of instrumentation that takes advantage of the Solaris TM Dynamic Tracing (DTrace) debugging and performance analysis functionality. In this Express release,the D-Light Tool is supported on Linux platforms for two instruments: Clock Profiler (based on Performance Analyzer) and Java Ticker.

DTrace GUI Plugin

The NetBeansTM DTrace GUI Plugin is a graphical user interface (GUI) for running DTrace scripts.

Automatic Tuning and Troubleshooting System (ats)

ats is a binary reoptimization and recompilation tool that can be used for tuning and troubleshooting applications. For more detail on this tool, see the »Express Details wiki pages.

Binary Improvement Tool (bit)

bit is a suite of tools for improving binaries. For more detail on this tool, see the »Express Details wiki pages.

Discover

Sun Memory Error Discovery Tool (Discover) is a tool used to detect programming errors related to the allocation and use of program memory at runtime. For more detail on this tool, see the »Express Details wiki pages.

spot Command

The spot command runs a set of performance tools on the target application and renders the output as a set of hyperlinked web pages. For more detail on this tool, see the »Express Details wiki pages.


5. Update Notification

 

The Update Notification feature periodically checks www.sun.com and communicates available changes related to your Sun Studio software, including patches and major software updates. In this Sun Studio Express build, only usage information is communicated. This information is used by Sun Microsystems to improve future Sun Studio software releases. This information is anonymous and cannot be associated to any individual or organization.

To disable Update Notification, set the SUNW_NO_UPDATE_NOTIFY environment variable to any value other than false.


6. Additional Notes

 

Source Code for libelf and ld

Source code for libelf version 0.8.6 can be found at the following URL:
»http://directory.fsf.org/libs/misc/libelf.html

Source code for ld version 2.16.1 (part of binutils) can be found in the »Sun Download Center


7. Features That Have Been Removed in This Release

 

The following features have been removed in this release of the Sun Studio software.

gvim

gvim is an advanced and configurable tool built to enable efficient text editing. It is an improved version of vi. In the Sun Studio 8 through Sun Studio 11 releases, gvim is integrated with the IDE as an optional editor. In the Sun Studio 12 release and in this Express release, gvim is a stand-alone component.

The gvim editor will not be supported in this release or future releases of Sun Studio software. Developers using the Solaris OS can obtain gvim from the Solaris companion CD or from the »Open Source Software for Solaris web site. Developers on both the Solaris OS and Linux OS can obtain vim directly from the »vim open source community.

XEmacs

XEmacs is an advanced and highly customizable open source text editor and application development environment. XEmacs is a graphical tool that is often used as an IDE. In the Sun Studio 8 through Sun Studio 11 releases, XEmacs is integrated tightly with the IDE. In the Sun Studio 12 release and in this Express release, XEmacs is a stand-alone component.

The XEmacs editor will not be supported in this release or future releases of Sun Studio software. Developers using the Solaris OS can obtain XEmacs from the Solaris companion CD or from the »Open Source Software for Solaris web site. Developers on both the Solaris OS and Linux OS can obtain XEmacs directly from the »XEmacs open source community.

X-Designer

X-Designer is an interactive tool for creating Motif-based graphical user interfaces. It provides facilities to design user interfaces, edit layout, and create custom icons. X-Designer creates portable code that can be compiled to run on both the Solaris OS and the Linux OS. In the Sun Studio 8 through Sun Studio 11 releases, X-Designer was loosely integrated with the IDE and could be called from an IDE menu. The tool is bundled with the Sun Studio 12 software and this Express release as a stand-alone component and is not callable from the IDE.

X-Designer will not be supported in this release or future releases of Sun Studio software. Developers might be able to obtain the tool and contract for support directly from »Imperial Software Technology, Inc. (IST).


8. Usage Tracking Enabled

 

Usage tracking provides a way for Sun software engineers to collect information about how developers use Sun compilers and tools. This information can then be used to improve future revisions of the products.

Usage tracking is enabled in this Express release. Usage tracking will not be enabled in the final release.

Usage tracking captures the compiler and tools command options that you specify. Usage tracking also uses the uname -a command to capture platform information and operating system information from the runtime environment. No file names, directory names, or macros are collected. For example, you might issue the following command:

CC -DMACRO -L/directory1 -I/directory2 -Xa -O hello.cc

In this case, only the following information is reported back to Sun:

CC -D -L -I -Xa -O

Each time a compiler or tool is invoked, the options that are used are logged in the file /tmp/.UT... The log file is sent to Sun software engineers if the file exceeds 10 Kbytes or is more than 24 hours old.

You can turn off usage tracking by defining the environment variable UT_NO_USAGE_TRACKING before running any of the Sun compilers and tools.

(with csh) % setenv UT_NO_USAGE_TRACKING

(with ksh) $ export UT_NO_USAGE_TRACKING

(with sh)   $ set UT_NO_USAGE_TRACKING; export UT_NO_USAGE_TRACKING

 

Oracle is reviewing the Sun product roadmap and will provide guidance to customers in accordance with Oracle's standard product communication policies. Any resulting features and timing of release of such features as determined by Oracle's review of roadmaps, are at the sole discretion of Oracle. All product roadmap information, whether communicated by Sun Microsystems or by Oracle, does not represent a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. It is intended for information purposes only, and may not be incorporated into any contract.