[Subversion] / Trellis / README.txt  

Log of /Trellis/README.txt

Parent Directory

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


Revision 2595 - (view) (download) - [select for diffs]
Modified Mon Nov 3 23:22:37 2008 UTC (15 years, 5 months ago) by pje
File length: 86515 byte(s)
Diff to previous 2545
Fixes for various complex scenarios, such as:

* False-positive detection of circularity in some cases where
  retried rules are related, but not actually circular.

* Lazily-created components in uninitialized rules called from
  @compute or @perform rules could trigger read-only violation
  errors.

* If a "future" value was accessed from both rule and non-rule
  code in the same transaction, it could trigger a silent,
  partial rollback of the non-rule code, leading to inexplicable
  result.

Also, as a side effect of these changes, CircularityError
instances now includes a path indicating at least one possible
cycle in the given routes, and "futures" must now be copyable
objects.

Many thanks go to Sergey Schetinin, who not only reported these
issues, but also diagnosed them and provided both test cases and 
suggestions for fixes.  Thank you, Sergey!

Revision 2545 - (view) (download) - [select for diffs]
Modified Fri May 23 16:48:40 2008 UTC (15 years, 11 months ago) by pje
File length: 86309 byte(s)
Diff to previous 2529
Update docs for release

Revision 2529 - (view) (download) - [select for diffs]
Modified Fri Apr 25 22:25:54 2008 UTC (16 years ago) by pje
File length: 85999 byte(s)
Diff to previous 2528
Add the Pipe data type.

Revision 2528 - (view) (download) - [select for diffs]
Modified Fri Apr 25 22:07:07 2008 UTC (16 years ago) by pje
File length: 84547 byte(s)
Diff to previous 2526
Doc overhaul, and rename ObserverCell->Performer

Revision 2526 - (view) (download) - [select for diffs]
Modified Wed Apr 23 18:03:56 2008 UTC (16 years ago) by pje
File length: 81143 byte(s)
Diff to previous 2525
Add porting guide, and tests/changes to match it.

Revision 2525 - (view) (download) - [select for diffs]
Modified Mon Apr 21 17:42:53 2008 UTC (16 years ago) by pje
File length: 81008 byte(s)
Diff to previous 2524
Implement make(), make=, and rename variable->attribute.
Disallow self-access in lazy (compute) rules.

Revision 2524 - (view) (download) - [select for diffs]
Modified Fri Apr 11 22:39:28 2008 UTC (16 years ago) by pje
File length: 81321 byte(s)
Diff to previous 2514
First cut of the new API, and basic "lazy cell" support.

Revision 2514 - (view) (download) - [select for diffs]
Modified Thu Mar 20 18:33:38 2008 UTC (16 years, 1 month ago) by pje
File length: 82208 byte(s)
Diff to previous 2477
Experimental support for connecting to non-Trellis data sources
w/automatic subscribe/unsubscribe, and safe writebacks.  No docs
yet, minimal tests.

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

Revision 2468 - (view) (download) - [select for diffs]
Modified Thu Jan 3 03:29:42 2008 UTC (16 years, 3 months ago) by pje
File length: 80167 byte(s)
Diff to previous 2440
Major doc update.  Rename lambdas in rules to match cell names.
Prevent replacing constant cells.  Rename dirty() to mark_dirty()
to prevent confusion with the dirty() method.

Revision 2440 - (view) (download) - [select for diffs]
Modified Fri Dec 21 16:11:16 2007 UTC (16 years, 4 months ago) by pje
File length: 73623 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) - [select for diffs]
Modified Fri Nov 30 22:46:43 2007 UTC (16 years, 4 months ago) by pje
File length: 98276 byte(s)
Diff to previous 2419
The new algorithm lands - version bump to 0.6a1dev.
Too many changes to list!

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

