March 19, 2021
On 3/18/2021 12:44 PM, tsbockman wrote:
>      c) Study the DMD pull request to figure out what issue, if any, it fixes.

We require DMD pull requests that fix a bug to reference a bugzilla issue for the bug, and to have the title of the PR include the title of the bugzilla issue.

Also, when I fix a bugzilla issue, I'll often change its title to more accurately reflect what the actual problem was.
March 19, 2021
On Thursday, 18 March 2021 at 08:36:51 UTC, Petar Kirov [ZombineDev] wrote:
> On Wednesday, 17 March 2021 at 19:54:23 UTC, tsbockman wrote:
>> [..] Is there a separate GDC frontend change log somewhere that documents all differences of significance to the user versus the standard 2.076 frontend? [..]
>
> I suppose this is what you're looking for:
>
> Changelog for the current year:
> https://github.com/D-Programming-GDC/gcc/blob/master-ci/gcc/d/ChangeLog
>

Nope, that's just a file that contains boring human-readable description of a commit
(http://www.gnu.org/prep/standards/standards.html#Change-Log-Concepts).

High-level feature changes are mentioned on the GCC site.

https://gcc.gnu.org/gcc-9/changes.html#d
https://gcc.gnu.org/gcc-10/changes.html#d
https://gcc.gnu.org/gcc-11/changes.html#d (content will be added closer to release date).

Typically bug-fixes come from PRs (problem references) that are created against D.

https://gcc.gnu.org/bugzilla/buglist.cgi?product=gcc&component=d&version=9.0
https://gcc.gnu.org/bugzilla/buglist.cgi?product=gcc&component=d&version=10.0
https://gcc.gnu.org/bugzilla/buglist.cgi?product=gcc&component=d&version=11.0

As I fix ICE's in dmd master, these are typically proactively backported to the dmd-cxx branch as well (this is the upstream that's merged into gcc itself).

https://github.com/dlang/dmd/commits/dmd-cxx
https://github.com/dlang/druntime/commits/dmd-cxx
https://github.com/dlang/phobos/commits/dmd-cxx

As a rule of thumb, all stdc bindings are generally kept closely in sync with dmd master to ensure the broadest possible platform support, and expired deprecations removed.
March 20, 2021
On 3/16/2021 8:44 PM, tsbockman wrote:
> The DMD backend is quite buggy (and also optimizes poorly) compared to those used by GDC and LDC.
Bugzilla lists 22 issues with the DMD backend that are tagged with the 'backend' keyword:

https://issues.dlang.org/buglist.cgi?bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&keywords=backend%2C%20&keywords_type=allwords&list_id=235330&query_format=advanced

If you know of other reported issues with the backend that are not so tagged, please do so.

If you know of non-reported issues with the backend, please file bug reports for them.

March 20, 2021
On Friday, 19 March 2021 at 18:21:35 UTC, Iain Buclaw wrote:
> High-level feature changes are mentioned on the GCC site.
>
> https://gcc.gnu.org/gcc-9/changes.html#d
> https://gcc.gnu.org/gcc-10/changes.html#d
> https://gcc.gnu.org/gcc-11/changes.html#d (content will be added closer to release date).
>
> Typically bug-fixes come from PRs (problem references) that are created against D.
>
> https://gcc.gnu.org/bugzilla/buglist.cgi?product=gcc&component=d&version=9.0
> https://gcc.gnu.org/bugzilla/buglist.cgi?product=gcc&component=d&version=10.0
> https://gcc.gnu.org/bugzilla/buglist.cgi?product=gcc&component=d&version=11.0
>
> As I fix ICE's in dmd master, these are typically proactively backported to the dmd-cxx branch as well (this is the upstream that's merged into gcc itself).
>
> https://github.com/dlang/dmd/commits/dmd-cxx
> https://github.com/dlang/druntime/commits/dmd-cxx
> https://github.com/dlang/phobos/commits/dmd-cxx
>
> As a rule of thumb, all stdc bindings are generally kept closely in sync with dmd master to ensure the broadest possible platform support, and expired deprecations removed.

Great! That is far closer to what I was looking for.

Maybe you could put these links and a few sentences of explanation somewhere prominent on the GDC website? I think it would significantly increase awareness that GDC isn't really stuck on 2.076's specific mix of features and bugs.
March 21, 2021
On Saturday, 20 March 2021 at 07:21:21 UTC, Walter Bright wrote:
> On 3/16/2021 8:44 PM, tsbockman wrote:
>> The DMD backend is quite buggy (and also optimizes poorly) compared to those used by GDC and LDC.
> Bugzilla lists 22 issues with the DMD backend that are tagged with the 'backend' keyword:
>
> https://issues.dlang.org/buglist.cgi?bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&keywords=backend%2C%20&keywords_type=allwords&list_id=235330&query_format=advanced
>
> If you know of other reported issues with the backend that are not so tagged, please do so.
>

I've gone through all my current open issues and tagged them where I think it relates to backend.
March 21, 2021
On Saturday, 20 March 2021 at 18:43:43 UTC, tsbockman wrote:
> Great! That is far closer to what I was looking for.
>
> Maybe you could put these links and a few sentences of explanation somewhere prominent on the GDC website? I think it would significantly increase awareness that GDC isn't really stuck on 2.076's specific mix of features and bugs.

It's been a thing on my todo.txt list to add a releases/change notes tab in the menu, but limited time means I have to focus priorities elsewhere. ;-)
March 22, 2021
On 3/21/2021 2:40 AM, Iain Buclaw wrote:
> I've gone through all my current open issues and tagged them where I think it relates to backend.

Good!
April 07, 2021
On Friday, 19 March 2021 at 06:32:18 UTC, Walter Bright wrote:
> On 3/16/2021 8:44 PM, tsbockman wrote:
>> So, definitely use LDC if you are planning to bet human lives and/or millions of dollars on it working fully correctly.
>
> The first three years of my career was spent developing the flight critical stabilizer trim gearbox for the 757. Flight critical means if it comes apart, you lose the airplane and everyone aboard.
>
> So I know how to build things that are critical for human life.
>
> Generally speaking, there is no relying on any tool to be bug-free. Test and verify everything. Design in a backup system to monitor the behavior.

...

> Notice there is no reliance on bug-free hardware, bug-free algorithms, bug-free code, bug-free compilers, etc.

In engineering practice, redundancy backup is the way to achieve reliability.

On the other hand, programming logic / compiler is also mathematics, where reliability is achieved by theorem provers, e.g.


https://en.wikipedia.org/wiki/CompCert

https://github.com/AbsInt/CompCert

CompCert

The formally-verified C compiler.

The distinguishing feature of CompCert is that it has been formally verified using the Coq proof assistant: the generated assembly code is formally guaranteed to behave as prescribed by the semantics of the source C code.


1 2
Next ›   Last »