Re: using stdcxx in tuscany/C++
Jean-Sebastien Delfino wrote: [...] I downloaded your 4.1.3 release, compiled it on Redhat Enterprise Linux 4, and ran some of your samples. I have two questions: - How do I run all your test cases? Unfortunately, in 4.1.3 you need to run them one at a time by hand (the stdcxx test suite was and still is being migrated from the Rogue Wave test harness and so things have been a bit in flux). Alternatively, you can try applying the following patch to see if it resolves the problem: http://svn.apache.org/viewvc?view=rev&revision=419995 This is resolved on trunk (where make run works again). I found a run executable in build/test, tried ./run ./* and got this: Invoking the run script directly will work but using make run is the recommended way to run the tests and examples (and locales). Summary: out of 69 programs 45 exited with non-zero status The tests fail due to incompatible command line options being passed to them by the test harness. This is the subject of the already fixed STDCXX-254: http://issues.apache.org/jira/browse/STDCXX-254. 24 failed to compile I'm not sure what exactly is behind these failures but it's not anything in the library. 0 failed to link 0 failed at least one assertion 0 exited with a signal 0 killed with signal 9 no regressions (this is baseline) 34% pass rate I'm assuming that the failures are my problem and I'm not running this correctly since all the samples I tried worked nicely :) They're not your problem but they're nothing to worry about, either. FWIW, we're working on publishing stdcxx test results across all our platforms. This project is very much in a proof of concept stage but you can get a glimpse of what it might look like here (ignore the links on the page, they are not functional yet): http://people.apache.org/~sebor/stdcxx-results.html - Also, I noticed that the build generates .a files. Is there an option to generate a .so shared library? Yes, there certainly is. For now you can use the BUILDMODE make variable. In the (near) future we also plan to provide a configure like interface to the build infrastructure to let people use the usual --enable-xxx switches (such as --enable-shared). The BUILDMODE variable is specified as taking a argument defined in the README as follows: is a comma-separated list of keywords describing how to build the library and the rest of the binaries. The following arguments are recognized: dcethreads - create a thread-safe library, use DCE threads debug - include debugging information optimized - optimized pthreads - create a thread safe library, use POSIX threads shared - create a shared library (archive is default) shared,archive - create an AIX shared archive threads - create a thread-safe library, use Solaris threads wide - generate wide (64-bit) code Read the full details here: http://svn.apache.org/repos/asf/incubator/stdcxx/trunk/etc/config/README Martin - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: using stdcxx in tuscany/C++
Martin Sebor wrote: Hi again, Just following up on this thread to see if there's anything we can do from our side to help you all with the migration, or any concerns or questions I can answer. I have noticed that some people are still using MSVC 6 to compile Tuscany. I'm curious whether there are any plans to upgrade to a more recent and more conforming compiler. Stdcxx is being tested with 7.1, and 8.0 (i86, IA64, and EM64T) but the 6.0 port would likely need some work. Regards Martin Martin, I downloaded your 4.1.3 release, compiled it on Redhat Enterprise Linux 4, and ran some of your samples. I have two questions: - How do I run all your test cases? I found a run executable in build/test, tried ./run ./* and got this: Summary: out of 69 programs 45 exited with non-zero status 24 failed to compile 0 failed to link 0 failed at least one assertion 0 exited with a signal 0 killed with signal 9 no regressions (this is baseline) 34% pass rate I'm assuming that the failures are my problem and I'm not running this correctly since all the samples I tried worked nicely :) - Also, I noticed that the build generates .a files. Is there an option to generate a .so shared library? Thanks, -- Jean-Sebastien - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: using stdcxx in tuscany/C++
Pete Robbins wrote: Hi Martin, We are using VC6 but have also got VC7 projects. Our command line build for windows uses the VC6 generated makefiles. We don't think that's possible in VC7+. Of course the best solution will be to create a "proper" commnad line build. We are just starting to restructure the code so will be modifying build. How do you manage yours? We are using Automake for linux platforms. Do you have a handcrafted windows build? The stdcxx "native" build infrastructure on Windows uses the VisualStudio IDE. A script automatically generates a VisualStudio solution for the appropriate version of the IDE (.NET 2003 or 2005) and populates it with projects for each component of stdcxx (the library, the test driver, each test and example program, etc.), and with the full set of configurations (debug, release, archive, dll, etc.) There is also a special project to configure the library to the the underlying architecture, operating system, and compiler (the same infrastructure is used for both MSVC and Intel C++ on Windows). This approach was chosen on the assumption that Windows developers preferred the IDE to the command line. Stdcxx can also be configured and built under Cygwin as well as under Misrosoft Windows Services for UNIX (with gcc) using its UNIX (GNU-make based) build infrastructure. It should be possible to use the same infrastructure with MSVC but we're not set up for it at this time. The Rogue Wave proprietary build infrastructure (not part of Apache stdcxx) takes a different approach to building stdcxx and generates makefiles for the project, so we could implement something similar in Apache stdcxx pretty quickly. Anyho... to start with we will be looking at the SDO project to use stdcxx as SCA is going through a bit of a transformation at the moment. I have a couple of questions regarding compatibility. If I have a library function that say returns a std::string and this is built using stdcxx, would any client of that function (separate library) also have to built with stdcxx?? In other words by exposing stl interfaces that are built using stdcxx are we mandating that any clients also use stdcxx? Yes. Different implementations of the same API may not be (and typically aren't) binary compatible. Once a dependency on a specific implementation (and sometimes a specific version) of the C++ Standard Library (or most any other C++ or even C library) is compiled into a library binary all other objects (libraries as well as the executable program itself) that use a C++ Standard Library must be compiled and linked with a compatible C++ Standard library binary. But since all (compliant) implementations of the C++ Standard Library conform to the same (source) standard this is not an issue as long as you distribute your library in source form. Martin - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: using stdcxx in tuscany/C++
Hi Martin, We are using VC6 but have also got VC7 projects. Our command line build for windows uses the VC6 generated makefiles. We don't think that's possible in VC7+. Of course the best solution will be to create a "proper" commnad line build. We are just starting to restructure the code so will be modifying build. How do you manage yours? We are using Automake for linux platforms. Do you have a handcrafted windows build? Anyho... to start with we will be looking at the SDO project to use stdcxx as SCA is going through a bit of a transformation at the moment. I have a couple of questions regarding compatibility. If I have a library function that say returns a std::string and this is built using stdcxx, would any client of that function (separate library) also have to built with stdcxx?? In other words by exposing stl interfaces that are built using stdcxx are we mandating that any clients also use stdcxx? Cheers, On 10/08/06, Martin Sebor <[EMAIL PROTECTED]> wrote: Hi again, Just following up on this thread to see if there's anything we can do from our side to help you all with the migration, or any concerns or questions I can answer. I have noticed that some people are still using MSVC 6 to compile Tuscany. I'm curious whether there are any plans to upgrade to a more recent and more conforming compiler. Stdcxx is being tested with 7.1, and 8.0 (i86, IA64, and EM64T) but the 6.0 port would likely need some work. Regards Martin Pete Robbins wrote: > Hi Martin. > > Using stdcxx is certainly on our list of things to investigate. There are 2 > ways in which we can use a C++ standard library: > 1) Internally withing our own implementation code > 2) Exposed on user APIs > > We currently use stl within our implementation and the use of stl > classes on > our interfaces is currently under discussion in the SCA C++ Specification > group. > > Ed Slattery took a look at using stdcxx but I have to admit I have had > little time to follw this up. > I need to take a look at your project and see what the benefits are. I will > set aside some time tomorrow to do this. > > Thanks for your interest. > > On 06/07/06, Martin Sebor <[EMAIL PROTECTED]> wrote: > >> >> Hi, >> >> We have heard that the Tuscany developers have been exploring >> the option of using Apache stdcxx as the common implementation >> of the C++ Standard Library for Tuscany/C++. We are wondering >> whether this is in fact the case and, if so, what the stdcxx >> team can do in order to make it as smooth as possible. >> >> Martin >> >> - >> To unsubscribe, e-mail: [EMAIL PROTECTED] >> For additional commands, e-mail: [EMAIL PROTECTED] >> >> > > - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- Pete
Re: using stdcxx in tuscany/C++
Hi again, Just following up on this thread to see if there's anything we can do from our side to help you all with the migration, or any concerns or questions I can answer. I have noticed that some people are still using MSVC 6 to compile Tuscany. I'm curious whether there are any plans to upgrade to a more recent and more conforming compiler. Stdcxx is being tested with 7.1, and 8.0 (i86, IA64, and EM64T) but the 6.0 port would likely need some work. Regards Martin Pete Robbins wrote: Hi Martin. Using stdcxx is certainly on our list of things to investigate. There are 2 ways in which we can use a C++ standard library: 1) Internally withing our own implementation code 2) Exposed on user APIs We currently use stl within our implementation and the use of stl classes on our interfaces is currently under discussion in the SCA C++ Specification group. Ed Slattery took a look at using stdcxx but I have to admit I have had little time to follw this up. I need to take a look at your project and see what the benefits are. I will set aside some time tomorrow to do this. Thanks for your interest. On 06/07/06, Martin Sebor <[EMAIL PROTECTED]> wrote: Hi, We have heard that the Tuscany developers have been exploring the option of using Apache stdcxx as the common implementation of the C++ Standard Library for Tuscany/C++. We are wondering whether this is in fact the case and, if so, what the stdcxx team can do in order to make it as smooth as possible. Martin - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: using stdcxx in tuscany/C++
Edward Slattery wrote: Hi, Yes, I have looked at using stdcxx, particularly in SDO code, but it applied to SCA also. We use stl internally, particularly lists, maps etc, and are currently Geoff Winn is kindly converting all my antique char* arrays to std:strings. When this is done, we would want to experiment with just inserting stdcxx in place of the implementations we use on windows and linux. This ought to be straight forward - right? Yes. You can glean the compiler command line arguments from the stdcxx examples. If you need any help setting things up let us know, we're very interested in making it work :) I guess there must be logistical problems to overcome in converting from Microsoft stl, but still using Developer Studio to build the projects? Are there problems with clashing header file names, and can we still use the MS runtime library etc? The Windows stdcxx build infrastructure generates Visual Studio projects (for Visual Studio 2003 and 2005 using either MSVC or Intel C++) that provide an IMO excellent example of how to set up your own projects for using the library (again, you can model it based on the stdcxx example programs/projects). There are no clashes with the native library headers or binaries just as long the stdcxx include directories are placed first in the preprocessor search path (via the -I command line option to the compiler driver) and the correct compiler options are used to avoid linking with the native C++ Standard Library (this is /NODEFAULTLIB for MSVC, and using gcc -lsupc++ instead of g++ to invoke the linker using the GNU C++ compiler). If you need to use Visual Studio 6 for some reason (I would suggest upgrading to a later version of the compiler) let us know so we can look into porting the Windows infrastructure to it and clean up the port (we have not tested with this compiler for a few months so there are likely to be issues). Martin On 06/07/06, William A. Rowe, Jr. <[EMAIL PROTECTED]> wrote: Great news! Thanks for keeping us in the loop. Martin Sebor wrote: > Hi, > > We have heard that the Tuscany developers have been exploring > the option of using Apache stdcxx as the common implementation > of the C++ Standard Library for Tuscany/C++. We are wondering > whether this is in fact the case and, if so, what the stdcxx > team can do in order to make it as smooth as possible. > > Martin > > . > - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: using stdcxx in tuscany/C++
Pete Robbins wrote: Hi Martin. Using stdcxx is certainly on our list of things to investigate. There are 2 ways in which we can use a C++ standard library: 1) Internally withing our own implementation code 2) Exposed on user APIs We currently use stl within our implementation and the use of stl classes on our interfaces is currently under discussion in the SCA C++ Specification group. Ed Slattery took a look at using stdcxx but I have to admit I have had little time to follw this up. I need to take a look at your project and see what the benefits are. FWIW, one of the major benefits of using stdcxx in a portable C++ project is to bridge the inevitable and typically subtle differences between implementations of the C++ Standard Library you are likely to run into while porting Tuscany from the mainstream platforms to others. stdcxx has been ported to and works out of the box on the majority of today's C++ compilers and (server) operating systems (see the list of certified platforms here: http://incubator.apache.org/stdcxx/#platforms). If portability of localized data is important to Tuscany, stdcxx comes with its own set of locales to guarantee the same behavior regardless of the NLS on the operating system (which also tends to differ from one operating system to another). In addition to being highly portable, stdcxx often performs better than the native C++ Standard Library that comes with the compiler (this is especially true for HP aCC and Sun C++ and also to some extent for IBM XLC++). If there are any specific issues that are of particular concern to you I would be happy to discuss them with you. Martin - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: using stdcxx in tuscany/C++
Hi, Yes, I have looked at using stdcxx, particularly in SDO code, but it applied to SCA also. We use stl internally, particularly lists, maps etc, and are currently Geoff Winn is kindly converting all my antique char* arrays to std:strings. When this is done, we would want to experiment with just inserting stdcxx in place of the implementations we use on windows and linux. This ought to be straight forward - right? I guess there must be logistical problems to overcome in converting from Microsoft stl, but still using Developer Studio to build the projects? Are there problems with clashing header file names, and can we still use the MS runtime library etc? On 06/07/06, William A. Rowe, Jr. <[EMAIL PROTECTED]> wrote: Great news! Thanks for keeping us in the loop. Martin Sebor wrote: > Hi, > > We have heard that the Tuscany developers have been exploring > the option of using Apache stdcxx as the common implementation > of the C++ Standard Library for Tuscany/C++. We are wondering > whether this is in fact the case and, if so, what the stdcxx > team can do in order to make it as smooth as possible. > > Martin > > . > - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: using stdcxx in tuscany/C++
Great news! Thanks for keeping us in the loop. Martin Sebor wrote: Hi, We have heard that the Tuscany developers have been exploring the option of using Apache stdcxx as the common implementation of the C++ Standard Library for Tuscany/C++. We are wondering whether this is in fact the case and, if so, what the stdcxx team can do in order to make it as smooth as possible. Martin . - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: using stdcxx in tuscany/C++
Hi Martin. Using stdcxx is certainly on our list of things to investigate. There are 2 ways in which we can use a C++ standard library: 1) Internally withing our own implementation code 2) Exposed on user APIs We currently use stl within our implementation and the use of stl classes on our interfaces is currently under discussion in the SCA C++ Specification group. Ed Slattery took a look at using stdcxx but I have to admit I have had little time to follw this up. I need to take a look at your project and see what the benefits are. I will set aside some time tomorrow to do this. Thanks for your interest. On 06/07/06, Martin Sebor <[EMAIL PROTECTED]> wrote: Hi, We have heard that the Tuscany developers have been exploring the option of using Apache stdcxx as the common implementation of the C++ Standard Library for Tuscany/C++. We are wondering whether this is in fact the case and, if so, what the stdcxx team can do in order to make it as smooth as possible. Martin - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- Pete