Announcing Self 3.0 Beta Release
Lars Bak
Lars.Bak at Eng.Sun.COM
Tue Oct 26 06:57:57 UTC 1993
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 at self.stanford.edu. Send mail to self-request at self.stanford.edu
to be added to it (please do not send such requests to the mailing list
itself!).
The Self Group at Sun Microsystems Laboratories, Inc.
and Stanford University
More information about the Self-interest
mailing list