Home / SE Toolkit / SE Toolkit 3.5.1
Name Modified Size InfoDownloads / Week
Parent folder
README 2011-11-28 36.4 kB
RICHPse-3.5.1.pkg.gz 2011-11-28 1.0 MB
setoolkit-3.5.1.tar.gz 2011-11-28 987.1 kB
Totals: 3 Items   2.1 MB 2
SE Toolkit 3.5.1
================

Dagobert Michelsen  12 February 2010

Bug fixes:
  Access mib$tcp instead of the deprecated kvm$tcp_mib (Bug #2116736)

New kstat structures:
  Support for igb network interfaces (from x4170) has been added (Patch #2812730)
  Support for nxge network interfaces (from T5240) has been added (Feature Request #1989844)
  Support for NFSv4 as been added (Patch #2957291)
  
Other:
  Package location has moved from Blastwave to OpenCSW


SE Toolkit 3.5.0
================

Dagobert Michelsen

Bug fixes:
  Now works on x64
  Use accessor macros for access to KSTAT_DATA_STRING data
  Yacc-files are now compatible with bison
  C varargs are now used properly
  The transfer rate of fjgi doesn't overflow any more
  Missing instance definitions in several kstat structures have been added

New kstat structures:
  Support for e1000g network interfaces has been added
  Support for ipge network interfaces has been added
  Support for aggr (dladm-based link aggregation) network interfaces has been added
  Support for fjge (Fujitsu Gigabit Ethernet) network interfaces has been added
  Support for bnx (Broadcom NetX II GbE) network interfaces has been added

Features added:
  Network interfaces bge and dmfe now use :kstat-style notation
  Some features work on releases before Solaris 8 now
  kstat(1M)-style specification of kstat members can now be used
  The current includes files from Orca have been pulled in
  Extended regular expressions can be used now
  Sun Studio 12 is now supported
  The file workinfo_class has been added from Orca to distribution

Other:
  Switched to autoconf/automake/libtool
  The se binaries have been moved to libexec
  The documentation has been reworked and converted to ReST
  INSTALL.SRC has been added to describe source build process
  A testsuite has been added


SE Toolkit 3.4.1
================

Dagobert Michelsen

Bug fixes:
  support for architecture 'amd64'
  readdir is now a builtin and doesn't dump core in Solaris 10 any more

New kstat structures:
  nge

Features added:
  released under GPL and now hosted on SourceForge

Other:
  update from orcallator 1.37 to 1.40
  sources for license server in nilib are now included

SE Toolkit 3.4
==============

Richard Pettit 09 December 2004

Bug fixes:
  MAX_IF, etc. now err on the side of "lots" to stop the subscript issues.

New kstat structures:
  bge, fjgi

Features added:
  vertical and horizontal paned windows in GUI code

Other:
  x86 support is back.
  se.sparcv9 and se.i386 instead of individual binaries for each platform
  floating rtu license server

Changes since release 3.3.1:
Support for x86 has returned and Solaris 10 support has been added for
both platforms. No specific additions for Solaris 10 have been added
such as dtrace. The binaries are not as numerous, just se.sparcv9 and
se.i386.

Release Notes for Version 3.4 of the SymbEL Language:
What was old is new again. Support for the x86 platform has been
restored. Solaris 10 is now supported for both sparc and x86 platforms.
The sparc platform is 64 bit only and the x86 platform is 32 bit only.

The binary names have changed to se.sparcv9 and se.i386. No longer will
there be a separate binary for each release of Solaris.


SE Toolkit 3.3
==============

Richard Pettit 10 July 2002

Bug fixes:
  An internal piece of an internal piece was doing the wrong thing
    when an obscure condition might possibly occur.

New kstat structures:
  ks_dnlcstats, ks_vmem, ks_pollstats, ks_segadvstat, ks_fpu_traps,
  ks_fpu_info, ks_memscrub_kstat, ks_ecc_info, ks_mm, ks_intrstat

Features added:
  instance$ variable now in all repeating kstat structures. Corresponds
    to the ks_instance value in the kstat_t type in sys/kstat.h.

Other:
  x86 support is gone.
  Solaris 2.6 support is gone.
  ELF32 binaries are gone.

Changes since release 3.2.1:
This release is primarily for supporting Solaris 9. Significant, however,
is that it no longer supports Solaris 2.6 or any x86 release. Since the
remaining systems, Solaris 7 through 9 are all 64 bit OS releases, the
only binaries shipped with SE 3.3 are ELF-64 binaries. If you're running
your system in 32 bit mode and need ELF-32 binaries, you need to use SE 3.2.1.

I fixed a small memory leak that happened when the kstat chain changed
state. An instance$ member is now added to all kstat structures that
repeat. This is in addition to the existing name$ and number$ members.

Adrian added a bigbrother.se script and a workollator script to use the
workload_class include file he had written so long ago.

Release Notes for Version 3.3 of the SymbEL Language:
There are no significant changes to note for this release other than
the loss of support for old releases (Solaris 2.6) and removal of x86
support. Reread the notes for the 3.2 release for issues regarding
permission to read /dev/ip and /dev/kmem.


SE Toolkit 3.2.1
================

Richard Pettit  22 August 2001

Bug fixes:
  Fixed memory leak in array-of-structures garbage collection
  Widespread use of snprintf() in the interpreter instead of sprintf()
  Structure offset screw-up in 64 bit versions fixed.
  Minor bug fixes in example scripts.

New kstat structures:
  pf, dmfe, eri, skge network interfaces

Features added:
  diskinfo.se now translates StorEdge volumes into charlie target notation.
  refresh$() now works on all special variables

Changes since release 3.2:
This is a bug fix release to 3.2. No real big gotchas, just nice cleanups.

As usual, download the RICHPse.tar.gz file and as root:

# pkgrm RICHPse
# gunzip RICHPse.tar.gz
# tar xf RICHPse.tar
# pkgadd -d . RICHPse

If you have made changes to the se_defines file in /opt/RICHPse/etc, make
sure you save that file before removing the /opt/RICHPse directory. You
otherwise shouldn't be modifying files in /opt/RICHPse.

Once installed, as Joe User (in ksh, for instance):

$ export PATH=$PATH:/opt/RICHPse/bin
$ export SEPATH=/opt/RICHPse/examples:/opt/RICHPse/toptool
$ se toptool.se &

If you haven't checked out darth.se and vader.se, do so. I fixed some
issues with darth for 3.2.1.

/opt/RICHPse/etc/init.d/vader           init.d script to start vader
/opt/RICHPse/examples/vader.se          the "Virtual Adrian Daemon"
/opt/RICHPse/examples/darth.se          the GUI client side of vader

darth.se is intended to be a replacement for zoom.se.

Release Notes for Version 3.2.1 of the SymbEL Language:
Check the 3.2 notes for the most interesting stuff.
I've fixed the diskinfo.se include file to translate StorEdge volumes
into charlie target notation. Note that this requires access to the
/dev/osa directory which may not be accessible for non-root users.
If this is the case, then when you run scripts that try to translate
these volumes as Joe User, they won't translate. They need to be run
as root. If you have vader started automatically when the system boots,
then it shouldn't be a problem with darth.se. Otherwise, make yourself
root or change the permissions of the directories in /dev/osa.


SE Toolkit 3.2
==============

Richard Pettit  16 February 2001

Bug fixes:
  zillions of bugs fixed (and countless more introduced, no doubt)

Features added:
  new builtins: refresh$
  "new" and "renew" were added some releases ago. I don't see it
    mentioned anywhere else here.
  inline aggregate assignment:
    int x[4];

    x = { 1, 2, 3, 4 };

Changes since release 3.1:
I'm not going to release a preFCS version. This is it. If you find bugs,
let me know and I'll fix them. A 3.2.1 version will be forthcoming shortly
thereafter if there are enough bugs.

All the packages are now in RICHPse. I'm sick of pkgadd'ing multiple
packages. The registration bit is also gone. If you're feeling kind,
run the register.se script in the etc directory.

The /etc/rc*.d files are no longer installed by pkgadd. If you want
them, they're in the etc/*.d directories. The old scripts are there
and a new one for vader.se.

Toptool, orcallator and perfmon have their own directories at the
top level signifying their status as useful applications, not just
examples of how to do something. Docs for orcallator can be found at
http://www.gps.caltech.edu/~blair/orca. Toptool is self documenting,
as is all of my code ;^>. Perfmon has built in help. Just run it by
running the perfmon shell script. It's really cool. Thanks, Mark.

Many thanks also to Rainer Orth, Faculty of Technology, Bielefeld University
for his efforts in making pkgadd work smoother and providing me with diffs
for the qe interface on Solaris 8.

Other acknowledgements for people who have contributed to the toolkit
are in the comments in the code. For a good cross section, see the
netif.se include file. Thank you, everyone for your hard work. I know
it's not easy to learn new languages and especially ones that restrict
you the way SymbEL does. SE has really become a very widespread application
with around 5000 installations in 61 countries.

Release Notes for Version 3.2 of the SymbEL Language:
Many changes have occurred in Solaris over the years and it's made
quite a puzzle for SE. The most problematic are the permissions of
the network pseudo-devices in /dev. The permissions change, how they
work changes, etc. By default, the SE binaries will be installed with
a group id of sys. When you run the applications, you'll see that some
things don't work. Reading mib variables, especially. The simple fix to
this is:

	# cd /opt/RICHPse/bin
	# chgrp sys se.*.5.*
	# chmod g+s se.*.5.*

This will make the binaries setegid sys. It will allow reading of any
file that has the read bit set and whose group ownership is sys.

THIS MUST BE THE DECISION OF THE SYSADMIN. IF YOU DON'T WANT PROGRAMS
HANGING AROUND YOUR SYSTEM THAT ARE SETEGID SYS, DON'T DO THIS!

The effect of not doing this is that mib variables will not be readable.
There is no other good work-around. If you look at /bin/netstat, you'll
see that it's setegid sys. That's how it does it, that's how the SE
binaries must do it.


SE Toolkit 3.1
==============

Richard Pettit 1 February 99

Bug fixes:
  zillions of bugs fixed (and countless more introduced, no doubt)

Features added:
  new builtins: qsort, atexit, bsearch
  new syntax *((type *) var) for indirecting pointers (including structs)
    values only, no lvalues
  operator new for arrays only  ( int intvec[] = new int[4]; )
  types uchar_t, ushort_t, uint_t, ulong_t, longlong_t, u_longlong_t, same
    as the original types (original types still there)
  bitwise not operator ~
  logical not operator ! for parenthetical logical expressions only:
    if (!(i == 2)) {
  vastly improved debug output
  null statement
  all KSTAT_TYPE_NAMED structs are now completely defined in kstat.se
  parenthesized assignments as expressions: while((c = getchar()) != -1)
  comma separated statements in before and after part of for loop:
    for(i=0, j=1, k=3; i<5; i++, function_call(j), k += 4) {

Optimizations:
  proc interface is now structured FS, Solaris 2.6 and newer only
  big optimizations in mib code

Changes since release 3.0:
Make sure you use pkgrm to remove all the old packages and then
/bin/rm -fr /opt/RICHPse for sanity.  There may be remnants of SE 3.0
patch files hanging around.

This release will only support Solaris 2.6 and Solaris 2.7 for SPARC and
Intel.  If you need a performance product for releases of Solaris older
than 2.6, go to http://www.resolute.com.

Become familiar with the /opt/RICHPse/etc/se_defines file.  It can resolve
a lot of the configuration issues that plagued SE 3.0.


SE Toolkit 3.0
==============

Richard Pettit  3 December 97

Bug fixes:
  minor cleanup of p_iostat_class
  better handling of scripts beginning with #!
  parameter checking broken for parameters of type char[]
  *hairy* bug passing lazy evaluated arrays of structures to attached funcs
  calling se functions from C with arrays as parameters didn't work just right
  attached functions returning structures did not work *at all*
  and many more

Features added:
  all kstats can now be dumped, see ks_cache type in include/kstat.se
  support for clarion array disk types
  example scripts no longer executable, start with "se filename.se"
    (#! still works, but the examples have been changed)
  added ppp interface to kstat.se and netif.se
  extern variables inside of attach blocks (for things like errno)
  rewrite of kvm reading code to cut down on system calls and to make sure
    string variables inside of kvm structures are themselves read
    (see kvmname.se)
  use &c instead of address_of(c) now
  deletion of the following builtins
    getopt, time, ctime, localtime, uname, stat, fstat, lstat, processor_info
  optimized kstat code such that if the only thing that the application touches
    is ks_system_misc then the only thing read from the kstat chain will be
    unix.0.system_misc
  warnings now issued about ununsed variables
  C++ style comments now accepted
  code regenerator with -o
  =~ regex operator for strings
  (a < b ? a : b) syntax for expressions
  use of increment/decrement in expressions (such as "printf("%d\n", j++);")
  support for oldold etherlink cards "el" and PCMCIA etherlink 3 cards "pcelx"
  syntax for definition of KSTAT_TYPE_NAMED structures without modifying the
    interpreter (see ks_inode_cache in kstat.se)
  and many more

Changes since release 2.5.1:
You'll no longer be asked about the architecture neutral option since it
is no longer optional.  It's default.

You *will* be asked if you'd like to send e-mail to the se-support alias
though.  I urge you to do so, it helps validate that the work we're doing
is being used by someone important.  And this justifies to the management
people of the world the rationale for using valuable programming time to
work on a fairly large software package that is given away!  It's in the
install script and only asks you once, and is preferable to just hand-editing
an e-mail message since I can just "grep ORGANIZATION MailFile" to find out
who all our users are when the paycheck writers put my feet on the fire.

Release Notes for Version 3.0 of the SymbEL Language:
The architecture neutral installation mechanism didn't live long, thankfully,
but the feature is still in place.  The "se" program is no longer a symbolic
link, but a shell script that encapsulates the architecture resolution and
execs the appropriate binary.
There are many changes to the include files and the interpreter, so if you
have some old stuff lying around that you wrote, don't be surprised if it
doesn't work.  The changes to a script to make it work with 3.0 won't be
major, just leg-work.
The etc directory contains a lisp file for SymbEL mode in Emacs (thanks to
Rajesh Godbole <argv@Sun.COM>).  I don't use emacs so I can't attest to
how it works.

-rw-r--r--   1 root     other      69615 Dec  2 15:41 ANCrules.tar.gz
-rw-r--r--   1 root     other       7486 Dec  3 17:28 README.INSTALL
-rw-r--r--   1 root     other       3731 Dec  3 17:30 README.RELEASE
-rw-r--r--   1 root     other     612166 Dec  2 16:20 RICHPse.tar.gz
-rw-r--r--   1 root     other     111193 Dec  2 15:44 RICHPsex.tar.gz


SE Toolkit 2.5.0.2
==================

(2.5.0.1 didn't last long)

Bug fixes:
  Didn't work on Solaris 2.5.1 for lots of reasons, all fixed, I hope.
    ks_segmap was confused on 2.5.1
    postinstall script just did the wrong thing on 2.5.1
  ks_fddi_network was confused
  If CPUS_CONFIGURED > CPUS_ONLINE vmstat classes didn't work.
  many examples and include files still had old MINOR_VERSION numbers


SE Toolkit 2.5.0.1
==================

Richard Pettit  2 April 96

Release Notes for Version 2.5.0.1 of the SymbEL Language:
I've released a teeny-tiny version (2.5.0.1) to fix a problem with fddi
interfaces and to clean up the Solaris 2.5.1 version (there are now two
extra binaries for SPARC and Intel).

-rw-rw-rw-   1 richp    staff     809634 Apr  2 14:43 RICHPse.tar.Z


SE Toolkit 2.5
==============

Richard Pettit 10 February 96

Bug fixes:
  inst_to_path_class fails with double digit controller numbers
    also had pretty ugly code, now cleaned up
  arrays of structures passed to attached functions should act as reference
    parameters not value parameters
  cleanup of package installation scripts
  arbitrary limitiation of 32 characters in symbol names is gone

Changes:
  kstat ie structure added to netif class (Intel ethernet)
  kstat elx structure added to netif class (for PowerPC)
  kstat hme structure added to netif class (for E class Ultra)
  kstat sa structure added to netif class (SAHI ATM)
  kstat ieef structure added to netif class (some PC board)
  kstat fddi structure added to netif class (fddi/cddi)
  ulong kvm_declare(string name) for declaring kvm variables on the fly
    return value is the kvm address, used as the second parameter to kvm_cvt
    zero return value means the variable was not found
  poll() call in poll.se now works normally without poll_se() due to
    array-of-structure-parameters-to-attached-functions changes
  SEPATH environment variable is a colon separated list of include directories
  MAX_CPU, MAX_DISK, MAX_IF, AND MAX_INTR are now "builtin constants"
    and are no longer defined in sysdepend.se
  command line parameter "-" available so args can be passed to scripts read
    from stdin.  ex: tail +2 aw.se | se - -sxy
  command line parameter "-t name" available to identify script name when read
    from stdin.  ex: tail +2 aw.se | se -t aw.se - -sxy
  definition of NANOSEC now in time.se instead p_iostat.se

New include files:
  dlfcn.se      - for dynamic lib calls dlopen(), dlsym(), etc.
  statvfs.se    - for statvfs system calls and structure definition
  systeminfo.se - for sysinfo() system call
  sadc_class.se - renaming of sadc.se


Changes since release 2.4:
1) Binaries included:

   SPARC Solaris 2.3
         Solaris 2.4
         Solaris 2.5 (also works on 2.5.1)
         Solaris 2.4
   Intel Solaris 2.5 (hasn't been tested on 2.5.1)

2) When installing, pkgadd will ask:

        Do you want the scripts to be architecture neutral?

   What this means is that SE can now be installed on a server machine
   that serves clients using various releases of Solaris (2.3, 2.4, or 2.5).
   The scripts will evaluate which SE binary to use and invoke it.  If you
   are installing on such a server machine you should answer "y" to this
   question.

   If you are installing SE on a client machine, then answer "n".

3) Addition of the "contrib" directory.  These scripts are unsupported
   by me (you can ask the author to fix something if you like).  They
   are great examples of how to implement performance monitoring/analysis
   tools in SymbEL.  I'm looking for additions to this directory.

4) See the CHANGES file for fixed bugs and minor additions.

Release Notes for Version 2.5 of the SymbEL Language:
This release has some additions and fixes but nothing major.  Work-arounds
for bugs in the 2.4 release are no longer necessary as these bugs have been
repaired.

The binaries supplied in this release are:

  SPARC Solaris 2.3
        Solaris 2.4
        Solaris 2.5

  x86   Solaris 2.4
        Solaris 2.5

I don't have a PowerPC machine at home yet so the binary for Solaris 2.5.1
PowerPC must wait.

-rw-r--r--   1 root     other     104785 Feb 10 12:12 ANCrules.tar.Z
-rw-r--r--   1 root     other       8560 Feb 10 12:12 README.INSTALL
-rw-r--r--   1 root     other       2257 Feb 10 12:12 README.RELEASE
-rw-r--r--   1 root     other     659971 Feb 10 12:12 RICHPse.tar.Z
-rw-r--r--   1 root     other     131861 Feb 10 12:12 RICHPsex.tar.Z


SE Toolkit 2.4
==============

Adrian Cockcroft 12 June 95

Bug fixes:
  values returned by itoa() in a loop are not correct
  passing arrays of ints to a function with an empty array declaration
    causes a core dump
  uninitialized local variable in two kstat functions causes core dump
  severly grizly memory screw-up in the kstat module causes se to grow
  installing RICHPse in a directory other than /opt now works
  minor debug-mode bugs
  certain array assignments cause core dump
  aggregrately initialized class block local vars aren't being propogated
    to new instances of active class vars

Changes:
  SMCCse now RICHPse so noone will think that SMCC supports it.  They don't.
  RICHPse now available for Solaris 2.4 x86
  fix-maxs script now in bin directory for updating the MAX_DISK and MAX_IF
    values in sysdepend.se
  change to live_rules.se to recognize smc ethernet controller (for i86pc)
  change to netif.se to recognize smc ethernet controller (for i86pc)
  ifdef(i86pc) in various include files
  address_of() function finally added even though I didn't want to
  RICHPse package no longer installs virtual_adrian
  curses.se nixed, sar_io.se just prints on stdout
  lots of functions uncommented in some include files
  xit program nixed
  integral constant expressions (including strings) now allowed in aggregate
    initialization
  ellipsis (...) as last parameter to attached functions
  calling an attached function with a structure will now send a pointer to a
    "C" version of the structure to the attached function

New include files:
  signal.se   - for signal names and kill() declaration
  poll.se     - for poll events and poll() and poll_se() declarations
  partinfo.se - get partition info for disks from vfstab
  se.se       - for attaching functions that are inside of the se binary


README and Installation Instructions for SymbEL release 2.4:
22 May 95

SymbEL (known as SE) is an interpreted language that provides an
extensive toolkit for building performance tools and utilities.  If you
are fed up with the limitations of vmstat, iostat and sar, then this is
the tool for you. We provide trivial scripts that are improved versions
of the basic utilities and build on them to provide powerful rule based
performance monitors and viewers.  The extensions package includes a
Motif based GUI library and the rules package implements the complete
Appendix A ruleset of the bestselling reference book "Sun Performance
and Tuning: SPARC and Solaris" by Adrian Cockcroft, SunSoft
Press/Prentice Hall.

This package is not a Sun supported product. Think of it as a vehicle
for documenting the data sources, processing and behavioural rules of
Solaris 2. All the real work is done in scripts, so you can fix,
maintain and modify the package. If you want to incorporate the scripts
in a product you should recode them in C first, so you do not depend on
the unsupported SymbEL interpreter. If you want support you should buy
one of the many commercial performance management products. If you are
writing such a product we want it to do a good job of collecting data
and monitoring Solaris 2, so use the information provided here and give
us some credit for our efforts.

Adrian Cockcroft
Rich Pettit

Installation
------------

There are three packages provided, they are:

RICHPse        The SymbEL Interpreter
RICHPsex       The SE eXtensions Package
ANCrules       Adrian's Rules & Tools

All packages contain support for installation on four OS/hardware
combinations, there are four binaries of the interpreter provided as
part of RICHPse that are selected automatically during install:

Solaris 2.3 on SPARC
Solaris 2.4 on SPARC
Solaris 2.4 on Intel x86
Solaris 2.5beta on SPARC

This stuff will never work on SunOS 4/Solaris 1, so don't ask! The
Intel release doesn't get tested very much, but the SPARC release is
regularly used on everything from a SPARCstation IPX, a 16MB
SPARCstation Voyager, a dual CPU SPARCstation 20, SPARCserver 1000, and
a 20CPU, 1.5GB RAM, SPARCcenter 2000 database server. It should work on
any sun4c, sun4m and sun4d kernel architecture systems.

You may find that the code is provided as compressed tar files, first
uncompress to create the spooled package directories:

# zcat RICHPse.tar.Z | tar xf -
# zcat RICHPsex.tar.Z | tar xf -
# zcat ANCrules.tar.Z | tar xf -

Then install the packages with pkgadd, the postinstall scripts setup
some machine dependent limits so its best to install individually on
every machine you want, you need 2MB in /opt to install all three
packages, you could save 700KB by deleting the three interpreter
binaries you don't need after install if space is tight.  The packages
must be installed in this order, as there are dependencies.

# pkgadd -d . RICHPse RICHPsex ANCrules

At the end of ANCrules installation you are asked if you want to
install startups in /etc/rc2.d. The first time you try this out you
should probably say no. You can then try out the scripts by hand as a
regular user to build up confidence in them then try them as root. If
all seems well, enable the auto-startup next time you pkgadd ANCrules
on a system.

------------------------------------------------------------------------------

Special installation instructions.

This package includes three scripts that can be started automatically at
boot time from files in /etc/rc2.d. These scripts all use the same basic
rules but have different outputs and update rates.

virtual_adrian does much more than use the basic rules, it checks and tunes
your system before it starts, then monitors every 30 seconds, with output
sent to the console as messages in the form of modified vmstat, iostat
nfsstat or netstat output. Its most useful for detailed diagnosis, and
its output is also logged to /var/adm/sa/monitor.log

monlog runs the basic rules and looks for state changes, these are entered
into syslog, so can be redirected to the loghost system. It runs every
120 seconds and just logs the state and action string.

mon_cm runs the basic rules and logs the state codes only into the local
root calendar. You must run /usr/openwin/bin/cm as root to create the
root@nodename calendar before entries will appear. It runs every 15
minutes and the output can be browsed with cm, and multiple systems can
be multibrowsed to see correlated activity.

------------------------------------------------------------------------------

The reason there are three packages is that we hope that the base level
RICHPse package will remain stable for longer periods than the RICHPsex
and ANCrules packages. Updated rules and extensions may become
available relatively more often.

The whole thing can be removed cleanly by removing the packages in
reverse order. The preremove script kills any monitors via the
/etc/init.d files before removing the package.

# pkgrm ANCrules RICHPsex RICHPse

You can check the version you have installed and who to send neat bits
of code to with pkginfo:

As of May 22 1995 the web pages at http://www.sun.com/smi/performance
are not yet installed. By the time you read this you may get lucky.
Please look there for updates and general FAQ before mailing us
directly with questions. If you just want to say how much you like it,
then send us mail, contribute rules and scripts, and pass it on.


Release Notes for Version 2.4 of the SymbEL Language:
After testing and fixing several bugs, this is the version that
can be provided to customers. It will be included on a CD of free
tools that DevPro is producing, and we are working on a place
for it to live on the internet.

-rw-r--r--   1 root     other      88049 Jun 12 14:33 ANCrules.tar.Z
-rw-r--r--   1 root     other       7418 Jun  2 18:36 README.INSTALL
-rw-r--r--   1 root     other     530072 Jun  9 13:07 RICHPse.tar.Z
-rw-r--r--   1 root     other     124405 Jun  9 13:07 RICHPsex.tar.Z

Some of the bugs fixed after internal early access release:

RICHPse:
Possible kvm_read warnings with nfs mount points and virtual_adrian.se
language bug in class definition code (found by inspection)

ANCrules:
bug in kvm pure rule caused black state to persist rather than amber
bug in mon_cm caused black kvm rule state to be unreported
bug in zoom CPU popup not showing data for CPU2 when CPU1 is not there
various documentation errors and omissions

Unfixed bug:
More than 10 disk controllers causes inst_to_path_class to fail
workaround diff for RICHPse/include/inst_to_path_class.se
line 189
<         tmp[6] = '\0';
---
>         if (strlen(tmp) >= 9 ) {
>             tmp[7] = '\0';
>         }
>         else {
>             tmp[6] = '\0';
>         }

-rw-r--r--   1 root     other      88049 Jun 12 14:33 ANCrules.tar.Z
-rw-r--r--   1 root     other       7418 Jun  2 18:36 README.INSTALL
-rw-r--r--   1 root     other     530072 Jun  9 13:07 RICHPse.tar.Z
-rw-r--r--   1 root     other     124405 Jun  9 13:07 RICHPsex.tar.Z


SE Toolkit 2.3.1
================

Bug fixes:
  auto struct initialization broke when aggregate initialization was added
  array of structures offsets were wrong

Changes:
  multiple instances of active class variables now allowed
  at last, array dimensions can be expressions, not just digits!
  se_function_call(char *fn, ...) entry point for attached libs (for callbacks)
  -n flag to se for running without cpp
  empty array declaration for parameters


SE Toolkit 2.3
==============

Bug fixes:
  printf("%d %s\n", 1, sprintf("%d", 2)) resulted in "2 2" being output
  malloc memory wasted on strings in structure assignment
  *nasty* string memory allocation problems
  *nasty* free() problem in kstat

Changes:
  include files no longer include other files
    scripts need to include the necessary files themselves
  changes to inst_to_path_class.se

New builtins:
  struct_fill(struct, ulong) builtin
  struct_empty(struct, ulong) builtin

New include files:
  curses.se (work-in-progress)
  mutex.se
  condvar.se
  tiuser.se
  rpc_clnt.se
  nfs_clnt.se
  devinfo.se
  vfs.se
  sar_types.se
  sar.se

New examples:
  sar_io.se
  kvmname.se

New language constructs:
  do { } while(); construct


SE Toolkit 2.2
==============

Bug fixes:
  kvm code more robust
  infinite loop when parsing structures with only structures as members

New builtins:
  long kvm_address(kvm_var)  - return the kvm address of kvm_var

New include files:
  ndd.se       - defines ndd variables for ip, tcp, udp, arp, and icmp
  nfs_class.se - returns the mnttab and mntinfo for all nfs mounts
  mnt_class.se - returns records from the /etc/mnttab file

New scripts:
  nfsstat-m.se - does what nfsstat -m does

New language class:
  ndd$ variables as defined by structures in ndd.se

GUI Features added to release 2.2:
  I obviously haven't updated this file in a while
  added strip chart from Athena
  added point chart, a modified strip chart
  added clock widget
  modified resource_t so they can be chained together. this eliminates
    the need to look up members and add groups to them.

GUI Bugs fixed with release 2.2:
  Too many, really, to enumerate. here's what I remember:
  made menu items, labels and buttons update-able


SE Toolkit 2.1.3
================

Bug fixes:
  if (geteuid() == 0) now works like it's supposed to
  get_proc() bug for pids >= 30000

New builtins:
  kvm_cvt(kvm_var, new_address) - change the kvm address of a kvm variable
  timeval_t gettimeofday()      - variation of the Unix version

New scripts:
  modifications to virtual_adrian.se and mpvmstat.se

New installation stuff:
  adds /etc/init.d file for auto startup of virtual_adrian


SE Toolkit 2.1.2
================

New include file:
  netif.se          - finds all the network interfaces

New example scripts:
  netstatx.se       - Adrian Cockcroft
  xio.se            - Adrian Cockcroft
  virtual_adrian.se - Adrian Cockcroft
  fsflush.se        - Adrian Cockcroft
  pwatch.se         - Adrian Cockcroft

Changed example scripts:
  net.se            - gives info from netif user class
  collisions.se     - gives info from netif user class

Other changes:
  Functional port to 5.4 ea2 - complete port later


SE Toolkit 2.1.1
================
 
Bug fixes:
  kvm structure sizes
  kvm structure member offsets
  misc. annoying bugs
 
Other changes:
  sysconf.se removed, defines put into unistd.se where they belong


SE Toolkit 2.1
==============
 
Many builtins deleted in lieu of the new attachment mechanism which
allows shared libraries to be attached to a script and functions
within the library called.
 
New include files:
  stdio.se
  unistd.se
  stdlib.se
  string.se
  socket.se
  p_netstat_class.se - Adrian Cockcroft
 
New example scripts:
  vmmonitor.se  - Adrian Cockcroft
  iomonitor.se  - Adrian Cockcroft
  netmonitor.se - Adrian Cockcroft
 
Application:
  xit - eXtended Iostat Tool - Motif GUI called by xit.se, a script
 

SE Toolkit 2.0
==============

New builtins:
  int getopt(int argc, string argv[], string opts)
  void debug_off(void)
  void debug_on(void)

New include files:
  sysinfo_class.se  - gathers system information from kstat
  app_wrap_class.se - wrapper an application run and compute stats
  wait.se           - for gleaning information returned from spawn()

New example scripts:
  aw.se - application wrapper

New features:
  arrays of structures
  indefinite dot notation
  interchangability between string type and array of char
  "se" is now the installable Solaris package "SMCCse"


SE Toolkit 1.9
==============

New builtins:
  long time(void)
  string ctime(long seconds)
  struct tm_t localtime(seconds)
  string strftime(string format, struct tm_t ts)
  int strlen(string s)
  string fgetl(int fp)
  string getenv(string name)

New include files:
  time.se      - for the definition of struct tm_t

Updated example scripts:
  cpg.se     - now version 2.3.4

Also:
  improved debugging output (still far from what's desired though)
  now comes with libse.a for building the interpreter into an application
    (sorry, no docs on how to do it yet)


SE Toolkit 1.8
==============

New builtins:
  int fclose(int file_handle)
  int fflush(int file_handle)
  string fgets(int file_handle)
  int fopen(string file_name, string mode)
  int fprintf(int file_handle, string format, ...)
  int fputs(string text, int file_handle)
  int fseek(int file_handle, int offset, int whence)
  string gets()
  int popen(string command, string mode)
  void perror(string complaint)
  int pclose(int file_handle)
  string sprintf(string format, ...)
  string strchr(string source, char c)
  string strrchr(string source, char c)
  string strtok(string source, string pattern)

New feature - pre-defined variables:
  stdin
  stdout
  stderr


SE Toolkit 1.7
==============

Changes to language classes:
  sysconf class has been removed
  mib class has been added

New builtins:
  struct proc_info_t processor_info(int instance)
  void puts(string)
  long sysconf(int flag) is now a builtin
  struct utsname uname(void)

New include files:
  mib.se       - for the mib language class
  processor.se - for processor_info()
  sysconf.se   - changed to reflect the new builtin
  utsname.se   - for uname()

New example scripts:
  uname.se     - almost identical to the uname(1) command
  cpus.se      - show the instance number, state, and clock speed of cpus
  cpg.se       - modified to use mib class variable and look for udpInOverflows


SE Toolkit 1.5
==============

New builtins:
  long strtol(string pattern, int base)
  string itoa(long)
  prpsinfo_t first_proc()
  prpsinfo_t next_proc()
  prpsinfo_t get_proc(int pid)

Bug fixes:
  string operations

New functionality:
  builtin functions return a user defined type; odd, but necessary
  comparison of string variables to constant nil
  bitwise operators: &, |, ^, <<, >>, &=, |=, ^=, <<=, >>=

New include file:
  proc.se - for traversing procs

New example scripts:
  ps-a.se  - does a /usr/ucb/ps -a (almost)
  ps-p.se  - does a /usr/ucb/ps on supplied process id
  nproc.se - counts the processes on the system


SE Toolkit 1.1
==============

GUI Features added to release 1.1:
  added tab groups
  gui_realize_frame(ulong handle)
    realize the frame without displaying it
  gui_set_medium_font(ulong handle, string font_name)
  gui_set_bold_font(ulong handle, string font_name)
  gui_set_text_font(ulong handle, string font_name)
    set fonts for objects
  R_TFIELD now takes a callback that is called when <Return> is pressed
  R_SEPARATOR can now be added to a list of menu items

GUI Bugs fixed in release 1.1:
  gui_get_text didn't work with R_TFIELD
  pkgadd didn't have SUNWmfrun as a dependency
  subframes came up vertical even if horizontal was specified
  gui_get_object didn't know about R_CASCADE types
  R_SELBOX objects were *broken*
  gui_update_object didn't update callbacks
  menu_bar didn't color the individual options

Source: README, updated 2011-11-28