[Top][All Lists]

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

[Savannah-register-public] [task #7338] Submission of Emacs Object oNtol

From: David OToole
Subject: [Savannah-register-public] [task #7338] Submission of Emacs Object oNtology
Date: Fri, 28 Sep 2007 16:24:45 +0000
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv: Gecko/20061221 Fedora/ Firefox/


                 Summary: Submission of Emacs Object oNtology
                 Project: Savannah Administration
            Submitted by: dto
            Submitted on: Friday 09/28/2007 at 16:24
         Should Start On: Friday 09/28/2007 at 00:00
   Should be Finished on: Monday 10/08/2007 at 00:00
                Category: Project Approval
                Priority: 5 - Normal
                  Status: None
                 Privacy: Public
        Percent Complete: 0%
             Assigned to: None
             Open/Closed: Open
         Discussion Lock: Any
                  Effort: 0.00



A new project has been registered at Savannah 
This project account will remain inactive until a site admin approves or
discards the registration.

= Registration Administration =

While this item will be useful to track the registration process, *approving
or discarding the registration must be done using the specific Group
<> page*,
accessible only to site administrators, effectively *logged as site
administrators* (superuser):

* Group Administration

= Registration Details =

* Name: *Emacs Object oNtology*
* System Name:  *eon*
* Type: non-GNU software & documentation
* License: GNU General Public License v2 or later


==== Description: ====
This library adds prototype-oriented programming to Emacs Lisp. In
this alternative view of object-orientation, there are no classes;
instead, objects are "cloned" from other objects called prototypes,
from which the new objects may inherit data and behavior.  Methods
(among other things) are chosen by symbols called selectors, and
employ named arguments as in Smalltalk.

Our strategy is to provide a few primitive mechanisms---objects,
selectors, and messages---and make it easy to build programs with
them. These primitives' default behaviors are simple, and probably
efficient enough for a broad range of applications. (The programmer
can override the default behaviors if more flexibility or speed are

We use a message-passing model instead of CLOS-like generic
functions. Some people find this un-Lispy. But with message-passing
we are no longer limited to using synchronous procedure calls to
make objects interact. You can (for example) forward messages
across the network or queue them up to be sent to their recipient
at a later time.

Multiple inheritance is not supported, but one may build objects
that respond to multiple interfaces; the latter are called

Hooks are provided for on-demand loading and creation of objects
from various "stores", which may also accept objects for
serialization, storage, and transmission.  These hooks may be
connected to user-provided Lisp code in order to create new sources
and sinks for objects.

There are also several convenience features for the programmer:

 - Macros are used to add several "operators" to the language. Two
   of them are the slot reference operator `@' and the method call
   operator `>>'.  The short symbol names make it easier to type
   and read programs that make use of this library.

 - Slots are valid place-forms for `setf' and related constructs.

 - In method bodies, we use symbol-macros to make slots look like
   ordinary local variables, reducing verbosity even further.

 - As an option, the operators (and several of the macros) may be
   font-locked as language keywords.  See `eon-do-font-lock'.\

The current home page is and all
the source links are on that page. 

==== Other Software Required: ====
GNU Emacs

==== Other Comments: ====
Eon is in beta release and you might get errors in the version that's up on
the website.

This is a NON-gnu project. I'd be happy to contribute it to the FSF someday
when it is more mature (and if anyone is interested.)


Reply to this item at:


  Message sent via/by Savannah

reply via email to

[Prev in Thread] Current Thread [Next in Thread]