Stefan Seefeld | 14 Feb 06:22 2011

Recent Synopsis development

Hello,

The last Synopsis release was done quite a while ago. Neither the 
mailing list nor the IRC channel observed much traffic, which let many 
people believe the project was dead. Actually, nothing could be further 
from the truth !

I have been observing the development of the CLang project 
(http://clang.llvm.org) for quite a while, and since it has reached a 
fair level of feature-completeness and stability, I have started working 
on new CLang-based frontends for Synopsis' C and C++ parsers.

I'm very happy to report that this work is making great progress. 
Tonight I checked in a first batch of changes, and I'm expecting to keep 
making steady progress. All of this work is based on LLVM's trunk 
(against which I have already filed a couple of bug reports and even 
patches). Hopefully all of those issues will be fixed soon (i.e., in 
time for the next LLVM release), at which point I'll prepare a new 
Synopsis release based on LLVM, too.

Until then, please get LLVM from trunk 
(http://clang.llvm.org/get_started.html), and Synopsis from 
http://synopsis.fresco.org/svn/synopsis/trunk.

Thanks,
         Stefan

--

-- 

       ...ich hab' noch einen Koffer in Berlin...
(Continue reading)

asmwarrior | 14 Feb 06:57 2011
Picon

Re: Recent Synopsis development

On 2011-2-14 13:22, Stefan Seefeld wrote:
> Hello,
>
> The last Synopsis release was done quite a while ago. Neither the 
> mailing list nor the IRC channel observed much traffic, which let many 
> people believe the project was dead. Actually, nothing could be 
> further from the truth !
>
> I have been observing the development of the CLang project 
> (http://clang.llvm.org) for quite a while, and since it has reached a 
> fair level of feature-completeness and stability, I have started 
> working on new CLang-based frontends for Synopsis' C and C++ parsers.
I'm really nice to hear the good news!
Clang is quite great!!!
I hope you will be successful.
>
> I'm very happy to report that this work is making great progress. 
> Tonight I checked in a first batch of changes, and I'm expecting to 
> keep making steady progress. All of this work is based on LLVM's trunk 
> (against which I have already filed a couple of bug reports and even 
> patches). Hopefully all of those issues will be fixed soon (i.e., in 
> time for the next LLVM release), at which point I'll prepare a new 
> Synopsis release based on LLVM, too.
>
> Until then, please get LLVM from trunk 
> (http://clang.llvm.org/get_started.html), and Synopsis from 
> http://synopsis.fresco.org/svn/synopsis/trunk.
>
> Thanks,
>         Stefan
(Continue reading)

asmwarrior | 14 Feb 07:07 2011
Picon

Re: Recent Synopsis development

On 2011-2-14 13:22, Stefan Seefeld wrote:
> Hello,
>
> The last Synopsis release was done quite a while ago. Neither the 
> mailing list nor the IRC channel observed much traffic, which let many 
> people believe the project was dead. Actually, nothing could be 
> further from the truth !
>
> I have been observing the development of the CLang project 
> (http://clang.llvm.org) for quite a while, and since it has reached a 
> fair level of feature-completeness and stability, I have started 
> working on new CLang-based frontends for Synopsis' C and C++ parsers.
>
> I'm very happy to report that this work is making great progress. 
> Tonight I checked in a first batch of changes, and I'm expecting to 
> keep making steady progress. All of this work is based on LLVM's trunk 
> (against which I have already filed a couple of bug reports and even 
> patches). Hopefully all of those issues will be fixed soon (i.e., in 
> time for the next LLVM release), at which point I'll prepare a new 
> Synopsis release based on LLVM, too.
>
> Until then, please get LLVM from trunk 
> (http://clang.llvm.org/get_started.html), and Synopsis from 
> http://synopsis.fresco.org/svn/synopsis/trunk.
>
> Thanks,
>         Stefan
>
>
BTW:
(Continue reading)

Alek Paunov | 14 Feb 22:00 2011

Re: Source code cross reference tool based on libclang

> If you want to discuss any related topic, please join me on

In the long term, I really believe that we can achieve great results 
once we manage to store the Clang's internal representations to a 
powerful DB engine with appropriate query language (as I mentioned 
before, XQuery seems the best candidate for me [*]).

But until then, let's utilize the current Synopsis/SXR: Have you tried 
to apply your fresh Clang based version on the LLVM trunk itself?. If 
you give me some instructions, I also can start public Synopsis/SXR 
service for the Clang/LLVM codebase, as a test bench.

Kind Regards,
Alek

[*] Because of its natural namespaced tree with attributes model and 
existing well optimized open source implementations. Over time, various 
query components (functions in XQuery) on top of the LLVM 
representations can be accumulated as reusable XQuery modules.

P.S. It is a specific query language, but only as illustration of the 
approach:
http://semmle.com/semmlecode/products/semmlecode-professional/example-queries/
(unfortunately it is closed source, implemented as compiler to SQL)
Stefan Seefeld | 14 Feb 22:31 2011
Picon

Re: [Synopsis-devel] Source code cross reference tool based on libclang

On 2011-02-14 16:00, Alek Paunov wrote:
>> If you want to discuss any related topic, please join me on
>
> In the long term, I really believe that we can achieve great results 
> once we manage to store the Clang's internal representations to a 
> powerful DB engine with appropriate query language (as I mentioned 
> before, XQuery seems the best candidate for me [*]).

I'm not convinced at all. Isn't that a flavor of the same old "XML 
solves all your problems" argument again that was so popular ten years 
ago ? How do you express domain-specific semantics, such as C++ symbol 
lookup, in a generic querying language ?

As I mentioned, there is no reason not to scale Synopsis up to using a 
different backend to store its IR in (such as a database), if that will 
indeed improve performance. Let's cross that bridge when we come to it...

>
> But until then, let's utilize the current Synopsis/SXR: Have you tried 
> to apply your fresh Clang based version on the LLVM trunk itself?. If 
> you give me some instructions, I also can start public Synopsis/SXR 
> service for the Clang/LLVM codebase, as a test bench.

I'm afraid I'm not quite there yet, though it shouldn't be too long. 
(Still need to figure out how to configure system header search paths 
and system macros, etc.. Before clang, I used some heuristics from 
installed system compilers (GCC, MSVC). I'm not sure yet how clang is to 
be used in that respect, i.e. whether it figures any of this out on its 
own, or whether I need to feed all of those in explicitly.

(Continue reading)


Gmane