As the sprint approaches, I would like to argue (feebly ;-) that Leo has 
been the beneficiary of all the "foreign" work on static type checking.

@testsetup is something truly worth having, but there is one other pattern 
that has just appeared.  I have spent an enormous amount of time making the 
prepass (P1) very fast.  Indeed, P1 can now process one of Leo's very-large 
files in about 1/20th of a second.  This makes it possible to consider 
serious name and attribute checking when saving any dirty file.

However, to do proper checking, one must first have data for *all* of Leo's 
files, dirty or not.  The question is, how to do that?

The obvious answer is, "in a separate thread, run at startup".  That will 
work, but it is complicated: Leo must make sure that the thread completes 
before running any check. The much better way is to run P1 *at idle time*, 
one file per-idle time invocation.  The checking code will, as before, have 
to ensure that P1 has been run on all files, but coordinating with 
idle-time processing seems much easier.

With this pattern in place, there is now an easy, extensible way of 
checking files in various ways.  At first, we will like run checks when 
dirty files are saved, but the idle-time pattern might allow true 
on-the-fly checking.  Indeed, we expect checks of changed *nodes* to take 
one or two milliseconds at most.

Edward

-- 
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?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to