Eidola Kernel

Design questions

Discussion

Reference implementation
Latest release (0.0.0)
Development versions
Bugs

Eidola home
 

  Kernel? Wuzzat?
An Eidola kernel is the core of a software implementation of the language. It implements the semantics, enforces its rules, and provides a foundation for user interfaces and runtime environments.

This page is devoted to general issues surrounding kernels of all sorts, but especially to the Java-based reference implementation of Eidola. The reference implementation's design will hopefully serve as a model for kernels in the future, such as a mission-critical runtime kernel, or a database-backed multiuser kernel.

Try out the reference implementation, and see Eidola in action! It's not exactly thrilling yet -- the only interface is a fairly tedious command-line based testing module. But if you are willing to poke around, you can see lots of exciting things happen with errors and events and whatnot.

 
  Status
What's done: I have a working Eidola kernel in Java, covering the subset of the semantics which currently exists. It has an interesting heavily threaded event model, which solves the dual problems of lazy rule checking and user interface updating. Nick has verified informally but thoroughly that the the code, the javadoc, and the semantics all agree in their description of the language.

Current work: The current 0.0.0 release is solid enough for some serious peer review. Poke at it, test it, and give your opinion! I'd really like to do some systematic testing, and start building a standard test suite for Eidola kernels. Aaron has agreed to research this little project.

Coming soon: I'd like to do an aggressive search for corner cases, and use the kernel to discover and consider unexpected constructions allowed by the semantics. I'm taking volunteers for this! Work will begin before long on the semantics for scoping, algorithms and runtime. As these things start solidifying, the kernel will start implementing them.

In the future: Nick has suggested modeling the threading mechanisms to root out synchronization problems; this is a good idea if we can do it.

 
Copyright 2000-2001 Paul Cantrell