[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Texmacs-dev] Current work, nogencc and tree in generic programming

From: Joris van der Hoeven
Subject: Re: [Texmacs-dev] Current work, nogencc and tree in generic programming
Date: Sun, 28 Apr 2002 19:06:34 +0200 (MET DST)

> > 3. You systematically use
> >
> > -I Basic/Data -I Basic/Misc -I Basic/System -I Basic/Types -I Resource
> > -I Window -I Typeset -I Edit -I Convert -I Texmacs -I Guile
> >
> > in the compilation options, even when some of them are not necessary.
> Why does that bothers you? The makefile could indeed be designed to be 
> more savvy, but I do not think that would buy us anything and that would 
> have a maintenance cost.

I want clean separation between independent units.
TeXmacs has been designed that way and this must remain so.

> Anyway, I will work to fix it for the next release.
> > 4. It might have been nice to change all .gen.h to .hh.
> > I did not know 4 years ago that it is was possible to use
> > the .hh suffix, but this is better for highlighting in Emacs.
> > 6. What are the comments of the form
> >
> > // Local Variables:
> > // mode: c++
> > // c-basic-offset: 2
> > // End:
> >
> > doing at the end of each file?
> Those comments are directives for Emacs. They tell it to open the file in 
> c++ mode (regardless of the file name extension), and use a base 
> indentation of two spaces. See the node "Local Variables in Files" in the 
> emacs manual.

I prefer using the .hh suffix. These directives are ugly and
if they just serve under emacs, please let them out.

> > 5. The makefile breaks at the linking stage:
> >
> [snip]
> > Objects/instanciations.o: In function `hashmap_iterator_rep<unsigned
> > long, void *> type_info function':
> > Objects/instanciations.o(.gnu.linkonce.t.__tft20hashmap_iterator_rep2ZU
> >lZPv+0x11): undefined reference to `iterator_rep<unsigned long>
> > type_info function'
> > Objects/instanciations.o(.gnu.linkonce.t.__tft20hashmap_iterator_rep2ZU
> >lZPv+0x17): undefined reference to `iterator_rep<unsigned long>
> > type_info node' collect2: ld returned 1 exit status
> > make[1]: ***
> > [/home/vdhoeven/texmacs/contrib/allouche/TeXmacs-
> >c/TeXmacs-] Error 1
> > make[1]: Leaving directory
> > `/home/vdhoeven/texmacs/contrib/allouche/TeXmacs-
> >c/src' make: *** [TEXMACS] Error 2
> That is weird. Here, it compiles and run fine. My gcc version is:
> gcc version 2.95.4 20011002 (Debian prerelease)
> It appears that the iterator<X> classes are not properly instanciated. I 
> will provide a tentative fix in the next release.
> I'm quite tired of working around the problems in g++2 template 
> instanciation system. When the changes are incorporated into the 
> mainline, I will work to fix dirtiness which does not compile with g++3, 
> so we will have hopefully much less problems.

Yes, but being tired is no excuse here: this is a responsability that
you have taken now :^) TeXmacs-nogencc should compile on all platforms
where TeXmacs compiles and you will have more fun on Sparc, Dec/alpha,
BSD, PPC, Cygwin, Mac OS X, etc...

> > More comments will follow as soon as you have a working version for me.
> > It is important that the change does not induce any kind of performance
> > loss whatsoever. For instance, it should be checked that -O2 is as
> > efficient as -O3 with the extra options.
> That has been checked. The next version will also includes changes to 
> avoid some uneeded reference counting, I mesured a gain of 15% in 
> performance on a simple test: open a big document, type 9 characters 
> waiting after each keystroke for the display update to be complete, 
> remove the 9 characters while waiting the same way, then quit TeXmacs 
> without saving changes.
> But I do not understand what you want to do with the -O2 and -O3 options.

I also have some benchmarks that I will try when you are finished.
We also have to keep track of the size of the executables.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]