[Subversion] / Trellis / test_trellis.py  

Log of /Trellis/test_trellis.py

Parent Directory

No default branch
Bookmark a link to HEAD: (view) (download) (as text)


Revision 2477 - (view) (download) (as text) - [select for diffs]
Modified Mon Jan 7 22:40:07 2008 UTC (16 years, 4 months ago) by pje
File length: 40121 byte(s)
Diff to previous 2470
API cleanups, doc enhancements, and release prep

Revision 2470 - (view) (download) (as text) - [select for diffs]
Modified Sat Jan 5 02:13:58 2008 UTC (16 years, 4 months ago) by pje
File length: 40105 byte(s)
Diff to previous 2469
Get rid of the now-ancient Specification.txt and move its
demos to Internals.txt

Revision 2469 - (view) (download) (as text) - [select for diffs]
Modified Sat Jan 5 01:58:23 2008 UTC (16 years, 4 months ago) by pje
File length: 40120 byte(s)
Diff to previous 2449
Move task-related stuff to activity module.  Fleshed out docs
for activity module.  Tested undo support for Time service.

Revision 2449 - (view) (download) (as text) - [select for diffs]
Modified Fri Dec 28 19:26:41 2007 UTC (16 years, 4 months ago) by pje
File length: 38837 byte(s)
Diff to previous 2447
Simplified rollback support for collections.  Only changes
done to non-"future" cells need to be undo-logged, and the
entire structure will be rolled back to the first point of
change when *any* change to the structure is rolled back.

Revision 2447 - (view) (download) (as text) - [select for diffs]
Modified Fri Dec 28 16:20:47 2007 UTC (16 years, 4 months ago) by pje
File length: 35257 byte(s)
Diff to previous 2441
Refactor retry, cycle detection, and rollback to allow reentrant
rollback, so we'll be able to have "todo" cells do complete data
structure rollbacks.  As a nice side-effect, this refactoring
speeds up rule processing by making fewer attribute changes and
recording fewer undo actions.  The tests for Python 2.3 run about
33% faster than they did before, although they're still 7 times
slower than the Python 2.5 tests.  (The speedup for 2.3 is
disproportionate because the cost of getting or setting controller
attributes is much higher, due to threading.local being in Python
instead of C.)

Revision 2441 - (view) (download) (as text) - [select for diffs]
Modified Fri Dec 21 17:20:30 2007 UTC (16 years, 5 months ago) by pje
File length: 35150 byte(s)
Diff to previous 2440
Restore Python 2.3 compatibility.  This is of somewhat limited
benefit, since the tests run (literally) 10 times slower than
Python 2.4, due to the incredible slowness of the Python (i.e.
non-C) version of threading.local.

Revision 2440 - (view) (download) (as text) - [select for diffs]
Modified Fri Dec 21 16:11:16 2007 UTC (16 years, 5 months ago) by pje
File length: 35091 byte(s)
Diff to previous 2436
Correct some of the more egregious documentation errors and terminology.
Tests now pass under Python 2.4 as well as 2.5 (2.3 is still broken).
Begin the split of the activity/eventlooop/task docs to a separate file.
Remove some done items from the TODO section.

Revision 2436 - (view) (download) (as text) - [select for diffs]
Modified Fri Nov 30 22:46:43 2007 UTC (16 years, 5 months ago) by pje
File length: 35035 byte(s)
Diff to previous 2435
The new algorithm lands - version bump to 0.6a1dev.
Too many changes to list!

Revision 2435 - (view) (download) (as text) - [select for diffs]
Modified Mon Nov 26 19:18:45 2007 UTC (16 years, 5 months ago) by pje
File length: 26183 byte(s)
Diff to previous 2433
Simplify undo by not logging undo's while undoing.  This makes
it possible to write code that doesn't care if it's a "do" or
"undo", which should make data structures similar.  i.e., the
reverse of an 'add' can then be a 'remove' and vice versa,
without needing to have separate 'undo_add' and 'undo_remove'
operations that don't log undo information.

Revision 2433 - (view) (download) (as text) - [select for diffs]
Modified Sun Nov 25 19:43:05 2007 UTC (16 years, 5 months ago) by pje
File length: 26193 byte(s)
Diff to previous 2432
Improved retry algorithm to handle multiple simultaneous
rollbacks, and to do them between rules.  Add Observer and
Cell implementations+tests.

Revision 2432 - (view) (download) (as text) - [select for diffs]
Modified Sat Nov 24 01:49:46 2007 UTC (16 years, 6 months ago) by pje
File length: 25729 byte(s)
Diff to previous 2431
First cut of basic Cell types based on the new algorithm.  For
now, they live in a different module, since they aren't fully
featured yet.  They do, however, perform many of the cell
basics, including ReadOnlyCell->Constant, basic recalculation,
etc.  But read/write cell initialization is untested, observers
don't exist yet, and neither do task cells.  A suitable
replacement for the 'future/todo' mechanism is also needed
before the process of replacing the existing cell types and
data structures can begin.  But this is a pretty good start.

Revision 2431 - (view) (download) (as text) - [select for diffs]
Modified Fri Nov 23 17:55:55 2007 UTC (16 years, 6 months ago) by pje
File length: 20376 byte(s)
Diff to previous 2430
Improved commit/abort/undo logic, add dirty() method to allow
listeners to skip being scheduled.  (Also, schedule listeners
immediately when changed() is called outside of run().)

