SE-0273 and Configuration Conditionals

The status page for SE-0273 states:

Status: Partially implemented (Swift 5.3 supports platform conditionals, but not configuration conditionals)

I'd like to do exactly as the proposal states:

In a second scenario, packages may want to link against libraries only in certain configurations, for example when importing debug libraries, which do not make sense to build and link in release builds ...

@neonacho, Is there any plan to implement this? Or are there insurmountable difficulties that were encountered post-acceptance?

cc @Max_Desiatov

Since I do not work on SwiftPM anymore.

1 Like

This situation somewhat reminds me of this post on cleaning up old evolution proposals. And now I'm wondering what other partially implemented, yet accepted, proposals might still be out there. I'm curious on this one because I remembered configuration conditionals being a part of the pitch and the proposal, but I had never really tried to use them until this week. So I went back and read the proposal to make sure my memory wasn't playing tricks.

I was a bit surprised to find out that a) a major feature from the proposal was left unimplemented without explanation and b) the acceptance notice made no mention of a partial implementation and c) that the review thread stayed active for 3 years with people fruitlessly asking for updates on when the feature might be implemented.

@John_McCall is there an official procedure for cleaning up situations like this? I understand from above that @Max_Desiatov is the person to ask about the specifics of the feature, I'm pinging you only bc you authored the other post on cleaning up old evolution proposals and I'm curious about the overall evolution procedure in these instances.

2 Likes

If a similar situation arose with a language or library proposal, the Language Steering Group would probably add a note at the top of the proposal document pointing out that parts of it were never implemented, and we’d meet to decide if we wanted to require a new review before actually implementing them. Swift PM is not under our evolution authority, though; for now, it still belongs directly to the Core Team.

1 Like