---- WMB NOTES 28/10/06 on LAB 4 - JUGS in DoNaLD -------- Some points that came up in the course of this lab session: 1. It is important to avoid name clashes between Scout windows and viewport names used to define DoNaLD pictures within them. 2. There is a delete function in DoNaLD (though it is not documented anywhere so far as I know!). To delete an entity like a point or line simply type delete p delete l This appears to remove identifiers from the DoNaLD symbol table, but its impact on their underlying eden representations has not been explored. It is also unclear what restrictions there may be if dependencies involving deleted observables remain in the model. 3. There is a forget() procedure in eden - it is called via forget(&x); or forget("x"); This will forget observables so long as there is nothing that is dependent upon them, in which case it has no effect (and reports no problem!). 4. There can be difficulties in using the "escape to eden" feature of DoNaLD. By way of illustration, the sequence: %donald int a,b %eden x = 34; %donald b = x! + a generates a DoNaLD error: "DoNaLD: id list and expr list unmatched ...", whilst expressing the sum of terms the other way around, as %donald b = a + x! correctly leads to setting up the dependency _b is _a + x; in eden. It is actually quite hard to see how the DoNaLD type system copes with escaped eden variables at all, which may be at the root of this problem. Working with the images of DoNaLD variables in eden is perhaps the safest way to address this issue.