www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Let's give a honor to dead giants!

reply Denis Shelomovskij <verylonglogin.reg gmail.com> writes:
D already has a history with heroes and great projects... Unfortunately, 
lots of dead great projects. IMHO, a monument to them should be set up.

Reasons:

1. If a project failed because of some design issues (e.g. Descent) new 
developers should be informed about a danger of this approach and ways 
to fix it (links to discussions of making a library from a compiler).

2. If a project failed because of past compiler bugs, lack of developers 
(DDL?) or other solved/solvable things, new developers should be able to 
easily find and start reanimation of this project.

Any thoughts?

-- 
Денис В. Шеломовский
Denis V. Shelomovskij
Apr 19 2012
parent reply "Roman D. Boiko" <rb d-coding.com> writes:
On Thursday, 19 April 2012 at 10:00:29 UTC, Denis Shelomovskij 
wrote:
 D already has a history with heroes and great projects... 
 Unfortunately, lots of dead great projects. IMHO, a monument to 
 them should be set up.

 Reasons:

 1. If a project failed because of some design issues (e.g. 
 Descent) new developers should be informed about a danger of 
 this approach and ways to fix it (links to discussions of 
 making a library from a compiler).

 2. If a project failed because of past compiler bugs, lack of 
 developers (DDL?) or other solved/solvable things, new 
 developers should be able to easily find and start reanimation 
 of this project.

 Any thoughts?
Great idea. In particular, I would be interested to have more information about Descent :)
Apr 19 2012
parent reply Ary Manzana <ary esperanto.org.ar> writes:
On 4/19/12 6:08 PM, Roman D. Boiko wrote:
 On Thursday, 19 April 2012 at 10:00:29 UTC, Denis Shelomovskij wrote:
 D already has a history with heroes and great projects...
 Unfortunately, lots of dead great projects. IMHO, a monument to them
 should be set up.

 Reasons:

 1. If a project failed because of some design issues (e.g. Descent)
 new developers should be informed about a danger of this approach and
 ways to fix it (links to discussions of making a library from a
 compiler).

 2. If a project failed because of past compiler bugs, lack of
 developers (DDL?) or other solved/solvable things, new developers
 should be able to easily find and start reanimation of this project.

 Any thoughts?
Great idea. In particular, I would be interested to have more information about Descent :)
Things to learn about Descent: * It's impossible for one/two men to continually port a project from one language to another (C++ to Java in this case) * D needs to be implemented as a library. This means no global variables and means to make it easy to build tools on top of it. I know of about two alternative new implementation of D (SDC and DCT) but for now they are making the same mistake as DMD: they use global variables. Also, the developers of those projects don't seem to have experience in writing compilers so the code is not very nice (though I saw a visitor in DCT). People suggest me to send pull requests or open issues to SDC, but if the main design has a big flaw it's better to start from scratch than to change the whole code. * Eclispe is great for writing IDEs but after programming in Ruby for some years now and exclusively using vim I can't go back to using a slow IDE so I don't think I'll ever write anything else for Eclipse. * Maybe it's better to implement things from scratch instead of starting with a project like JDT and modifying its source code to be usable as a D IDE. Though in the beginning you go faster later it slows you down more and more. * Maybe the project didn't recieve a lot of help because it was written in Java... don't know.
Apr 19 2012
next sibling parent Joseph Rushton Wakeling <joseph.wakeling webdrake.net> writes:
On 20/04/12 04:51, Ary Manzana wrote:
 * Eclispe is great for writing IDEs but after programming in Ruby for some
years
 now and exclusively using vim I can't go back to using a slow IDE so I don't
 think I'll ever write anything else for Eclipse.
