Subj : Re: VC++ 2005 beta1 fails with pthreads benchmark tests To : comp.os.ms-windows.programmer.nt.kernel-mode,comp.programming.threads From : Uenal Mutlu Date : Tue Apr 19 2005 11:40 am BTW, here I have posted detailed outputs of the compilation and execution tests using the two MS compilers: news://news.microsoft.com/microsoft.public.dotnet.languages.vc (the subject is the same). "Uenal Mutlu" wrote > "Maxim S. Shatskih" wrote > > Not much people use POSIX threads in Windows, and even lesser of them need > > 100% POSIX compatibility. Most just need their code to work. > > Unfortunately the VC++2005 compiler generates buggy code. > And, I would say the number of POSIX users increases more and more > since people want go with proven international standards and see the > source code of the library they use. The threading functions of MS > are in my eyes a nightmare. There is no concept behind it since > there are so many incompatible function calls to start a thread, for example: > _beginthread, beginthreadex, CreateThread, AfxBeginThread, ... > ... and each with its own thread proc format and limitations and/or > differences... It simply is yelling for a standard. > > But, the real issue here is with compatibility of the compiler to the previous > version, and code correctness. Ie. wheter the VC++2005 compiler > can be used with 3rd party libraries, whether it is compatible to > standards and to it's own previous version (VC++6), and whether > it can successfully be used for real-world projects. > It seems to me that VC++2005 is a complete new design, and not building > on the VC++6 design. From a new version of a product I would expect > that it builds on the goodies of the old version and improves it, fixes old bugs, > adds the new items of the C/C++ standards etc. > But here it is a complete new development. So I'm afraid it will take them > some more years to make it usable for real world application development. > > > > "Uenal Mutlu" wrote > > > When the POSIX pthreads library for w32 release 2-2-0 > > > (http://sources.redhat.com/pthreads-win32/) is compiled with VC++6 > > > then it compiles and passes all the benchmark tests in the subdirectory > > "tests". > > > Also, VC++ 2005 beta 1 compiles the tests fine, but here the following > > > tests fail in execution: > > > > > > # semaphore1.pass \ ....snip... > > > # spin4.pass \ > > > > > > Why are there such differences in execution of the generated code > > > between VC++6 and VC++2005 ? Is this due to bugs in the beta1, > > > or is this the result of general differences between the two products? > > > Are there any compiler/linker switches for backwards "compatibility" to > > VC++6? .