www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Updating other compiler frontends [was D 1.076 and 2.061 release]

reply "Iain Buclaw" <ibuclaw ubuntu.com> writes:
On Tuesday, 1 January 2013 at 23:46:32 UTC, Walter Bright wrote:
 The big news is Win64 is now supported (in alpha).

 http://www.digitalmars.com/d/download.html

 D 1.076 changelog: 
 http://www.digitalmars.com/d/1.0/changelog.html

 A couple issues:

 1. the dlang.org isn't updated yet.
 2. the OS X package hasn't been built yet (problems with the 
 package script).

 I hope to get these resolved shortly. In the meantime, enjoy 
 and have a Happy D Year!

Needed a bit of R&R so I started on merging 2.061 D frontend into GDC last night. The only urk I've hit so far is that someone thought it might be a good idea to define a ulonglong and longlong type in a place that doesn't exist in gdc's copy of the dfrontend. But given that I've expressed positive views on moving towards minimising the use of #ifdef's in the app code. Rather than removing the use of this, I've done the following changes my side to try and suppliment this. - Removed some #ifdefs for GDC in the D frontend. - Moved over d-gcc-complex_t.h to complex_t.h, moved about some includes in mars.h. - Created a port.c/port.h and started implementing hooks for gcc backend. - Created a new target.c/target.h and started defining some new hooks to reduce some more #ifdef'd code in the dfrontend. For successfully porting port.h over to gdc, the main problem is with using gcc's real_t implementation instead of float, double that dmd uses is that the real_t implementation relies on some typedefs in mars.h (for dint64_t, etc), so these will need to be moved out to somewhere else... Would a target.h header be fine for this? Or do you have somewhere else in mind. Once I've finished the changes, I'll send a pull request of the initial work for the next release. Thanks, Iain.
Jan 08 2013
next sibling parent Walter Bright <newshound2 digitalmars.com> writes:
On 1/8/2013 5:49 AM, Iain Buclaw wrote:
 Would a target.h header be fine for this?  Or do you have somewhere else in
mind.

I think a target.h/target.c would be a good addition. In general, I'd like to see all #ifdef's removed from the main dmd source code. Host and target specific behaviors should be abstracted out, like what root/port.h attempts to do.
Jan 08 2013
prev sibling parent Iain Buclaw <ibuclaw ubuntu.com> writes:
--20cf307f3a568a2f8f04d2d7e758
Content-Type: text/plain; charset=ISO-8859-1

On 8 January 2013 23:15, Walter Bright <newshound2 digitalmars.com> wrote:

 On 1/8/2013 5:49 AM, Iain Buclaw wrote:

 Would a target.h header be fine for this?  Or do you have somewhere else
 in mind.

I think a target.h/target.c would be a good addition. In general, I'd like to see all #ifdef's removed from the main dmd source code. Host and target specific behaviors should be abstracted out, like what root/port.h attempts to do.

OK, well I've started it off with Target::typesize, ::typealign, ::fieldalign. Maybe also ::fieldoffset, though gdc currently uses the D frontend code to get that that with no known issues (only way to find out is when we start expanding D2 to more targets). And left it with the comment: This file contains a data structure that describes a back-end target. At present it is incomplete, but in future it should grow to contain most or all target machine and target O/S specific information. Regards -- Iain Buclaw *(p < e ? p++ : p) = (c & 0x0f) + '0'; --20cf307f3a568a2f8f04d2d7e758 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><div class=3D"gmail_extra"><div class=3D"gmail_quote">On 8= January 2013 23:15, Walter Bright <span dir=3D"ltr">&lt;<a href=3D"mailto:= newshound2 digitalmars.com" target=3D"_blank">newshound2 digitalmars.com</a=
&gt;</span> wrote:<br>

left:1px solid rgb(204,204,204);padding-left:1ex"><div class=3D"im">On 1/8/= 2013 5:49 AM, Iain Buclaw wrote:<br> <blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-= left:1px solid rgb(204,204,204);padding-left:1ex"> Would a target.h header be fine for this? =A0Or do you have somewhere else = in mind.<br> </blockquote> <br></div> I think a target.h/target.c would be a good addition. In general, I&#39;d l= ike to see all #ifdef&#39;s removed from the main dmd source code. Host and= target specific behaviors should be abstracted out, like what root/port.h = attempts to do.<br> <br> </blockquote></div><br><br></div><div class=3D"gmail_extra">OK, well I&#39;= ve started it off with Target::typesize, ::typealign, ::fieldalign.=A0 Mayb= e also ::fieldoffset, though gdc currently uses the D frontend code to get = that that with no known issues (only way to find out is when we start expan= ding D2 to more targets).<br> <br></div><div class=3D"gmail_extra">And left it with the comment:=A0 This = file contains a data structure that describes a back-end target. At present= it is incomplete, but in future it should grow to contain most or all targ= et machine and target O/S specific information.<br> </div><div class=3D"gmail_extra"><br><br></div><div class=3D"gmail_extra">R= egards<br></div><div class=3D"gmail_extra"><br>-- <br>Iain Buclaw<br><br>*(= p &lt; e ? p++ : p) =3D (c &amp; 0x0f) + &#39;0&#39;; </div></div> --20cf307f3a568a2f8f04d2d7e758--
Jan 09 2013