|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 editFeather
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 stuﬀ into the Tcl core.
- Finish oﬀ the existing container types, and create new ones such as matrices.
- Deﬁne 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 deﬁne 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 eﬃcient 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.
Comments & Discussion edit