Thread overview | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
December 29, 2017 What do you want to see for a mature DLang? | ||||
---|---|---|---|---|
| ||||
I will start: -- Better compiler errors, better compiler errors, better compiler errors. I really wish that the compiler errors could receive some refinement. Mostly it feels like some error text just being thrown at me. It needs to be better formatted, more helpful, with suggestions about how to fix (if possible). To illustrate my point: - See the compile errors I've just encountered with DMD: https://cdn.pbrd.co/images/H0q609l.png - Now compare that with an error produced by rustc: https://cdn.pbrd.co/images/H0q6bLi.png Simple things like these make a big difference. D Lang has been around for a long while now, and hence signs of its maturity has to show everywhere, especially in the compiler, as well as the package manager. |
December 29, 2017 Re: What do you want to see for a mature DLang? | ||||
---|---|---|---|---|
| ||||
Posted in reply to IM Attachments:
| You should fill an issue on issues.dlang.org for this particular case. Compile should give you some hint, that you should use lvalue instead of rvalue.
On Fri, Dec 29, 2017 at 8:53 AM, IM via Digitalmars-d < digitalmars-d@puremagic.com> wrote:
> I will start:
>
> -- Better compiler errors, better compiler errors, better compiler
> errors.
>
>
> I really wish that the compiler errors could receive some refinement. Mostly it feels like some error text just being thrown at me. It needs to be better formatted, more helpful, with suggestions about how to fix (if possible).
>
> To illustrate my point:
>
> - See the compile errors I've just encountered with DMD: https://cdn.pbrd.co/images/H0q609l.png
>
> - Now compare that with an error produced by rustc: https://cdn.pbrd.co/images/H0q6bLi.png
>
>
> Simple things like these make a big difference. D Lang has been around for a long while now, and hence signs of its maturity has to show everywhere, especially in the compiler, as well as the package manager.
>
|
December 29, 2017 Re: What do you want to see for a mature DLang? | ||||
---|---|---|---|---|
| ||||
Posted in reply to IM | On Friday, 29 December 2017 at 07:53:51 UTC, IM wrote:
> I will start:
>
I will add:
// ----------
module test;
import std.stdio;
@safe void main()
{
writeln("I'd like to see @safe as being the default");
}
// ------------
|
December 29, 2017 Re: What do you want to see for a mature DLang? | ||||
---|---|---|---|---|
| ||||
Posted in reply to IM | On Friday, 29 December 2017 at 07:53:51 UTC, IM wrote: > I will start: > > -- Better compiler errors, better compiler errors, better compiler errors. > > > I really wish that the compiler errors could receive some refinement. Mostly it feels like some error text just being thrown at me. It needs to be better formatted, more helpful, with suggestions about how to fix (if possible). > > To illustrate my point: > > - See the compile errors I've just encountered with DMD: https://cdn.pbrd.co/images/H0q609l.png > > - Now compare that with an error produced by rustc: > https://cdn.pbrd.co/images/H0q6bLi.png > > > Simple things like these make a big difference. D Lang has been around for a long while now, and hence signs of its maturity has to show everywhere, especially in the compiler, as well as the package manager. Similar problem is when some template with alias callback fail to instantiate because callback contains error. Example: void foo(){ string str = 1; /++ nice error message: Error: cannot implicitly convert expression `1` of type `int` to `string` +/ import std.algorithm; [1, 2, 3].each!((x){ string str = 1 ///same error }); /++ horrible error message without root cause: source\app.d(660,14): Error: template app.foo.each!((x) { string str = 1; } ).each cannot deduce function from argument types !()(int[]), candidates are: C:\D\dmd2\windows\bin\..\..\src\phobos\std\algorithm\iteration.d(899,10): app.foo.each!((x) { string str = 1; } ).each(Range)(Range r) if (!isForeachIterable!Range && (isRangeIterable!Range || __traits(compiles, typeof(r.front).length))) C:\D\dmd2\windows\bin\..\..\src\phobos\std\algorithm\iteration.d(934,10): app.foo.each!((x) { string str = 1; } ).each(Iterable)(auto ref Iterable r) if (isForeachIterable!Iterable || __traits(compiles, Parameters!(Parameters!(r.opApply)))) +/ } |
December 29, 2017 Re: What do you want to see for a mature DLang? | ||||
---|---|---|---|---|
| ||||
Posted in reply to IM | AFAIK Rust doesn't have templates, but generics. Generics usually have much cleaner error messages because they are mostly used for generic functions and classes, meanwhile templates can do that too but much, much more, but when they break, you get entire paragraphs of template errors. |
December 29, 2017 Re: What do you want to see for a mature DLang? | ||||
---|---|---|---|---|
| ||||
Posted in reply to IM | On Friday, 29 December 2017 at 07:53:51 UTC, IM wrote:
> I will start:
>
> -- Better compiler errors, better compiler errors, better compiler errors.
>
>
> I really wish that the compiler errors could receive some refinement. Mostly it feels like some error text just being thrown at me. It needs to be better formatted, more helpful, with suggestions about how to fix (if possible).
>
> To illustrate my point:
>
> - See the compile errors I've just encountered with DMD: https://cdn.pbrd.co/images/H0q609l.png
>
> - Now compare that with an error produced by rustc:
> https://cdn.pbrd.co/images/H0q6bLi.png
>
>
> Simple things like these make a big difference. D Lang has been around for a long while now, and hence signs of its maturity has to show everywhere, especially in the compiler, as well as the package manager.
I'd like to see proper DLL (shared library) support and DIP45 implemented. I'm making a project that I hope in the future will be extendable with D plugins.
|
December 29, 2017 Re: What do you want to see for a mature DLang? | ||||
---|---|---|---|---|
| ||||
Posted in reply to IM | Built-in tuples:
{val1, val2} = func();
On Friday, 29 December 2017 at 07:53:51 UTC, IM wrote:
> I will start:
>
> -- Better compiler errors, better compiler errors, better compiler errors.
>
>
> I really wish that the compiler errors could receive some refinement. Mostly it feels like some error text just being thrown at me. It needs to be better formatted, more helpful, with suggestions about how to fix (if possible).
>
> To illustrate my point:
>
> - See the compile errors I've just encountered with DMD: https://cdn.pbrd.co/images/H0q609l.png
>
> - Now compare that with an error produced by rustc:
> https://cdn.pbrd.co/images/H0q6bLi.png
>
>
> Simple things like these make a big difference. D Lang has been around for a long while now, and hence signs of its maturity has to show everywhere, especially in the compiler, as well as the package manager.
|
December 29, 2017 Re: What do you want to see for a mature DLang? | ||||
---|---|---|---|---|
| ||||
Posted in reply to angel Attachments:
| >I'd like to see proper DLL (shared library) support and DIP45 implemented. I'm making a project that I hope in the future will be extendable with D plugins. Out of curiousity, what's wrong with the current dll support? 2017-12-29 11:36 GMT+01:00 angel via Digitalmars-d < digitalmars-d@puremagic.com>: > Built-in tuples: > > {val1, val2} = func(); > > > On Friday, 29 December 2017 at 07:53:51 UTC, IM wrote: > >> I will start: >> >> -- Better compiler errors, better compiler errors, better compiler >> errors. >> >> >> I really wish that the compiler errors could receive some refinement. Mostly it feels like some error text just being thrown at me. It needs to be better formatted, more helpful, with suggestions about how to fix (if possible). >> >> To illustrate my point: >> >> - See the compile errors I've just encountered with DMD: https://cdn.pbrd.co/images/H0q609l.png >> >> - Now compare that with an error produced by rustc: https://cdn.pbrd.co/images/H0q6bLi.png >> >> >> Simple things like these make a big difference. D Lang has been around for a long while now, and hence signs of its maturity has to show everywhere, especially in the compiler, as well as the package manager. >> > > > |
December 29, 2017 Re: What do you want to see for a mature DLang? | ||||
---|---|---|---|---|
| ||||
Posted in reply to maarten van damme | On 29/12/2017 11:03 AM, maarten van damme wrote:
> >I'd like to see proper DLL (shared library) support and DIP45 implemented. I'm making a project that I hope in the future will be extendable with D plugins.
>
>
> Out of curiousity, what's wrong with the current dll support?
The starting problem is TypeInfo doesn't cross the dll/host binary boundary. Meaning no classes/exceptions.
|
December 29, 2017 Re: What do you want to see for a mature DLang? | ||||
---|---|---|---|---|
| ||||
Posted in reply to IM | On Friday, 29 December 2017 at 07:53:51 UTC, IM wrote:
> I will start:
> [...]
> Simple things like these make a big difference. D Lang has been around for a long while now, and hence signs of its maturity has to show everywhere, especially in the compiler, as well as the package manager.
I casually encountered D issues that i qualified as "major" but with the time passing i don't really care anymore. D has probably reached the point where improving quality has become harder and harder.
Improving the quality does not scale linearly and i'd say so what you qualify as "Simple things like these" are harder to accomplish than that you think.
the devil is in the details.
|
Copyright © 1999-2021 by the D Language Foundation