Re: GCC 11.1 Released

2021-06-09 Thread Iain Buclaw via Digitalmars-d-announce

On Wednesday, 9 June 2021 at 07:15:40 UTC, Elronnd wrote:

On Thursday, 27 May 2021 at 01:04:37 UTC, Iain Buclaw wrote:
2. The promise of dynamically generating D bindings from C 
headers never really materialized.  Actual work of adding a 
GCC compiler switch to dump D code was [completed to around 
95% of what was 
needed](https://github.com/D-Programming-GDC/gcc/compare/1cb2d1d5ce178cb68f0bd475299d2e0b25a4a756...ibuclaw/dumpspec), but then stalled on the just how this feature would integrate this into druntime.


Could this also support c++?  If so, that seems like it could 
potentially be a reason to continue development on it 
preferentially to importC.  Calypso-ish :)


Because it works on the debug info/generic tree level, all 
languages GCC supports can be used to emit D bindings for their 
code.


Re: GCC 11.1 Released

2021-06-09 Thread Elronnd via Digitalmars-d-announce

On Thursday, 27 May 2021 at 01:04:37 UTC, Iain Buclaw wrote:
2. The promise of dynamically generating D bindings from C 
headers never really materialized.  Actual work of adding a GCC 
compiler switch to dump D code was [completed to around 95% of 
what was 
needed](https://github.com/D-Programming-GDC/gcc/compare/1cb2d1d5ce178cb68f0bd475299d2e0b25a4a756...ibuclaw/dumpspec), but then stalled on the just how this feature would integrate this into druntime.


Could this also support c++?  If so, that seems like it could 
potentially be a reason to continue development on it 
preferentially to importC.  Calypso-ish :)


Re: GCC 11.1 Released

2021-06-05 Thread Imperatorn via Digitalmars-d-announce

On Thursday, 27 May 2021 at 14:14:40 UTC, WebFreak001 wrote:

On Thursday, 27 May 2021 at 01:04:37 UTC, Iain Buclaw wrote:

...

