swift icon indicating copy to clipboard operation
swift copied to clipboard

Add an experimental `CommandLine.executablePath` property.

Open grynspan opened this issue 4 months ago • 27 comments

This PR adds CommandLine.executablePath. We have use cases for this property in Swift Testing, Swift Argument Parser, Foundation, and other places; three use cases a stdlib API makes.

Need to consider how best to handle back-deployment on Apple platforms. It should be possible to support back-deployment since the underlying crt_extern function has been present for decades, however calling it may prove non-trivial. I haven't made an attempt at it yet.

Pending Swift Evolution review. We can mark this @_spi or underscored in the mean time.

grynspan avatar Nov 13 '25 18:11 grynspan

@3405691582 Could use your eyes on the OpenBSD implementation, of course.

grynspan avatar Nov 13 '25 21:11 grynspan

@swift-ci test

grynspan avatar Nov 14 '25 14:11 grynspan

@swift-ci test

grynspan avatar Nov 14 '25 17:11 grynspan

@swift-ci test Windows

grynspan avatar Nov 14 '25 18:11 grynspan

@swift-ci test

grynspan avatar Nov 14 '25 18:11 grynspan

@swift-ci test

grynspan avatar Nov 14 '25 20:11 grynspan

@swift-ci test

grynspan avatar Nov 16 '25 20:11 grynspan

@swift-ci test

grynspan avatar Nov 17 '25 02:11 grynspan

@swift-ci test

grynspan avatar Nov 17 '25 13:11 grynspan

@swift-ci test

grynspan avatar Nov 17 '25 14:11 grynspan

@swift-ci test

grynspan avatar Nov 17 '25 15:11 grynspan

but I think that's about as good as we can manage on the platform.

Indeed, this is just a limitation we have to live with. (I suppose we could try splitting $PATH, concatenating each path, and checking if it exists, but realistically…)

grynspan avatar Nov 18 '25 13:11 grynspan

The Windows failure is unrelated and the macOS failure is just the ABI test needing an update. Will revisit in January.

grynspan avatar Nov 18 '25 14:11 grynspan

@swift-ci test

grynspan avatar Dec 13 '25 16:12 grynspan

@swift-ci test

grynspan avatar Dec 15 '25 14:12 grynspan

@swift-ci test

grynspan avatar Dec 16 '25 16:12 grynspan

@swift-ci test

grynspan avatar Jan 14 '26 19:01 grynspan

@swift-ci test

grynspan avatar Jan 14 '26 22:01 grynspan

@3405691582 Some changes to the OpenBSD implementation if you want to look again.

grynspan avatar Jan 15 '26 03:01 grynspan

@swift-ci test

grynspan avatar Jan 15 '26 03:01 grynspan

@swift-ci test

grynspan avatar Jan 15 '26 04:01 grynspan

@swift-ci test

grynspan avatar Jan 15 '26 13:01 grynspan

@swift-ci test

grynspan avatar Jan 15 '26 16:01 grynspan

@swift-ci test

grynspan avatar Jan 15 '26 17:01 grynspan

@swift-ci smoke test

grynspan avatar Jan 15 '26 18:01 grynspan

@swift-ci test

grynspan avatar Jan 16 '26 03:01 grynspan

@swift-ci test

grynspan avatar Jan 17 '26 02:01 grynspan

@swift-ci test

grynspan avatar Jan 17 '26 22:01 grynspan

The current macOS failure is unrelated and appears to be a compiler regression in move-only codegen.

grynspan avatar Jan 18 '26 15:01 grynspan

@swift-ci smoke test macOS

grynspan avatar Jan 18 '26 15:01 grynspan