Skip to content

Conversation

@WalterBright
Copy link
Member

Here to gauge progress in getting Phobos to work with -dip1000

@andralex
Copy link
Member

Auto-merge toggled on

@JackStouffer
Copy link
Contributor

Auto-merge toggled off

@JackStouffer
Copy link
Contributor

No need to prioritize this in the auto tester just yet.

@dnadlinger
Copy link
Contributor

Is there a chance for -dip1000 to cause ABI mismatch with non-dip1000 client code?

@nordlow
Copy link
Contributor

nordlow commented Jan 25, 2017

@dnadlinger
Copy link
Contributor

@nordlow: Does it or doesn't it? The question is about throwing the switch for the same source code.

@nordlow
Copy link
Contributor

nordlow commented Jan 25, 2017

You mean if the same D source code compiled into two versions of objects file, one with -dip1000 and one without, are replaceable? I'm guessing the M-qualifier is added to the mangling of parameters that have their scope inferred in the -dip1000-version but not in the other. @WalterBright and @andralex ? I guess a test is in place to be sure.

@dnadlinger
Copy link
Contributor

You mean if the same D source code compiled into two versions of objects file, one with -dip1000 and one without, are replaceable?

Yes – in particular, whether a -dip1000-compiled Phobos is compatible with non--dip1000 client code.

@MartinNowak
Copy link
Member

Yes, they are ABI compatible.

We recently fixed a related issue caused by return inference (Issue 17123 – [REG 2.073] Issues with return @safe inference).
The solution to the ABI change is straightforward, always infer return, but only enforce it when using -dip1000.

@MetaLang
Copy link
Member

MetaLang commented Aug 6, 2017

@WalterBright what's the status of this?

@JackStouffer
Copy link
Contributor

See the discussion here on why this isn't viable at this point: #5915

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants