Michael thanks! Now where are the Kamaelia tchotchkes? Cat earrings! Yeah! :)
Seriously, thanks for this! Are there plans to wrap multiprocessing module support into Kamaelia, so we may have another base component, say, MultiprocessorComponent? The underlying communication mechanisms such as Pipeline, Graphline, etc, are already clever enough to know if real sockets should be used. So would this be possible? And is it something on which you want/need help?
Thank you! Gloria
Hi, I've built the 1.0.9.0 release and linked it from the website front page. Direct link: * http://www.kamaelia.org/release/MonthlyReleases/Kamaelia-1.0.9.0.tar.gz This rolls up some bug fixes, a number of improvements aimed at debugging (tracing of messages, profiling running systems), and quiessence for open gl systems, and a handful of rewritten components. Additionally the SoC2006 example code has been split out into more sensible directories. (The place they lived then made sense then, but would be clearer elsewhere!) For those that missed it, Kamaelia's license changed in July 2010 to the Apache 2 license. (with explicit permission to use the old license scheme if needed - basically to cover any weird edge cases with a "yes" :-) Summary Changelog =============== Axon Improvments Summary * Better tracing of message passing for debug purposes Kamaelia Improvements Summary * Added namespace Kamaelia.Apps.MH * Kamaelia/Apps/MH/Profiling.py -- provides unix "top" like functionality for components * Bugfix for Kamaelia/Chassis/PAR.py -- handle shutdown messages better/more correctly * Bugfix for Kamaelia/Internet/TCPServer.py -- eliminate random shutdowns under load * Kamaelia/Internet/SingleServer.py -- arguments made more in keeping with ConnectedServer, added FastRestartSingleServer * Support multiple multicast transcievers in the same app on more OSs cleaner * CSA.stop changed to handle multiple stop requests more robustly. (Shouldn't be called twice, this makes it safe if it happens) * Kamaelia/Visualisation/PhysicsGraph/TopologyViewerServer.py changed to allow fast restart * Rewrites of EchoProtocol.py, NullSinkComponent.py * CPU hogging behaviour of OpenGL code reduced slightly in Interactor.py, OpenGLDisplay.py * Bugfix in OpenGLDisplay.py to handle change in PyOpenGL API * CPU improvements in Pygame/Display.py, Pygame/Ticker.py * GSOC 2006 examples moved out from SoC2006 directory into directories with better names. Detailed Changelog ================ AUTHORS * Added Andrew Bonney as contributor README * Bumped version number Axon/Axon/Component.py * Encoding line added * Added two global flag variables for debugging: TraceAllSends = False TraceAllRecvs = False * If TraceAllSends is set, replaces<component>.send with a version that traces all sends * If TraceAllRecvs is set, replaces<component>.recv with a version that traces all recvs * Added _debug_recv to trace recvs * Added _debug_send to trace sends Axon/Axon/Linkage.py * Encoding line added * Imports Box to enable improving storage tags if Box.ShowAllTransits is set - These aren't perfect - they should probably *append* to the storage tag rather than replace * Adds method short_str - which summarises a linkage in a shorter fashion Kamaelia/setup.py * Bumped version number * Added Kamaelia.Apps.MH Kamaelia/Examples/UsingChassis/PAR/par_shutdown_simple.py * Added example showing clean shutdown of PAR in the case of producerFinished messages, in simple and pathological examples. Kamaelia/Kamaelia/Apps/MH/__init__.py * Added to allow this namespace to exist Kamaelia/Kamaelia/Apps/MH/Profiling.py * Added for debugging purposes. Allows profiling of CPU usage in a manner somewhat like unix "top". Kamaelia/Kamaelia/Apps/Whiteboard/Canvas.py * Added some notes regarding code quality... Kamaelia/Kamaelia/Chassis/PAR.py * While loop regarding pausing/shutdown turned into an if. This solves a bug where the flag shutdown can't become true and sleeps through child shutdowns Kamaelia/Kamaelia/Internet/TCPServer.py * 1 line bugfix, but critical. Beforehand, depending on shutdown approach, the TCPServer would search through the socket handlers for whichever component was handling the socket. However, rather than that component being picked for shutdown, the last one in the list would be picked instead. This is a pretty critical problem for any major server and would cause "erratic" behaviour in certain limited circumstances. It would mean that many servers would look correct with basic testing and have unexpected intermittent issues under load from buggy clients. Kamaelia/Kamaelia/Internet/SingleServer.py * Removed reference to python 2.3 from script executable path * Added comment about FastRestartSingleServer * imports socket to enable this * Changed to use default arguments style * Default arguments added largely mirror ConnectedServer.ServerCore, sans protocol * Allows socketoptions to be set for the TCPServer. * In theory allows TCPServer to be overridden * Adds FastRestartSingleServer as a subclass of SingleServer - this is identical to SingleServer, except with appropriate socket options * Demo example now shows usage of socketOptions for fast restarting Kamaelia/Kamaelia/Internet/Multicast_transceiver.py * Allow the multicast transciever to be SO_REUSEADDR. This handles a problem on some OSs that prevents a multicast port being used twice in the same process. Kamaelia/Kamaelia/Internet/ConnectedSocketAdapter.py * If CSA.stop is called twice, behaviour is cleaned up to only stop once * To try to limit this, CSA..stop is then also replaced with a dummy null function Kamaelia/Kamaelia/Chassis/ConnectedServer.py * Debugging code added& commented out Kamaelia/Kamaelia/Internet/Selector.py * Debugging code added& commented out Kamaelia/Kamaelia/Visualisation/PhysicsGraph/TopologyViewerServer.py * Changed to use FastRestartServer rather than SimpleServer - allows the AxonVisualiser (amongst others) to restart quickly if needed. Kamaelia/Kamaelia/Protocol/EchoProtocol.py * Rewritten in a more modern style with correct/modern shutdown behaviour * Also, shorter. Kamaelia/Kamaelia/UI/OpenGL/Interactor.py * Reduced the level of CPU hogging for this code. Kamaelia/Kamaelia/UI/OpenGL/OpenGLDisplay.py * imported _PygameEventSource to reduce CPU usage in the general case. * Doing so allows the OpenGLDisplay to sleep when there's no data to process * Pygame event handling changed to use data from the _PygameEventSource * Updated usage of gluPickMatrix to match change in PyOpenGL's API - Specifically added a viewport argument Kamaelia/Kamaelia/UI/Pygame/Display.py * _PygameEventSource - changed usage of pygame.event.peek to specifically look for particular events from the OS Kamaelia/Kamaelia/UI/Pygame/Ticker.py * Ticker changed to add in quiessence Kamaelia/Kamaelia/Util/NullSinkComponent.py * Rewritten in a clearer, more modern, quiesscent style. Also, Summer of code 2006 example code shifted out from cryptic names to less cryptic names. Specifically, these directories... Kamaelia/Examples/SoC2006/RJL/HTTPSpider /P2PStreamPeer /P2PStreamSeed /TorrentGUI /TorrentSeeder Kamaelia/Examples/SoC2006/THF/Checkers /MiniExamples /TorrentOpenGLGUI Renamed to: Kamaelia/Examples/HTTPSpider /TorrentBasedStreaming_GSOC/P2PStreamPeer/ /P2PStreamSeed/ /TorrentGUI /TorrentSeeder /OpenGL/Checkers /MiniExamples /TorrentOpenGLGUI Enjoy :-) Michael.
-- You received this message because you are subscribed to the Google Groups "kamaelia" group. To post to this group, send email to kamae...@googlegroups.com. To unsubscribe from this group, send email to kamaelia+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/kamaelia?hl=en.