my [Github Sponsor page](https://github.com/sponsors/ibuclaw/).

...


TIL, sponsored!


Ditto


Re: GCC 11.1 Released

2021-06-05 Thread Guillaume Piolat via Digitalmars-d-announce

On Thursday, 27 May 2021 at 14:14:40 UTC, WebFreak001 wrote:

On Thursday, 27 May 2021 at 01:04:37 UTC, Iain Buclaw wrote:

...

my [Github Sponsor page](https://github.com/sponsors/ibuclaw/).

...


TIL, sponsored!


ditto


Re: GCC 11.1 Released

2021-05-31 Thread Dylan Graham via Digitalmars-d-announce

On Thursday, 27 May 2021 at 01:04:37 UTC, Iain Buclaw wrote:

Hi,


Sponsored :)

Very excited for GDC 12!


Re: GCC 11.1 Released

2021-05-27 Thread Iain Buclaw via Digitalmars-d-announce

On Thursday, 27 May 2021 at 14:14:40 UTC, WebFreak001 wrote:

On Thursday, 27 May 2021 at 01:04:37 UTC, Iain Buclaw wrote:

...

my [Github Sponsor page](https://github.com/sponsors/ibuclaw/).

...


TIL, sponsored!


Well, I am speechless.  I've had a few surprises in my inbox this 
morning in relation to that link.


Re: GCC 11.1 Released

2021-05-27 Thread WebFreak001 via Digitalmars-d-announce

On Thursday, 27 May 2021 at 01:04:37 UTC, Iain Buclaw wrote:

...

my [Github Sponsor page](https://github.com/sponsors/ibuclaw/).

...


TIL, sponsored!


Re: GCC 11.1 Released

2021-05-27 Thread Brian via Digitalmars-d-announce
Thank you for your work. It has been a good experience so far 
running gdc on OpenBSD.


Re: GCC 11.1 Released

2021-05-27 Thread M.M. via Digitalmars-d-announce

On Thursday, 27 May 2021 at 01:04:37 UTC, Iain Buclaw wrote:

Hi,

This year it's taken even longer than usual to get round to 
posting the formal announcement, but here it now is, and there 
has been a lot to sift through.


[...]


A lot of work in the past development cycle of gcc. Well done! A 
lot of work ahead. Good luck! Your work is very much appreciated.


Re: GCC 11.1 Released

2021-05-27 Thread rikki cattermole via Digitalmars-d-announce



On 27/05/2021 1:04 PM, Iain Buclaw wrote:
   - New aliases have been added to gcc.attributes for compatibility 
with ldc.attributes.


mm compact, very nice!


GCC 11.1 Released

2021-05-26 Thread Iain Buclaw via Digitalmars-d-announce

Hi,

This year it's taken even longer than usual to get round to 
posting the formal announcement, but here it now is, and there 
has been a lot to sift through.


As of last month (27th April), [GCC 11.1 has now been 
released](https://gcc.gnu.org/gcc-11/changes.html#d).


For the D language front-end, there have been a significant 
number of changes, so it's probably best to start with the 
lowlights as they are comparatively small.


---

Lowlights
-

1. Contrary to the hopes of last years release announcement, this 
version still uses [D 
2.076.1](https://dlang.org/changelog/2.076.1.html) as the 
baseline for D language support.  Some significant blocking 
issues in upstream DMD meant that I could not commit to switching 
to self-hosted with full confidence, and said issues did not get 
resolved until after the feature window closed.


2. The promise of dynamically generating D bindings from C 
headers never really materialized.  Actual work of adding a GCC 
compiler switch to dump D code was [completed to around 95% of 
what was 
needed](https://github.com/D-Programming-GDC/gcc/compare/1cb2d1d5ce178cb68f0bd475299d2e0b25a4a756...ibuclaw/dumpspec), but then stalled on the just how this feature would integrate this into druntime.


   Then there's been the announcement of importC, which seems 
like a good reason to change tack and instead put effort into 
getting importC to the state where it is fit for purpose.


   Perhaps this utility could be released anyway, as an 
alternative to the likes of DStep, except leverages gcc to parse 
the sources instead via `gcc file.c -fdump-d-spec=file.d`


3. Whilst [my little project site](https://gdcproject.org) did 
recent a styling revamp, very little was done in the way of 
documentation.  Though soon I hope to get changelog entries 
published there at least.


4. The [compiler explorer site](https://explore.dgnu.org) has 
also been updated, though the running compilers were left at 
version GCC 9.1.


---

Highlights
--

1. Instead of updating language version, efforts have been driven 
towards increasing cross-platform support, there have been a 
number of new additions:

   - FreeBSD
   - DragonFlyBSD
   - OpenBSD
   - OS X
   - MinGW

   OpenBSD, OS X and MinGW do not enable Phobos by default, and 
are to be considered experimental at this time, you can override 
the building of Phobos with the `--enable-libphobos` configure 
switch.  OS X has been the most tested of the experimental 
configurations, and is working generally well on all versions 
between Darwin 10 and 19.


2. Testing infrastructure has been expanded, and it is no longer 
Ubuntu-centric.  There are now the following new platforms under 
test:

   - [CirrusCI](https://cirrus-ci.com/build/6373685910044672)
 - x86_64-linux-gnu
 - x86_64-portbld-freebsd12.2
 - x86_64-apple-darwin19
   - 
[Buildkite](https://buildkite.com/d-programming-gdc/gcc/builds/285)

 - x86_64-alpine-linux-musl
 - x86_64-unknown-netbsd
 - amd64-unknown-openbsd6.9

   For everything else under Buildkite, the two pre-existing 
agents have had a CPU upgrade, and a third agent has been added 
into the infrastructure that has reduced overall build times by 
more than half.  The servers I'm using for buildkite are 
ridiculously cheap, however if you are interested in helping 
support the monthly costs, you can do so by making a donation to 
the [D Language 
Foundation](https://dlang.org/foundation/donate.html), 
approximations of costs into USD are up on my [Github Sponsor 
page](https://github.com/sponsors/ibuclaw/).


---

**New features**:
  - A new bottom type `typeof(*null)` has been added to represent 
run-time errors and non-terminating functions. This also 
introduces a new standard alias for the type named `noreturn`, 
and is implicitly imported into every module.


  - [Printf-like and 
scanf-like](https://dlang.org/changelog/2.092.0.html#printfParams2) functions are now detected by prefixing them with pragma(printf) for printf-like functions or pragma(scanf) for scanf-like functions.


  - The __traits() expression now supports the extensions 
`isDeprecated`, `isDisabled`, `isFuture`, `isModule`, 
`isPackage`, `child`, `isReturnOnStack`, `isZeroInit`, 
`getTargetInfo`, `getLocation`, `hasPostblit`, `isCopyable`, 
`getVisibility`, and `totype`.


  - [An expression-based contract 
syntax](https://dlang.org/changelog/2.081.0.html#expression-based_contract_syntax) has been added to the language.


  - [Function literals can now 
return](https://dlang.org/changelog/2.086.0.html#funcliteralsbyref) a value by reference with the `ref` keyword.


  - [A new syntax is 
available](https://dlang.org/changelog/2.087.0.html#aliasdecly_func) to declare aliases to function types using the `alias` syntax based on the assignment operator.


  - [New 
types](https://dlang.org/changelog/2.096.0.html#complex_types) 
`__c_complex_float`, `__c_complex_double`, `__c_complex_real`, 
and `__c_wchar_t`