[Soc2006] LispNYC/PSF joint project

Ryan Forsythe ryanf at cs.uoregon.edu
Mon May 8 22:30:41 CEST 2006


Carl Friedrich Bolz wrote:
> The problem is that we cannot look at the LispNYC's proposals, so
> could you maybe just post it here?

Sure thing:

===========================================

Ryan Forsythe
ryanf at cs.uoregon.edu

Summer of Code Proposal: LispNYC -- PyCells
===========================================

Summary: Python port of Kenny Tilton's Cells extension to CLOS

Cells is a framework which, rather than defining a class as a set of
methods and attributes, instead defines it as a set of interdependent
slots, each of whose values are determined by formulas. It is
analogous to a spreadsheet. While it is similar to Python's idea of
properties, elements of a class which act like values but which are
generated by a method, cells build in an automemoization function so
their results are recalculated only when needed. My task for Summer of
Code would be to build a package which implemented Cells in Python,
built regression testing for the package, and translate CLOS Cell's
demo applications into PyCell.

Time Constraints: Unfortunately, I have a fairly busy class & work
schedule until June 16th, which is the last day of classes. Depending
on my workload and financial situation, I would be willing to drop my
work hours in order to devote more time to PyCells. However, after the
16th my constraints are minimal. My work is self-scheduling, and light
during the summer term (I work part-time as IT support for a
department at UO, and so work tends to drop off when most of the
students are gone). I have no scheduled vacations, nor classes I need
to take. Essentially, I'm yours.

Language Experience: I would say that my two strongest languages are
Python and Java; my preferred language is Python, but since Java 1.5 I
don't totally hate that language any more. I'm a reasonable C
programmer (though I haven't had to do it in a while), and I've worked
as a Perl programmer (though, again, I'm rusty). I learned Scheme as
part of a programming languages course last year, and so I can at
least read some Lisp; I'm confident that with a bit of study I'll can
become at least Lisp-literate. I've also had some experience with ML.

I know my way around Python's unittest module, and have done a fair
amount of research into the more exotic areas of Python's object model
(ie, metaclasses) researching my other SoC proposal, a test-driven
signature verification system for Python, submitted to the PSF.

Schooling: I'm currently in my final year at the University of
Oregon. I'll be graduating with a Bachelor of Science in Computer and
Information Science.

What I'd do: (From the PyCells project page) As this project will
require some learning on my part (that is, learning to read Lisp), and
a great deal of input from both my mentor and more experienced package
designers for the syntax design, I'm unsure about my estimates here.

  * Determine target syntax for PyCells. -- 1-2 weeks during school
  * Translate Cells regression test suite to PyCells. -- 3 weeks during
    school
  * Translate Cells from Common Lisp to Python and test. -- 7-10 weeks
  * Translate the demo applications of Cells-Gtk and Celtk (+ Cells
    Tcl/Tk) to PyGTk and Tkinter. -- 1-2 weeks
  * Test on all OSes. -- Throughout project

Why choose me: Firstly, I believe I understand the problem. Judging
from recent discussions about Cells on comp.lang.python, this is
something to be noted in itself. I believe I have the right mix of
skills -- Python, experience with a Lisp-y language, strong background
in Computer Science -- that this project requires. Finally, I think
Cells is an interesting idea which may need more exposure, in the form
of a port to a more widely-used language.



More information about the Soc2006 mailing list