On Monday, March 24, 2014 11:37:05 AM UTC-5, Edward K. Ream wrote:

>From another thread:

As some of you know, I recently restarted work on type-related programming 
> tools:
>
> https://groups.google.com/forum/#!topic/python-static-type-checking/Vhy_w5bCH8I
>

A brief update:

I have a love/hate relationship with this project.  Part of me wants to 
forget it entirely, the other part continues (annoyingly ;-) to be 
intrigued.

To repeat what I've said before: tools like Rope and pylint already *are* 
static type checkers.  I plan to add support to both pylint and Rope to Leo 
in the form of Leo commands.  This should have a fairly high payoff.

Both pylint and Rope follow same general strategy, namely 
"traversing/recursing" on the ast to attempt to infer type.  Rope and 
pylint have already taken this strategy as far as it is likely to go.  Both 
contain lots of clever code.  I see little or no opportunity to do better.

Imo, if there is any chance to create a new kind of tool, it must be based 
on rich global data.  Preliminary measurements indicate that "big" data can 
be gathered a typical file in Leo's core in 0.1 seconds or less.

I hope that this "big" data may be able to represent higher-level design 
criteria that are not easily detected in the ast itself.

That's all for now.

Edward

P.S. Recent work convinces me that generators are an anti-pattern when 
creating global data.  A symptom of the problems with generators is Pep 
323: http://legacy.python.org/dev/peps/pep-0323/  For example, it turns out 
to be *impossible* to trace the intermediate results of a generator using 
Sherlock.  Worse, generators make caching impossible.

EKR

-- 
You received this message because you are subscribed to the Google Groups 
"leo-editor" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/leo-editor.
For more options, visit https://groups.google.com/d/optout.

Reply via email to