Hi Frank,
Well, I can't remember now if I was looking at that bug report or if I was having my own problems with declare (I've had many). I had bad confusion making abstractions use "soundfiler", for instance, and having relative paths get expanded relative to the abstraction instead of the calling patch. However, when an abstraction opens a sub-abstraction as in "x/y", I think it's best to have x/y be relative to the abstraction's location and not the calling patch's. These two needs seem in direct conflict. I hope to figure out a better way to handle this but have given up trying to resolve it for 0.41.
I hope nobody is yet throwing "declare" objects in abstractions, as that currently does something so wrong (altering the global path for the calling patch!?) that I thought it better to get rid of the whole thing for now.
cheers Miller
On Sat, Jan 05, 2008 at 06:28:20PM +0100, Frank Barknecht wrote:
Hi,
I checked out the behaviour of [declare] in the latest test version, which supposedly should have some fixes according to the release notes:
Fixed "declare" which wasn't working properly yet in 0.40-0, and made more objects (notably "soundfiler") respect "declared" paths. Path entries are relative to the parent patch. Declares inside abstractions are ignored.
Now I'm not sure, if simply ignoring declares in abstractions is the right thing (tm) to do. Using the declare-bug.tgz examples from Bug #1714473 I now cannot make abstractions evaluate declares anymore. This seems to be intended, but why?
The example uses an abstraction, "myabs/test-patch-with-deep-declare" that includes an instance of [abuse-me], which by [declare -path ./sub] inside "myabs/test-patch-with-deep-declare.pd" should be taken from "myabs/sub/abuse-me.pd". But, alas, this isn't found and thus "myabs/test-patch-with-deep-declare" is broken. Opening "myabs/test-patch-with-deep-declare.pd" directly will make it find the correct abuse-me.pd in myabs/sub/abuse-me.pd
I believe, the correct behaviour would be to not ignore the declares in abstractions, but make them act relative to the abstraction's path.
Otherwise abstractions would behave differently when opened directly compared to when used as abstractions, which I think is very confusing.
Ciao
Frank Barknecht _ ______footils.org__
PD-dev mailing list PD-dev@iem.at http://lists.puredata.info/listinfo/pd-dev