Revision 2416 - (view) (download) - [select for diffs]
Modified Fri Nov 9 23:51:09 2007 UTC (16 years, 5 months ago) by pje
File length: 101232 byte(s)
Diff to previous 2415
Add SortedSet type, fix a bug where Set.added could
include a redundant item.

Revision 2415 - (view) (download) - [select for diffs]
Modified Thu Nov 8 21:16:05 2007 UTC (16 years, 5 months ago) by pje
File length: 97845 byte(s)
Diff to previous 2414
Doc fix

Revision 2414 - (view) (download) - [select for diffs]
Modified Tue Nov 6 01:05:08 2007 UTC (16 years, 5 months ago) by pje
File length: 97844 byte(s)
Diff to previous 2413
Doc fix

Revision 2413 - (view) (download) - [select for diffs]
Modified Fri Nov 2 23:37:58 2007 UTC (16 years, 5 months ago) by pje
File length: 97835 byte(s)
Diff to previous 2406
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 2406 - (view) (download) - [select for diffs]
Modified Tue Oct 30 20:33:03 2007 UTC (16 years, 5 months ago) by pje
File length: 96867 byte(s)
Diff to previous 2397
First draft of Time service, with docs

Revision 2397 - (view) (download) - [select for diffs]
Modified Fri Oct 26 18:00:05 2007 UTC (16 years, 6 months ago) by pje
File length: 85292 byte(s)
Diff to previous 2385
Doc fixes and tweaks suggested by Jeffrey Harris @ OSAF.

Revision 2385 - (view) (download) - [select for diffs]
Modified Fri Aug 10 19:06:49 2007 UTC (16 years, 8 months ago) by pje
File length: 85632 byte(s)
Diff to previous 2383
Finish docs.  Clean up ActionCell and TaskCell
constructors.  Renamed ``Value`` to ``Return``.

Revision 2383 - (view) (download) - [select for diffs]
Modified Thu Aug 9 01:30:09 2007 UTC (16 years, 8 months ago) by pje
File length: 66771 byte(s)
Diff to previous 2381
Added doc section on "Creating Your Own Data Structures"

Revision 2381 - (view) (download) - [select for diffs]
Modified Tue Aug 7 21:07:36 2007 UTC (16 years, 8 months ago) by pje
File length: 60156 byte(s)
Diff to previous 2380
Allow cell repr()'s to be out-of-date, thereby preventing
side-effects and dependencies as a result of viewing cell
objects.  This makes debugging easier, since you can now
always print a cell without fear of skipping a recalc you
intended to step through!

Revision 2380 - (view) (download) - [select for diffs]
Modified Tue Aug 7 20:39:50 2007 UTC (16 years, 8 months ago) by pje
File length: 60238 byte(s)
Diff to previous 2379
Require all changes to occur either outside of rules, or
in @action rules -- which can't be read from any rule,
thus making them always calculate roughly "last".  Dropped
``without_observer()``, in favor of an alternative strategy
for initializing component cells.

Revision 2379 - (view) (download) - [select for diffs]
Modified Wed Aug 1 18:22:41 2007 UTC (16 years, 8 months ago) by pje
File length: 56866 byte(s)
Diff to previous 2378
Improved "discrete rule" section, with better example.
Flesh out roadmap, GC, links, and formatting.

Revision 2378 - (view) (download) - [select for diffs]
Modified Wed Aug 1 03:01:24 2007 UTC (16 years, 8 months ago) by pje
File length: 53705 byte(s)
Diff to previous 2377
Add lots more doc... that exposed a problem with the core
algorithm in cases where objects have custom comparison functions
and use cell attributes in the calculation.  Also, found and fixed
problems with dirtiness detection in mutables like Dict and Set,
and added a new API call, dirty(), to fix it.  Still a bunch more
doc to go, but it's getting to be downright informative already.

Revision 2377 - (view) (download) - [select for diffs]
Modified Tue Jul 31 23:39:21 2007 UTC (16 years, 8 months ago) by pje
File length: 36305 byte(s)
Diff to previous 2358
Lots of new documentation on trellis basics.

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

