EV on AIX?

Darin McBride darin.mcbride at shaw.ca
Fri Mar 23 23:02:59 CET 2012


On Friday March 23 2012 8:19:09 PM Marc Lehmann wrote:
> On Fri, Mar 23, 2012 at 09:06:38AM -0600, Darin McBride 
<darin.mcbride at shaw.ca> wrote:
> > How about someone without knowledge? :-)
> 
> Well, knowledge can sometimes be found, more important is, and I forgot
> to mention, the ability to actually test it (making it compile and making
> sure the change is actually used is already a great test :-)

Well, there is that.  I'm just not sure how to ensure I'm excersising this :-)

> > things out, and got it to compile.  And then "make test" worked, though I
> 
> Thanks a lot, that looks good enough for the next version - you could test
> current CVS, if you wish (cvs -z3 -d
> :pserver:anonymous at cvs.schmorp.de/schmorpforge co libev)

Actually, after further conversations with Peeter (the guy who wrote that 
blog, he's the primary guy responsible for the AIX "port" of DB2, so seems 
knowledgable/experienced), the patch isn't quite right.  I showed him what you 
used for gcc and had some comments there as well.  So a patch on top of the 
previous patch.  This one is too big (as far as line length is concerned - 
keeps getting word-wrapped), so we'll try an attachment.

> > don't know how much of this memory fence stuff is tested by the current
> > test suite.
> 
> None is tested, and I wouldn't even know how to properly test it, as in
> many cases (and on many cpus), it would work without memory fences - it'S
> a race after all.

I'm no good at races.  I generally lose. :-)

> For example, all x86 cpus factually procide more guarantees, which is why
> older libev versions do not need memory fences on these cpus, but there is
> no guarantee that future cpus wouldn't change this.
> 
> However, the normal EV tests uite will execute the fence code, so it will
> at least check whether the code is legal.

Okay, that's a start.  I've got my test for Term::ReadLine's event model using 
AnyEvent (all started on rt 108470, and I want to apologise for that whole 
thread, I was embarrassed to be involved in it, nevermind having opened the 
wishlist item in the first place).  I added in a "use EV;" at the top.  That 
failed miserably until I went and did a "make install" in my other window :-) 
and then it worked fine.  Same with Coro.  I'm testing with the attached patch.

> > the author IRL, and he does seem to be a genius).  The only issue is that
> > Peeter claimed that this function was in builtins.h, but I can't find that
> > on my AIX box.  I'll have to ask him about it.  (It doesn't seem to be
> > required.)
> Maybe some builtins are form there, and others are not, and ibm wanted to
> keep the option of moving things around.
> 
> Or maybe your aix box is just too old *g*

AIX 6.1 - which comes with perl 5.8.8.  Old enough. :-)

Peeter tells me that the documentation always said that you didn't need to 
#include it, and that maybe they've fixed the code to match the documentation.

> > Which it does with modern gcc compilers, but xlC's defaults don't allow
> > that. Yes, I know, that's from the 1999 standard of C.
> 
> Good that xlC has an option for it :) In fact, perl should properly
> configured with that option, and suddenly all those modules start to work.

Yeah, I better go and open a bug report for adding -qlanglvl=extc99 to the 
Configure options that perl itself uses and stores for modules' use.  It's 
getting a bit late in the 5.16 cycle :-)

> In any case, my only experiences with xlC I made in 1994-6 or so, and...
> no, don't make me think back. Things *must* have changed to the better
> since then!!

Yooooouuu arrrre geeeeettiiiinnnng sleeeepyyyy... you will completely forget 
about everything to do with xlC... now wake!

Did that work?  Happier? :-)

(If it worked, I'm submitting a patent on hypnosis - on the internet!)

> > (I've already seen that you're aware of how 5.15.9 and common::sense don't
> > see eye-to-eye under -w, which is, quite unfortunately, how tests are
> > run.)
> -w is simply beyond broken - however, common::sense has a workaround for
> perl 5.15 for two weeks now, are you sure you are using version 3.5 and
> not 3.4?

cpan still insists on installing 3.4.  Even 
https://metacpan.org/search?q=common%3A%3Asense or 
https://metacpan.org/module/common::sense seem to imply that 3.4 is the 
latest.  Are you sure you've released 3.5? :-)

> common::sense, no matter what, has to bend around -w, because in fact, the
> main purpose of common::sense is to work around -w.
> 
> > here and there, I'd be using C.  And I don't use C.  (I'd use C++, but
> > there goes huge swaths of memory savings, too.  More if I ever get around
> > to learning wx or Qt or some such behemoth.)
> 
> Try gtk+, because that has a working perl interface, so you can switch
> back to a language that is actually good at gui logic. OTOH, touching gtk+
> from C (and even C++) always has something heroic... :)

I do everything in kde, so I'm a little biased toward Qt, but you're right, it 
doesn't really support perl very well.  Or perl support Qt.  Whatever.  :-)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ev_aix.patch
Type: text/x-patch
Size: 1429 bytes
Desc: not available
URL: <http://lists.schmorp.de/pipermail/anyevent/attachments/20120323/81af3ded/attachment.bin>


More information about the anyevent mailing list