On Thu, 8 Aug 2002, [ISO-8859-1] Juha Vehvil�inen wrote:
Hi,
If i can help with the build-system, let me know.
yes, always, first problem I have is that I want to structure the externals somehow, but I didn't come up with a good classification yet.
Maybe we should discuss this on the list, so I have CC'd this.
There has been some discussion about different classes of externals which as far as I can remember didn't come to a conclusion, maybe we should talk about that again.
With autofetching, I though of pd instead of saying "couldn't create foo" would see if foo can be downloaded (and built?, and installed) from the cvs. Don't know if this could work even reasonably well though.
ah, I understand. In the first place this would mean a change in pd's code, something like a message ; pd loadfailed <externalname> that gets issued by the loader, then it would be possible to implement, but surely only for linux.
But actually its a good idea to have a build system this way, where you can start a small script/program and this will download and build the external that you requested.
Guenter
Hi, günter geiger hat gesagt: // günter geiger wrote:
On Thu, 8 Aug 2002, [ISO-8859-1] Juha Vehviläinen wrote:
With autofetching, I though of pd instead of saying "couldn't create foo" would see if foo can be downloaded (and built?, and installed) from the cvs. Don't know if this could work even reasonably well though.
ah, I understand. In the first place this would mean a change in pd's code, something like a message ; pd loadfailed <externalname> that gets issued by the loader, then it would be possible to implement, but surely only for linux.
This is a nice idea and somehow it brings up the question of namespaces again. I can think of external names, "foo" is in fact a good example, that might be used in several places. We should of course avoid such name clashes, and maybe a mechanism developed for pure-data.sf.net can be a testbed for namespaces. But I have no idea, how such an architecture is best defined...
ciao,
Hallo,
This is a nice idea and somehow it brings up the question of namespaces again. I can think of external names, "foo" is in fact a good example, that might be used in several places. We should of course avoid such name clashes, and maybe a mechanism developed for pure-data.sf.net can be a testbed for namespaces. But I have no idea, how such an architecture is best defined...
We tried to solve this problems some time ago and therefore made the Pure Data Base, where all names should be listed and (We did it for our libraries), if somebody is developping an external he can look if the name exist. This princip needs some disciplin to enter data there: http://pd.iem.at/pdb/
We think about extenting the interface, where every one can make entries by himself (user passwd for owned externals) and where he can reservate some name(space), (for a certain amount of time, when no release in this time the name will be freed again), also the status of the object can be listed there, ...
... but we should make some rules like every name of a library should have an unique prefix and prefixes can be reservated like names...
...maybe this could be done via some webinterfaces on several sites using an central database.
mfg winfried
On Fri, 9 Aug 2002, Winfried Ritsch wrote:
We tried to solve this problems some time ago and therefore made the Pure Data Base, where all names should be listed and (We did it for our libraries), if somebody is developping an external he can look if the name exist. This princip needs some disciplin to enter data there: http://pd.iem.at/pdb/
We think about extenting the interface, where every one can make entries by himself (user passwd for owned externals) and where he can reservate some name(space), (for a certain amount of time, when no release in this time the name will be freed again), also the status of the object can be listed there, ...
... but we should make some rules like every name of a library should have an unique prefix and prefixes can be reservated like names...
...maybe this could be done via some webinterfaces on several sites using an central database.
I think this approach would be a good solution, but as you said, it needs discipline, and for chaotic guys like me, who forget to put collected addresses in their own addressbook, this probably won't work.
Thats why I tried to convince people to use a centralized CVS. It has many advantages for the developers themselves, and as a side effect makes a centralized naming system very easy to build.
The question now is just how to structure it.
Guenter
------------------------------------------------------------------------ Music Technology Group - UPF, Barcelona http://www.iua.upf.es/mtg/eng/ AGNULA - A GNU Linux Audio distribution <www.agnula.org> DeMuDi - Debian Multimedia Distribution <www.demudi.org>
günter geiger hat gesagt: // günter geiger wrote:
I think this approach would be a good solution, but as you said, it needs discipline, and for chaotic guys like me, who forget to put collected addresses in their own addressbook, this probably won't work.
Thats why I tried to convince people to use a centralized CVS. It has many advantages for the developers themselves, and as a side effect makes a centralized naming system very easy to build.
The question now is just how to structure it.
(I'm starting to think aloud now:)
This is indeed a problem, because externals have a flat structure, if I'm right. With abstractions, one could specify the full path or a part of it to a specific abstraction with a name, that might be used for another abstraction. But there isn't something like that for externals. From a user's perspective, I would like to be able to write such things with dots like using [maxlib.gauss] and [footils.gauss] in one patch, assuming both gauss are different external objects in the "namespaces" maxlib and footils.
Then we would only need to manage the toplevel namespaces, which probably would be less work than having to manage all external's names.
On the other hand, the length of object names is somewhat crucial in PD, because it's graphical programming and having very long object boxes is a Bad Thing for the limited space in a patcher. I'm not sure, how a "using namespace maxlib" could be implemented or be useful in the PD programming language.
ciao,
On Thu, 8 Aug 2002, Frank Barknecht wrote:
This is a nice idea and somehow it brings up the question of namespaces again. I can think of external names, "foo" is in fact a good example, that might be used in several places. We should of course avoid such name clashes, and maybe a mechanism developed for pure-data.sf.net can be a testbed for namespaces. But I have no idea, how such an architecture is best defined...
Actually the question of namespace is exactly what I wanted to bring up. AFAIK remember the last time we discussed this, it slowly faded away without a solution.
I am not sure which points where made by the people involved, but I can outline what I thought about it.
My idea at the moment is to structure externals in a directory hierarchy, just for the sake of flexibility, and Idont want to introduce some new functions to register namespaces within pd.
If this is done, every directory that is inside the $EXTERN_ROOT is considered a namespace.
The second step is that we need some ways to tell the system which namespaces we are using.
On an sigle object basis this is quite easy, because we can just use namespace/extname to instantiate. (Or we change the external loader a bit and use namespace.extname)
On a patch basis, this could be done with a object that sets a namespace ala C++ with [using namespace].
When someone wants to pull in the objects of a namespace for the whole application this could be done with a program switch ala "pd -using namespace".
The problem with the later 2 features is that if someone wants to use an external from two namespaces with the same name. So all the namespace stuff will possibly create more confusion, instead of solving the (very few) nameclashes we have.
Guenter
------------------------------------------------------------------------ Music Technology Group - UPF, Barcelona http://www.iua.upf.es/mtg/eng/ AGNULA - A GNU Linux Audio distribution <www.agnula.org> DeMuDi - Debian Multimedia Distribution <www.demudi.org>