Revision 2430 - (view) (download) (as text) - [select for diffs]
Modified Fri Nov 23 02:03:26 2007 UTC (16 years, 6 months ago) by pje
File length: 19989 byte(s)
Diff to previous 2429
Rule handling, with retry and cycle detection.  This basically
completes the core implementation of the new algorithm, on top
of which Cells and other data structures and decorators can
then be built.

Revision 2429 - (view) (download) (as text) - [select for diffs]
Modified Thu Nov 22 23:54:54 2007 UTC (16 years, 6 months ago) by pje
File length: 12236 byte(s)
Diff to previous 2423
Begin laying the foundation for the new algorithm's controller.

Revision 2423 - (view) (download) (as text) - [select for diffs]
Modified Wed Nov 21 00:22:49 2007 UTC (16 years, 6 months ago) by pje
File length: 5771 byte(s)
Diff to previous 2422
New algorithm: subjects, listeners, and links.

Revision 2422 - (view) (download) (as text) - [select for diffs]
Modified Tue Nov 20 20:57:45 2007 UTC (16 years, 6 months ago) by pje
File length: 3223 byte(s)
Diff to previous 2419
Begin work on new algorithm: STM history class.
(Python 2.4 currently required)

Revision 2419 - (view) (download) (as text) - [select for diffs]
Modified Wed Nov 14 01:25:59 2007 UTC (16 years, 6 months ago) by pje
File length: 3264 byte(s)
Diff to previous 2413
Split advanced collection types into peak.events.collections.
Add new "SubSet" type.

Revision 2413 - (view) (download) (as text) - [select for diffs]
Modified Fri Nov 2 23:37:58 2007 UTC (16 years, 6 months ago) by pje
File length: 3245 byte(s)
Diff to previous 2375
Event loops for tests, wx, and twisted.  No docs, and
only minimal testing so far, but much hacking was done
to get these to work more-or-less correctly.  wx needs
some mocking, and it turns out that the Time service
really needs to make next_event_time() dirty when new
events are added, even if self._tick doesn't change.
That'll have to be fixed later, though (as with the wx
mocks issue).

Revision 2375 - (view) (download) (as text) - [select for diffs]
Modified Sun Jul 29 19:52:37 2007 UTC (16 years, 9 months ago) by pje
File length: 335 byte(s)
Diff to previous 2358
Added List, Dict, and Set types with change events.
We are now feature-complete for 0.5b1 (minus docs), weighing
in at a modest 1066 lines of code.  Woohoo!

Revision 2358 - (view) (download) (as text) - [select for diffs]
Modified Tue Jul 17 02:23:42 2007 UTC (16 years, 10 months ago) by pje
File length: 210 byte(s)
Diff to previous 2351
Begin documentation/test refactoring; new intro, updated TODO.

Revision 2351 - (view) (download) (as text) - [select for diffs]
Modified Fri Jul 13 21:38:42 2007 UTC (16 years, 10 months ago) by pje
File length: 189 byte(s)
Diff to previous 2338
High level API: Component class, decorators, properties.  The tests are
disorganized and the docs are non-existent, but it works, by golly.
Docs and test re-orgs will begin next week.

Revision 2338 - (view) (download) (as text) - [select for diffs]
Modified Mon Jul 9 04:17:33 2007 UTC (16 years, 10 months ago) by pje
File length: 172 byte(s)
Diff to previous 2335
Ensure that reads outside of propagation block until propagation is
over.  Drop EventLoop service; it was overkill for what's actually
needed.  I'm keeping the dependency on Contextual since Time, IO,
and Signals will all be context.Service classes later.  But the
core doesn't need this service, and this way it'll be easier to
write a C version later, if needed.  There may still need to be
a way to replace the runner to serve in other event loop systems,
but for now I'm treating it as a YAGNI.

Revision 2335 - (view) (download) (as text) - [select for diffs]
Modified Sun Jul 8 05:42:14 2007 UTC (16 years, 10 months ago) by pje
File length: 185 byte(s)
Diff to previous 2199
Rip out the old Trellis implementation and replace with a shiny new algorithm.
This is nowhere near adequately tested, and Constant conversion doesn't work.
The doctests are in horrible shape and don't describe the current algorithm at
all.  The fancy API described in my mailing list posts is nowhere to be found,
and none of the new functionality is tested in the slightest.  Experiment at
your own risk; this is just a placeholder/proof-of-concept test to see if the
new algorithm at least passes the old tests (except for Constant conversion.)
And it does.  :)  So, everything from here on out should effectively be
either documentation, tests, syntax sugar, or convenience/reference
implementations of higher-level features.

Revision 2199 - (view) (download) (as text) - [select for diffs]
Added Wed Jun 21 05:36:46 2006 UTC (17 years, 11 months ago) by pje
File length: 172 byte(s)
Trellis: a new paradigm for event-driven programming, based on ideas
from Gelernter's "Trellis" system, and Tilton's "Cells" for Lisp.  
Eventually, this will grow up to do the rest of the things that 
peak.events does now, only with deterministic updates and no need for 
explicit dependency management.

This form allows you to request diffs between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.

  Diffs between and
  Type of Diff should be a

Sort log by:

cvs-admin@eby-sarna.com

Powered by ViewCVS 1.0-dev

ViewCVS and CVS Help