Am Tue, 10 Apr 2012 08:46:05 +0200
schrieb Jacob Carlborg <d...@me.com>:

> Descent can handle:
> 
> * Syntax highlighting
> * Semantic highlighting
> * Show lex, parse and semantic errors
> * Compile time debugging
> * Compile time view
> * Formatting
> * Show the actual type of an inferred or aliased type
> * Smart autocompletion
> * Many other things as well
> 
> Note that in addition to (most of) the above, JDT can handle a lot more. 
> The compiler is the only tool that can properly handle this. It's also 
> the only sane approach, to have the compiler usable as a library.
> 
> Just take a look how it used to be (and in some cases are) in the C/C++ 
> world before Clang and LLVM came a long:
> 
> * You have the compiler
> * An IDE with a "parser/compiler"
> * The debugger with an (expression) "compiler"
> 
> All these "compilers" are different and need to stay in synch. That's 
> not how you do good software development. You build a compiler library 
> that can be used in all the above tools. BTW, it's only the real 
> compiler that can handle everything properly.

I think you are right. So clearly to make bindings possible this library would 
export a set of C functions. (I should think of export(C) as the "least common 
denominator" here.) DMD is no where close to look like a library and 
IDEs/debuggers need a different set of features. I think we can start a new 
thread to discuss this and maybe a Wiki page to collect ideas and brainstorm, 
unless there are better tools for that available. It would be nice if the 
developers of DDT, Descent, Mono-D and VisualD could share their insights there 
to get the requirements straight.

-- 
Marco

Reply via email to