Development: Status & Roadmap

Current Status

We are currently working hard on building a stable base on which Étoilé will be constructed.

The current Étoilé release is 0.4.1, which features:

  • LanguageKit, an LLVM-based compiler for dynamic languages (currently featuring Smalltalk)
  • CoreObject, our object database with message-based persistency and versioning
  • EtoileUI, the flexible UI layer we will use for composite document editors, desktop-publishing user interfaces, collection-based applications, etc.


0.4.2 (January 2011)

  • EtoileUI first official/usable release. Features detailed here.
  • Stable and more polished LanguageKit. Major additions are:
    • new AST interpreter
    • Just-Too-Late compilation
    • float litteral support
    • various speed improvements
    • optimization passes with the new GNU runtime (e.g. type-driven feedback for inlining)
    • Mac OS X support but limited to the interpreter
    • Smalltalk block variables a la Squeak
    • debugging support
    • more friendly parsing/compilation error reporting
    • replaced the C bridge between LLVM C++ and LK ObjC with ObjC++
  • Switch from GCC to Clang compiler and the new GNU runtime version 2 inspired by the Étoilé runtime
    • ObjC 2 support (properties, non-fragile ivars, fast enumeration etc.)
    • block support
    • optimization passes
  • ObjectiveC2 abstraction layer (now merged into GNUstep Base)
  • Cleaned EtoileFoundation
  • Major additions to EtoileFoundation:
    • rich HOM and block API based on a common model (clang compatible)
    • new Mirror-based Reflection built on top of the new ObjectiveC2 abstraction layer (leveraged by EtoileUI)
    • metamodel inspired by FAME and Magritte
    • various improvements and additions
  • Cleaned XMPPKit
  • Completed EtoileSerialize XML backend and sending objects over XMPP
  • Switch from Camaelon to GNUstep theming
  • Rewriting of the menu support to have a EtoileWildMenus as minimal as possible. Most of it should be discontinued or merged into GNUstep

0.4.3 (Spring 2011)

User-visible Stuff:

  • Generic Object Manager prototype written in Smalltalk+CO+EUI
  • Structured/Compound/Graphics document editor first preview
  • Updated Mélodie that uses the latest EUI API, supporting undo/redo and pick/drop
  • PhotoManager first preview
  • Polished Nesedah and Narcissus themes with the new GNUstep theme engine

Developer Stuff:

  • EtoileText first release. EtoileText enables semantic and structured text editing with transparent persistence and history.
  • Cleaned EtoileSerialize and CoreObject:
    • ETSerialObjectStore protocol which represents a full object with all its history rather than just a branch this will allow to remove code in CO that more or less simulates that)
    • COObject hierarchy returns proxies and not real instances (which means the object graph restoration code can be simplified)
    • the possibility to update/migrate the database schema. We should at least handle basic addition/removal of columns/tables without deleting the old database
    • FUSE bridge (to be committed and cleaned)
    • EtoileUI backend (already committed in EtoileUI/CoreObjectBackend, but needs to be cleaned)
    • concurrency control
    • update/notification to push changes to processes that access the same core objects concurrently
  • EtoileUI major additions:
    • CoreObject-based persistence of layout item trees
    • affine transform and rotation support
    • aspect repository and versatile styling mechanism
    • viewpoints to create arbitrary views/projections of on an object graph
    • more tools (e.g. Zoom tool)
  • Video support in MediaKit and a video player
  • OMeta may be and new Smalltalk parser based on it
  • Fully cleaned EtoileFoundation (e.g. mixins, prototype support for the new GNU runtime)


User-visible Stuff:

  • Working prototype of ProjectManager
  • Working prototype of OverlayShelf
  • CodeMonkey IDE first preview
  • EtoileUI-based UI builder first preview (will evolve to something closer to Flash/Hypercard in the long run)
  • Inbox first preview. Inbox is generic messaging UI, hence it may supercede StepChat.
  • Structured text editor based on EtoileText and EtoileUI
  • Working Terminal

Developer Stuff:

  • EScript (JavaScript dialect atop LanguageKit)
  • Stable and really usable CoreObject. This means to have probably most of these:
    • deletion model & garbage collector
    • basic indexing/querying of metadatas
    • versioning of structured content into a single persistent root (aka object bundle)
    • UTI-based supercasting mechanism to look up components/services based on their role and their ability to operate on the targeted object type.
  • EtoileUI major additions:
    • plugin/component machinery to package and load aspects and document components on the fly (might be implemented as a small standalone framework)
    • connectors and basic diagramming abilities (to be used in the UI builder)
    • basic animation support (if and how we integrate it with CoreAnimation in the long run is still undecided)
    • more CoreObject integration
    • integration with AppKit text system (text block chaining etc.)
  • EtoilePaint, a hybrid vector/bitmap graphics editing framework built on top of EtoileUI
  • SystemConfig progresses (keyboard configuration etc.)
  • SystemConfig and DBusKit integration
  • AddressBook and BookmarkKit on top of CoreObject
  • Cleaned EtoileXML
  • Fully cleaned XMPPKit (API naming and consistency check)
  • Fully cleaned UnitKit
  • Mock object testing for UnitKit


In 2011 we hope to release Étoilé 0.5, which will be our first release aimed at users - it will be a functioning preview of the desktop environment we have been planning and developing for the past five years.

Planned features are:

  • Working services, using EtoileUI and CoreObject:
    • Mélodie
    • Photo manager
    • Generic Object manager
    • CodeMonkey IDE
    • Structured graphics editor
    • Structured text editor (typewriter/outliner)
    • Address Book
  • Message Store system
  • Desktop notification system
  • ProjectManager
  • Fully polished themes (Narcissus and/or Nesedah)