Andrei Andrei wrote: > Hallo Jean and other curlpp contributors, > > I see the life around curlpp got more active the latest months. As a > result there are a number of issue requests around in the maillist. IMHO > there is a time to have an issue tracker for the project. > > I do not see it is much work (for Jean?) to make formal issues out of > relevant discussions, however the whole project will significantly > benefit from this. > > What do you think?
Thanks for your comments. I agree it would be nice to have issue/bug tracker. Jean is going to set up curlpp-devel as we miss it a much. Until then Jean asked to send devel posts directly to his email. It was ok when there were lately only two of us making changes but as there are now three of us we should use this list until curlpp-devel is set up. Otherwise our communication would be very troublesome. If you have 4 spare hours this weekend (great :)) I would like to invite you to share your opinion on problems mentioned in my posts during the last week. If you and Jean agree my ideas are good I'll try to spend some time implementig them. Right now the biggest issue in my opinion is we can't use curlpp as a library :) What I mean saying this is we can only use it in a source code version like many other template based libraries. If someone builds a .lib out of curlpp this .lib only have templates instantiated in any of .cpp files of library. Many are not instantiated and thus not included in the .lib file. If all code of curlpp needed by clients would be placed in a .lib file (as it should) then users' projects wouldn't need to include .inl files. Try to empty all .inl files of your curlpp and see if you can compile/link any of examples. Below are my posts regarding this matter I sent lately to Jean. Please take a look at them. Regards Piotr Dobrogost =========================================================================================================================== Jean Have you ever tried to use curlpp as a dynamic library? I think it's not possible with the current source but there are no reasons not to allow this. The problem with using curlpp as a dynamic library are templates. But curlpp uses templates only as implementation tool and doesn't operate on user defined types. Am I right? If this is true then we could add explicit instantiations of each template with all types it supports and this will allow to compile and use curlpp as a dynamic library. We should then include inl files only if CURLPP_STATICLIB is defined as having definitions of dll import functions doesn't make sense and is not allowed. Waiting to hear your opinion. =========================================================================================================================== Piotr I don't see why it wouldn't be possible to have curlpp as a dynamic library, since folks at my office are using it that way. I admit that they are using it under linux but I don't see what would be the difference in windows. Sorry, but I really don't see what it is the problem that forbid you to use it as a dynamic library. =========================================================================================================================== Jean Jean-Philippe Barette-LaPierre wrote: > I don't see why it wouldn't be possible to have curlpp as a dynamic library, > since folks at my office are using it that way. I admit that they are using > it under linux but I don't see what would be the difference in windows. How come? :) If they use it as a library (in fact doesn't matter wheather it's static or dynamic; the problem is the same) then make all inl files in their curlpp empty and let them compile and link their app. I think their app won't even compile anymore not to mention linking. What they are really using as a library is only a small subset of curlpp without templates. Everything else is compiled right into _apps_ object files and not taken from the object file of the lib. > Sorry, but I really don't see what it is the problem that forbid you to use > it as a dynamic library. Curlpp uses templates. How could templates without explicit instantiation be placed in a library? In any library there always are only compiled entities not source code. That's why all libraries having templates are shipped in soure code only. Take a look at this http://social.technet.microsoft.com/Forums/en-US/vcgeneral/thread/0c457caa-1896-41d6-ab1c-53baf9d5bbf6 Pay attenion to // extern "C" { __DLL_SPEC_ double mod(double x, double y) throw(); } #endif declaration in umath.h header (library's header) and template __DLL_SPEC_ double UMath::mod<double>(double x, double y) throw(); explicit instantiation of mod for T=double in umath.cpp source file (library's source). Without the first declaration in library's header and without the second definition in library's source file there's no way to use mod template member function for any type in application code using this library. Without explicit instantiation there's no code for mod in library at all. Take a look at this http://www.codeproject.com/KB/cpp/MemberTemplateDLL.aspx Don't bother it's MS. Take a look at this http://www.digitalmars.com/d/archives/digitalmars/D/learn/Function_Templates_in_DLL_11958.html Don't bother it's D not C++ :) Problem is exactly the same in both languages. Take a look at this http://groups.google.com/group/microsoft.public.dotnet.languages.vc/browse_thread/thread/b7296845350c41de/5fa53f71da7f5e1f%25235fa53f71da7f5e1f?tvc=2 Don't bother it's MS. Don't bother with /CLR stuff. Regards Piotr =========================================================================================================================== _______________________________________________ cURLpp mailing list [email protected] http://www.rrette.com/mailman/listinfo/curlpp