Revision 2342 - (view) (download) - [select for diffs]
Modified Wed Jul 11 00:43:23 2007 UTC (16 years, 9 months ago) by pje
File length: 24093 byte(s)
Diff to previous 2341
Fix a lurking problem with dependencies: circular dependencies couldn't
be reliably observed by rules that weren't part of the circle!  Strangely,
last year's version of the trellis code had a fix for this, using doubly-
indirected links, but there were no tests that covered the behavior, so
I didn't keep it in the rewrite.  But now, there's a test that covers it.
The issue is that only the cell that depends on a cell, should ever
remove itself as a listener from the target, because only the depender
knows when it's finished depending on something! (i.e., when it
recalculates itself, or becomes a Constant)

Revision 2341 - (view) (download) - [select for diffs]
Modified Wed Jul 11 00:02:10 2007 UTC (16 years, 9 months ago) by pje
File length: 23733 byte(s)
Diff to previous 2340
Get rid of the vestigial runloop, and make pulse objects include their
own run queue.  This trims down the code size and number of calls,
while reducing the number of concepts one has to keep track of to
understand the whole thing.

Revision 2340 - (view) (download) - [select for diffs]
Modified Tue Jul 10 23:05:55 2007 UTC (16 years, 9 months ago) by pje
File length: 23979 byte(s)
Diff to previous 2339
Simplified repeat() operation, fold recalculation into check_dirty(),
and simplified definition of the "always recalc" state of _depends
(a false value in the sequence now means a rule is definitely dirty).

Revision 2339 - (view) (download) - [select for diffs]
Modified Mon Jul 9 05:20:10 2007 UTC (16 years, 9 months ago) by pje
File length: 20287 byte(s)
Diff to previous 2338
Ensure scheduled future events occur in datapulse order.  Allow
rules to repeat themselves by calling repeat().

Revision 2338 - (view) (download) - [select for diffs]
Modified Mon Jul 9 04:17:33 2007 UTC (16 years, 9 months ago) by pje
File length: 19960 byte(s)
Diff to previous 2337
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 2337 - (view) (download) - [select for diffs]
Modified Sun Jul 8 18:26:38 2007 UTC (16 years, 9 months ago) by pje
File length: 19317 byte(s)
Diff to previous 2336
Implement a test for the infamous "pentagram of death" -- which
we pass with flying colors!

Revision 2336 - (view) (download) - [select for diffs]
Modified Sun Jul 8 16:36:25 2007 UTC (16 years, 9 months ago) by pje
File length: 17382 byte(s)
Diff to previous 2335
Tests for new features including event-ness, rule-changing, mutual
recursion/dependency, and constant-ification.  Now we need some
torture tests, and a verifiable GC strategy for methods used as
rules, but the basic algorithm seems to be working quite well so
far.

Revision 2335 - (view) (download) - [select for diffs]
Modified Sun Jul 8 05:42:14 2007 UTC (16 years, 9 months ago) by pje
File length: 14329 byte(s)
Diff to previous 2200
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 2200 - (view) (download) - [select for diffs]
Modified Fri Jun 23 04:33:08 2006 UTC (17 years, 10 months ago) by pje
File length: 17597 byte(s)
Diff to previous 2199
Refactor to use a Cells-like forward/backward propagation system.  
Separated thread-specific "current observer" state from trellis state.  
Tests still pass, but are far from sufficient and the docs are crap; 
you're better off not reading them yet.  Effectively this is just a 
checkpoint to have a jumping-off point for more extensive changes, like 
making values know what trellis they belong to, and redoing the 
docs/tests to maximize both line and scenario coverages.

Revision 2199 - (view) (download) - [select for diffs]
Added Wed Jun 21 05:36:46 2006 UTC (17 years, 10 months ago) by pje
File length: 13687 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