Talk About Network

Google


Register and Login
Nick
Password
Register create new account Sign up is FREE and you can post replies, new topics, bookmark posts and more!
Recover lost password


Programming > Lisp > Re: Requesting ...
Latest [ Topics | Posts ] Archive Post A New Topic Post a Reply
<< Topic < Post Post 21 of 39 Topic 12437 of 13573
Post > Topic >>

Re: Requesting critique of spec of my new MayLoad utility (similar to Unix 'make')

by usenet1.3.CalRobert@[EMAIL PROTECTED] (Robert Maas, http://tinyurl May 8, 2008 at 10:54 PM

> >> http://cs-www.cs.yale.edu/homes/dvm/papers/lisp05.pdf
> > I have no way to read PDF files here.
> From: moi <r...@[EMAIL PROTECTED]
>
> I dumped the PDF into ASCII for you:

Hey, thanks. The way you did it is much better than the way Google
does it. Your way, it's actually legible! How did you do it?

> During Lisp software development, it is normal to revise and
> reload programs and data structures continually.

Although that's vaguely similar to what I do, there's a major
difference: I do all my editing on my Macintosh, then copy&paste
across dialup modem to Unix, the only place where CMUCL is
available for me to use, where I do all line-by-line testing, all
full-function testing, and all R&D testing. When I need to restart
Lisp, because I lost my dialup connection or it's another day and
I'm logging in again, I upload (to Unix) all the files that have
changed locally since last uploaded, then start Lisp and run the
initialization sequence to get all active source files loaded into
Lisp. Then I can start re-building whatever data I have in the Lisp
environment. In the past I needed to recompute everything from
original input, so I ran a script for doing that. Now with my
automatic dataflow software, I just call a few functions to request
bringing up-to-date the input for whatever I'm in the middle of
developing, which automatically loads expensively-computed data
from disk instead of recomputing it. Thus I have no need to
automatically keep track of write-date on sourcefiles, and it
wouldn't do any good because there's no way to automatically upload
files from Macintosh to Unix. I only need to watch timestamps on
the data, not the sourcefiles. The system described in this PDF
(now ASCII text) do***ent deals with both sourcecode and data.

A "chunk" per the paper is similar to a "control point" as I used
the term. Perhaps "chunk" is the data itself and "control point" is
the logical record that tells about the "chunk" and determines how
the data will be automatically brought up to date if it isn't
already. Thus from a nitpicky technical point, chunks and control
points are different aspects of the same process, but they match
1-1 so we can talk about either just the same without going astray.

Most of the time a piece of data either is or is not generated or
loaded already, and the timestamp is overkill. The main place where
timestamps would be useful is if I change the definition of how
some data in the chain is computed, such as if I change the
ProxHash algorithm to use a different random number generator. I
would simply delete the backup copy of that one data value from
both Lisp memory and disk, thereby forcing the dataflow system to
re-compute it and re-save it. At that point, since the timestamp is
the date saved, all data dependent on it would show as obsolete and
needing re-computing if I ever ask for them. The timestampes would
save me the burden of trying to manually invalidate each later data
value, and possibly overlook one of them resulting in inconsistent
values.

> The result is that the state of the Lisp process can become
> <E2>incoherent,<E2> with updates to <E2>sup****ting chunks<E2>
> coming after updates to they chunks they sup****t.

Yes, that's the basic problem expressed nicely.

> The word chunk is used here to mean any entity, content, or
> entity association, or anything else modelable as up to date or out
> of date. To maintain coherence requires explicit management of an
> acyclic network of chunks, which can depend on conjunctions and
> disjunctions of other chunks;

Yes. The key is that it's acylcic, else it's impossible to
terminate recursion. This kind of dataflow is very different from
the feedback loops to converge on fixed points of functions during
interval arithmetic calculations.

Conjunctions are easy to understand: One resultant chunk depends
on two sup****ting chunks. (One control point has two inputs.)

Disjunctions aren't so obvious. Is this like when there might be a
backup copy of the data on disk, whereby the value can either be
re-computed or loaded from backup file depending on which is more
recent, but if output is as recent as latest of sup****ting and
saved chunk then neither re-compute nor load is needed?

> the built-in facilities of Lisp do not address the coherence
> problem in any systematic way.

Agreed.

> For example, although it is easy to reload a file after making
> some bug fixes, it often happens that the reloaded file initialized
> some table, and entries were made in it by files loaded later.

I don't write my code that way. Loading a file doesn't initialize a
table. Instead, loading a file merely makes available the functions
needed to initialize the table, and the functions which determine
under what cir***stances the table would need to be initialized. If
the table has already been initialized, the reloaded software won't
have any reason to require it to be initialized again.

> There is nothing really wrong with restarting. It often requires
> you to take special measures to get back to the point you were at
> before the restart.

This is why I used to have a script that computed all the values
that were needed for my current R&D work, and why *now* I have
instead the automatic dataflow to compute or reload those same
values in a more optimal way.

Note that several years ago I had a weaker form of automatic
dataflow. It used timestamps to load or recompute data as needed,
but if I wanted to save to disk I needed to call that function
manually. It also used two globals per control point, one of which
was the actual data value, and one of which was the timestamp and
other info, both on the value cell of the global symbol. The new
automatic dataflow is essentially a refactoring of that old code to
have only a single symbol per control point, using properties
rather than value cell to store timestamp and data value (and
eventually other info about the control point).
 




 39 Posts in Topic:
Requesting critique of spec of my new MayLoad utility (similar t
make1.5.CalRobert@[EMAIL   2008-05-06 15:07:31 
Re: Requesting critique of spec of my new MayLoad utility (simil
"Leslie P. Polzer&qu  2008-05-07 00:32:40 
Re: Requesting critique of spec of my new MayLoad utility (simil
usenet1.3.CalRobert@[EMAI  2008-05-07 02:09:03 
Re: Requesting critique of spec of my new MayLoad utility (simil
pjb@[EMAIL PROTECTED] (P  2008-05-07 13:38:00 
Re: Requesting critique of spec of my new MayLoad utility (simil
Mark Wooding <mdw@[EMA  2008-05-13 10:10:00 
Re: Requesting critique of spec of my new MayLoad utility (simil
usenet2.3.CalRobert@[EMAI  2008-05-13 08:08:14 
Re: Requesting critique of spec of my new MayLoad utility (simil
moi <root@[EMAIL PROTE  2008-05-10 19:39:33 
Re: Requesting critique of spec of my new MayLoad utility (simil
jellybean stonerfish <  2008-05-10 20:03:00 
Re: Requesting critique of spec of my new MayLoad utility (simil
usenet2.3.CalRobert@[EMAI  2008-05-11 11:14:12 
Re: Requesting critique of spec of my new MayLoad utility (simil
pjb@[EMAIL PROTECTED] (P  2008-05-07 09:39:48 
Re: Requesting critique of spec of my new MayLoad utility (simil
"Leslie P. Polzer&qu  2008-05-07 01:49:17 
Re: Requesting critique of spec of my new MayLoad utility (simil
usenet1.3.CalRobert@[EMAI  2008-05-07 02:37:15 
Re: Requesting critique of spec of my new MayLoad utility (simil
pjb@[EMAIL PROTECTED] (P  2008-05-07 13:26:46 
Re: Requesting critique of spec of my new MayLoad utility (simil
Frank Buss <fb@[EMAIL   2008-05-07 13:36:07 
Re: Requesting critique of spec of my new MayLoad utility (simil
"Alex Mizrahi"   2008-05-07 17:34:25 
Re: Requesting critique of spec of my new MayLoad utility (simil
moi <root@[EMAIL PROTE  2008-05-07 12:24:37 
Re: Requesting critique of spec of my new MayLoad utility (simil
"John W. Krahn"  2008-05-07 11:00:41 
Re: Requesting critique of spec of my new MayLoad utility (simil
Logan Shaw <lshaw-usen  2008-05-08 22:12:39 
Re: Requesting critique of spec of my new MayLoad utility (simil
"John Thingstad"  2008-05-09 06:59:28 
Re: Requesting critique of spec of my new MayLoad utility (simil
"John Thingstad"  2008-05-09 06:59:47 
Re: Requesting critique of spec of my new MayLoad utility (simil
usenet1.3.CalRobert@[EMAI  2008-05-08 22:54:19 
Re: Requesting critique of spec of my new MayLoad utility (simil
Logan Shaw <lshaw-usen  2008-05-09 22:37:40 
Re: Requesting critique of spec of my new MayLoad utility (simil
usenet2.3.CalRobert@[EMAI  2008-05-10 11:09:38 
Re: Requesting critique of spec of my new MayLoad utility (simil
Logan Shaw <lshaw-usen  2008-05-10 15:24:43 
Re: Requesting critique of spec of my new MayLoad utility (simil
usenet2.3.CalRobert@[EMAI  2008-05-11 14:03:47 
Re: Requesting critique of spec of my new MayLoad utility (simil
Logan Shaw <lshaw-usen  2008-05-11 19:55:19 
Re: Requesting critique of spec of my new MayLoad utility (simil
George Neuner <gneuner  2008-05-12 02:54:20 
Re: Requesting critique of spec of my new MayLoad utility (simil
pjb@[EMAIL PROTECTED] (P  2008-05-13 15:12:50 
Re: Requesting critique of spec of my new MayLoad utility (simil
George Neuner <gneuner  2008-05-13 13:33:04 
Re: Requesting critique of spec of my new MayLoad utility (simil
jaycx2.3.calrobert@[EMAIL  2008-06-27 15:38:09 
Re: Requesting critique of spec of my new MayLoad utility (simil
jaycx2.3.calrobert@[EMAIL  2008-06-26 12:12:29 
Re: Requesting critique of spec of my new MayLoad utility (simil
pjb@[EMAIL PROTECTED] (P  2008-05-13 15:09:55 
Re: Requesting critique of spec of my new MayLoad utility (simil
Mark Wooding <mdw@[EMA  2008-05-13 16:57:10 
Re: Requesting critique of spec of my new MayLoad utility (simil
usenet2.3.CalRobert@[EMAI  2008-05-13 13:06:10 
Re: Requesting critique of spec of my new MayLoad utility (simil
moi <root@[EMAIL PROTE  2008-05-09 09:55:19 
Re: Requesting critique of spec of my new MayLoad utility (simil
usenet2.3.CalRobert@[EMAI  2008-05-10 10:05:47 
Spammer harvested this address, 11 messages discarded (was: Requ
make1.5.calrobert@[EMAIL   2008-06-28 04:58:14 
Re: Spammer harvested this address, 11 messages discarded (was:
Moi <root@[EMAIL PROTE  2008-06-28 15:03:26 
Re: Spammer harvested this address, 11 messages discarded (was:
Ariel <no@[EMAIL PROTE  2008-06-28 05:57:55 

Post A Reply:
  Go here to Signup

AddThis Feed Button


About - Advertising - Contact - Frequently Asked Questions - Privacy Policy - Terms of Use - Signup

Contact
tan12V112 Mon Oct 6 11:06:30 CDT 2008.