DMD 1.038 and 2.022 releases

Ary Borenszweig ary at esperanto.org.ar
Sat Dec 20 11:58:11 PST 2008


Lars Ivar Igesund escribió:
> Yigal Chripun wrote:
> 
>> Denis Koroskin wrote:
>>> On Sat, 20 Dec 2008 20:41:23 +0300, Yigal Chripun <yigal100 at gmail.com>
>>> wrote:
>>>
>>>> Denis Koroskin wrote:
>>>>> On Mon, 15 Dec 2008 10:58:23 +0300, Bill Baxter <wbaxter at gmail.com>
>>>>> wrote:
>>>>>
>>>>>> For me, V1.038 compiles my code but takes a really really really long
>>>>>> time to do so.
>>>>>>
>>>>>> It now takes 1 min 20 secs for a full build, when it used to compile
>>>>>> in 13 seconds.
>>>>>> Forget the 60% slowdown from LDC -- this is 515% slower!
>>>>>>
>>>>>> (building with DSSS and tango)
>>>>>>
>>>>>> --bb
>>>>>>
>>>>> I generally make all my imports private and run a command line tool
>>>>> that strips unnecessary imports once in a while to minimize
>>>>> intermodular dependencies. Maybe it could help in your case, too?
>>>> When programming in Java, Eclipse knows to handle all of this for you.
>>>> it will suggest adding missing imports, it can remove unused imports
>>>> and it can convert a foo.bar.* into a list of the specific modules you
>>>> actually used in the code.
>>>> I wish that kind of tool would be available for D. Is this
>>>> functionality implemented in descent? if not, is it planned?
>>>>
>>>> I do realize that it's more difficult to do this for D than it is for
>>>> Java, because of Conditional compilation and other issues already
>>>> mentioned in this thread. But it would be awesome if I could just write:
>>>>
>>>> Stdout("whatever").newline;
>>>>
>>>> and get a quick-fix action (Ctrl+1) to add tango.io.Stdout to the list
>>>> of imports.
>>>>
>>>> --Yigal
>>> You should watch Descent videos on youtube, it is *much* smarter that
>>> that!
>>>
>>> http://www.youtube.com/user/asterite
>> I watched the video.
>> the functionality is that if you write: new Foo; it added automatically
>> an import for Foo. that's very cool and all but I was asking for
>> something more than that.
>>
>> for Java, Eclipse can add and manage imports for you not only when you
>> do new Somthing() but also for functions - like recognizing that
>> Stdout("string") needs to import tango.io.Stdout. More over, if you
>> wrote some of the imports yourself, or edited some code and removed the
>> only call to some function, you can ask eclipse to orginize your imports
>> and it'll remove unneeded imports and expand Java's Foo.* kind of import
>> to a list of the actual modules the code needs.
>>
>> Descent is a great project and I want to thank all the developers
>> involved in this great undertaking. All I'm saying is that it would be
>> nice to also have an "organize imports" function in Descent.
> 
> And you know for certain that it doesn't have this?
> 

Yigal is right, Descent doesn't have that kind of functionality.

As I mentioned before, you'd need to try every possible 
conditional-compilation setup combination to see which are the unused 
imports.

Also, when I first implemented it, I thought about adding selective 
imports in autocompletion, so that:

---
void foo() {
   writefln| <-- autocomplete!
}
---

results in:

---
import std.stdio : writefln;

void foo() {
   writefln(...)
}
---

and successive uses of symbols in std.stdio would add to the selective 
import, but many people told me that selective imports have some 
problems (I can't remember which were them right now).


More information about the Digitalmars-d-announce mailing list