Re: Semantic difference of source files

Marco van de Voort <marcov@stack.nl>
Wed, 20 Aug 2008 07:46:53 +0000 (UTC)

          From comp.compilers

Related articles
Semantic difference of source files m.helvensteijn@gmail.com (Michiel) (2008-08-17)
Re: Semantic difference of source files m.helvensteijn@gmail.com (Michiel) (2008-08-17)
Re: Semantic difference of source files barry.j.kelly@gmail.com (Barry Kelly) (2008-08-18)
Re: Semantic difference of source files DrDiettrich1@aol.com (Hans-Peter Diettrich) (2008-08-18)
Re: Semantic difference of source files gah@ugcs.caltech.edu (glen herrmannsfeldt) (2008-08-18)
Re: Semantic difference of source files gah@ugcs.caltech.edu (glen herrmannsfeldt) (2008-08-19)
Re: Semantic difference of source files marcov@stack.nl (Marco van de Voort) (2008-08-20)
Re: Semantic difference of source files gah@ugcs.caltech.edu (glen herrmannsfeldt) (2008-08-20)
Re: Semantic difference of source files DrDiettrich1@aol.com (Hans-Peter Diettrich) (2008-08-23)
Re: Semantic difference of source files marcov@stack.nl (Marco van de Voort) (2008-08-24)
Re: Semantic difference of source files Jatin_Bhateja@mentor.com (Jatin Bhateja) (2008-08-28)
Re: Semantic difference of source files m.helvensteijn@gmail.com (2008-08-28)
| List of all articles for this month |

From: Marco van de Voort <marcov@stack.nl>
Newsgroups: comp.compilers
Date: Wed, 20 Aug 2008 07:46:53 +0000 (UTC)
Organization: Stack Usenet News Service
References: 08-08-025 08-08-029
Keywords: parse, performance
Posted-Date: 20 Aug 2008 14:00:20 EDT

On 2008-08-18, Barry Kelly <barry.j.kelly@gmail.com> wrote:
> Delphi does not use separate interface and implementation files, and
> incorporates its own make logic.


Also the files have a clear interface and implementation separation,
which effectively is not that different from two files.


> However, the make logic still uses timestamps to determine when to
> rebuild, because line information and other implementation details may
> have changed, and thus debugging would break.


I'm not entirely sure Delphi/TP does too, but FPC also checks a CRC
over the entire interface (in the compiled header,.ppu) to detect
changes in interface definition (mostly because there are more
compiler versions in circulation, and the risk of only slightly stale
older versions of precompiled files is larger).


> Delphi avoids these problems by having a intermediate-file compilation
> strategy like C & C++, but storing the interface information in the
> intermediate file itself.


And not quiting the compiler for every file.


>> * You need to save a representation of the AST when compiling. This is, I
>> believe, a low price to pay. Perhaps it could even be attached to the
>> result file as a sort of meta-data.
>
> Oddly enough, Delphi also stores representations of selected ASTs in
> object files in order to support generics (very roughly equivalent to
> C++ template export). These ASTs are stored as binary blobs and the
> blobs themselves versioned in a binary fashion, after making all line
> number info in the AST relative.


(And cross unit inlining also I assume)


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.