[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Announcing Self 3.0 Beta Release

Announcing Self 3.0 Beta Release 

The Self Group at Sun Microsystems Laboratories, Inc., and Stanford
University is pleased to announce the 3.0 Beta release of the
experimental object-oriented exploratory programming language Self.

Designed for expressive power and malleability, Self combines a pure,
prototype-based object model with uniform access to state and
behavior. Unlike other languages, Self allows objects to inherit state
and to change their patterns of inheritance dynamically. Self's
customizing compiler can generate very efficient code compared to
other dynamically-typed object-oriented languages.

Below is a list of changes and enhancements that have been made since
the last release (2.0.1).  Only the major changes are included. 

Language Changes:

o Privacy is not enforced, although the privacy syntax is still
  accepted. The previous scheme was at once too restrictive (in that
  there was no notion of "friend" objects) and too lax (too many object
  had access to a private slot). We plan to include a better scheme in
  a future release.

o Prioritized inheritance has been removed; the programmer must now
  manually resolve conflicts. We found the priority mechanism of
  limited use, and had the potential for obscure errors.

System Changes:

o The graphical browser has been extended to include editing
  capabilities. All programming tasks may now be performed through the
  graphical user interface (the "ui"). Type-ins allow for expression
  evaluation, menus support slot editing, and methods can be entered and
  edited. If you are familiar with a previous version of the SELF
  system, Section 14.1 of the manual entitled "How to Use SELF 3.0"
  contains a quick introduction to the graphical user interface. The
  impatient might want to read that first.

o A mechanism - the transporter - has been added to allow arbitrary
  object graphs to be saved into files as SELF source. The system has
  been completely modularized to use the transporter; every item of
  source now resides in a transporter-generated module.
  Transporter-generated files have the suffix .sm to distinguish
  them from "handwritten" files (.self), though this may change as we
  move away from handwritten source.  (Also, the transporter itself
  is likely to change in future releases.)

o Every slot or object may now have an annotation (for example, to
  describe the purpose of the slot). In the current system, annotations
  are strings used to categorize slots. We no longer categorize slots
  using explicit category parent objects. Extra syntax is provided to
  annotate objects and slots.

o A new profiler has been added, which can properly account for the
  time spent in different processes and the run-time system, and which
  presents a source-level profile including type information (i.e.,
  methods inherited by different objects are not amalgamated in the
  profile, nor are calls to the same method from different sites). It
  also presents a consistent source-level view, abstracting from the
  various compiler optimizations (such as inlining) that may confuse
  the programmer.

o The "new" compiler has been supplanted by the SIC ("simple inlining
  compiler"), and the standard configuration of the system is to
  compile first with the NIC ("non-inlining compiler") and recompile
  later with the SIC. Pauses due to compilation or recompilation are
  much smaller.

o Characters are now single-byte strings. There is no separate
  character traits.

SELF currently runs on SPARC-based Sun workstations using SunOS 4.1.x
or Solaris 2.3. Self in NOT supported on Solaris prior to 2.3 due to
an error in the OS interrupt handling. However, you may succeed on
Solaris 2.2 by setting SICDeferUncommonBranch to false
("_SICDeferUncommonBranch: false") but no guarantees!
The Sun-3 implementation is no longer supported.

This release is available free of charge and can be obtained via
anonymous ftp from self.stanford.edu. Also available for ftp are a
number of papers published about Self.

There is a mail group for those interested in random ramblings about Self,
self-interest@self.stanford.edu. Send mail to self-request@self.stanford.edu
to be added to it (please do not send such requests to the mailing list

The Self Group at Sun Microsystems Laboratories, Inc.
	       and Stanford University