On Fri, May 30, 2003 at 03:34:46PM +0200, Laurent Perez wrote: > Hello > > I wrote a cool Perl/TK irc client, using POE::Component::IRC. It works fine > on linux and bsd hosts. > However I would like to run it on Win32 platforms (98, 2K and XP). > > I installed ActiveState's Perl build 635 on my Win32 comp, then installed > POE 0.26, POE::Component::IRC and Tk modules, using CPAN. > When I try to run the program, it simply freezes. I was told Win32 > platforms had problems with Tk blocking events, but I was hoping latest > builds of POE and AS could fix that.
The last ActivePerl build I've tested POE against is 804. At that point Tk fileevent callbacks were much more broken than usual. I was forced to skip t/06_tk.t entirely under build 804 because Tk would crash outright. I have reported the fileevent problems and included simple programs that reproduced them. Tk fileevent bugs: - http://bugs.activestate.com/show_bug.cgi?id=22619 - http://bugs.activestate.com/show_bug.cgi?id=23619 Their corresponding test cases: - http://bugs.activestate.com/showattachment.cgi?attach_id=880 - http://bugs.activestate.com/showattachment.cgi?attach_id=955 It appears that Tk was updated in build 805, and build 806 incorporates fixes to PerlIO. ActivePerl's change log: - http://aspn.activestate.com/ASPN/Perl/Products/ActivePerl/CHANGES.html Unresolved Tk fileevent problems go back as far as 2001 so I'm not very hopeful. I will try build 806 anyway. > So should I give up trying to run network+tk code within POE on Win32 > platforms because of that blocking problem, or is anyone able to help me > using alternative coding methods, or should I try using cygwin ? I had a > mail contact with AS Tk maintainers, it looks like they simply don't care > about POE, so I don't know if it's POE or AS 'problem'. I think the most obvious choice is to try Cygwin. We have established: - When a library is broken, programs using that library do not work. - Tk is a library that POE uses, among other things, for non-blocking I/O. - Tk's non-blocking I/O is broken under ActivePerl. Therefore: - POE's non-blocking I/O does not work with ActivePerl's version of Tk. We have established: - Tk's non-blocking I/O works under other platforms (BSD, Linux). - Cygwin attempts to emulate Linux for Win32 (see www.cygwin.com). Therefore we have reason to assume: - Tk's non-blocking I/O may work under Cygwin. Therefore we have reason to assume: - POE's non-blocking I/O may work with Cygwin's version of Tk. We can easily test whether the assumption is correct. I am downloading Cygwin to try it. You may also want to. > Any help would be greatly appreciated > Thanks > > Laurnt Perez ActivePerl may be reluctant to fix things themselves, but they are not averse to accepting patches. If we would like to see ActiveState's Tk fixed, we should find someone with the proper compiler to rebuild it and the willingness to look at the problem. This has been a thorn in my side for over a year. I'm willing to work on this bug, but I don't have the right compiler to rebuild ActivePerl and/or ActiveState's version of Tk. -- Rocco Caputo - [EMAIL PROTECTED] - http://poe.perl.org/
