[PD-dev] removing string types from pd-extended release

IOhannes m zmölnig zmoelnig at iem.at
Fri May 9 08:48:34 CEST 2008


Martin Peach wrote:
> I've attached the reasoning behind my string patch, probably there is a
>  lot wrong with it.
> 
> But I can't see how to do this kind of thing otherwise without modifying
> Pd.
> 

i only proposed to just removed all the selector stuff ("string") and
use plain atoms (within lists/messages) instead.

i don't see _any_ reason why we would need to have a "stringmethod" pd
knows about.
instead use:

<snip>
#define STRING_ATOMID=666
static void myobj_string(t_myobj*x, t_symbol*s, int argc, t_atom*argv) {
  if (argc && STRING_ATOMID==argv->a_type) {
    // hold on, this is a string!
    ...
  } else {
    pd_error(x, "expected string");
  }
}

void myobj_setup(void) {
  ...
  class_addmethod(myobj_class, (t_method)myobj_string, gensym("string"),
A_GIMME, 0);
}
</snip>



et voila! no need to patch Pd at all.

in a second step, Pd should handle atoms outside its "known" world properly.
my initial idea was to introduce a way to register new types with Pd, so
 pd would know about a new a_type number during runtime and would be
able to do handle it more intelligently (e.g. calling a certain
atom_getstring() method when [post]ing; rejecting atom-types that it
doesn't know about;...)

miller was rather reluctant about this, as it probably adds too much
hazzle for too little benefit.
therefore we basically agreed (at lac2008) that we would just use
additional a_type-numbers and that's basically it!


fgmadsr
IOhannes





More information about the Pd-dev mailing list