vim actually seems like a great development environment for D -- it was the first I could set up to really meet my preferences (I'm sure Emacs is also great, but I never got my head round it sufficiently). The caveat being that my concept of IDE is "glorified text editor that has really nice handling of syntax highlighting and auto-indentation and in particular supports smart tab indentation with tabs for indent, spaces for alignment".
Apr 19 2012
prev sibling next sibling parent reply "H. S. Teoh" <hsteoh quickfur.ath.cx> writes:
On Fri, Apr 20, 2012 at 05:15:36AM +0200, Joseph Rushton Wakeling wrote:
 On 20/04/12 04:51, Ary Manzana wrote:
* Eclispe is great for writing IDEs but after programming in Ruby for
some years now and exclusively using vim I can't go back to using a
slow IDE so I don't think I'll ever write anything else for Eclipse.
vim actually seems like a great development environment for D -- it was the first I could set up to really meet my preferences (I'm sure Emacs is also great, but I never got my head round it sufficiently). The caveat being that my concept of IDE is "glorified text editor that has really nice handling of syntax highlighting and auto-indentation and in particular supports smart tab indentation with tabs for indent, spaces for alignment".
I use vim, and would not touch an IDE with a 20-foot sterilized pole. Vim has decent auto-indentation, and quite configurable in what it does with tabs (expandtab, noexpandtab, tabstop, shiftwidth, etc.). I'm sure if somebody's willing to invest the time, you can do D autocompletion in vim too (but I've never felt the need for it). One thing I miss, though, is ctags support for D. You don't know how powerful such a simple concept is; it lets you navigate 50,000-line source files without even batting an eyelid. :-) (Just try that in an IDE, and you'll soon get an aneurism from trying to scroll with a 1-pixel high scrollbar...) Vim/Emacs are the ultimate tools for programming IMAO. I mean, you can literally *implement* an IDE in Emacs if you're insane enough (heck, you can implement an entire OS in emacs if you lisp enough). Who needs klunky IDEs when *text editors* are that powerful?? ;-) T -- Creativity is not an excuse for sloppiness.
Apr 19 2012
next sibling parent reply Ary Manzana <ary esperanto.org.ar> writes:
On 4/20/12 11:34 AM, H. S. Teoh wrote:
 On Fri, Apr 20, 2012 at 05:15:36AM +0200, Joseph Rushton Wakeling wrote:
 On 20/04/12 04:51, Ary Manzana wrote:
 * Eclispe is great for writing IDEs but after programming in Ruby for
 some years now and exclusively using vim I can't go back to using a
 slow IDE so I don't think I'll ever write anything else for Eclipse.
vim actually seems like a great development environment for D -- it was the first I could set up to really meet my preferences (I'm sure Emacs is also great, but I never got my head round it sufficiently). The caveat being that my concept of IDE is "glorified text editor that has really nice handling of syntax highlighting and auto-indentation and in particular supports smart tab indentation with tabs for indent, spaces for alignment".
I use vim, and would not touch an IDE with a 20-foot sterilized pole. Vim has decent auto-indentation, and quite configurable in what it does with tabs (expandtab, noexpandtab, tabstop, shiftwidth, etc.). I'm sure if somebody's willing to invest the time, you can do D autocompletion in vim too (but I've never felt the need for it).
I use autocompletion in vim with a plugin that just offers every possible text found in all buffers. This has worked great for me in Ruby because every name is so intuitive and similar names (count, length, size) are provided as aliases so you almost never make a mistake when writing code (at least when writing the correct names, of course bugs lurk now and then.)
 One thing I miss, though, is ctags support for D. You don't know how
 powerful such a simple concept is; it lets you navigate 50,000-line
 source files without even batting an eyelid.  :-) (Just try that in an
 IDE, and you'll soon get an aneurism from trying to scroll with a
 1-pixel high scrollbar...)
How do you implement ctags for a language? I know there is one for Ruby. What's the difficulty of making one for D?
Apr 19 2012
next sibling parent reply "H. S. Teoh" <hsteoh quickfur.ath.cx> writes:
On Fri, Apr 20, 2012 at 12:55:56PM +0800, Ary Manzana wrote:
 On 4/20/12 11:34 AM, H. S. Teoh wrote:
[...]
One thing I miss, though, is ctags support for D. You don't know how
powerful such a simple concept is; it lets you navigate 50,000-line
source files without even batting an eyelid.  :-) (Just try that in
an IDE, and you'll soon get an aneurism from trying to scroll with a
1-pixel high scrollbar...)
How do you implement ctags for a language? I know there is one for Ruby. What's the difficulty of making one for D?
I've no idea, to be honest. Never done it before. I just use it for C/C++ code at work, and it works wonders. Makes code *soooo* much easier to find, esp. in a very large project with many developers. (Finding code without tags in large projects is just so painful and slow that nobody should have to suffer it.) T -- Why have vacation when you can work?? -- EC
Apr 19 2012
parent "SomeDude" <lovelydear mailmetrash.com> writes:
On Friday, 20 April 2012 at 05:12:23 UTC, H. S. Teoh wrote:
 On Fri, Apr 20, 2012 at 12:55:56PM +0800, Ary Manzana wrote:
 How do you implement ctags for a language? I know there is one 
 for
 Ruby. What's the difficulty of making one for D?
I've no idea, to be honest. Never done it before. I just use it for C/C++ code at work, and it works wonders. Makes code *soooo* much easier to find, esp. in a very large project with many developers. (Finding code without tags in large projects is just so painful and slow that nobody should have to suffer it.) T
When you talk about code completion, you want something that is at least context sensitive. That means when you are in a module, it only proposes names imported in that module and nothing else. Is that what you mean ? Because last time I used Ctags (a looooong time ago), it wasn't possible. Also, one of the good things with IDE's is the refactoring capacities. Eclipse can refactor without screwing up, and that's pretty cool. As for compiling while you're typing, I suppose with the compilation speed of D compilers, we could do something approaching, with the compiler running every 2 seconds or something.
Apr 20 2012
prev sibling parent "Nick Sabalausky" <SeeWebsiteToContactMe semitwist.com> writes:
"Ary Manzana" <ary esperanto.org.ar> wrote in message 
news:jmqq77$1158$1 digitalmars.com...
 How do you implement ctags for a language? I know there is one for Ruby. 
 What's the difficulty of making one for D?
I think someone already did that awhile back... [digging...] http://www.digitalmars.com/d/archives/digitalmars/D/announce/d2tags_-_converts_DMD2_s_JSON_output_to_Exuberant_Ctags_format_18248.html https://github.com/Dubhead/d2tags
Apr 19 2012
prev sibling next sibling parent simendsjo <simendsjo gmail.com> writes:
On Fri, 20 Apr 2012 05:34:41 +0200, H. S. Teoh <hsteoh quickfur.ath.cx>  
wrote:
 One thing I miss, though, is ctags support for D. You don't know how
 powerful such a simple concept is; it lets you navigate 50,000-line
 source files without even batting an eyelid.  :-) (Just try that in an
 IDE, and you'll soon get an aneurism from trying to scroll with a
 1-pixel high scrollbar...)
There's a patch for ctags to support D. Works pretty well http://prowiki.org/wiki4d/wiki.cgi?EditorSupport/VimEditor
Apr 20 2012
prev sibling next sibling parent reply Jacob Carlborg <doob me.com> writes:
On 2012-04-20 05:34, H. S. Teoh wrote:

 I use vim, and would not touch an IDE with a 20-foot sterilized pole.
 Vim has decent auto-indentation, and quite configurable in what it does
 with tabs (expandtab, noexpandtab, tabstop, shiftwidth, etc.). I'm sure
 if somebody's willing to invest the time, you can do D autocompletion in
 vim too (but I've never felt the need for it).
There's a vim plugin that uses Clang for autocompletion, if I recall correctly. We need the same for D. -- /Jacob Carlborg
Apr 20 2012
parent reply "Brian Schott" <briancschott gmail.com> writes:
On Friday, 20 April 2012 at 08:01:08 UTC, Jacob Carlborg wrote:
 There's a vim plugin that uses Clang for autocompletion, if I 
 recall correctly. We need the same for D.
Pre-alpha is on Github: https://github.com/Hackerpilot/Dscanner/ There *ARE* bugs in --dotComplete. I'll be implementing the first version of --parenComplete this weekend.
Apr 21 2012
next sibling parent Ary Manzana <ary esperanto.org.ar> writes:
On 4/21/12 9:32 PM, Brian Schott wrote:
 On Friday, 20 April 2012 at 08:01:08 UTC, Jacob Carlborg wrote:
 There's a vim plugin that uses Clang for autocompletion, if I recall
 correctly. We need the same for D.
Pre-alpha is on Github: https://github.com/Hackerpilot/Dscanner/ There *ARE* bugs in --dotComplete. I'll be implementing the first version of --parenComplete this weekend.
Compiler *cough* as *cough* library *cough*... Nice work, by the way :-)
Apr 21 2012
prev sibling next sibling parent reply "Roman D. Boiko" <rb d-coding.com> writes:
On Saturday, 21 April 2012 at 13:32:16 UTC, Brian Schott wrote:
 On Friday, 20 April 2012 at 08:01:08 UTC, Jacob Carlborg wrote:
 There's a vim plugin that uses Clang for autocompletion, if I 
 recall correctly. We need the same for D.
Pre-alpha is on Github: https://github.com/Hackerpilot/Dscanner/ There *ARE* bugs in --dotComplete. I'll be implementing the first version of --parenComplete this weekend.
KISS in action. There is a lot to learn from. Some questions: * Are there any plans for semantic analysis? * Is it possible to change license to Boost? * Do you accept contributons?
Apr 21 2012
parent reply "Brian Schott" <briancschott gmail.com> writes:
On Saturday, 21 April 2012 at 15:15:42 UTC, Roman D. Boiko wrote:
 KISS in action. There is a lot to learn from.
KISS is one of my guiding principles on this project. The learning may be in the other direction though. One of the reasons that I started this project was to learn about how to implement tokenizers and parsers.
 Some questions:
 * Are there any plans for semantic analysis?
 * Is it possible to change license to Boost?
 * Do you accept contributons?
* Only enough to get autocomplete working properly in most cases * Yeah. I set it to MIT mostly out of habit back before the discussion of compiler library licenses. * Github! (yes) The only thing that I see anyone re-using is the tokenizer. It's the result of at least one redesign and several runs though callgrind and avgtime . I'm fairly confident that it's fast. The "parser" is rather dilberatly stupid since the goal is to get enough information for summaries and autocomplete.
Apr 21 2012
parent reply "Kagamin" <spam here.lot> writes:
On Saturday, 21 April 2012 at 17:46:18 UTC, Brian Schott wrote:
 The only thing that I see anyone re-using is the tokenizer.
Huh, cute. Except for string open = to!string(inputString[endIndex]); May be, open=inputString[endIndex..endIndex+1]; ?
Apr 21 2012
parent "Kagamin" <spam here.lot> writes:
switch (open)
{
case "[":

switch (open[0])
{
case '[':

How string switches are optimized? Also if-else chain should work 
better here.
Apr 21 2012
prev sibling parent reply Andrej Mitrovic <andrej.mitrovich gmail.com> writes:
On 4/21/12, Brian Schott <briancschott gmail.com> wrote:
 On Friday, 20 April 2012 at 08:01:08 UTC, Jacob Carlborg wrote:
 There's a vim plugin that uses Clang for autocompletion, if I
 recall correctly. We need the same for D.
Pre-alpha is on Github: https://github.com/Hackerpilot/Dscanner/
This is very cool! There seems to be an ICE when compiling with -inline, something to do with CTFE. I'm reducing it with dustmite right now.
Apr 25 2012
parent reply "Brian Schott" <briancschott gmail.com> writes:
On Wednesday, 25 April 2012 at 20:49:58 UTC, Andrej Mitrovic 
wrote:
 This is very cool! There seems to be an ICE when compiling with
 -inline, something to do with CTFE. I'm reducing it with 
 dustmite
 right now.
I found it first. :-) http://d.puremagic.com/issues/show_bug.cgi?id=7900
Apr 25 2012
parent Andrej Mitrovic <andrej.mitrovich gmail.com> writes:
On 4/26/12, Brian Schott <briancschott gmail.com> wrote:
 I found it first. :-)
 http://d.puremagic.com/issues/show_bug.cgi?id=7900
And while dustmite was reducing it found a dustmite bug! https://github.com/CyberShadow/DustMite/issues/8
Apr 25 2012
prev sibling next sibling parent "Jussi Jumppanen" <jussij zeusedit.com> writes:
On Friday, 20 April 2012 at 03:33:43 UTC, H. S. Teoh wrote:

 One thing I miss, though, is ctags support for D.
Here are the changes I made to the Exuburant ctags so it would do D language tagging. http://www.zeusedit.com/z300/ctags_src.zip These changes where made quite some so that the Zeus IDE would tag D code, so I'm not sure how well it handles the latest D 2.0 language changes.
Apr 20 2012
prev sibling next sibling parent Timon Gehr <timon.gehr gmx.ch> writes:
On 04/20/2012 05:34 AM, H. S. Teoh wrote:
 On Fri, Apr 20, 2012 at 05:15:36AM +0200, Joseph Rushton Wakeling wrote:
 On 20/04/12 04:51, Ary Manzana wrote:
 * Eclispe is great for writing IDEs but after programming in Ruby for
 some years now and exclusively using vim I can't go back to using a
 slow IDE so I don't think I'll ever write anything else for Eclipse.
vim actually seems like a great development environment for D -- it was the first I could set up to really meet my preferences (I'm sure Emacs is also great, but I never got my head round it sufficiently). The caveat being that my concept of IDE is "glorified text editor that has really nice handling of syntax highlighting and auto-indentation and in particular supports smart tab indentation with tabs for indent, spaces for alignment".
I use vim, and would not touch an IDE with a 20-foot sterilized pole. Vim has decent auto-indentation, and quite configurable in what it does with tabs (expandtab, noexpandtab, tabstop, shiftwidth, etc.). I'm sure if somebody's willing to invest the time, you can do D autocompletion in vim too (but I've never felt the need for it). One thing I miss, though, is ctags support for D. You don't know how powerful such a simple concept is; it lets you navigate 50,000-line source files without even batting an eyelid. :-) (Just try that in an IDE, and you'll soon get an aneurism from trying to scroll with a 1-pixel high scrollbar...) Vim/Emacs are the ultimate tools for programming IMAO. I mean, you can literally *implement* an IDE in Emacs if you're insane enough (heck, you can implement an entire OS in emacs if you lisp enough). Who needs klunky IDEs when *text editors* are that powerful?? ;-) T
More importantly, I have yet to find an IDE that actually supports editing text efficiently.
Apr 20 2012
prev sibling next sibling parent reply "Brian Schott" <briancschott gmail.com> writes:
On Friday, 20 April 2012 at 03:33:43 UTC, H. S. Teoh wrote:
 One thing I miss, though, is ctags support for D.
1. It seems that everything can understand Ctags 2. The format's not complicated at all. I just committed support for a --ctags option to my brain-dead D tool (https://github.com/Hackerpilot/Dscanner). Don't expect magic from it, but it should at least be functional.
Apr 21 2012
parent "dnewbie" <run3 myopera.com> writes:
On Sunday, 22 April 2012 at 00:58:58 UTC, Brian Schott wrote:
 On Friday, 20 April 2012 at 03:33:43 UTC, H. S. Teoh wrote:
 One thing I miss, though, is ctags support for D.
1. It seems that everything can understand Ctags 2. The format's not complicated at all. I just committed support for a --ctags option to my brain-dead D tool (https://github.com/Hackerpilot/Dscanner). Don't expect magic from it, but it should at least be functional.
Hello Brian Schott. Thanks for creating this tool. Do you plan on adding support to win32 sources? ex. https://github.com/AndrejMitrovic/DWinProgramming/tree/master/Samples it seems dscanner doesn't like 'extern (Windows)' functions.
Apr 22 2012
prev sibling parent reply "Froglegs" <lugtug yahoo.com> writes:
 One thing I miss, though, is ctags support for D. You don't 
 know how
 powerful such a simple concept is; it lets you navigate 
 50,000-line
 source files without even batting an eyelid.  :-) (Just try 
 that in an
 IDE, and you'll soon get an aneurism from trying to scroll with 
 a
 1-pixel high scrollbar...)
You need to use a better IDE then, and get a faster computer, and a mouse with a scroll wheel. With Visual Studio + Visual Assist navigating huge solutions is fairly trivial, and extremely fast. VAX can instantly take you to the definition of any symbol with alt-g(not the build in crap in VS, VAX has better capabilities by far), list all references(not just variables with the same name, it actually understands the code), rename any symbol throughout the entire codebase, and a bunch of other things that only a tool which actually understands the code can do. All of these operations are extremely fast btw.
Apr 21 2012
parent "H. S. Teoh" <hsteoh quickfur.ath.cx> writes:
On Sun, Apr 22, 2012 at 04:29:00AM +0200, Froglegs wrote:
 
One thing I miss, though, is ctags support for D. You don't know how
powerful such a simple concept is; it lets you navigate 50,000-line
source files without even batting an eyelid.  :-) (Just try that in
an IDE, and you'll soon get an aneurism from trying to scroll with a
1-pixel high scrollbar...)
You need to use a better IDE then, and get a faster computer, and a mouse with a scroll wheel.
Or I can just stick with vim. It's wayyy faster than any IDE can ever hope to be, works over a text-only remote ssh connection, and doesn't need constant moving hands back and forth to the mouse. :-) (I'll admit, I'm a command-line freak. I don't do GUIs. The only real GUI that I use on a regular basis is the browser. Which is configured to strip off all unnecessary toolbars, menus, squint-inducing icons and other such junk, leaving just the necessary navigation buttons, maximized area for the page itself (gee what a concept), and keyboard shortcuts for scrolling, tabbing, etc.. IOW, it behaves almost like a console app. :-) So my view of the world is probably very warped relative to yours, just as yours is to mine. :-P)
  With Visual Studio + Visual Assist navigating huge solutions is
  fairly trivial, and extremely fast.
 
  VAX can instantly take you to the definition of any symbol with
  alt-g(not the build in crap in VS, VAX has better capabilities by
  far), list all references(not just variables with the same name, it
  actually understands the code), rename any symbol throughout the
  entire codebase, and a bunch of other things that only a tool which
  actually understands the code can do.  All of these operations are
  extremely fast btw.
[...] That's what ctags does for vim. And as many have pointed out, somebody *has* written D support for ctags, so now I'm a very happy man. T -- Tell me and I forget. Teach me and I remember. Involve me and I understand. -- Benjamin Franklin
Apr 21 2012
prev sibling next sibling parent "Roman D. Boiko" <rb d-coding.com> writes:
On Friday, 20 April 2012 at 02:50:39 UTC, Ary Manzana wrote:

  * D needs to be implemented as a library. This means no global 
 variables and means to make it easy to build tools on top of 
 it. I know of about two alternative new implementation of D 
 (SDC and DCT) but for now they are making the same mistake as 
 DMD: they use global variables. Also, the developers of those 
 projects don't seem to have experience in writing compilers so 
 the code is not very nice (though I saw a visitor in DCT). 
 People suggest me to send pull requests or open issues to SDC, 
 but if the main design has a big flaw it's better to start from 
 scratch than to change the whole code.
As for DCT, I am going to write a little more about its development soon. But my strong belief is that its impossible to build a good design before you know *deeply* the domain (from practice, not just theory). The highest priority is to make things work at least for a minimal subset of language before introducing flexibility. I do not commit to finish the project as a production ready D compiler with 100% specification conformance. The reason is that I have too little resources available to make that happen. But I *can* guarantee that DCT is going have good design AND will be reused (and thus reusable) in at least several projects. I resisted introducing visitor as long as I could (although I knew that I will have to do that some time). One reason is that there are many ways to implement a visitor, and once you choose one, it is quite difficult to switch. The other reason is that I wanted to find what I need most from it. I mean, one to three most important usage scenarios which would be awkward to implement the other way. Global variables will stay there for some time, unless somebody would prioritise eliminating them as important enough to implement it themselves (and not add some more *working* code). The reason is simple: it is far easier to cut a project into cohesive units this way. Design should be done, well, thoughtfully. Cutting a big piece of code into smaller units should be done in a such way that there will be at least: * few module dependencies (low coupling) * emphasis on domain concepts (aka ubiquitous language, but I'm not going to build a DDD system here ;) * probably most importantly, SOLID public interface modules with high afferent coupling (but better SOLID implementation) * no high-level dependency cycles Writing a compiler is not going to be fun. There will be a lot of fun, but it is possible that 80% of time will be spent on routine things which, apparently, don't need a fancy design. It is difficult to get right before you actually know what are the problematic aspects and actual *usage* scenarios. I could optimize a lot from the beginning, but made my best to avoid doing it. KISS.
  * Eclispe is great for writing IDEs but after programming in 
 Ruby for some years now and exclusively using vim I can't go 
 back to using a slow IDE so I don't think I'll ever write 
 anything else for Eclipse.
One of my goals is to extend VIM and Sublime Text to be better suited as D IDEs.
  * Maybe it's better to implement things from scratch instead 
 of starting with a project like JDT and modifying its source 
 code to be usable as a D IDE. Though in the beginning you go 
 faster later it slows you down more and more.
Yes, I thought a lot before starting the project from scratch myself. This seems to be a better option, at least for me. :)
Apr 19 2012
prev sibling next sibling parent "Roman D. Boiko" <rb d-coding.com> writes:
On Friday, 20 April 2012 at 02:50:39 UTC, Ary Manzana wrote:
 Also, the developers of those projects don't seem to have 
 experience in writing compilers so the code is not very nice 
 (though I saw a visitor in DCT).
I don't have any prior experience with compilers. I doubt that there are many people who do *and* are willing to spend their time writing another (one more) D compiler. Resources on compiler design are widely available and it is actually more difficult to decide what *not* to do that to find [controversial] information how to do something "right". Actually implementing a compiler is more difficult than learning how to do it.
 People suggest me to send pull requests or open issues to SDC, 
 but if the main design has a big flaw it's better to start from 
 scratch than to change the whole code.
It's up to you to start from scratch or join some team :) I would not recommend spending time on it at all, unless you are really interested. I don't even know whether my own decision to do start from scratch was reasonable: there are too few differences between purpose of SDC and DCT (except that SDC is far more advanced currently). Possibly some time I will find it easier to reuse a lot of SDC code than to write my own. When I found SDC, I already knew what I want to do and how will I do it. I was amazed to see that some other people already made the same choices as I did in so many aspects. Although I currently believe that starting from scratch was better for me, by doing this I have literally thrown away a lot of effort that other people already spent to make their compilers actually work. (Bug-fix them, design, fine-tune, etc.) If you would like to get more results *in total* over the period of time you are going to spend on this, it is likely that you will get accomplished it better if you join the SDC team or use SDC as basis. Simply because you will not spend another two years making mistakes (arguably, some of those will be different from SDC or DCT or DMD or whatever other compiler's problems). Please don't take my claims as if I thought I know your situation or have enough experience to give advice. This message is merely a sequence of random thoughts on the subject which are applicable to myself and even for myself I didn't decide to follow them.
Apr 19 2012
prev sibling next sibling parent reply Jacob Carlborg <doob me.com> writes:
On 2012-04-20 04:51, Ary Manzana wrote:

 Things to learn about Descent:

 * It's impossible for one/two men to continually port a project from one
 language to another (C++ to Java in this case)
 * D needs to be implemented as a library. This means no global variables
 and means to make it easy to build tools on top of it. I know of about
 two alternative new implementation of D (SDC and DCT) but for now they
 are making the same mistake as DMD: they use global variables. Also, the
 developers of those projects don't seem to have experience in writing
 compilers so the code is not very nice (though I saw a visitor in DCT).
 People suggest me to send pull requests or open issues to SDC, but if
 the main design has a big flaw it's better to start from scratch than to
 change the whole code.
I think Dil has been ported to D2 just recently. -- /Jacob Carlborg
Apr 20 2012
parent "Aziz K." <aziz.koeksal gmail.com> writes:
Hi,

On Fri, 20 Apr 2012 09:54:48 +0200, Jacob Carlborg <doob me.com> wrote:
 I think Dil has been ported to D2 just recently.
That's right. ;-) (One or two issues make it a bit unsuable atm, though.) -- My D Compiler: http://code.google.com/p/dil
Apr 30 2012
prev sibling parent Andrej Mitrovic <andrej.mitrovich gmail.com> writes:
On 4/20/12, H. S. Teoh <hsteoh quickfur.ath.cx> wrote:
 One thing I miss, though, is ctags support for D.
Info on using ctags is here: http://prowiki.org/wiki4d/wiki.cgi?EditorSupport/VimEditor and also cscope: http://prowiki.org/wiki4d/wiki.cgi?ReferenceForTools/Cscope
Apr 20 2012