From: Amitha P. <pe...@cs...> - 2002-05-24 19:12:51
|
With the use of implicit templates for vcl, it seems to me that all vcl related explicit template instantiations are unnecessary. Is this true? Thanks, Amitha. |
From: Peter V. <Pet...@es...> - 2002-05-24 19:28:06
|
> With the use of implicit templates for vcl, it seems to me that all > vcl related explicit template instantiations are unnecessary. Is this > true? Yes. BUT this requires access to a .txx file whenever the compiler reads the corresponding .h file. Hence all .h files should end with the line #include "this_file.txx" (where "this_file" is appropriately substituted, of course). This has been done already in vcl (see e.g. vcl_list.h), be it inside a #if VCL_USE_IMPLICIT_TEMPLATES but not yet in vxl. I had a test of this in vnl quite some time ago (with gcc 2.95 on linux) and it worked fine. Note that VCL_USE_IMPLICIT_TEMPLATES is set in vcl_config_manual.h Peter. |
From: Amitha P. <pe...@cs...> - 2002-05-24 19:40:31
|
> Yes. BUT this requires access to a .txx file whenever the compiler > reads the corresponding .h file. Hence all .h files should end with > the line > #include "this_file.txx" > (where "this_file" is appropriately substituted, of course). Yes. What I was thinking was that we could generalise this to not bother compiling the Templates subdirectory when implicit templates are being used. Low priority issue, of course. > This has been done already in vcl (see e.g. vcl_list.h), be it inside a > #if VCL_USE_IMPLICIT_TEMPLATES > but not yet in vxl. I had a test of this in vnl quite some time ago > (with gcc 2.95 on linux) and it worked fine. > Note that VCL_USE_IMPLICIT_TEMPLATES is set in vcl_config_manual.h The only problem that may arise from using implicit templates throughout vxl is code bloat when using dynamic libraries. With static libraries, any modern linker will get rid of the multiple instantiations. With dynamic libraries, I don't know if the run-time linker is clever enough. There is also the increased cost of compilation time, especially with complex templates. I think we need some empirical data before doing this--or at lease, before making it default. Amitha. |
From: Peter V. <Pet...@es...> - 2002-05-24 19:52:34
|
> Yes. What I was thinking was that we could generalise this to not > bother compiling the Templates subdirectory when implicit templates > are being used. That rule is already present in the "old" make system. And it works perfect, also with e.g. vnl as I mentioned. > ... code bloat when using dynamic libraries. Indeed. But it seems to be quite reasonable (at least, for vcl and vnl). > I think we need some empirical data before doing this-- > or at least, before making it default. First thing then is to have people set VCL_USE_IMPLICIT_TEMPLATES to 1, make compiling Templates dependent on this setting, and see what happens with the *.so sizes and the compile times ... Peter. |
From: Andrew F. <aw...@ro...> - 2002-05-26 15:25:07
|
> The only problem that may arise from using implicit templates > throughout vxl is code bloat when using dynamic libraries. With static > libraries, any modern linker will get rid of the multiple > instantiations. With dynamic libraries, I don't know if the run-time > linker is clever enough. There is also the increased cost of > compilation time, especially with complex templates. I think we need > some empirical data before doing this--or at lease, before making it > default. Good sumarry. Also, when we ever see a compiler that does "export templates" right, we'll want to separate the defns again. We should maybe wait till then to think about the re-think? A. |
From: Ian S. <ian...@st...> - 2002-05-27 08:47:48
|
Andrew wrote: > Good sumarry. Also, when we ever see a compiler that does "export > templates" right, we'll want to separate the defns again. We should > maybe wait till then to think about the re-think? Does anyone think support for "export" is going to appear any time soon? Ian. |
From: Amitha P. <pe...@cs...> - 2002-05-27 15:44:11
|
On Mon, May 27, 2002 at 09:51:04AM +0100, Ian Scott wrote: > Does anyone think support for "export" is going to appear any time soon? It's already out for "testing" in the Comeau C++ (www.comeaucomputing.com) 4.3.0 beta. Actually, the EDG compiler toolkit set supports the export keyword, so other compilers based on it should also support it. The following thread anonunces it: http://groups.google.com/groups?hl=en&lr=&threadm=abi35p%245qq%241%40panix3.panix.com&rnum=1&prev=/ I think many compiler vendors are going to wait and see what effects are before they implement the functionality. It appears that not everyone is convinced that "export" will actually do anything useful: (this is a long thread) http://groups.google.com/groups?hl=en&lr=&threadm=3CDC8826.4642EAB0%40acm.org&rnum=1&prev=/&frame=on Amitha. |
From: Andrew F. <aw...@ro...> - 2002-05-28 09:08:11
|
Not necessarily soon. Do we need to clean up Templates sooner? A. Dr. Andrew W. Fitzgibbon, http://www.robots.ox.ac.uk/~awf Royal Society University Research Fellow, Phone: +44 01865 273127 Dept of Engineering Science, 19 Parks Road, FAX: +44 01865 273908 University of Oxford, OX1 3PJ aw...@ro... On Mon, 27 May 2002, Ian Scott wrote: > > > Andrew wrote: > > > Good sumarry. Also, when we ever see a compiler that does "export > > templates" right, we'll want to separate the defns again. We should > > maybe wait till then to think about the re-think? > > Does anyone think support for "export" is going to appear any time soon? > > Ian. > > _______________________________________________________________ > > Don't miss the 2002 Sprint PCS Application Developer's Conference > August 25-28 in Las Vegas -- http://devcon.sprintpcs.com/adp/index.cfm > > _______________________________________________ > Vxl-maintainers mailing list > Vxl...@li... > https://lists.sourceforge.net/lists/listinfo/vxl-maintainers > |