Version 2 of GSoC Idea: Refurbish Feather Package

Updated 2014-02-05 00:04:03 by AMG
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 pro-
vides lots of new data types, it also provides frame-
works into which new data types can be easily in-
serted.

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 cre-
ate 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 com-
munication 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