2011/10/13 Jean-Sebastien Delfino <jsdelf...@apache.org>: > On Tue, Oct 11, 2011 at 1:58 AM, Giorgio Zoppi <giorgio.zo...@gmail.com> > wrote: >> >> > Hi there! a few thoughts: >> > Tuscany-cpp has a hard dependency on HTTPD, used as runtime container >> > instead or writing my own. >> > Not sure if HTTPD mods can be easily ported to LightHTTPD. If it's >> > feasible >> > and people want to try, I can help with any questions you have on the >> > Tuscany HTTPD mods. >> > Some sizing info posted to the Tuscany user list last year, showing that >> > HTTPD can be built small: >> > http://marc.info/?l=tuscany-user&m=128031058024758&w=2 >> > Hope this helps. >> >> Hi Jean Sebastian, >> some thoughts about SCA native. The roading map might be: >> + remove pthread dependency in parallell.hpp with the new c++ >> concurrent features. g++, Intel C++, MS C++ support really well. Simply a thread could be created:
#include <thread> #include <iostream> void my_thread_func() { std::cout<<"hello"<<std::endl; } int main() { std::thread t(my_thread_func); t.join(); } and compiled: g++ thread.cpp -o thread -Wall -std=c++0x -lpthread on linux for example. For the mutex: http://www.devx.com/SpecialReports/Article/38883/1954 The enviroment could be different and pthread not supported. > Do you have a pointer to the equivalent features in g++, for example? g++ support threads, mutex. > Any equivalent in Clang? IIRC Daniel was trying to port the whole thing to > Clang and I'm interested in that too. no. > >> >> + remove Axis/C dependency with gSOAP. Axis/C relies on java runtime, >> afaik. > > Huh, you may want to double check that statement... yes. >> >> This remove as well Apache2 dependency > > ... and that one too :) Yes. >> >> + valuate if we can remove Curl dependency. >> In my idea there is the option to use boost at some extent. net-cpp >> based on boost asio, >> works as curl. > > Are you saying that net-cpp provides features equivalent to curl? got a > pointer to some docs with a feature comparison? http://github.com/downloads/mikhailberis/cpp-netlib-boostcon-paper/cpp-netlib.pdf http://cpp-netlib.github.com/ >> >> + replace the python dependency with PyMite. >> + remove any dependency on Java. >> + move to autoconf tools to CMake. >> + remove any SQL dependencies. >> + introduce regression tests Boost:Test >> + provide a flexible way for managing memory. You use apache pools. I >> am not sure if you can use in a stricted memory enviroment, >> with 512 kb/1M for example. > > Not sure if you've realized that, but -- with the exception of Curl, HTTPD > and APR -- all the 'dependencies' you've listed there are already optional > integration points. For example you only need Axis2/C if you decide to build > the Tuscany Axis2/C integration component, you only need Python if you > decide to build the support for Python components, only need PostgreSQL if > you decide to build the PostgreSQL integration component. Realized yesterday. > In other words the Tuscany runtime does *not* depend on Axis2/C, Python, > PostgreSQL, etc. >> The idea is to branch from your native and starting to removing >> things. Now I am thinking to a client. > > Yeah it's probably feasible to come up with a different runtime branch with > the 'server code' removed for use in a client-only environment. I'm not sure > how much code you'll be able to reuse eventually after you do that, so > another approach could be to start fresh for the client-only runtime and > pull bits of existing code where it actually helps... I keep only one branch and add feature that allows to customize the runtime.