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.
Roadmap
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)
0.4.x
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
0.5
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)