GDC review process.

Iain Buclaw ibuclaw at ubuntu.com
Wed Jun 20 09:18:06 PDT 2012


On 20 June 2012 17:00, Brad Anderson <eco at gnuk.net> wrote:
> On Tue, Jun 19, 2012 at 12:19 PM, Iain Buclaw <ibuclaw at ubuntu.com> wrote:
>>
>> Hi,
>>
>> Had round one of the code review process, so I'm going to post the main
>> issues here that most affect D users / the platforms they want to run on /
>> the compiler version they want to use.
>>
>>
>>
>> 1) D Inline Asm and naked function support is raising far too many alarm
>> bells. So would just be easier to remove it and avoid all the other comments
>> on why we need middle-end and backend headers in gdc.
>>
>>
>> 2) Code with #if V1 and V2 raised another bell with the request to remove
>> all code that relies on internal macros with proper if() conditions. If
>> something is always going to be turned off, remove it.
>>
>> So, we shall also be saying bye bye D1 in GDC.  We'll miss you!
>>
>>
>> 3) For anyone who has submitted patches for Mingw and Apple - sorry, but
>> I'm going to have to yank out or alter certain bits.  Apple GCC is
>> irrelevant now, and some Mingw checks look for if(target) when it should
>> really be checking if(host) and vice versa!
>>
>>
>> Most discussion I would imagine be on the decision to remove D inline
>> assembler support from gdc.  So, nay sayers, do your worst, but
>> unfortunately there is a +1 here for removal.
>>
>>
>> Regards
>> Iain
>
>
> I'm very much outside of my area of understanding but would it be possible
> to use CTFE+mixin to generate GCC asm from DMD style asm allowing people to
> still use a single version of the asm for both DMD and GDC?
>
> Regards,
> Brad Anderson

Hmm... doable, yes, but it would require a similarly complex construct
as the implementation in the compiler.  GCC Assembler is much more
expressive than D Inline Assembler, and requires for you to describe
everything a given asm command is doing, inputs, outputs, clobbers,
and labels that we may jump to (if any).   The only thing I worry is
that CTFE is not powerful enough process a long set of instructions at
a fast enough rate to make it benefitial.

-- 
Iain Buclaw

*(p < e ? p++ : p) = (c & 0x0f) + '0';


More information about the Digitalmars-d mailing list