On Thu, Nov 29, 2012 at 10:37 AM, Edward K. Ream <[email protected]>wrote:

>
> I'm not sure how much more time I will devote to the stc project.  This
> post may form the basis for a "farewell" post on the stc group.
>

After writing this post I realized that it would be unbearable to stop now,
without understanding *exactly* how rope works, and without more
experimentation with other ideas. In particular, I want to investigate
TypeScript's notion that some critical mass of cached (permanent) type info
can make a type system "light up", to use a phrase that occurs in several
TypeScript videos.

Indeed, it seems that caching is the heart of the efficiency problem.  Type
computations aren't really that hard, it's just that there are so many of
them.  TypeScript leads the way here because JavaScript scripts typically
use a smallish set of large libraries, so pre-analyzing those libraries
will pay off for many people.

Similarly, a tool could pre-analyze Python's libraries.  Note that ts
allows "polymorphic" descriptions of js functions, even thought js doesn't
support polymorphism.  That is, ts allows descriptions of the form::

    f(x) returns a string if x is a string
    f(x) returns an int if x is an int.

This kind of description would likely suffice to describe all (or nearly
all) parts of the Python library.  Such a description might allow very fast
type checking of applications.

To repeat, caching seems to be the key.  Pylint doesn't do caching; rope
does caching in a difficult-to-understand way that doesn't use any
permanent, pre-analyzed data.  Thus, there would seem to be room for
improving both programs.

Finally, I would not be happy simply abandoning all the work I have done so
far.  I might put it on the shelf while working on Leo, but I'm likely to
keep working on it.

Edward

-- 
You received this message because you are subscribed to the Google Groups 
"leo-editor" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/leo-editor?hl=en.

Reply via email to