> > > Ruby is just using AC_TYPE_UID_T. So, using typedef for them, > > > like as apr.h, means conflicts to all of autoconfiscated > > > softwares. I think apr.h should #undef before typedef. > > > > Ah, but it only does that on Windows, not on POSIX platforms. On POSIX > > Not only on Windows, any platforms which don't have [ugp]id_t. > > platforms, it uses what's there. Just like Ruby. I don't think it's a > > solution for ruby to require that APR uses #undef before the typedef: > > that would require a change to *all* software with which Ruby is meant > > to be compiled on windows. Not a pretty solution. > > And APR requires a change to all autoconfiscated softwares. Actually, Ruby uses a #define (as a result from the old use of AC_CHECK_TYPE, probably), but the autoconf manual itself says that AC_CHECK_TYPE with 2 arguments is flawed because it uses #define instead of typedef. > > I think neither APR nor Ruby should be 'messing' with types defined by > > POSIX. I'm preparing a patch for APR to stop doing this. > > Agreed. typedef which can'te be redefined nor detected at > compile time shouldn't, at least. Right, but since the Subversion Ruby bindings have to include both ruby.h and apr.h (which should both use typedef for pid_t, if they were to define it with the 'new' autoconf). So you see the conflict growing fast: apr can't itself rely on ruby.h being included, nor can ruby.h rely on apr.h being included, yet both systems try to define pid_t. > > I intend to provide a patch for Ruby which defines a rb_pid_t (and > > friends) for all platforms. (If you want it to be differently named: > > that's fine ofcourse.) On windows it will be defined to int, on other > > platforms, it will be defined to AC_TYPE_PID_T. > > rb_pid_t sounds good enough, and ruby itself would be too, Great! I hope CVS comes up soon then: i can start the work. > but > what about extension libraries using those types? Well, I have no idea what promisses you made to extention library implementors.. But if you can choose, well, I'd encourage them to use rb_pid_t too. bye, Erik.