Jump to page: 1 2
Thread overview
[Request for ABI Breakage]: Ambiguity between extern(Pascal) vs. Template Value Parameters.
May 16, 2015
Iain Buclaw
May 16, 2015
Daniel Murphy
May 16, 2015
Iain Buclaw
May 16, 2015
Kagamin
May 16, 2015
Iain Buclaw
May 16, 2015
weaselcat
May 16, 2015
Iain Buclaw
May 16, 2015
Iain Buclaw
May 17, 2015
Walter Bright
May 18, 2015
Walter Bright
May 19, 2015
Daniel Murphy
May 18, 2015
Martin Nowak
May 16, 2015
In this small snippet:

  TS4html3dom4NodeVnnZ

How am I supposed to know the difference between an extern(Pascal) function:

  html.dom.Node(none, none)

And a template parameter list:

  html.dom.Node, null


Since use of extern(Pascal) should be exceedingly rare (I don't think I ever followed ABI convention in GDC) I'd either request that extern(Pascal) be removed completely, or have it's mangled symbol be renamed to something other than a 'V' that does not clash with other types/identifiers.

Regards
Iain
May 16, 2015
"Iain Buclaw"  wrote in message news:uzmzjndohsiaewkjmchu@forum.dlang.org...

> Once use of extern(Pascal) should be exceedingly rare (I don't think I ever followed ABI convention in GDC) I'd either request that extern(Pascal) be removed completely, or have it's mangled symbol be renamed to something other than a 'V' that does not clash with other types/identifiers.

Why do we even have extern(Pascal) ? 

May 16, 2015
On 16 May 2015 at 16:34, Daniel Murphy via Digitalmars-d <digitalmars-d@puremagic.com> wrote:
> "Iain Buclaw"  wrote in message news:uzmzjndohsiaewkjmchu@forum.dlang.org...
>
>> Once use of extern(Pascal) should be exceedingly rare (I don't think I
>> ever followed ABI convention in GDC) I'd either request that extern(Pascal)
>> be removed completely, or have it's mangled symbol be renamed to something
>> other than a 'V' that does not clash with other types/identifiers.
>
>
> Why do we even have extern(Pascal) ?

No idea.  D has never supported 16-bit systems.  Walter?
May 16, 2015
AFAIK, pascal calling convention exists for 32-bit systems too: http://www.freepascal.org/docs-html/prog/progse22.html
May 16, 2015
On Saturday, 16 May 2015 at 15:46:20 UTC, Iain Buclaw wrote:
> On 16 May 2015 at 16:34, Daniel Murphy via Digitalmars-d
> <digitalmars-d@puremagic.com> wrote:
>> "Iain Buclaw"  wrote in message news:uzmzjndohsiaewkjmchu@forum.dlang.org...
>>
>>> Once use of extern(Pascal) should be exceedingly rare (I don't think I
>>> ever followed ABI convention in GDC) I'd either request that extern(Pascal)
>>> be removed completely, or have it's mangled symbol be renamed to something
>>> other than a 'V' that does not clash with other types/identifiers.
>>
>>
>> Why do we even have extern(Pascal) ?
>
> No idea.  D has never supported 16-bit systems.  Walter?

This is blocking me with improving demangling support in gdb/binutils.

https://issues.dlang.org/show_bug.cgi?id=14591
https://github.com/D-Programming-Language/dmd/pull/4658

I may just drop support for recognising extern(Pascal) functions completely on my side.

May 16, 2015
On Saturday, 16 May 2015 at 19:11:26 UTC, Iain Buclaw wrote:
> On Saturday, 16 May 2015 at 15:46:20 UTC, Iain Buclaw wrote:
>> On 16 May 2015 at 16:34, Daniel Murphy via Digitalmars-d
>> <digitalmars-d@puremagic.com> wrote:
>>> "Iain Buclaw"  wrote in message news:uzmzjndohsiaewkjmchu@forum.dlang.org...
>>>
>>>> Once use of extern(Pascal) should be exceedingly rare (I don't think I
>>>> ever followed ABI convention in GDC) I'd either request that extern(Pascal)
>>>> be removed completely, or have it's mangled symbol be renamed to something
>>>> other than a 'V' that does not clash with other types/identifiers.
>>>
>>>
>>> Why do we even have extern(Pascal) ?
>>
>> No idea.  D has never supported 16-bit systems.  Walter?
>
> This is blocking me with improving demangling support in gdb/binutils.
>
> https://issues.dlang.org/show_bug.cgi?id=14591
> https://github.com/D-Programming-Language/dmd/pull/4658
>
> I may just drop support for recognising extern(Pascal) functions completely on my side.

Sorry for the noise, but since you're here
C++filt in binutils lists dlang support in the help but it doesn't actually work. Do I report this on binutils issue tracker, or gdc's?
May 16, 2015
On Saturday, 16 May 2015 at 19:16:04 UTC, weaselcat wrote:
> On Saturday, 16 May 2015 at 19:11:26 UTC, Iain Buclaw wrote:
>> On Saturday, 16 May 2015 at 15:46:20 UTC, Iain Buclaw wrote:
>>> On 16 May 2015 at 16:34, Daniel Murphy via Digitalmars-d
>>> <digitalmars-d@puremagic.com> wrote:
>>>> "Iain Buclaw"  wrote in message news:uzmzjndohsiaewkjmchu@forum.dlang.org...
>>>>
>>>>> Once use of extern(Pascal) should be exceedingly rare (I don't think I
>>>>> ever followed ABI convention in GDC) I'd either request that extern(Pascal)
>>>>> be removed completely, or have it's mangled symbol be renamed to something
>>>>> other than a 'V' that does not clash with other types/identifiers.
>>>>
>>>>
>>>> Why do we even have extern(Pascal) ?
>>>
>>> No idea.  D has never supported 16-bit systems.  Walter?
>>
>> This is blocking me with improving demangling support in gdb/binutils.
>>
>> https://issues.dlang.org/show_bug.cgi?id=14591
>> https://github.com/D-Programming-Language/dmd/pull/4658
>>
>> I may just drop support for recognising extern(Pascal) functions completely on my side.
>
> Sorry for the noise, but since you're here
> C++filt in binutils lists dlang support in the help but it doesn't actually work. Do I report this on binutils issue tracker, or gdc's?

Binutils.  Other tools may need similarly to be updated.
May 16, 2015
On Saturday, 16 May 2015 at 19:21:31 UTC, Iain Buclaw wrote:
> On Saturday, 16 May 2015 at 19:16:04 UTC, weaselcat wrote:
>> On Saturday, 16 May 2015 at 19:11:26 UTC, Iain Buclaw wrote:
>>> On Saturday, 16 May 2015 at 15:46:20 UTC, Iain Buclaw wrote:
>>>> On 16 May 2015 at 16:34, Daniel Murphy via Digitalmars-d
>>>> <digitalmars-d@puremagic.com> wrote:
>>>>> "Iain Buclaw"  wrote in message news:uzmzjndohsiaewkjmchu@forum.dlang.org...
>>>>>
>>>>>> Once use of extern(Pascal) should be exceedingly rare (I don't think I
>>>>>> ever followed ABI convention in GDC) I'd either request that extern(Pascal)
>>>>>> be removed completely, or have it's mangled symbol be renamed to something
>>>>>> other than a 'V' that does not clash with other types/identifiers.
>>>>>
>>>>>
>>>>> Why do we even have extern(Pascal) ?
>>>>
>>>> No idea.  D has never supported 16-bit systems.  Walter?
>>>
>>> This is blocking me with improving demangling support in gdb/binutils.
>>>
>>> https://issues.dlang.org/show_bug.cgi?id=14591
>>> https://github.com/D-Programming-Language/dmd/pull/4658
>>>
>>> I may just drop support for recognising extern(Pascal) functions completely on my side.
>>
>> Sorry for the noise, but since you're here
>> C++filt in binutils lists dlang support in the help but it doesn't actually work. Do I report this on binutils issue tracker, or gdc's?
>
> Binutils.  Other tools may need similarly to be updated.

By the way, "doesn't actually work" may need some explaining.  (It works for me, for instance).
May 17, 2015
On 5/16/2015 8:46 AM, Iain Buclaw via Digitalmars-d wrote:
> On 16 May 2015 at 16:34, Daniel Murphy via Digitalmars-d
> <digitalmars-d@puremagic.com> wrote:
>> "Iain Buclaw"  wrote in message news:uzmzjndohsiaewkjmchu@forum.dlang.org...
>>
>>> Once use of extern(Pascal) should be exceedingly rare (I don't think I
>>> ever followed ABI convention in GDC) I'd either request that extern(Pascal)
>>> be removed completely, or have it's mangled symbol be renamed to something
>>> other than a 'V' that does not clash with other types/identifiers.
>>
>>
>> Why do we even have extern(Pascal) ?
>
> No idea.  D has never supported 16-bit systems.  Walter?
>

Windows API calls used it.
May 18, 2015
On 5/16/15 10:36 PM, Walter Bright wrote:
> On 5/16/2015 8:46 AM, Iain Buclaw via Digitalmars-d wrote:
>> On 16 May 2015 at 16:34, Daniel Murphy via Digitalmars-d
>> <digitalmars-d@puremagic.com> wrote:
>>> "Iain Buclaw"  wrote in message
>>> news:uzmzjndohsiaewkjmchu@forum.dlang.org...
>>>
>>>> Once use of extern(Pascal) should be exceedingly rare (I don't think I
>>>> ever followed ABI convention in GDC) I'd either request that
>>>> extern(Pascal)
>>>> be removed completely, or have it's mangled symbol be renamed to
>>>> something
>>>> other than a 'V' that does not clash with other types/identifiers.
>>>
>>>
>>> Why do we even have extern(Pascal) ?
>>
>> No idea.  D has never supported 16-bit systems.  Walter?
>>
>
> Windows API calls used it.

So would it make sense to use extern(Pascal) to only deal with Windows API calls? I can't see the OP's case html.dom.Node(none, none) being a Windows call.

I'd also call it something else besides extern(Pascal) to avoid confusion.

-Steve
« First   ‹ Prev
1 2