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
- 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
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:
- 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
-
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
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