ANNOUNCE: NHI1-0.11, PLMK-2.0 und libmsgque-5.0
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Dear User, ANNOUNCE:Major Feature Release libmsgque: Application-Server-Toolkit for C, C++, JAVA, C#, Go, TCL, PERL, PHP, PYTHON, RUBY, VB.NET PLMK: Programming-Language-Microkernel NHI1: Non-Human-Intelligence #1 SUMMARY === Finish release 4 of wp2 with adding Factory support. The Factory add the ability to create NEW server-types on-the-fly and introduce the self-programming capability to NHI1. The Factory is an important part of the object management and has the following basic features: * create a new instance identified by an Identifier or using an already available instance as template * cleanup and delete an instance * provide an Identifier for factory lookup and as an unique application name * identify the server in the network The link between the Factory-Identifier and the Factory-Interface is important for the future development of libmsgque. Message-Routing, Service-Location and Persistent-Transactions depend on this feature. The relationship between the MqFactoryS and the MqS is the same as the relationship between a type and an instance of the type in a regular programming language. The MqFactoryS define the type of the server and the MqS define a single instance of the server. Every kind of server has !!only one!! specific MqFactoryS object but every instance of a server has one MqS object used for object management. Decreasing the size and the complexity of a MqS object will improve the server performance. In future more fields, defined in the MqSetupS attribute of the the MqS object, will move into MqFactoryS object. LINKS = libmsgque including PHP documentation: http://nhi1.berlios.de/theLink/index.htm NHI1: http://nhi1.berlios.de/ DOWNLOAD: http://developer.berlios.de/projects/nhi1/ mfg, Andreas Otto (aotto1968) -BEGIN PGP SIGNATURE- Version: GnuPG v2.0.15 (GNU/Linux) Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org/ iQEcBAEBAgAGBQJNMBYJAAoJEGTcPijNG3/AxGkH/1Nf7GBL7DWAUktwaFs7Bs69 7voAXXWgIug+X42MqmsjFY8TrVGSHJfB8au+gecP1z6RQnPlubT2Od9T3GbXJL5h ZeyK8r2cf7reqp0W63iw0Gh+mDV/bmcjqjA8RTvw95du8l8t0W+zSjcDmeMct/a6 o8eTvQTfCyr7+LcOqjzVEA19XVVgJBF55DA24+HACVFgXfRchpylZiXegmAC0iFy gWKDAyiC95wJzZuqK+a5hPAYOZ+nhAaEMDVY0olN81qnWnb7j6uubSWAbgdXPWaP zu1gXoGo2fugqQt8XB1Ux8gHZhXOXVQGxcX2LyMUwiI1iXxnLVXXL1K3p7+Wnng= =/7W5 -END PGP SIGNATURE- -- http://mail.python.org/mailman/listinfo/python-list
ANNOUNCE: NHI1-0.10, PLMK-1.8 und libmsgque-4.8
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Dear User, ANNOUNCE:Major Feature Release libmsgque: Application-Server-Toolkit for C, C++, JAVA, C#, Go, TCL, PERL, PHP, PYTHON, RUBY, VB.NET PLMK: Programming-Language-Microkernel NHI1: Non-Human-Intelligence #1 STATEMENT = It takes 2 years and a team of qualified software developers to implement a new programming language, but it takes only 2 weeks to add a micro-kernel - - aotto1968 SUMMARY === Add support from the programming language Go from Google LINKS = UPDATE - PLMK definition http://openfacts2.berlios.de/wikien/index.php/BerliosProject:NHI1_-_TheKernel ChangeLog: http://nhi1.berlios.de/theLink/changelog.htm libmsgque including PHP documentation: http://nhi1.berlios.de/theLink/index.htm NHI1: http://nhi1.berlios.de/ DOWNLOAD: http://developer.berlios.de/projects/nhi1/ Go man pages: reference: gomsgqueref.n tutorial: gomsgquetut.n mfg, Andreas Otto (aotto1968) -BEGIN PGP SIGNATURE- Version: GnuPG v2.0.15 (GNU/Linux) Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org/ iQEcBAEBAgAGBQJM9OZsAAoJEGTcPijNG3/A+qwH/1WT3K8619eLzQ78dylS623r qrZtHXRxieD+4GIBgkU7KbNu+LGztxasLW9upafmmF2mGcWtIFuiOEJtw6MJM+07 0X7elXM5WZkXK65dbLE5bbSfO0DHw5T6aIweogA3zjcjDbB3rSC/T6WIlZB4HNYh nBj9xC6WMP7s/jEjs4i5FCRT6gTRzDDJbR+SXqNEEYc/z8wVKPUDfpU/6JGxl9MV rPSUsO+YdZX0XI7+imiUYSVyt+kniL3C36kGON/qGDahscoQYFS6GdoI5XDzI0c+ jN7Q2Ecrphd5F5G/2plNLbVy4mPVd9k/I8VjXMaHLm+skT2Z4Zt7aF29A1FFw68= =/O74 -END PGP SIGNATURE- -- http://mail.python.org/mailman/listinfo/python-list
ANNOUNCE: NHI1-0.9, PLMK-1.7 und libmsgque-4.7
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Dear User, ANNOUNCE:Major Feature Release libmsgque: Application-Server-Toolkit for C, C++, JAVA, C#, TCL, PERL, PHP, PYTHON, RUBY, VB.NET PLMK: Programming-Language-Microkernel NHI1: Non-Human-Intelligence #1 LINKS = ChangeLog: http://nhi1.berlios.de/theLink/changelog.htm libmsgque including PHP documentation: http://nhi1.berlios.de/theLink/index.htm NHI1: http://nhi1.berlios.de/ DOWNLOAD: http://developer.berlios.de/projects/nhi1/ PHP man pages: reference: msgqueforphpref.n tutorial: msgqueforphptut.n SUMMARY === This version adds the ability to: * PHP language support. * a new interface of the ProcessEvent function and the startAs configuration option. * terminate an application from a callback with the ErrorSetEXIT function. The PHP language is characterized by an extensive but undocumented C API. The number of features combined with a growing and moving language made the extension programming difficult and lengthy. The successful PHP extension shows the flexibility and adaptability of NHI1. mfg Andreas Otto (aotto1968) -BEGIN PGP SIGNATURE- Version: GnuPG v2.0.15 (GNU/Linux) Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org/ iQEcBAEBAgAGBQJM3Ds6AAoJEGTcPijNG3/ATywH/iguN1+96sp2RGzIz6N3I8mx tw4YO6ac8NPT+Ztm+IXYbGlkyb2Z/3UwES7aZunYy7DK/kJBh7VBbZNGGWZlRTvm w02uMa4dTCBye8tNkQ8dRAxjshe9taM1+54Z4k1EsFmIXOMi8bbdDuAPk2i8xGRu vJIFC6ubIx93Sjgodcr/AIGRskjutpF29+uoaSMz+8UrTxnSoJxq8VvgWR/+MXfZ UOb8GutVV6bGI/ylE/NgLpxvE1LUMNgMS0QzHgQHSu4E/8tW3Oyzt6FU68k51n8+ OTJaFYC7o1W9VwSoc/HNHPhVmECYONW40pRrf2P0llqiKElBAd23g1/h83iblqo= =5U+w -END PGP SIGNATURE- -- http://mail.python.org/mailman/listinfo/python-list
ANNOUNCE: NHI1-0.8, PLMK-1.6 und libmsgque-4.6
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Dear User, ANNOUNCE:Major Feature Release libmsgque: Application-Server-Toolkit for C, C++, JAVA, C#, TCL, PERL, PYTHON, RUBY, VB.NET PLMK: Programming-Language-Microkernel NHI1: Non-Human-Intelligence #1 LINKS = ChangeLog: http://nhi1.berlios.de/theLink/changelog.htm libmsgque: http://nhi1.berlios.de/theLink/index.htm NHI1: http://nhi1.berlios.de/ DOWNLOAD: http://developer.berlios.de/projects/nhi1/ SUMMARY === This release adds the ability to: * Ruby language support (LNG) * L)anguage A)bstraction L)ayer (LaL) * G)arbage C)ollection (GC) Object-Mark Ruby is an object-oriented programming language like Python. The new 'libmsgque' function (MqMark) was added to the GC support and marks all objects that are referenced within 'libmsgque'. The programmer now has the opportunity to replace internal functions such as: SysCalloc, SysMalloc, SysRealloc, SysFree, SysSelect, SysFork, SysServerSpawn, SysServerThread, SysServerFork, SysWait, SysUSleep, SysSleep, SysDaemonize, SYSEXIT, SysAbort to adapt to the environment (Lal). The connection of Ruby on libmsgque had light and shadow. The light was clearly a complete API that allows very fast classes and functions to be defined in C. The result was convincing in the performance test, and let Python, Perl and Tcl behind. The shadow was first of all the non-existent documentation. The initial enthusiasm for the thread link was to quickly and ultimately turned out to be unusable (no matter how many processors / cores are available in Ruby is only one thread is active and the others are blocked - ridiculous). Last I made the memory management (garbage collection) to create. I have no problem with Mark and sweep but without IncrRefCout and DecrRefCount is a torture and forced me to adapt my garbage collector. Finally, a note in their own right: will from now on, during the development of a work package, only source code and binaries for x86_64 - created Linux. The reason lies in the necessary acceleration of the development. The packages for other operating systems like Windows or BSD / MacOSX only be made at the end of a Work-Package. Ports and specific adjustments can be booked as a consulting service. mfg Andreas Otto (aotto1968) -BEGIN PGP SIGNATURE- Version: GnuPG v2.0.15 (GNU/Linux) Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org/ iQEcBAEBAgAGBQJMwcYgAAoJEGTcPijNG3/ALfAH/2k6X1Ry04V4r6k/KYdXocTD 7VmY1NYbGlOIlF5kyM07cDX97tlZG6kxV/RhjF435UZdqcDUkqeQBhULNps5Tugr 6P6n5bPVoTLCQNKpAKE4MAqsia8YmRDn34geDpjczicWLpYEMAoiOHYnGOjzSEba esEm0ZKnT5ya5YbRkvnnlr6F1aYWW2zEoz1W9oxVPZ2kjf15reCD4rNBziJNTDRI D5S+UoRB5vkwFmVdryxxwZVBxkUTqJv+XopT7eMpY6UF+Z9dTetiaI7jGTvKxCts aO9t51kwDnaKwr1wOtgQf51/+stXeXrC1fB45+N0M1a9ugMhvIKXfBcWN9mBysg= =3EFe -END PGP SIGNATURE- -- http://mail.python.org/mailman/listinfo/python-list
ANNOUNCE - NHI1 / PLMK / libmsgque - Work-Package-II
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Dear User, ANNOUNCE:Work-Package-II libmsgque: Application-Server-Toolkit for C, C++, JAVA, C#, TCL, PERL, PYTHON, VB.NET PLMK: Programming-Language-Microkernel NHI1: Non-Human-Intelligence #1 SUMMARY === After six month research workshop with bicycling through the 'Black Forrest', 'Vosges', 'Switzerland' / 'French' and 'Italy' Alps ... I'm back to serve for Work Package II of NHI1 Read More At http://nhi1.berlios.de/theLink/wp2.htm mfg Andreas Otto (aotto1968) -BEGIN PGP SIGNATURE- Version: GnuPG v2.0.15 (GNU/Linux) Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org/ iQEcBAEBAgAGBQJMpb3oAAoJEGTcPijNG3/AzuMH/jU2HKpDL56Imlx25ztWR/Jl wESKLLj8vBgiFWDUprxpBYF5CHGblXCMfk1CowfnjJ7TiuLKMNhTv/W3V/9gCYbb C9wNZ6lpl9NYBnfD5QuR6vJsPK9pYY0nhcCh3W1jHOXZ/vlafGhvQETFZp32ukXz JTWx1LxB4NNxfuXBH5pRnDM9olAVMzndjr/+5QtmM3tQIOKV59wUJWn+1wz+N4Ol ZwrqYEi355sdFqWdANqlWx5aihInfM25HPZj60lF7lTHWAItJFZDAgjzd55I04wO S+hvlL18jyTJaJGy/otdYEj3IdVJvc/UzMcOiz9UBSThvhbmTf1OIYr2X9zyGRM= =gWr2 -END PGP SIGNATURE- -- http://mail.python.org/mailman/listinfo/python-list
ANNOUNCE: Major Feature Release - NHI1-0.7, PLMK-1.6 and libmsgque-4.5
Dear User, ANNOUNCE:Major Feature Release libmsgque: Application-Server-Toolkit for C, C++, JAVA, C#, TCL, PERL, PYTHON, VB.NET PLMK: Programming-Language-Microkernel NHI1: Non-Human-Intelligence #1 SUMMARY === This is a 'major-feature-release' to add 'longtime-transaction' support. A 'longtime-transaction' is a transaction with a possible infinite time period between the start and the end. A 'longtime-transaction' is always a 'persistent-transaction' too. The 'persistent' support is available as an in-memory solution on the 'application-server' or in an additional 'bidirectional-filter' available for the next release. A typical scenario for a 'longtime-transaction' is: * A user with a client connect to the server and start a 'longtime-transaction' job. After a while the user shutdown the client and leave the office. At the next morning the user start the client again and the results are send from the server to the client. * On a space mission the time-overhead between transaction start and end is large. It is usually not possible to keep the client-server-connection open all the time. * On a military action-system the enemy try to interrupted the client-server-connection to disable data communication. To use a 'longtime-transaction' the results are send to a 'client-service' registered with MqServiceCreate. This service and addtional data (I call this data 'local-context-data') have to be added to the 'longterm-transaction' package to be available in the result. On the 'link-target' the 'local-context-data' is initial stripped from the 'data-package' and is later added to the results again. The 'local-context-data' is added to the 'data-package' with MqSendT_START and MqSendT_END. The 'local-context-data' is read from the 'data-package' with MqReadT_START and MqReadT_END. LINKS = libmsgque: http://nhi1.berlios.de/theLink/index.htm NHI1: http://nhi1.berlios.de/ DOWNLOAD: http://developer.berlios.de/projects/nhi1/ mfg Andreas Otto (aotto1968) -- http://mail.python.org/mailman/listinfo/python-list
ANNOUNCE: libmsgque-4.1, PLMK-1.2, NHI1-0.3
Dear User, ANNOUNCE: Christmas-Present-Release libmsgque: Application-Server-Toolkit for C, C++, JAVA, C#, TCL, PERL, PYTHON, VB.NET PLMK: Programming-Language-Microkernel NHI1: Non-Human-Intelligence #1 SUMMARY === libmsgque: add the new technology called: bi-directional filter to extend the functionality of an existing client/server application without implementation details available. http://nhi1.berlios.de/theLink/filter.htm NHI1: add new subproject theGuard including the new tool aguard to encrypt an existing libmsgaue client/ server link. http://openfacts2.berlios.de/wikien/index.php/ BerliosProject:NHI1_-_TheGuard LINKS = libmsgque: http://nhi1.berlios.de/theLink/index.htm NHI1: http://nhi1.berlios.de/ DOWNLOAD: http://developer.berlios.de/projects/nhi1/ mfg Andreas Otto (aotto1968) -- http://mail.python.org/mailman/listinfo/python-list
ANNOUNCE: libmsgque 3.6 with perl support
Dear Users, = ?? I would like to announce libmsgque 3.6 and PLMK 1.1 ?? libmsgque is an infrastructure to write programming language ?? independent software using the : ?? ?? Programming Language Micro Kernel ?? architecture. Never was it so easy to write an application server ?? by your own or to extend your software from local-size to company-size. ?? LibMsgque does now support software written in: ?? ?? C, C++, C#, JAVA, Python, Tcl and ?? ??!! ?? Perl ?? !! ?? available on Unix or Windows OS. ?? Performance is always a story and is measured for every supported ?? language on its own. Read more at: ?? ?? http://libmsgque.sourceforge.net/performance.htm CHANGES ?? - Add new programming language Perl ?? The new language is added if the --enable-perl configure switch is used. ?? Create and Install new perl module Net::Msgque. ?? Use native perl MakeMaker build environment to create Perl-Conform build ?? and perform a Perl-Conform installation. - The dependency for Tcl is now optional ?? The Tcl language is added if the --enable-tcl configure switch is used. ?? Be aware that the test-environment depend on Tcl - Add asynchronous background handler ?? This handler is used to process errors not belonging to a transaction in ?? a centralized manner. The feature was implemented as Interface (C++,Java ?? ,C#) or as configuration option (C,Perl,Python,Tcl). - Add signature based type checking ?? Non-Typed languages without usable class or inheritance type checking now ?? using this feature to create type-save code. This feature is used for Tcl ?? and Perl. - Add new Performance Test environment ?? The new environment using a separated directory performance and does ?? create better results combined with a clearly arranged result-table. Read ?? more in performance/README READ MORE == ?? http://libmsgque.sourceforge.net/ ?? http://sourceforge.net/projects/libmsgque/ AUTHOR === ?? aotto1968 -- http://mail.python.org/mailman/listinfo/python-list
ANNOUNCE libmsgque 3.5, ANNOUNCE (P)rogramming (L)anguage (M)icro(K)ernel 1.0
Dear Users; this is the ANNOUNCEMENT of: libmsgque 3.5 and the *first* public ANNOUNCEMENT of the: (P)rogramming (L)anguage (M)icro(K)ernel 1.0 libmsgque 3.5 = LibMsgque is an OS independent, programming language independent, and hardware independent solution to link applications together to act like a single application. In other words, LibMsgque is an application-server toolkit. changes from libmsgque 3.5 === - Add new programming language C++ : The new language is added if the --enable-cxx configure switch is used. - C++ add a new design pattern to libmsgque based on the language requirements: 1. In C++ a constructor can not call a virtual method. This is the main difference between C++ and C# or JAVA. This require that Object creation/deletion and Link creation/deletion have to be separated into two different tasks. The former (C# and JAVA) implementation was to use a feature-rich constructor to setup a Link during object creation. This was changed. A new methods LinkCreate(..) and LinkCreateChild(..) were introduced for Link setup as counterpart for the LinkDelete() method. A new method ConfigGetIsConnected() return the Link-Status of the Object-Instance. With the new Pattern it is now possible to reuse a object-instance. 2. In C++ a RTTI based Object-Creation is not possible. This task was shifted into a Factory pattern. A virtual method called: virtual MqC* Factory() const is used to return a new object instance of the top-most class. The Factory pattern was used as default design pattern because of: - far more easy as the RTTI design pattern - available for every programming language - change the default visibility for GCC functions to hidden - fvisibility=hidden. - This support the Windows binary design on Linux to create faster code. - redesign of the main struct MqS and delete many of the data pointers - create smarter and faster code - only *one* pointer is used to used the entire API - the Filter mode was redesigned and is using the Master/Slave pattern - code cleanup and standardization - the IFilterFTR / IFilterEOF does now support a pipelining as default - the Error handling was redesigned and moved into an independent object or class. This was necessary to transport an error through the error stack of the embedded programming language. (P)rogramming (L)anguage (M)icro(K)ernel 1.0 JAVA says: YOU can do whatever YOU want on every os YOU require but YOU have to use JAVA C# says: YOU can do whatever YOU want on every os YOU require but YOU have to have to use a CLR compatible language I say: YOU can do whatever YOU want on every os YOU require using the programming language YOU like most but YOU have to use the PLMK design pattern The PLMK is an afford to shift the design responsible away from the very heteros group of language designers to a free open and mature framework called PLMK. This framework is available for C, C++, C#, JAVA, PYTHON and TCL and was designed as C/C++ shared library. The library is able to plugin into the hosting programming language to take-over the responsibly for the application design. PLMK is *not* a programming language, the software programming is done using the hosting programming language *only*. - libmsgque is the first component of the PLMK framework - GET IT read more at: http://libmsgque.sourceforge.net/ get the software from:http://sourceforge.net/projects/libmsgque/ subversion archive: https://libmsgque.svn.sourceforge.net/svnroot/ /libmsgque/tags/libmsgque-3.5/ mfg aotto1968 -- http://mail.python.org/mailman/listinfo/python-list
Re: problem to write a THREAD enabled python extension
Stefan Behnel wrote: You forgot to create a thread state for the new thread. See the PyThreadState_New() function. this does not really solve the problem even if the original error does no happen anymore ... but a bucket of other error happen sometimes and this mean that time and (I call it so) internal state stuff has influence on the problem and create errors like: 1. http://mail.python.org/pipermail/python-list/2004-January/242740.html 2. various PyThreadState_Get - PyThreadState_Get: no current thread 3. sometimes ThreadState has NULL sometimes not and NULL create an CORE for tstate pointer access operations 4. ... a lot of other problems too all problems together I come to the conclusion: 1. I spend ~ 1week for a job done in C# or java in a day - and have no usable solution 2. python need a couple of 100+ C API function for the same job java need 10+ 3. the design on the C-API is amateurish - significant parts are implemented as GLOBAL variables 4. the thread support is not more than a joke - go to 3 5. after pay a lot of effort to get something working the final solution is significant slower than C# or JAVA 6. you can not truss any-thing in python because you never know if under some circumstance you get a CORE the resulting PYTHON code is usable but not significant more readable as JAVA, C* or even C++ code mfg aotto1968 -- http://mail.python.org/mailman/listinfo/python-list
problem to write a THREAD enabled python extension
Hi, the following scenario: 1. using GIL 2. a pthread is created in a library and have to be announced to python 3. the thread is created in a PyObject_CallObject function call from extension c code using a other extension c-code function called from python code python CRASH with invalid thread-state object http://www.linuxjournal.com/article/3641 has information that GIL is NOT able to keep thread state information for cross thread operation. workaround - .. PyGILState_STATE gilState = PyGILState_Ensure(); // PyEval_RestoreThread // Call Python/C API... PyGILState_Release(gilState); // PyEval_SaveThread .. // Create new thread... .. PyGILState_STATE gilState = PyGILState_Ensure(); // PyEval_RestoreThread // Call Python/C API... PyGILState_Release(gilState); // PyEval_SaveThread .. the problem is that PyGILState_Release have to be done in the call of PyObject_CallObject and not in the extension c-code - for now i call it impossible to provide thread support if thread is created in extension code - more info by valgrind ==29105== ==29105== Invalid read of size 4 ==29105==at 0x4F099AB: PyEval_EvalFrameEx (ceval.c:3728) ==29105==by 0x4F0B476: PyEval_EvalCodeEx (ceval.c:3180) ==29105==by 0x4E9DE50: function_call (funcobject.c:630) ==29105==by 0x4E7610C: PyObject_Call (abstract.c:2160) ==29105==by 0x4E8BEFB: method_call (classobject.c:323) ==29105==by 0x4E7610C: PyObject_Call (abstract.c:2160) ==29105==by 0x4F04975: PyEval_CallObjectWithKeywords (ceval.c:3624) ==29105==by 0x72132DF: pymsgque_ProcCall (misc_python.c:48) ==29105==by 0x742A23E: pTokenInvoke (token.c:327) ==29105==by 0x742E7E2: sMqEventStart (msgque.c:908) ==29105==by 0x7425365: pEventStart (event.c:360) ==29105==by 0x742ECBF: MqProcessEvent (msgque.c:1081) ==29105==by 0x7215F24: pymsgque_ProcessEvent (context_python.c:176) ==29105==by 0x4F09BFA: PyEval_EvalFrameEx (ceval.c:3961) ==29105==by 0x4F0B476: PyEval_EvalCodeEx (ceval.c:3180) ==29105==by 0x4F0B58A: PyEval_EvalCode (ceval.c:650) ==29105==by 0x4F2EE29: PyRun_FileExFlags (pythonrun.c:1697) ==29105==by 0x4F2F134: PyRun_SimpleFileExFlags (pythonrun.c:1182) ==29105==by 0x4F43CFB: Py_Main (main.c:625) ==29105==by 0x400D11: main (python.c:152) ==29105== Address 0x24 is not stack'd, malloc'd or (recently) free'd - extension code ... (including some debugging output) M0 PyGILState_STATE gstate = PyGILState_Ensure(); PyObject *result; PyObject * const self = (PyObject*) CONTEXT-self; PyObject * const callable = (PyObject*) dataP; enum MqErrorE ret = MQ_OK; // clean Python and libmsgque error PyErr_Clear(); MqErrorReset(msgque-error); // call the function M1 printP(PyThreadState_Get()) if (PyMethod_Check(callable) PyMethod_Self(callable) == self) { //PyGILState_Release(gstate); result = PyObject_CallObject(callable, NULL); //gstate = PyGILState_Ensure(); } else { //PyGILState_Release(gstate); result = PyObject_CallFunctionObjArgs(callable, self, NULL); //gstate = PyGILState_Ensure(); } M2 printP(PyThreadState_Get()) Py_XDECREF(result); // no error return OK if (PyErr_Occurred() != NULL) { NS(ErrorSet) (self); ret = MqErrorGetCode(msgque-error); } PyGILState_Release(gstate); return ret; } with GIL wrapper 'PyGILState_Release' and 'PyGILState_Ensure' enabled for 'PyObject_CallObject' the following SEG happen if (PyMethod_Check(callable) PyMethod_Self(callable) == self) { PyGILState_Release(gstate); result = PyObject_CallObject(callable, NULL); gstate = PyGILState_Ensure(); } else { PyGILState_Release(gstate); result = PyObject_CallFunctionObjArgs(callable, self, NULL); gstate = PyGILState_Ensure(); } pymsgque_ProcCall(misc_python.c:32) - 0 pymsgque_ProcCall(misc_python.c:44) - 1 pymsgque_ProcCall(misc_python.c:45) - PyThreadState_Get()0x68c2ad8 ==29223== ==29223== Thread 2: ==29223== Invalid read of size 4 ==29223==at 0x4E760EA: PyObject_Call (abstract.c:2158) ==29223==by 0x4F04975: PyEval_CallObjectWithKeywords (ceval.c:3624) ==29223==by 0x72132F7: pymsgque_ProcCall (misc_python.c:48) ==29223==by 0x7430092: MqLinkCreate (msgque.c:644) ==29223==by 0x7430AB0: MqDefaultLinkCreate (msgque.c:681) ==29223==by 0x742F73B: MqLinkCreate (msgque.c:346) ==29223==by 0x7432C3D: sSysServerThreadCreate (sys.c:502) ==29223==by 0x521606F: start_thread (in /lib64/libpthread-2.9.so) ==29223==by 0x5B5B10C: clone (in /lib64/libc-2.9.so) ==29223== Address 0x18 is not stack'd, malloc'd or (recently) free'd ==29223== ==29223== Process terminating with default action of signal 11 (SIGSEGV) mfg aotto1968 -- http://mail.python.org/mailman/listinfo/python-list
ANNOUNCE: libmsgque 3.4
Dear Users, I would like to provide a new !! Major Feature Release !! of LibMsgque (3.4) This Release Introduce a new technology called Master / Slave - Link and is used to create, mange and configure a MESH of node's (process or thread) distributed over multiple hosts. But a picture says more then all the words, read more at: - http://libmsgque.sourceforge.net/master_versa_slave.htm To get the Details and the Downloads read more at: - http://libmsgque.sourceforge.net/ P.S. sourceforge introduce a new interface yesterday and this has still some bugs ... to get the release 3.4 files you have to use the files link. mfg Andreas Otto -- http://mail.python.org/mailman/listinfo/python-list
ANNOUNCE: libmsgque 3.3
ANNOUNCE a majorfeature improvement of libmsgque ... What is LibMsgque = LibMsgque is an OS independent, Programming Language independent and Hardware independent solution to link applications together to act like a single application. Or with other words, LibMsgque is an Application-Server toolkit. Highlights of the current Release: = This release introduce the C# port and the long waiting managed code interface to libmsgque. This interface allow writing language-bindings to libmsgque without using an addition C library as translator between the native language and libmsgque. The skip of this translation library introduce a new performance leader using C# together with the mono tools and outperform JAVA, TCL, PYTHON. On windows the mono tool and the microsoft native C# is supported. The performance-comparison between c, tcl, python, C# and java was updated: - results: http://libmsgque.sourceforge.net/performance.htm The Web-Site was updated: = - http://libmsgque.sourceforge.net For a fast introduction use the following URL: - http://libmsgque.sourceforge.net/features.htm mfg Andreas Otto -- http://mail.python.org/mailman/listinfo/python-list
Re: PYTHONPATH on Windows XP module load problem
Hi, I setup the PYTHONPATH environment variable too does windows use this variable ? mfg Andreas Otto -- http://mail.python.org/mailman/listinfo/python-list
Re: PYTHONPATH on Windows XP module load problem
Hi, I solved the problem ... thank you for your help mfg Andreas Otto -- http://mail.python.org/mailman/listinfo/python-list
ANNOUNCE: libmsgque 3.2
ANNOUNCE a minor feature improvement of libmsgque ... What is LibMsgque = LibMsgque is an OS independent, Programming Language independent and Hardware independent solution to link applications together to act like a single application. Or with other words, LibMsgque is an Application-Server toolkit. Highlights of the current Release: = This release introduce a new windows build into the LibMsgque world. The build switched from the GNU toolchain to Visual C++ 2008 Express This is the official statement for this switch: The decision to use GNU tools on Windows including automake, autoconf, libtool and mingw was wrong. The tools were replaced by Visual C++ 2008 Express. The reason was the extremely low performance of the GNU tools on Windows which end up in a 20min overhead per configuration life-cycle and a 5min overhead per build. This end up in an additional TCO of 2000euro per release. In addition the performance-comparison between c, tcl, python and java was updated - results: http://libmsgque.sourceforge.net/performance.htm After quite a wile I'm now able to support python on windows The Web-Site was updated: = - http://libmsgque.sourceforge.net For a fast introduction use the following URL: - http://libmsgque.sourceforge.net/features.htm mfg Andreas Otto -- http://mail.python.org/mailman/listinfo/python-list
Re: PYTHONPATH on Windows XP module load problem
Hi, I try to use distutils and setup.py to create an C extension Now a list of problems: 1. I'm using automake, autoconf to setup the build-environment for example CPPFLAGS - how can I transport the CPPFLAGS on the commandline to setup.py I can not use the define_macros argument in the setup.py script 2. the following shared library is created: build/lib.linux-x86_64-3.0/pymsgque.so - in my tool a test environment is included this mean after a build but before install a test is done. this mean that the library have to be found and used by the test-environment. - the problem is that the directory name build/lib.linux-x86_64-3.0/ is system-depend - question: how I get an unique system independent name or just in general how I solve this kind of problem 3. why is no .pyd file created ? - pyd is the extension name supported mfg Andreas Otto -- http://mail.python.org/mailman/listinfo/python-list
Re: PYTHONPATH on Windows XP module load problem
Hi, after we know how your bathroom looks like ... I have done additional research. 1. setup a setup.py script 2. compiled the extension 3. copy the extension to the test directory - cp ../pymsgque/build/lib.win32-3.0-pydebug/pymsgque.pyd . 4. start the test $ python_d.exe ./server.py Traceback (most recent call last): File ./server.py, line 13, in module import pymsgque ImportError: No module named pymsgque [31909 refs] - same as before Question: - is the module was not found or could a found module not be loaded mfg Andreas Otto -- http://mail.python.org/mailman/listinfo/python-list
PYTHONPATH on Windows XP module load problem
Hi, I have the following problem using python on windows. I crated a binary extension called pymsgque.dll on windows. The same extension works fine on UNIX/Linux. The problem is on Windows. The build is no problem but python is not able to load this extension with import pymsgque and create the following error: Traceback (most recent call last): File server.py, line 13, in module import pymsgque ImportError: No module named pymsgque [31906 refs] the PYTHONPATH variable has the directory of pymsgque.dll location the build of python and the pymsgque extension was done using Microsoft Visual C++ Express Edition it seems that I missing something mfg Andreas Otto -- http://mail.python.org/mailman/listinfo/python-list
Re: PYTHONPATH on Windows XP module load problem
MRAB wrote: Andreas Otto wrote: Hi, I have the following problem using python on windows. I crated a binary extension called pymsgque.dll on windows. The same extension works fine on UNIX/Linux. The problem is on Windows. The build is no problem but python is not able to load this extension with import pymsgque and create the following error: Traceback (most recent call last): File server.py, line 13, in module import pymsgque ImportError: No module named pymsgque [31906 refs] the PYTHONPATH variable has the directory of pymsgque.dll location the build of python and the pymsgque extension was done using Microsoft Visual C++ Express Edition it seems that I missing something mfg Andreas Otto Does this help? http://pyfaq.infogami.com/is-a-pyd-file-the-same-as-a-dll Hi, this link is nice but I'm still confused ... 1. on LINUX I create a pymsgque.so and I can load this library with import pymsgque 2. in WINDOWS, I expect to create a pymsgque.dll and do the same as on unix import pymgque - is this behaviour is supported or not ??? 3. the hint with *.pyd is totally new to me and I don't know is this the official way to use dll's on windows or just a hack which works mfg Andreas Otto -- http://mail.python.org/mailman/listinfo/python-list
ANNOUNCE: libmsgque 3.1
ANNOUNCE a major feature improvement of libmsgque ... What is LibMsgque = LibMsgque is an OS independent, Programming Language independent and Hardware independent solution to link applications together to act like a single application. Or with other words, LibMsgque is an Application-Server toolkit. Highlights of the current Release: = This release introduce a couple of highlights into the LibMsgque World including the Python 3.01 support and a brand new Tcl/Java interface As bonus an C/Tcl/Java/Python performance test was added using the following conditions: 1. same basic native library - libmsgque (written in C) 2. same user - me 3. same performance management tool 4. same code workflow using the native language interface to link libmsgque with a language specific service handler 5. testing the following aspects: a) application startup/shutdown performance b) synchronous and asynchronous transaction performance c) spawn, fork and thread process creation performance - results: http://libmsgque.sourceforge.net/performance.htm Programmer-Visible-Changes: === Add Python 3.01 support This is the next step to provide an OS and programming language independent solution New Tcl and Java Library binding Now Tcl, Java and Python using the same function namespace to improve the cross language code readability C library improvement including better error checking support Add more error-case checking Add new test hardware, apple iBook (ppc) running Debian 5 Put my old iBook back to live Re-Add big/little endian support Now be able to test endianness Improve 32Bit/64Bit support Code Cleanup Add new documentation Entire new documentation and examples were added The Web-Site was updated: = - http://libmsgque.sourceforge.net For a fast introduction use the following URL: - http://libmsgque.sourceforge.net/features.htm mfg Andreas Otto -- http://mail.python.org/mailman/listinfo/python-list
who is calling the base class __new__ method
Hi, I have the following example: 1. I create a new type in C with it's own tp_new called PyMqS_new 2. I use this type as basis-class for a python class called Server. class Server(pymsgque.MqS): - I checked: self.__class__.__bases__: (class 'pymsgque.PyMqS',) from a Server startup code and the base is available 3. A object of Server should create a new object of class Server in the C code of MqS using the following statement context-self = PyObject_GC_New(PyObject,(PyTypeObject*)context-class); class is the Server but the PyMqS_new is *not* called as expected - Why ? 4. I checked the code with a debugger and I find out that the python ServerObject create with PyObject_GC_New has the right pointer - ServerObject-ob_type-tp_new has a pointer to PyMqS_new - this seems to be fine I checked the tp_basicsize and this has a size of 40 seems ok from: http://docs.python.org/3.0/extending/newtypes.html If you want your type to be subclassable from Python, and your type has the same tp_basicsize as its base type, you may have problems with multiple inheritance. A Python subclass of your type will have to list your type first in its __bases__, or else it will not be able to call your type’s __new__() method without getting an error. You can avoid this problem by ensuring that your type has a larger value for tp_basicsize than its base type does. Most of the time, this will be true anyway, because either your base type will be object, or else you will be adding data members to your base type, and therefore increasing its size. An other aspect from your docu (same link as above): If you are creating a co-operative tp_new (one that calls a base type’s tp_new or __new__()), you must not try to determine what method to call using method resolution order at runtime. Always statically determine what type you are going to call, and call its tp_new directly, or via type-tp_base-tp_new. If you do not do this, Python subclasses of your type that also inherit from other Python-defined classes may not work correctly. (Specifically, you may not be able to create instances of such subclasses without getting a TypeError.) This I don't understand because the tp_base of MqS is Object and if I call the Object tp_new from my new static PyObject * PyMqS_new(PyTypeObject *type, PyObject *args, PyObject *kwds) { M0 ?? type-tp_base-tp_new( PyMqS_Obj *self = (PyMqS_Obj *)type-tp_alloc(type, 0); self-msgque = NULL; return (PyObject *)self; } mfg Andreas Otto -- http://mail.python.org/mailman/listinfo/python-list
Re: who is calling the base class __new__ method
Hi, found a solution - PyObject_GC_New seems not to be *not* the right function to create a new Python object with a base class included - PyType_GenericNew is the right one ... but this one is not documented from: http://docs.python.org/3.0/c-api/type.html = PyObject* PyType_GenericNew(PyTypeObject *type, PyObject *args, PyObject *kwds)¶ Return value: New reference. XXX: Document. = Question: What is the difference between these both functions and why is one working and the other not ? -- http://mail.python.org/mailman/listinfo/python-list
best void return of a member function
Hi, I'm writing a native language binding for a library. http://libmsgque.sourceforge.net/ Every native method called by PYTHON have to return a PyObject* even if the function itself does not return anything. I have 2 possibilities for return a PyObject* 1. the first argument of the method function - return self; 2. an entire new empty object - return Py_BuildValue(); Question: what is the best return statement for a void function ? P.S: NULL is not allowed, because NULL is returned in the case of an error mfg Andreas Otto -- http://mail.python.org/mailman/listinfo/python-list
Re: best void return of a member function
Andreas Otto wrote: well propable found the answer by my own ... Py_RETURN_NONE should be the best -- http://mail.python.org/mailman/listinfo/python-list
Re: best void return of a member function
Stefan Behnel wrote: Andreas Otto writes: I'm writing a native language binding for a library. http://libmsgque.sourceforge.net/ Every native method called by PYTHON have to return a PyObject* even if the function itself does not return anything. [...] Question: what is the best return statement for a void function ? Hmmm, this sounds like your goal is to write an exact 1:1 wrapper of the C library API (for which there are tools like SWIGfriends). If the library happens to have a rather unusual, close-to object oriented, high-level C API, that might work. Otherwise, you might want to try to wrap it in a more Pythonic lookfeel style, that wraps operations and use-cases rather than plain functions. That should make it easier to hide things like memory allocation and other C implementation details from users, and will generally increase the performance of your binding, as it will require less calls for larger operations in C space. Stefan Thanks for your help .. I'm almost finished ... it took me ~1week from a non Python developer to: 1. download, install python 2. learn how to use python, syntax, class, objects, protocol, ... 3. learn how to use the native interface, ~hundreds of C functions 4. finally create a project add my native code, compile, build ... test - I just add one extra type I call them PyMqS_type all the special tools are not necessary because if you wrote one language interface you can write every language interface - the tasks are allways the same... just the language-specific-names are changing mfg Andreas Otto -- http://mail.python.org/mailman/listinfo/python-list
Re: best void return of a member function
Propable you can help me with an other problem ... the following code crash with: ==31431== Process terminating with default action of signal 11 (SIGSEGV) ==31431== General Protection Fault ==31431==at 0x4EA5151: PyObject_GenericGetAttr (object.c:982) ==31431==by 0x4EF1FBD: PyEval_EvalFrameEx (ceval.c:1941) ==31431==by 0x4EF5261: PyEval_EvalCodeEx (ceval.c:2869) ==31431==by 0x4E91618: function_call (funcobject.c:628) ==31431==by 0x4E6C7AC: PyObject_Call (abstract.c:2161) ==31431==by 0x4E8055A: method_call (classobject.c:323) ==31431==by 0x4E6C7AC: PyObject_Call (abstract.c:2161) ==31431==by 0x4E6DFFE: PyObject_CallFunctionObjArgs (abstract.c:2392) ==31431==by 0x6B8A43B: Python_pymsgque_pCallVoidMethod (pymisc.c:36) ==31431==by 0x6B8991D: PythonChildCreate (pymsgque.c:89) ==31431==by 0x6D9E15F: pTokenCheckSystem (token.c:547) ==31431==by 0x6DA5110: pReadHDR (read.c:385) with the following scenario 1. I have an object on an class 2. this object has a callable method context-config 3. I create an additional object of the same class 4. now I want to bind the context-config to the new object 5. I use: context-config = PyMethod_New(PyMethod_GET_FUNCTION(context-config), (PyObject*)context-self); 6. but call this object with PyObject_CallFunctionObjArgs create a crash this is my C code with some helper if (context-self == NULL) { context-self = PyObject_New(PyMqS_Obj,(PyTypeObject*)context-class); M0 printO(PyMethod_Function(context-config)) if (context-config != NULL) context-config = PyMethod_New(PyMethod_GET_FUNCTION(context-config), (PyObject*)context-self); M1 if (context-create != NULL) context-create = PyMethod_New(PyMethod_GET_FUNCTION(context-create), (PyObject*)context-self); M2 printO(context-config) printO(PyObject_Type(context-config)) } // 4. set the 'hdl' context-self-msgque = msgque; // 5. init the new object M3 if (msgque-config.server == MQ_YES context-config != NULL) { switch (NS(pCallVoidMethod)(msgque, context-config, NULL)) { case MQ_OK: break; case MQ_CONTINUE: case MQ_ERROR:goto error; } } M4 this is the output: output from the first object without error: configO - bound method Server.config of __main__.Server object at 0x2acee8eb7830 PyObject_Type(configO) - class 'method' PythonChildCreate(pymsgque.c:87) - 3 PythonChildCreate(pymsgque.c:95) - 4 output from the second object with the crash: PythonChildCreate(pymsgque.c:71) - 0 PyMethod_Function(context-config) - function config at 0x2acee8ead8d0 PythonChildCreate(pymsgque.c:75) - 1 PythonChildCreate(pymsgque.c:78) - 2 context-config - bound method Server.config of __main__.Server object at 0x2acee8a67b20 PyObject_Type(context-config) - class 'method' PythonChildCreate(pymsgque.c:87) - 3 -- http://mail.python.org/mailman/listinfo/python-list
Re: Question to python C API
Hi, just my first step in Cython 1. download Cython-0.11.1 2. read INSTALL.txt (1) Run the setup.py script in this directory as follows: python setup.py install This will install the Pyrex package into your Python system. Question 1: Why you wall it Pyrex package ? 3. this happen python ./setup.py install Traceback (most recent call last): File ./setup.py, line 5, in module from Cython.Compiler.Version import version File /home/dev1usr/src/Cython-0.11.1/Cython/__init__.py, line 2, in module from Shadow import * ImportError: No module named Shadow 4. I use a thread enabled python V3 Question 2: What I have to do ? 4. than I try the second part from INSTALL.txt (2) If you prefer not to modify your Python installation, arrange for the directory containing this file (INSTALL.txt) to be in your PYTHONPATH. On unix, also put the bin directory on your PATH. 5. and start to build the hello world example I changed: print Hello World to: print(Hello World)- this is V3 6. but got the following error cat setup.py from distutils.core import setup from distutils.extension import Extension from Cython.Distutils import build_ext setup( cmdclass = {'build_ext': build_ext}, ext_modules = [Extension(pymsgque, [helloworld.pyx])] ) python setup.py build_ext --inplace Traceback (most recent call last): File setup.py, line 3, in module from Cython.Distutils import build_ext ImportError: No module named Cython.Distutils 7. a little bit to much errors for the first step, isn't it ? mfg Andreas Otto -- http://mail.python.org/mailman/listinfo/python-list
howto submit documentation bugs on python V3 web-site ?
Hi, is an email or something else available ? -- http://mail.python.org/mailman/listinfo/python-list
Re: Question to python C API
alex23 wrote: On Apr 17, 4:22 pm, Andreas Otto aotto1...@onlinehome.de wrote: Question 1: Why you wall it Pyrex package ? From the first paragraph on the Cython site: Cython is based on the well-known Pyrex, but supports more cutting edge functionality and optimizations. python ./setup.py install Traceback (most recent call last): File ./setup.py, line 5, in module from Cython.Compiler.Version import version File /home/dev1usr/src/Cython-0.11.1/Cython/__init__.py, line 2, in module from Shadow import * ImportError: No module named Shadow Did you unpack the Cython archive correctly? Is there a Shadow.py in your src/Cython-0.11.1/Cython/ folder? yes 4. than I try the second part from INSTALL.txt (2) If you prefer not to modify your Python installation, arrange for the directory containing this file (INSTALL.txt) to be in your PYTHONPATH. On unix, also put the bin directory on your PATH. Traceback (most recent call last): File setup.py, line 3, in module from Cython.Distutils import build_ext ImportError: No module named Cython.Distutils Did you follow the 2nd set of instructions modify both your PYTHONPATH PATH env vars? Have you confirmed they're correct? This is the sort of error I'd expect if those weren't set up properly. I put the the Cython-0.11.1 into the PATH and don't modify the PYTHONPATH the INSTALL.txt say: On unix, *also* put the bin directory on your PATH but I think I found the reason I have to set the PYTHONPATH to this directory *and* setup the PATH. I understand *also* as something like or but now the following error happen: PYTHONPATH=~/ext/x86_64-suse-linux/thread/bin/Cython-0.11.1/ PATH=$PATH:~/ext/x86_64-suse-linux/thread/bin/Cython-0.11.1/ python ./setup.py build_ext --inplace Traceback (most recent call last): File ./setup.py, line 3, in module from Cython.Distutils import build_ext File /home/dev1usr/ext/x86_64-suse-linux/thread/bin/Cython-0.11.1/Cython/__init__.py, line 2, in module from Shadow import * ImportError: No module named Shadow 7. a little bit to much errors for the first step, isn't it ? Yes, however none of these happened when I just installed Cython to the XP, OSX Ubuntu boxen I'm working on, so this isn't usual behaviour. What is your setup? What OS? SuSE 10.3, I have compiled python on my own and install it in: ~/ext/x86_64-suse-linux/thread -- http://mail.python.org/mailman/listinfo/python-list
Re: Question to python C API
Andreas Otto wrote: alex23 wrote: Did you unpack the Cython archive correctly? Is there a Shadow.py in your src/Cython-0.11.1/Cython/ folder? yes dev1...@linux02:~/ext/x86_64-suse-linux/thread/bin/Cython-0.11.1 ls -al Cython/Shadow.py -rw-r--r-- 1 dev1usr users 4130 3. Apr 10:52 Cython/Shadow.py mfg Andreas Otto -- http://mail.python.org/mailman/listinfo/python-list
[issue5777] unable to search in python V3 documentation
New submission from Andreas Otto aotto1...@users.sourceforge.net: Hi, if I search for sys.argv I get Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories. but its available at: http://docs.python.org/3.0/library/sys.html -- assignee: georg.brandl components: Documentation messages: 86057 nosy: aotto1968, georg.brandl severity: normal status: open title: unable to search in python V3 documentation type: resource usage versions: Python 3.0 ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue5777 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
Re: Question to python C API
Hi, I want to make a language binding for an existing C library http://libmsgque.sourceforge.net is this possible ? -- http://mail.python.org/mailman/listinfo/python-list
Re: Question to python C API
Yes, you are right ... I read more and found the doc about this ... the problem I have is something more tricky ... I allready have an extension written for java and the easyest thing would be use this as template and replace the java specific calls with python calls ... but the python C API is much more complex than java JNI. I don't understand why because the task is allways the same the problem is that i have a C api but don't want to use a 1 to 1 translation of the C functions to python. java generate the stub with java.h and you have to fill the stub with code even if it is just a function call of a C api function with near the same name. for me as user I would prefer the exact same way in python to: 1. write a python wrapper class 2. declare all external function with native 3. call python_h to create the necessary C header 4. and let the user bill the body 5. this require to have a clean and small language native interface (JNI fit on one web page that's it) but i have helper functions which , for example, create threads and python module have to attach to this thread. the problem with such kind of framework is usually that you start with the easy stuff and than (after a couple of days/weeks) you come to the difficult stuff and you have to figure out that this kind of problem does not fit into the tool. stuff what I do is: 1. create objects on the fly as connection handle 2. do callbacks from C to Python 3. create and delete threads or manage to continue work after an fork 4. is server mode start an event-loop and never come back what I want: I want to use this tool but still be able to intermix parts of my C helper code with the python code question: it is possible to write C and python code into the same file ? -- http://mail.python.org/mailman/listinfo/python-list
Question to python C API
Hi, I have the following question ... I write a custom *.init method and expect a variable number or arguments This are my questions: 1.I need something like a for loop to analyse this arguments For now I try the PyArg_ParseTupleAndKeywords but i missing somehing like an Object-Array return value as format 2.can i combine variable args with keywords ? because it will fit into my spec to use both together 3.I want to retrieve a bool object as int value, where is a format O and O! for a type object HOWTO put the type into the function from above mfg Andreas Otto -- http://mail.python.org/mailman/listinfo/python-list
python module developer wanted for 'libmsgque'
Hi, I'm a the maintainer for the new project 'libmsgque' hosted at SF (see below for details) and need a volunteer to develop the language bindings for python. Is somebody available to take over this job ? An example language binding for tcl is allready available. This is the initial announcement: ANNOUNCE: libmsgque2.3-beta2 The libmsgque project is an infrastructure for linking applications together to act like a single application. This is done using Unix or inet domain sockets. The framework handles all aspects of setting up and maintaining the link in addition to starting and stopping the different applications, starting and stopping the communication interface, sending and receiving packages, reading and writing data from or into packages, setting up and maintaining the event handling for asynchronous transfers, and propagating warnings or errors. WHERE TO GET As usual, it is available from: http://libmsgque.sourceforge.net/ http://sourceforge.net/projects/libmsgque/ WHAT'S NEW == This is the initial announcement WHAT IS IT == First of all it is a framework to link commands together to avoid the traditional shell pipline using a similar approach as MS PowerShell. To get more information's please use the following links: 1. an overview about the basic concept: http://libmsgque.sourceforge.net/overview.htm 2. the man page of the tclmsgque extension: http://libmsgque.sourceforge.net/tclmsgque.htm Regards, Andreas Otto (aotto1968) -- http://mail.python.org/mailman/listinfo/python-list