GSoC Idea: Refurbish Feather Package

Areas Tcl Objects, functional programming
Good if student knows C
Priority Low
Difficulty Hard
Benefits to the student Learn about fundamental concepts like functional programming, data types and memory management
Benefits to Tcl Significant leverage of existing Tcl Object design features
Mentor ?

Project Description

Feather is an old package of Tcl extensions whose ambition was to enhance the ways Tcl Objects could be used and extended:

One of the major complaints raised against Tcl by advocates of other scripting languages such as Python, Lisp and Perl is that it has very few data structures.
Feather is the remedy.
Feather is a set of extensions which not only provides lots of new data types, it also provides frameworks into which new data types can be easily inserted.

The author intended to offer it for incorporation into the core, but it was never finished:

here is a selection of the things which need doing to it and with it.
  • Work with Scriptics to integrate some of the Feather stuff into the Tcl core.
  • Finish off the existing container types, and create new ones such as matrices.
  • Define new interfaces such as a numeric one for use by expr.
  • Serialisation of objects in both binary and ASCII format.
  • Create yet more object oriented systems using the Feather concepts.
  • Try and define a mechanism to allow one object to be wrapped around another.
  • Garbage collector to clean up reference loops created by mutable objects.
  • Create some new types to provide efficient communication between threaded interpreters.

The goals of this project would be to:

  • examine the existing Feather code base.
  • determine which extensions if any are still usable with modern versions of Tcl.
  • make fixes and enhancements as suggested above and as deemed appropriate.
  • Evaluate which if any code may be worth incorporating into the Tcl core.
  • Make a new release of extensions brought into fully usable condition.

References

Comments & Discussion